.nav{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 3rem;background:#f9f0f3d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:100;border-bottom:1px solid var(--petal)}.nav-logo{font-family:var(--font-display);font-size:1.4rem;font-weight:600;color:var(--berry);text-decoration:none;letter-spacing:.02em}.nav-links{display:flex;gap:2rem;list-style:none}.nav-links a{font-size:.875rem;font-weight:400;color:var(--ink-soft);text-decoration:none;letter-spacing:.04em;text-transform:uppercase;transition:color .2s}.nav-links a:hover,.nav-links a.active{color:var(--deep-rose)}@media (max-width: 640px){.nav{padding:1rem 1.5rem}.nav-links{gap:1rem}}.footer{border-top:1px solid var(--petal);padding:2rem 3rem;display:flex;justify-content:space-between;align-items:center;margin-top:4rem}.footer-legal{font-size:.75rem;color:var(--rose);letter-spacing:.04em}.footer-copy{font-size:.75rem;color:var(--ink-soft)}@media (max-width: 640px){.footer{flex-direction:column;gap:.5rem;text-align:center}}.hero{max-width:900px;margin:0 auto;padding:6rem 2rem 4rem;display:grid;grid-template-columns:1fr auto;gap:3rem;align-items:center}.hero-eyebrow{font-size:.8rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--deep-rose);margin-bottom:1.25rem}.hero-name{font-family:var(--font-display);font-size:clamp(3rem,8vw,5.5rem);font-weight:600;line-height:1;color:var(--ink);margin-bottom:1.5rem;letter-spacing:-.01em}.hero-name em{font-style:italic;color:var(--deep-rose)}.hero-tagline{font-size:1.05rem;font-weight:300;line-height:1.7;color:var(--ink-soft);max-width:480px;margin-bottom:2.5rem}.hero-buttons{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}.hero-socials{display:flex;gap:1rem}.social-link{width:36px;height:36px;border:1px solid var(--rose);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--deep-rose);text-decoration:none;font-size:.75rem;font-weight:500;transition:all .2s}.social-link:hover{background:var(--petal);border-color:var(--deep-rose)}.hero-badge{background:#f9f0f3d9;border:1px solid var(--rose);border-radius:4px;padding:1.5rem 1.25rem;text-align:left;min-width:190px;align-self:start;margin-top:2rem}.badge-heading{font-size:.7rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--deep-rose);margin-bottom:.85rem;display:block}.subject-row{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;margin-bottom:.4rem}.subject-name{font-size:.78rem;color:var(--ink);font-weight:400}.subject-level{font-size:.65rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;padding:.1rem .35rem;border-radius:2px;flex-shrink:0}.subject-level.hl{color:var(--deep-rose);background:var(--petal)}.subject-level.sl{color:var(--ink-soft);background:transparent;border:1px solid var(--rose)}.badge-divider{width:100%;height:1px;background:var(--petal);margin:.85rem 0}.badge-sub{font-size:.72rem;color:var(--ink-soft)}.section-divider{max-width:900px;margin:0 auto;padding:0 2rem}.section-divider hr{border:none;border-top:1px solid var(--petal)}.section{max-width:900px;margin:0 auto;padding:4rem 2rem}.section-eyebrow{font-size:.75rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--rose);margin-bottom:.75rem}.section-title{font-family:var(--font-display);font-size:2.2rem;font-weight:600;color:var(--ink);margin-bottom:2.5rem;line-height:1.2}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.25rem}.project-card{background:#f9f0f3cc;border:1px solid var(--petal);border-radius:4px;padding:1.5rem;text-decoration:none;color:inherit;display:block;transition:border-color .2s,transform .2s}.project-card:hover{border-color:var(--rose);transform:translateY(-2px)}.project-tag{display:inline-block;font-size:.7rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--deep-rose);background:var(--petal);padding:.2rem .5rem;border-radius:2px;margin-bottom:.75rem}.project-title-card{font-family:var(--font-display);font-size:1.35rem;font-weight:600;color:var(--ink);margin-bottom:.5rem;line-height:1.2}.project-desc{font-size:.875rem;color:var(--ink-soft);line-height:1.6;font-weight:300}.project-chips{margin-top:1rem;display:flex;flex-wrap:wrap;gap:.4rem}.stack-chip{font-size:.7rem;color:var(--ink-soft);background:var(--petal);border:1px solid var(--rose);padding:.15rem .5rem;border-radius:2px;font-weight:400}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem}.about-text p{font-size:1rem;color:var(--ink-soft);line-height:1.8;font-weight:300;margin-bottom:1rem}.about-text strong{color:var(--ink);font-weight:500}.facts-list{list-style:none;display:flex;flex-direction:column;gap:.75rem}.facts-list li{display:flex;align-items:flex-start;gap:.75rem;font-size:.9rem;color:var(--ink-soft)}.fact-dot{width:6px;height:6px;border-radius:50%;background:var(--rose);flex-shrink:0;margin-top:.45rem}.contact-section{padding-top:3rem;padding-bottom:3rem}.contact-sub{font-size:1rem;color:var(--ink-soft);font-weight:300;margin-bottom:1.5rem}@media (max-width: 640px){.hero{grid-template-columns:1fr;padding:3rem 1.5rem 2rem}.hero-badge{display:none}.about-grid{grid-template-columns:1fr}}.page-header{max-width:900px;margin:0 auto;padding:4.5rem 2rem 3rem;border-bottom:1px solid var(--petal)}.page-eyebrow{font-size:.8rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--deep-rose);margin-bottom:1rem}.page-title{font-family:var(--font-display);font-size:clamp(2.5rem,6vw,4rem);font-weight:600;color:var(--ink);line-height:1.1;margin-bottom:1rem}.page-title em{font-style:italic;color:var(--deep-rose)}.page-subtitle{font-size:1rem;font-weight:300;color:var(--ink-soft);line-height:1.7;max-width:520px}.video-wrapper{aspect-ratio:16 / 9;border-radius:4px;overflow:hidden;border:1px solid var(--rose)}.video-wrapper video{width:100%;height:100%;object-fit:cover;display:block}.filter-bar{max-width:900px;margin:0 auto;padding:1.5rem 2rem;display:flex;gap:.5rem;flex-wrap:wrap;border-bottom:1px solid var(--petal)}.filter-btn{font-family:var(--font-body);font-size:.75rem;font-weight:400;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);background:transparent;border:1px solid var(--rose);padding:.3rem .85rem;border-radius:2px;cursor:pointer;transition:all .2s}.filter-btn:hover,.filter-btn.active{background:var(--deep-rose);border-color:var(--deep-rose);color:#fff}.projects-index{max-width:900px;margin:0 auto;padding:0 2rem 5rem}.index-section-label{padding:2rem 0 .5rem;font-size:.7rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--rose);border-bottom:1px solid var(--petal)}.project-row{display:grid;grid-template-columns:80px 1fr auto;gap:2rem;align-items:start;padding:2rem 0;border-bottom:1px solid var(--petal);text-decoration:none;color:inherit;transition:background .15s;position:relative}.project-row:hover{background:#f3d9e34d;margin:0 -1rem;padding-left:1rem;padding-right:1rem}.project-row:hover .row-arrow{opacity:1;transform:translate(0)}.row-year{font-family:var(--font-display);font-size:1.1rem;font-weight:400;color:var(--rose);padding-top:.2rem;font-style:italic}.row-body{display:flex;flex-direction:column;gap:.5rem}.row-tags{display:flex;gap:.4rem;flex-wrap:wrap}.row-tag{font-size:.65rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--deep-rose);background:var(--petal);padding:.15rem .45rem;border-radius:2px}.row-tag.outline{color:var(--ink-soft);background:transparent;border:1px solid var(--rose)}.row-title{font-family:var(--font-display);font-size:1.65rem;font-weight:600;color:var(--ink);line-height:1.15}.row-desc{font-size:.875rem;color:var(--ink-soft);font-weight:300;line-height:1.6;max-width:560px}.row-chips{display:flex;gap:.4rem;flex-wrap:wrap}.stack-chip-sm{font-size:.68rem;color:var(--ink-soft);background:transparent;border:1px solid var(--petal);padding:.15rem .45rem;border-radius:2px}.row-arrow{font-size:1.2rem;color:var(--deep-rose);opacity:0;transform:translate(-6px);transition:all .2s;align-self:center}@media (max-width: 640px){.project-row{grid-template-columns:60px 1fr}.row-arrow{display:none}}.photo-slot-wrapper{width:100%}.photo-slot-img{width:100%;height:100%;object-fit:cover;border-radius:4px;display:block}.photo-slot-placeholder{background:var(--petal);border:2px dashed var(--rose);border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;padding:1.5rem 1rem;width:100%;height:100%;min-height:120px}.photo-slot-label{font-size:.72rem;color:var(--deep-rose);letter-spacing:.07em;text-transform:uppercase;font-weight:500;text-align:center}.photo-slot-path{font-size:.65rem;color:var(--ink-soft);background:#ffffffb3;padding:.15rem .5rem;border-radius:2px;font-family:monospace;text-align:center;word-break:break-all}.photo-slot-caption{font-size:.75rem;color:var(--ink-soft);font-style:italic;margin-top:.5rem;text-align:center}.photo-hero{aspect-ratio:16 / 7}.photo-wide{aspect-ratio:4 / 3}.photo-tall{aspect-ratio:3 / 4}.photo-square{aspect-ratio:1 / 1}.photo-video{aspect-ratio:16 / 9}.act-header{max-width:900px;margin:0 auto;padding:4.5rem 2rem 3rem;border-bottom:1px solid var(--petal)}.act-eyebrow{font-size:.8rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--deep-rose);margin-bottom:1rem}.act-title{font-family:var(--font-display);font-size:clamp(2.5rem,6vw,4rem);font-weight:600;color:var(--ink);line-height:1.1;margin-bottom:1rem}.act-title em{font-style:italic;color:var(--deep-rose)}.act-subtitle{font-size:1rem;font-weight:300;color:var(--ink-soft);line-height:1.7;max-width:520px}.act-content{max-width:900px;margin:0 auto;padding:0 2rem 5rem}.act-block{display:grid;grid-template-columns:200px 1fr;gap:3rem;padding:3rem 0;border-bottom:1px solid var(--petal);align-items:start}.act-block:last-child{border-bottom:none}.act-year{font-family:var(--font-display);font-size:1rem;font-style:italic;color:var(--rose);display:block;margin-bottom:.5rem}.act-tags{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}.act-tag{font-size:.65rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--deep-rose);background:var(--petal);padding:.2rem .5rem;border-radius:2px;width:fit-content}.act-tag-outline{font-size:.65rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);background:transparent;border:1px solid var(--rose);padding:.2rem .5rem;border-radius:2px;width:fit-content}.act-links{display:flex;flex-direction:column;gap:.4rem;margin-top:1rem}.act-link{font-size:.78rem;color:var(--deep-rose);text-decoration:none;font-weight:400;transition:color .2s}.act-link:before{content:"↗ ";font-size:.7rem}.act-link:hover{color:var(--berry)}.act-block-title{font-family:var(--font-display);font-size:1.9rem;font-weight:600;color:var(--ink);margin-bottom:.75rem;line-height:1.15}.act-block-title em{font-style:italic;color:var(--deep-rose)}.act-desc{font-size:.95rem;font-weight:300;color:var(--ink-soft);line-height:1.85;margin-bottom:1.25rem}.act-stats{display:flex;gap:1.5rem;flex-wrap:wrap;margin-bottom:1rem}.act-stat-num{font-family:var(--font-display);font-size:1.6rem;font-weight:600;color:var(--deep-rose);display:block;line-height:1}.act-stat-label{font-size:.7rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.07em}.act-bullets{list-style:none;display:flex;flex-direction:column;gap:.4rem}.act-bullets li{display:flex;gap:.6rem;font-size:.875rem;color:var(--ink-soft);font-weight:300;line-height:1.55}.act-dot{width:5px;height:5px;border-radius:50%;background:var(--rose);flex-shrink:0;margin-top:.5rem}@media (max-width: 640px){.act-block{grid-template-columns:1fr;gap:1rem}.act-tags{flex-direction:row}.act-links{flex-direction:row;flex-wrap:wrap}}.hob-header{max-width:900px;margin:0 auto;padding:4.5rem 2rem 3rem;border-bottom:1px solid var(--petal)}.hob-eyebrow{font-size:.8rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--deep-rose);margin-bottom:1rem}.hob-title{font-family:var(--font-display);font-size:clamp(2.5rem,6vw,4rem);font-weight:600;color:var(--ink);line-height:1.1;margin-bottom:1rem}.hob-title em{font-style:italic;color:var(--deep-rose)}.hob-subtitle{font-size:1rem;font-weight:300;color:var(--ink-soft);line-height:1.7;max-width:520px}.hob-content{max-width:900px;margin:0 auto;padding:0 2rem 5rem}.hob-section{padding:3rem 0}.hob-divider{border:none;border-top:1px solid var(--petal)}.hob-label{font-size:.7rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--rose);margin-bottom:.75rem;display:block}.hob-title-sm{font-family:var(--font-display);font-size:2rem;font-weight:600;color:var(--ink);margin-bottom:1.25rem;line-height:1.15}.hob-title-sm em{font-style:italic;color:var(--deep-rose)}.hob-body{font-size:.95rem;font-weight:300;color:var(--ink-soft);line-height:1.85;max-width:620px;margin-bottom:1.5rem}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.5rem 0}.three-col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;margin:1.5rem 0}.hob-note{background:#f9f0f3d9;border:1px solid var(--petal);border-left:3px solid var(--rose);border-radius:0 4px 4px 0;padding:.85rem 1.25rem;font-size:.875rem;font-weight:300;color:var(--ink-soft);line-height:1.65;margin-bottom:1.25rem}.hob-note strong{color:var(--ink);font-weight:500}.writing-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin:1.5rem 0}.writing-card{background:#f9f0f3d9;border:1px solid var(--petal);border-radius:4px;padding:1.5rem;text-decoration:none;color:inherit;transition:border-color .2s,transform .2s;display:block}.writing-card:hover{border-color:var(--rose);transform:translateY(-2px)}.writing-source{font-size:.65rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--deep-rose);margin-bottom:.5rem;display:block}.writing-type{font-size:.65rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.75rem;display:block}.writing-title{font-family:var(--font-display);font-size:1.3rem;font-weight:600;color:var(--ink);margin-bottom:.5rem;line-height:1.2}.writing-desc{font-size:.82rem;font-weight:300;color:var(--ink-soft);line-height:1.6}.writing-arrow{display:block;font-size:.75rem;color:var(--deep-rose);margin-top:1rem;letter-spacing:.04em}.games-row{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.25rem 0}.game-chip{background:#f9f0f3d9;border:1px solid var(--petal);border-radius:4px;padding:.5rem 1rem;font-size:.82rem;color:var(--ink-soft);font-weight:300}.game-chip.current{border-color:var(--rose);color:var(--deep-rose);font-weight:400}.books-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.75rem;margin:1.5rem 0}.book-card{background:#f9f0f3d9;border:1px solid var(--petal);border-radius:4px;padding:1rem .75rem;text-align:center}.book-spine{width:100%;aspect-ratio:2/3;border-radius:2px;margin-bottom:.75rem;display:flex;align-items:center;justify-content:center}.book-title{font-family:var(--font-display);font-size:.8rem;font-weight:600;color:var(--ink);line-height:1.3;margin-bottom:.2rem}.book-author{font-size:.65rem;font-weight:300;color:var(--ink-soft)}@media (max-width: 640px){.writing-grid,.two-col{grid-template-columns:1fr}.three-col{grid-template-columns:1fr 1fr}.books-grid{grid-template-columns:repeat(3,1fr)}}.back-link{max-width:900px;margin:0 auto;padding:2rem 2rem 0}.back-link a{font-size:.8rem;color:var(--deep-rose);text-decoration:none;letter-spacing:.06em;text-transform:uppercase;font-weight:500;transition:color .2s}.back-link a:hover{color:var(--berry)}.proj-hero{max-width:900px;margin:0 auto;padding:2.5rem 2rem 3rem;display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:end;border-bottom:1px solid var(--petal)}.proj-eyebrow{font-size:.78rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--deep-rose);margin-bottom:.75rem}.proj-title{font-family:var(--font-display);font-size:clamp(2.2rem,5vw,3.8rem);font-weight:600;line-height:1.05;color:var(--ink);margin-bottom:.5rem}.proj-title em{font-style:italic;color:var(--deep-rose)}.proj-subtitle{font-size:1rem;font-weight:300;color:var(--ink-soft);line-height:1.6;max-width:500px;margin-top:.75rem}.proj-tags{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:1.25rem}.proj-meta{text-align:right}.meta-item{margin-bottom:.75rem}.meta-label{font-size:.65rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--rose);display:block;margin-bottom:.2rem}.meta-value{font-size:.875rem;color:var(--ink-soft);font-weight:300}.proj-content{max-width:900px;margin:0 auto;padding:0 2rem 5rem}.section-block{margin:3rem 0}.block-label{font-size:.7rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--rose);margin-bottom:.6rem;display:block}.block-title{font-family:var(--font-display);font-size:1.9rem;font-weight:600;color:var(--ink);margin-bottom:1rem;line-height:1.2}.block-body{font-size:.95rem;font-weight:300;color:var(--ink-soft);line-height:1.85}.block-body p{margin-bottom:.9rem}.block-body strong{color:var(--ink);font-weight:500}.role-card{background:#f9f0f3d9;border:1px solid var(--petal);border-radius:4px;padding:1.5rem;margin:1.5rem 0;border-left:3px solid var(--deep-rose)}.role-card-label{font-size:.68rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--deep-rose);margin-bottom:.6rem;display:block}.role-card-title{font-family:var(--font-display);font-size:1.2rem;font-weight:600;color:var(--ink);margin-bottom:.75rem}.role-list{list-style:none;display:flex;flex-direction:column;gap:.4rem}.role-list li{display:flex;gap:.6rem;font-size:.875rem;color:var(--ink-soft);font-weight:300;line-height:1.5}.role-dot{width:5px;height:5px;border-radius:50%;background:var(--rose);flex-shrink:0;margin-top:.5rem}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem;margin:2rem 0}.stat-card{background:#f9f0f3d9;border:1px solid var(--petal);border-radius:4px;padding:1.25rem 1rem;text-align:center}.stat-num{font-family:var(--font-display);font-size:2rem;font-weight:600;color:var(--deep-rose);display:block;line-height:1;margin-bottom:.3rem}.stat-label{font-size:.7rem;font-weight:400;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.07em;line-height:1.4}.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.5rem 0}.team-card{background:#f9f0f3d9;border:1px solid var(--petal);border-radius:4px;padding:1.25rem}.team-name{font-size:.9rem;font-weight:500;color:var(--ink);margin-bottom:.3rem}.team-role{font-size:.8rem;font-weight:300;color:var(--ink-soft);line-height:1.5}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:2rem 0}.three-col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;margin:2rem 0}.press-card{background:#f9f0f3d9;border:1px solid var(--rose);border-radius:4px;padding:1.5rem;display:flex;gap:1.5rem;align-items:flex-start;margin:2rem 0;text-decoration:none;color:inherit;transition:border-color .2s}.press-card:hover{border-color:var(--deep-rose)}.press-logo{width:48px;height:48px;border-radius:4px;background:var(--petal);border:1px solid var(--rose);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.6rem;font-weight:600;color:var(--deep-rose);text-align:center;letter-spacing:.04em;text-transform:uppercase}.press-body{flex:1}.press-source{font-size:.68rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--deep-rose);margin-bottom:.3rem}.press-title{font-size:.95rem;font-weight:500;color:var(--ink);margin-bottom:.35rem;line-height:1.3}.press-excerpt{font-size:.82rem;font-weight:300;color:var(--ink-soft);line-height:1.55}.press-arrow{color:var(--rose);font-size:1rem;align-self:center}.link-row{display:flex;gap:1rem;flex-wrap:wrap;margin-top:2.5rem}.wip-banner{background:var(--petal);border:1px solid var(--rose);border-radius:4px;padding:1rem 1.5rem;display:flex;align-items:center;gap:1rem;margin:2.5rem 0}.wip-dot{width:8px;height:8px;border-radius:50%;background:var(--deep-rose);flex-shrink:0;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.wip-text{font-size:.875rem;color:var(--ink-soft);font-weight:300}.wip-text strong{color:var(--ink);font-weight:500}@media (max-width: 640px){.proj-hero{grid-template-columns:1fr}.proj-meta{text-align:left}.two-col,.three-col,.team-grid{grid-template-columns:1fr 1fr}}.particle-table{width:100%;border-collapse:collapse;margin:1.5rem 0;background:#f9f0f3d9;border:1px solid var(--petal);border-radius:4px;overflow:hidden;font-size:.85rem}.particle-table th{background:var(--petal);color:var(--berry);font-size:.7rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;padding:.75rem 1rem;text-align:left}.particle-table td{padding:.75rem 1rem;color:var(--ink-soft);font-weight:300;border-top:1px solid var(--petal);vertical-align:top;line-height:1.5}.particle-table td:first-child{color:var(--ink);font-weight:500;white-space:nowrap}.outcome-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.5rem 0}.outcome-card{background:#f9f0f3d9;border:1px solid var(--petal);border-radius:4px;padding:1.25rem}.outcome-label{font-size:.65rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--rose);display:block;margin-bottom:.4rem}.outcome-score{font-family:var(--font-display);font-size:2rem;font-weight:600;color:var(--deep-rose);line-height:1;margin-bottom:.25rem}.outcome-title{font-size:.85rem;font-weight:500;color:var(--ink);margin-bottom:.3rem}.outcome-desc{font-size:.8rem;font-weight:300;color:var(--ink-soft);line-height:1.5}.pull-quote{border-left:3px solid var(--deep-rose);padding:1.25rem 1.75rem;margin:2.5rem 0;background:#f9f0f3d9;border-radius:0 4px 4px 0}.pull-quote p{font-family:var(--font-display);font-size:1.45rem;font-weight:400;font-style:italic;color:var(--ink);line-height:1.5}.pull-quote cite{display:block;font-size:.75rem;color:var(--deep-rose);font-style:normal;font-weight:500;letter-spacing:.08em;text-transform:uppercase;margin-top:.6rem}.hero-quote{background:var(--berry);border-radius:4px;padding:2.5rem 2rem;margin:2.5rem 0;text-align:center}.hero-quote p{font-family:var(--font-display);font-size:clamp(1.3rem,3vw,1.8rem);font-weight:400;font-style:italic;color:var(--petal);line-height:1.5;max-width:680px;margin:0 auto 1rem}.hero-quote cite{font-size:.75rem;color:var(--rose);font-style:normal;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.question-card{background:#f9f0f3e6;border:1px solid var(--rose);border-radius:4px;padding:2rem;margin:2.5rem 0;text-align:center}.question-card p{font-family:var(--font-display);font-size:1.75rem;font-weight:400;font-style:italic;color:var(--ink);line-height:1.4}.question-card em{color:var(--deep-rose);font-style:normal;font-weight:600}.context-banner{background:var(--petal);border:1px solid var(--rose);border-radius:4px;padding:1.25rem 1.5rem;margin:2.5rem 0;display:grid;grid-template-columns:1fr 1fr 1fr;gap:1.5rem}.context-label{font-size:.65rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--deep-rose);display:block;margin-bottom:.3rem}.context-value{font-size:.875rem;color:var(--ink);font-weight:400;line-height:1.4}.contribution-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;margin:1.5rem 0}.contribution-card{background:#f9f0f3d9;border:1px solid var(--petal);border-radius:4px;padding:1.25rem;border-top:3px solid var(--deep-rose)}.contribution-label{font-size:.65rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--deep-rose);margin-bottom:.5rem;display:block}.contribution-title{font-size:.9rem;font-weight:500;color:var(--ink);margin-bottom:.4rem}.contribution-desc{font-size:.8rem;font-weight:300;color:var(--ink-soft);line-height:1.55}.code-block{background:#1e1e1e;border-radius:4px;border:1px solid var(--rose);padding:1.5rem;margin:1.5rem 0;overflow-x:auto}.code-label{font-size:.65rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--rose);margin-bottom:.75rem;display:block}.code-block pre{font-family:Courier New,monospace;font-size:.78rem;line-height:1.7;color:#d4d4d4;white-space:pre;margin:0}.kw{color:#569cd6}.cm{color:#6a9955}.nm{color:#b5cea8}.sensor-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin:1.5rem 0}.sensor-row{display:flex;align-items:center;gap:.85rem;background:#f9f0f3d9;border:1px solid var(--petal);border-radius:4px;padding:.9rem 1rem}.sensor-dot{width:8px;height:8px;border-radius:50%;background:var(--deep-rose);flex-shrink:0}.sensor-name{font-size:.85rem;font-weight:500;color:var(--ink)}.sensor-measures{font-size:.75rem;font-weight:300;color:var(--ink-soft)}.spec-card{background:#f9f0f3d9;border:1px solid var(--petal);border-radius:4px;padding:1.5rem;margin:1.5rem 0}.spec-title{font-size:.78rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--deep-rose);margin-bottom:1rem;display:block}.spec-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem 2rem}.spec-row{display:flex;justify-content:space-between;align-items:baseline;padding:.35rem 0;border-bottom:1px solid var(--petal)}.spec-key{font-size:.8rem;color:var(--ink-soft);font-weight:300}.spec-val{font-size:.8rem;color:var(--ink);font-weight:500}.future-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.5rem 0}.future-card{background:#f9f0f3d9;border:1px solid var(--petal);border-radius:4px;padding:1.25rem;border-top:3px solid var(--rose)}.future-num{font-family:var(--font-display);font-size:1.6rem;font-weight:600;color:var(--petal);line-height:1;margin-bottom:.4rem;display:block}.future-title{font-size:.875rem;font-weight:500;color:var(--ink);margin-bottom:.3rem}.future-desc{font-size:.8rem;font-weight:300;color:var(--ink-soft);line-height:1.55}.stack-row{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.25rem 0}.stack-chip-lg{font-size:.75rem;color:var(--berry);background:var(--petal);border:1px solid var(--rose);padding:.3rem .75rem;border-radius:2px;font-weight:400}.technical-card{background:#f9f0f3d9;border:1px solid var(--petal);border-radius:4px;padding:1.5rem;margin:1.5rem 0;border-left:3px solid var(--deep-rose)}.technical-label{font-size:.68rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--deep-rose);margin-bottom:.6rem;display:block}.technical-title{font-family:var(--font-display);font-size:1.2rem;font-weight:600;color:var(--ink);margin-bottom:.75rem}.technical-list{list-style:none;display:flex;flex-direction:column;gap:.4rem}.technical-list li{display:flex;gap:.6rem;font-size:.875rem;color:var(--ink-soft);font-weight:300;line-height:1.55}.t-dot{width:5px;height:5px;border-radius:50%;background:var(--rose);flex-shrink:0;margin-top:.5rem}.technical-list code{font-family:Courier New,monospace;font-size:.8rem;background:var(--petal);padding:.1rem .3rem;border-radius:2px;color:var(--berry)}.log-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.5rem 0}.log-card{background:#f9f0f3d9;border:1px solid var(--petal);border-radius:4px;padding:1.25rem}.log-time{font-size:.68rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--deep-rose);margin-bottom:.75rem;display:block}.log-item{display:flex;justify-content:space-between;align-items:baseline;padding:.3rem 0;border-bottom:1px solid var(--petal);font-size:.82rem}.log-item:last-child{border-bottom:none}.log-key{color:var(--ink-soft);font-weight:300}.log-val{color:var(--ink);font-weight:500;font-size:.78rem}.why-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.5rem 0}.why-card{background:#f9f0f3d9;border:1px solid var(--petal);border-radius:4px;padding:1.25rem;border-top:3px solid var(--deep-rose)}.why-num{font-family:var(--font-display);font-size:1.5rem;font-weight:600;color:var(--rose);display:block;margin-bottom:.4rem;line-height:1}.why-title{font-size:.875rem;font-weight:500;color:var(--ink);margin-bottom:.3rem}.why-desc{font-size:.8rem;font-weight:300;color:var(--ink-soft);line-height:1.55}@media (max-width: 640px){.outcome-grid,.context-banner,.contribution-grid,.sensor-grid,.spec-grid,.future-grid,.log-grid,.why-grid{grid-template-columns:1fr}}.pwa-mock{background:#1a0a10;border-radius:24px;border:1px solid var(--rose);padding:1.5rem;margin:2.5rem auto;max-width:340px}.pwa-blob{width:120px;height:120px;border-radius:60% 40% 55% 45%/50% 60% 40% 50%;background:radial-gradient(circle at 40% 40%,#e8b4c8,#c47a95);margin:0 auto 1.25rem;animation:blobmorph 6s ease-in-out infinite;opacity:.9}@keyframes blobmorph{0%,to{border-radius:60% 40% 55% 45%/50% 60% 40% 50%}33%{border-radius:40% 60% 45% 55%/60% 40% 55% 45%}66%{border-radius:55% 45% 60% 40%/45% 55% 50% 50%}}.pwa-greeting{font-size:.75rem;color:var(--rose);text-align:center;letter-spacing:.06em;text-transform:uppercase;margin-bottom:.25rem}.pwa-mood-text{font-family:var(--font-display);font-size:1.1rem;color:var(--petal);text-align:center;font-style:italic;margin-bottom:1.25rem}.pwa-cards{display:flex;gap:.5rem;margin-bottom:.75rem}.pwa-card{background:#ffffff0f;border-radius:8px;padding:.6rem .75rem;flex:1}.pwa-card-label{font-size:.55rem;color:var(--rose);letter-spacing:.08em;text-transform:uppercase;display:block;margin-bottom:.25rem}.pwa-card-val{font-size:1rem;font-weight:500;color:var(--petal);font-family:var(--font-display)}.pwa-chart{background:#ffffff0a;border-radius:8px;padding:.75rem}.pwa-chart-label{font-size:.55rem;color:var(--rose);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.5rem;display:block}.pwa-bars{display:flex;gap:4px;align-items:flex-end;height:36px}.pwa-bar{flex:1;border-radius:2px 2px 0 0;background:var(--deep-rose);opacity:.7}:root{--blush: #F9F0F3;--petal: #F3D9E3;--rose: #E8B4C8;--deep-rose: #C47A95;--berry: #8B4A6B;--ink: #2D2D2D;--ink-soft: #5A4A50;--font-display: "Cormorant Garamond", serif;--font-body: "DM Sans", sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background-color:var(--blush);color:var(--ink);min-height:100vh;background-image:linear-gradient(var(--rose) 1px,transparent 1px),linear-gradient(90deg,var(--rose) 1px,transparent 1px);background-size:32px 32px;background-attachment:fixed}a{color:inherit}img{max-width:100%;display:block}.btn-primary{display:inline-block;background:var(--deep-rose);color:#fff;padding:.65rem 1.5rem;border-radius:2px;font-family:var(--font-body);font-size:.875rem;font-weight:500;text-decoration:none;letter-spacing:.04em;border:none;cursor:pointer;transition:background .2s}.btn-primary:hover{background:var(--berry)}.btn-ghost{display:inline-block;background:transparent;color:var(--deep-rose);padding:.65rem 1.5rem;border-radius:2px;font-family:var(--font-body);font-size:.875rem;font-weight:400;text-decoration:none;letter-spacing:.04em;border:1px solid var(--rose);cursor:pointer;transition:all .2s}.btn-ghost:hover{border-color:var(--deep-rose);background:var(--petal)}.tag{display:inline-block;font-size:.68rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--deep-rose);background:var(--petal);padding:.2rem .5rem;border-radius:2px}.tag-outline{display:inline-block;font-size:.68rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft);background:transparent;border:1px solid var(--rose);padding:.2rem .5rem;border-radius:2px}.tag-win,.tag-wip{display:inline-block;font-size:.68rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:#fff;background:var(--deep-rose);padding:.2rem .5rem;border-radius:2px}.divider{border:none;border-top:1px solid var(--petal);margin:2.5rem 0}.photo-placeholder-box{background:var(--petal);border:1px dashed var(--rose);border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:1rem}.photo-placeholder-box span{font-size:.7rem;color:var(--deep-rose);letter-spacing:.06em;text-transform:uppercase;text-align:center;font-weight:500}.photo-placeholder-box code{font-size:.65rem;color:var(--ink-soft);background:#fff9;padding:.15rem .4rem;border-radius:2px;font-family:monospace}
