*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg:#f8f7f2;--color-bg-warm:#ede8e0;--color-text:#2c2118;--color-text-light:#8a7e72;--color-accent:#4a3f35;--color-border:#d4ccc2;--color-dot:#c5bdb3;--color-cream:#faf8f5;--font-serif:"General Sans", -apple-system, sans-serif;--font-sans:"General Sans", -apple-system, sans-serif;--font-mono:"General Sans", -apple-system, sans-serif;--nav-height:57px;--page-pad:clamp(20px, 4vw, 60px)}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;font-size:16px}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{cursor:pointer;color:inherit;background:0 0;border:none}::selection{background:var(--color-text);color:var(--color-bg)}.page-transition{background:var(--color-text);z-index:9999;transform-origin:bottom;pointer-events:none;width:100%;height:100%;position:fixed;top:0;left:0;transform:scaleY(0)}.page-transition.active{animation:.6s cubic-bezier(.76,0,.24,1) forwards pageIn,.6s cubic-bezier(.76,0,.24,1) .6s forwards pageOut}@keyframes pageIn{0%{transform-origin:bottom;transform:scaleY(0)}to{transform-origin:bottom;transform:scaleY(1)}}@keyframes pageOut{0%{transform-origin:top;transform:scaleY(1)}to{transform-origin:top;transform:scaleY(0)}}.nav{height:var(--nav-height);padding:0 var(--page-pad);z-index:100;background:#f8f7f2;grid-template-columns:1fr auto 1fr;align-items:center;display:grid;position:fixed;top:0;left:0;right:0}.nav-left{align-items:center;gap:1.25rem;display:flex}.nav-dot{color:var(--color-text);font-size:.5rem;line-height:1}.nav-link{font-family:var(--font-sans);letter-spacing:.01em;color:#1c1304;font-size:14px;font-weight:500;transition:opacity .4s}.nav-link:hover,.nav-link.active{opacity:.35}.nav-brand{justify-content:center;align-items:center;transition:opacity .4s;display:flex}.nav-brand:hover{opacity:.5}.nav-logo{width:auto;height:14px}.nav-right{justify-content:flex-end;align-items:center;display:flex}.nav-wave-viewport{align-items:center;width:48px;height:26px;animation:8s linear infinite waveFlow;display:flex;overflow:hidden}.nav-wave-img{object-fit:contain;flex-shrink:0;width:48px;max-width:none;height:26px}@keyframes waveFlow{0%{transform:translate(0)}to{transform:translate(-48px)}}.nav-menu-btn{z-index:101;flex-direction:column;gap:6px;padding:4px;display:none}.nav-menu-btn span{background:var(--color-text);width:20px;height:1px;transition:transform .4s,opacity .4s;display:block}.nav-menu-btn.active span:first-child{transform:rotate(45deg)translate(2px,2px)}.nav-menu-btn.active span:last-child{transform:rotate(-45deg)translate(2px,-2px)}.mobile-menu{z-index:99;opacity:0;pointer-events:none;background:#f8f7f2;justify-content:center;align-items:center;width:100%;height:100dvh;transition:opacity .5s;display:flex;position:fixed;top:0;left:0}.mobile-menu.active{opacity:1;pointer-events:all}.mobile-menu-inner{text-align:center;flex-direction:column;gap:.5rem;display:flex}.mobile-menu-link{font-family:var(--font-sans);letter-spacing:.01em;opacity:0;padding:.75rem 0;font-size:1.1rem;font-weight:300;transition:opacity .4s,transform .4s;display:block;transform:translateY(12px)}.mobile-menu-link:hover{opacity:.35}.mobile-menu.active .mobile-menu-link{opacity:1;transform:translateY(0)}.mobile-menu.active .mobile-menu-link:first-child{transition-delay:.1s}.mobile-menu.active .mobile-menu-link:nth-child(2){transition-delay:.15s}.mobile-menu.active .mobile-menu-link:nth-child(3){transition-delay:.2s}.mobile-menu.active .mobile-menu-link:nth-child(4){transition-delay:.25s}#app{min-height:100vh;padding-top:var(--nav-height)}.dot-grid{background-image:radial-gradient(circle, var(--color-dot) 1px, transparent 1px);opacity:.4;pointer-events:none;background-size:28px 28px;width:100%;height:100%;position:absolute;top:0;left:0}.home{position:relative}.home-hero{min-height:calc(100vh - var(--nav-height));background:var(--color-bg);padding:38px var(--page-pad);position:relative}.hero-text{max-width:421px;font-family:var(--font-sans);color:#1c1304;font-size:14px;font-weight:400;line-height:1.6}.hero-text p{margin-bottom:1em}.hero-text p:last-child{margin-bottom:0}.home-archive{padding:6rem var(--page-pad);border-top:1px solid var(--color-border)}.section-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:baseline;margin-bottom:3rem;padding-bottom:1rem;display:flex}.section-title{font-family:var(--font-serif);font-size:1rem;font-style:italic;font-weight:400}.section-count{font-family:var(--font-mono);color:var(--color-text-light);letter-spacing:.1em;text-transform:uppercase;font-size:.65rem}.archive-list{flex-direction:column;display:flex}.archive-item{border-bottom:1px solid var(--color-border);cursor:pointer;grid-template-columns:60px 1fr 200px 100px;align-items:center;gap:2rem;padding:1.25rem 0;transition:background .3s,padding .3s,margin .3s;display:grid;position:relative}.archive-item:hover{background:var(--color-bg-warm);margin-left:-1rem;margin-right:-1rem;padding-left:1rem;padding-right:1rem}.archive-item-num{font-family:var(--font-mono);color:var(--color-text-light);font-size:.7rem}.archive-item-title{font-family:var(--font-serif);font-size:1.35rem;font-weight:400}.archive-item-cat{font-family:var(--font-mono);color:var(--color-text-light);text-transform:uppercase;letter-spacing:.06em;font-size:.7rem}.archive-item-year{font-family:var(--font-mono);color:var(--color-text-light);text-align:right;font-size:.7rem}.home-marquee{border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);white-space:nowrap;padding:2rem 0;overflow:hidden}.marquee-track{animation:30s linear infinite marquee;display:inline-flex}.marquee-item{font-family:var(--font-serif);color:var(--color-text-light);padding:0 3rem;font-size:1.1rem;font-style:italic}.marquee-item:after{content:"  • ";margin-left:3rem}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.home-intro{padding:6rem var(--page-pad);grid-template-columns:200px 1fr;gap:4rem;display:grid}.home-intro-label{font-family:var(--font-mono);color:var(--color-text-light);text-transform:uppercase;letter-spacing:.1em;padding-top:.5rem;font-size:.7rem}.home-intro-text{max-width:600px}.home-intro-text p{font-family:var(--font-serif);margin-bottom:1.5rem;font-size:1.5rem;font-weight:400;line-height:1.6}.home-intro-text p em{font-style:italic}.home-intro-link{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--color-text);align-items:center;gap:.5rem;margin-top:1rem;padding-bottom:2px;font-size:.75rem;transition:gap .3s;display:inline-flex}.home-intro-link:hover{gap:1rem}.work-page{padding:4rem 100px 6rem}.work-editorial{flex-direction:column;display:flex}.work-ed-item{cursor:pointer;grid-template-columns:1fr 300px 1fr;align-items:center;gap:0;transition:opacity .4s;display:grid}.work-ed-item:hover{opacity:.6}.work-ed-title{font-family:var(--font-sans);color:var(--color-text);justify-self:start;padding-right:2rem;font-size:15px;font-weight:400}.work-ed-image{width:100%}.work-ed-image-inner{aspect-ratio:4/5;background:var(--color-bg-warm);justify-content:center;align-items:center;width:100%;display:flex;overflow:hidden}.work-ed-image-placeholder{font-family:var(--font-sans);color:var(--color-dot);text-transform:uppercase;letter-spacing:.1em;font-size:.65rem}.work-ed-meta{font-family:var(--font-sans);color:var(--color-text);justify-self:end;padding-left:2rem;font-size:14px;font-weight:400}.work-ed-meta em{font-style:italic}.playground-page{padding:4rem var(--page-pad) 6rem}.pg-glossary{grid-template-rows:repeat(12,minmax(80px,auto));grid-template-columns:repeat(8,1fr);gap:0;min-height:80vh;display:grid;position:relative}.pg-grid{pointer-events:none;z-index:0;grid-template-rows:repeat(12,minmax(80px,auto));grid-template-columns:repeat(8,1fr);width:100%;height:100%;display:grid;position:absolute;top:0;left:0}.pg-grid-num{font-family:var(--font-mono);color:var(--color-dot);-webkit-user-select:none;user-select:none;padding:4px 0 0 4px;font-size:.55rem;line-height:1}.pg-header{z-index:2;align-items:flex-start;padding:0 .5rem;display:flex;position:relative}.pg-header-label{font-family:var(--font-serif);letter-spacing:.02em;text-transform:uppercase;font-size:1rem;font-weight:500}.pg-entry{z-index:2;align-self:start;padding:.75rem;position:relative}.pg-entry-title{font-family:var(--font-serif);text-transform:uppercase;letter-spacing:.02em;margin-bottom:.5rem;font-size:1.05rem;font-weight:600}.pg-entry-desc{font-family:var(--font-sans);color:var(--color-text-light);max-width:220px;font-size:.75rem;line-height:1.65}.pg-entry[style*=text-align\:center] .pg-entry-desc{margin:0 auto}.pg-image{z-index:2;padding:.5rem;position:relative}.pg-image-inner{background:var(--color-bg-warm);border:1px solid var(--color-border);cursor:pointer;justify-content:center;align-items:center;width:100%;height:100%;min-height:120px;transition:transform .4s;display:flex;overflow:hidden}.pg-image-inner:hover{transform:scale(1.02)}.pg-image-placeholder{font-family:var(--font-mono);color:var(--color-dot);text-transform:uppercase;letter-spacing:.1em;font-size:.6rem}.pg-image-sm .pg-image-inner{min-height:140px}.pg-image-md .pg-image-inner{min-height:200px}.pg-image-lg .pg-image-inner{min-height:280px}.about-page{padding:4rem var(--page-pad) 6rem}.about-hero{grid-template-columns:1fr 1fr;align-items:center;gap:4rem;min-height:60vh;margin-bottom:6rem;display:grid}.about-hero-text{max-width:480px}.about-hero-title{font-family:var(--font-serif);margin-bottom:2rem;font-size:clamp(2.2rem,4vw,3.5rem);font-weight:400;line-height:1.15}.about-hero-title em{font-style:italic}.about-hero-body p{font-family:var(--font-sans);color:var(--color-text-light);margin-bottom:1rem;font-size:.9rem;line-height:1.8}.about-hero-portrait{aspect-ratio:3/4;background:var(--color-bg-warm);border:1px solid var(--color-border);justify-content:center;align-items:center;width:100%;display:flex;position:relative}.about-hero-portrait-label{font-family:var(--font-mono);color:var(--color-dot);text-transform:uppercase;letter-spacing:.1em;font-size:.65rem}.about-details{border-top:1px solid var(--color-border);grid-template-columns:repeat(3,1fr);gap:3rem;padding:4rem 0;display:grid}.about-detail-block{padding-right:2rem}.about-detail-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-light);border-bottom:1px solid var(--color-border);margin-bottom:1.25rem;padding-bottom:.75rem;font-size:.65rem}.about-detail-list{list-style:none}.about-detail-list li{font-family:var(--font-serif);justify-content:space-between;align-items:baseline;padding:.4rem 0;font-size:1rem;display:flex}.about-detail-list li span{font-family:var(--font-mono);color:var(--color-text-light);font-size:.65rem}.about-experience{border-top:1px solid var(--color-border);padding:4rem 0}.about-experience-header{margin-bottom:2rem}.about-exp-item{border-bottom:1px solid var(--color-border);grid-template-columns:200px 1fr 150px;gap:2rem;padding:1.25rem 0;display:grid}.about-exp-year{font-family:var(--font-mono);color:var(--color-text-light);padding-top:.3rem;font-size:.7rem}.about-exp-role{font-family:var(--font-serif);margin-bottom:.25rem;font-size:1.1rem;font-weight:400}.about-exp-company{font-family:var(--font-sans);color:var(--color-text-light);font-size:.8rem}.about-exp-location{font-family:var(--font-mono);color:var(--color-text-light);text-align:right;padding-top:.3rem;font-size:.7rem}.about-contact{text-align:center;padding:6rem 0}.about-contact-title{font-family:var(--font-serif);margin-bottom:1.5rem;font-size:clamp(1.8rem,3.5vw,2.8rem);font-style:italic;font-weight:400}.about-contact-email{font-family:var(--font-mono);letter-spacing:.05em;border-bottom:1px solid var(--color-text);padding-bottom:4px;font-size:.85rem;transition:letter-spacing .3s}.about-contact-email:hover{letter-spacing:.12em}.footer{padding:2.5rem var(--page-pad)}.footer-inner{justify-content:space-between;align-items:center;display:flex}.footer-brand{font-family:var(--font-sans);color:var(--color-text-light);letter-spacing:.01em;font-size:.75rem;font-weight:300}.footer-links{align-items:center;gap:2rem;display:flex}.footer-link{font-family:var(--font-sans);color:var(--color-text-light);font-size:.75rem;font-weight:300;transition:opacity .4s}.footer-link:hover{opacity:.4}.fade-in{opacity:0;animation:.7s forwards fadeIn;transform:translateY(16px)}.fade-in-delay-1{animation-delay:.1s}.fade-in-delay-2{animation-delay:.2s}.fade-in-delay-3{animation-delay:.3s}.fade-in-delay-4{animation-delay:.4s}.fade-in-delay-5{animation-delay:.5s}@keyframes fadeIn{to{opacity:1;transform:translateY(0)}}.stagger-children>*{opacity:0;animation:.5s forwards fadeIn;transform:translateY(12px)}.stagger-children>:first-child{animation-delay:50ms}.stagger-children>:nth-child(2){animation-delay:.1s}.stagger-children>:nth-child(3){animation-delay:.15s}.stagger-children>:nth-child(4){animation-delay:.2s}.stagger-children>:nth-child(5){animation-delay:.25s}.stagger-children>:nth-child(6){animation-delay:.3s}.stagger-children>:nth-child(7){animation-delay:.35s}.stagger-children>:nth-child(8){animation-delay:.4s}@media (width<=900px){.nav-left,.nav-right{display:none}.nav{padding:0 var(--page-pad);grid-template-columns:1fr auto}.nav-menu-btn{display:flex}.info-tag-row{grid-template-columns:120px 1fr;gap:1rem}.archive-item{grid-template-columns:40px 1fr 80px;gap:1rem}.archive-item-cat{display:none}.work-page{padding:4rem var(--page-pad) 6rem}.work-ed-item{grid-template-columns:1fr 200px 1fr}.work-ed-title{padding-right:1rem;font-size:13px}.work-ed-meta{padding-left:1rem;font-size:12px}.pg-glossary{grid-template-rows:auto;grid-template-columns:repeat(4,1fr)}.pg-grid{display:none}.pg-glossary>*{grid-area:auto!important}.about-hero{grid-template-columns:1fr;gap:2rem}.about-hero-portrait{max-height:400px}.about-details{grid-template-columns:1fr;gap:2rem}.about-exp-item{grid-template-columns:1fr;gap:.5rem}.about-exp-location{text-align:left}.home-intro{grid-template-columns:1fr;gap:1.5rem}.footer-inner{text-align:center;flex-direction:column;gap:1rem}}@media (width<=600px){.pg-glossary{grid-template-columns:repeat(2,1fr)}}
