@font-face{font-family:World Sans;src:url('assets/fonts/manrope.ttf') format('truetype');font-display:swap;font-weight:400}
@font-face{font-family:World Display;src:url('assets/fonts/space-grotesk.ttf') format('truetype');font-display:swap;font-weight:400}
@font-face{font-family:World Display;src:url('assets/fonts/space-grotesk-semibold.ttf') format('truetype');font-display:swap;font-weight:600}
:root{--paper:#f0f1ec;--ink:#20251f;--muted:#666e62;--line:#d7dcd1;--accent:#d7edb3}
body{font-family:World Sans,Arial,sans-serif}h1,h2,h3,.brand,.world-counter{font-family:World Display,Arial,sans-serif}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}button,a{-webkit-tap-highlight-color:transparent}.brand{font-size:18px;letter-spacing:-.8px}.brand span{font-family:World Sans,Arial,sans-serif;font-size:8px;letter-spacing:1.6px}header{padding:0 4.5%;gap:22px;height:100px}nav{margin-left:auto}.contact{border-radius:3px}.header-world{display:none}.home-view .header-world{display:flex;align-items:center;gap:28px;background:transparent;border:1px solid #ffffff50;color:#fff;border-radius:3px;padding:12px 17px;font-size:12px;cursor:pointer}.home-view header{background:linear-gradient(#131c1980,transparent);border:0}.home-view nav{font-size:12px;gap:25px}.home-view header .contact{background:#e8eee0;color:#283321;font-size:12px;padding:13px 18px}
.home-view .world-journey{height:900vh}.home-view .stage{isolation:isolate}.world-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.home-view .sequence-wrap canvas{position:absolute;inset:0;opacity:0;transition:opacity .7s ease}.home-view .is-ready .sequence-wrap canvas{opacity:1}.home-view .sequence-wrap::after{background:linear-gradient(90deg,#101c1bbb,transparent 78%),linear-gradient(0deg,#111b19a6,transparent 50%,#14201930)}
.home-view .world-journey .hero-top{top:24%;left:7%;right:7%;z-index:3;pointer-events:auto;max-width:1200px}.home-view .world-journey .hero-top.departed{pointer-events:none;visibility:hidden}.home-view .hero-top .eyebrow{font-size:10px;letter-spacing:1.7px;color:#e0e9d4;margin-bottom:24px}.home-view .hero-top h1{font-size:clamp(65px,9.1vw,150px);font-weight:400;letter-spacing:-.07em;line-height:.96;max-width:1100px}.hero-top h1 em{font:inherit;color:var(--accent)}.home-view .hero-intro{margin-top:27px;font-size:15px;line-height:1.7;color:#ffffffd6;max-width:390px}.home-view .hero-intro br{display:block}.begin-journey{margin-top:26px;color:#1b2a1d;border:0;background:#e5efda;display:inline-flex;align-items:center;gap:38px;padding:15px 18px;border-radius:2px;font-size:13px;transition:transform .4s var(--motion-ease),background .3s}.begin-journey:hover{transform:translateY(-3px);background:#d5e8bd}.begin-journey span{font-size:19px}
.home-view .world-journey .scene-caption{left:7%;right:10%;top:30%;bottom:auto;max-width:870px}.home-view .world-journey .scene-caption>span{font-size:11px;letter-spacing:2px;color:#d7e2ca}.home-view .world-journey .scene-caption h2{font-size:clamp(50px,6.5vw,104px);line-height:1.02;letter-spacing:-.06em;max-width:830px;margin:22px 0 25px}.home-view .world-journey #scene-description{font-size:16px;line-height:1.7;max-width:450px;color:#ffffffd9;margin-bottom:26px}.scene-caption #scene-link{display:inline-flex;align-items:center;gap:28px;border:0;padding:0;font-size:13px}.action-orbit{display:grid;place-items:center;border:1px solid #ffffff70;width:40px;height:40px;border-radius:50%;font-size:18px;transition:background .3s,color .3s,transform .4s}.scene-caption #scene-link:hover{opacity:1}.scene-caption #scene-link:hover .action-orbit{transform:rotate(45deg);background:#e5efda;color:#202b1c}.world-journey [data-chapter="0"] .scene-caption{top:auto;bottom:17%;}.world-journey [data-chapter="0"] #scene-number{display:none}.world-journey [data-chapter="0"] #scene-link{font-size:12px;color:#ffffffbf}.world-journey [data-chapter="0"] .action-orbit{width:28px;height:28px;font-size:12px}
.world-counter{right:4.5%;top:47%;display:flex;align-items:baseline;gap:7px;font-size:10px;letter-spacing:0;color:#ffffff80}.world-counter>span{font-size:25px;letter-spacing:-1px}.scene-product{position:absolute;right:5%;bottom:25%;z-index:4;display:flex;align-items:center;gap:18px;color:#fff;padding:18px;border:1px solid #ffffff30;background:#14231f33;backdrop-filter:blur(12px);border-radius:4px;transition:transform .5s var(--motion-ease)}.scene-product[hidden]{display:none}.scene-product:hover{transform:translateY(-5px)}.scene-product img{width:66px;height:66px;border-radius:16px}.scene-product>span{display:flex;flex-direction:column;gap:8px}.scene-product small{font-size:8px;letter-spacing:1.7px;color:#d8e3ce}.scene-product strong{font-family:World Display;font-size:17px;font-weight:400}.scene-product>span>span{font-size:10px;color:#ffffffb3}
.home-view .world-journey .sequence-controls{left:7%;right:7%;bottom:43px;min-height:53px;border-top:1px solid #ffffff25}.world-stops button{padding:15px 0!important;gap:9px}.stop-number{font-variant-numeric:tabular-nums;font-size:9px}.stop-name{font-size:10px}.world-stops button::before{bottom:0;background:var(--accent)}.world-prev,.world-next{font-size:16px!important;min-width:32px}.world-status{position:absolute;bottom:16px;left:7%;right:7%;z-index:4;display:flex;justify-content:space-between;align-items:center;color:#ffffff90;font-size:9px;letter-spacing:1px}.world-status b{font-weight:400;color:#fff;font-variant-numeric:tabular-nums}.world-status>button{border:0;background:none;color:#fff;font-size:10px;display:flex;gap:12px;align-items:center;padding:0}.world-status>button>span{font-size:18px}.sequence-progress{height:2px!important}.sequence-progress i{width:100%!important;transform:scaleX(0);transform-origin:left;background:var(--accent)!important;transition:none}.travel-hint{position:absolute;right:7%;bottom:145px;z-index:2;display:flex;align-items:center;gap:15px;color:#ffffffa0;font-size:9px;letter-spacing:1.4px}.travel-line{width:28px;height:1px;background:#ffffff70}.restart-world{bottom:170px;right:7%;font-size:12px}.scene-loading{position:absolute;left:7%;bottom:135px;z-index:4;font-size:11px;letter-spacing:.5px;color:#fff;opacity:0;transition:opacity .3s;pointer-events:none}.stage[data-buffering="true"] .scene-loading{opacity:1;transition-delay:.5s}.stage:not(.is-ready) .scene-loading{opacity:1}.stage:not(.is-ready) .scene-caption{opacity:0}
/* The map is a real navigation surface, not a decorative overlay. */
#world-map{width:min(1250px,94vw);max-width:none;max-height:92dvh;border:0;background:var(--paper);color:var(--ink);padding:40px;border-radius:5px;overflow:auto;overscroll-behavior:contain}#world-map::backdrop{background:#101b18bd;backdrop-filter:blur(12px)}#world-map[open]{animation:map-enter .45s var(--motion-ease)}.map-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.map-heading .eyebrow{font-size:9px;margin-bottom:12px;display:block}.map-heading h2{font-size:55px;margin:0;letter-spacing:-3px}.map-close{align-self:flex-start;border:1px solid var(--line);padding:12px 16px;background:none;font-size:12px;cursor:pointer}.map-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:25px 17px}.map-location{text-align:left;border:0;background:none;padding:0;color:var(--ink);cursor:pointer}.map-location img{width:100%;height:135px;object-fit:cover;display:block;transition:filter .4s}.map-label{display:flex;gap:10px;align-items:center;margin:12px 0 8px}.map-label>span:first-child{font-size:10px;color:var(--muted)}.map-label>span:last-child{margin-left:auto}.map-label strong{font-size:15px;font-weight:400}.map-location>small{font-size:9px;letter-spacing:1px;color:var(--muted)}.map-location[aria-current="step"] .map-label{color:#687c3b}.map-location:hover img{filter:brightness(1.1)}.map-footer{margin-top:35px;border-top:1px solid var(--line);padding-top:20px;display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}.map-footer a{color:var(--ink)}@keyframes map-enter{from{opacity:0;transform:translateY(20px) scale(.985)}to{opacity:1;transform:none}}
/* Spacious, asymmetric indexes rather than identical tiles. */
.route-page{padding-top:75px;max-width:1600px;margin:auto}.page-heading{padding-bottom:70px}.page-heading h1{font-size:clamp(48px,6.5vw,102px);line-height:1.02;letter-spacing:-.065em}.lead{font-size:19px;line-height:1.7;max-width:640px}.grid{grid-template-columns:1.1fr .9fr;gap:65px 45px}.project-card:first-child{grid-column:1/-1}.project-card:first-child .project-image{height:450px}.project-card:not(:first-child) .project-image{height:390px}.project-card:nth-child(3){margin-top:100px}.project-card:first-child .real-app-icon{width:260px}.project-image{border-radius:3px}.app-icon-cover{background-image:radial-gradient(ellipse at 65% 30%,#ffffff45,transparent 70%)}.card-label h3{font-size:27px;letter-spacing:-1px}.card-label>span{font-size:11px}.project-card>p{font-size:14px}.image-arrow{background:#f0f1eca6;backdrop-filter:blur(8px);border-radius:50%;width:46px;height:46px}.project-body aside{position:sticky;top:30px;align-self:start}.contact-grid .social-item>a{font-family:World Display;font-size:32px}.reading .page-heading h1{font-size:clamp(44px,6vw,78px)}.article-row h3{font-family:World Display}.reading .prose p{max-width:65ch}.about-columns{gap:90px}.about-columns p{font-size:19px}
@media(max-width:1000px){.home-view .header-world{display:none}.scene-product{right:7%;bottom:18%;padding:12px;gap:12px}.scene-product img{width:48px;height:48px;border-radius:12px}.scene-product strong{font-size:14px}.travel-hint{display:none}.home-view .world-journey .scene-caption{max-width:75%;top:25%}.home-view .world-journey .scene-caption h2{font-size:clamp(42px,6.5vw,75px)}.map-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:800px){header{height:98px;padding:15px 6%;gap:12px}.home-view nav{width:100%;font-size:11px}.home-view header .contact{padding:9px 13px;font-size:10px}.brand{font-size:16px}.home-view .world-journey .hero-top{top:25%;left:7%;right:7%;}.home-view .hero-top h1{font-size:clamp(59px,12.5vw,90px);letter-spacing:-.07em;line-height:1.03}.home-view .hero-top .eyebrow{font-size:8px;letter-spacing:1.1px;max-width:300px}.home-view .hero-intro{font-size:13px;line-height:1.6;margin-top:23px}.begin-journey{font-size:12px;padding:13px 16px;margin-top:22px}.home-view .world-journey .scene-caption{top:29%;max-width:86%;right:7%;left:7%;}.home-view .world-journey .scene-caption h2{font-size:clamp(40px,10vw,64px);letter-spacing:-.065em;margin:20px 0}.home-view .world-journey #scene-description{font-size:14px;line-height:1.6;max-width:95%;margin-bottom:22px}.home-view .world-journey .scene-caption>span{font-size:9px;letter-spacing:1.4px}.scene-caption #scene-link{font-size:12px;gap:20px}.action-orbit{width:34px;height:34px}.world-counter{top:132px;right:7%;font-size:9px}.world-counter>span{font-size:20px}.home-view .world-journey .sequence-controls{bottom:39px;min-height:47px;gap:8px}.stop-number{font-size:10px}.world-stops button{padding:12px 0!important}.world-status{bottom:13px;font-size:8px}.world-status>span:nth-child(2){display:none}.world-status>button{font-size:10px}.scene-product{bottom:15%;left:7%;right:auto;background:#17241c66;padding:10px 12px}.scene-product img{width:37px;height:37px;border-radius:9px}.scene-product small{display:none}.scene-product>span>span{font-size:9px}.scene-product>span{gap:4px}.scene-product strong{font-size:12px}.world-journey [data-chapter="0"] .scene-caption{bottom:20%;top:auto}.restart-world{bottom:130px;left:7%;right:auto;font-size:11px}.scene-loading{bottom:100px;font-size:9px}.grid{grid-template-columns:1fr;gap:40px}.project-card:nth-child(3){margin:0}.project-card:first-child .project-image,.project-card:not(:first-child) .project-image{height:360px}.project-card:first-child .real-app-icon{width:55%}.card-label h3{font-size:24px}.page-heading h1{font-size:50px}.page-heading{padding-bottom:40px}.route-page{padding-top:40px}.lead{font-size:17px}.project-body aside{position:static}.contact-grid .social-item>a{font-size:25px}#world-map{padding:25px 20px;max-height:90dvh}.map-grid{grid-template-columns:1fr 1fr;gap:25px 14px}.map-location img{height:100px}.map-heading h2{font-size:42px}.map-heading .eyebrow{font-size:8px}.map-close{font-size:10px;padding:10px}.map-label strong{font-size:13px}.map-label>span:first-child{font-size:8px}.map-location>small{font-size:7px}.map-footer{display:block;font-size:11px;line-height:1.8}.map-footer a{display:block;margin-top:10px}}
@media(max-height:700px){.home-view .world-journey .hero-top{top:23%}.home-view .hero-top h1{font-size:clamp(48px,7vw,75px)}.home-view .hero-top .eyebrow{margin-bottom:14px}.home-view .hero-intro{font-size:12px;margin-top:15px}.begin-journey{margin-top:15px;padding:11px 15px}.world-journey [data-chapter="0"] .scene-caption{display:none}.home-view .world-journey .scene-caption{top:25%}.home-view .world-journey .scene-caption h2{font-size:clamp(35px,6vw,60px);margin:15px 0}.home-view .world-journey #scene-description{font-size:13px;line-height:1.5;max-width:430px;margin-bottom:16px}.scene-product{display:none}.restart-world{right:7%;left:auto;bottom:115px}.world-counter{top:115px}.travel-hint{display:none}}
@media(max-height:460px){.home-view header{height:70px;flex-wrap:nowrap}.home-view nav{order:initial;width:auto;gap:18px}.brand span{display:none}.home-view .world-journey .hero-top{top:100px}.home-view .hero-top h1{font-size:53px}.home-view .hero-top .eyebrow,.home-view .hero-intro{display:none}.begin-journey{position:absolute;left:65%;top:65px;white-space:nowrap}.home-view .world-journey .scene-caption{top:95px;max-width:75%}.home-view .world-journey .scene-caption h2{font-size:35px;margin:12px 0}.home-view .world-journey #scene-description{font-size:12px;margin-bottom:10px}.home-view .world-journey .scene-caption>span{font-size:8px}.home-view .scene-caption #scene-link{font-size:11px}.action-orbit{width:25px;height:25px}.world-counter{top:105px}.restart-world{bottom:115px;font-size:10px}.home-view .world-journey .sequence-controls{bottom:30px;min-height:36px}.world-status{bottom:8px}.world-stops button{padding:8px 0!important}}
@media(prefers-reduced-motion:reduce){.home-view .world-journey{height:700vh}.home-view .sequence-wrap canvas,.world-journey .hero-top{transition:none}.scene-product:hover,.begin-journey:hover{transform:none}#world-map[open]{animation:none}.stage[data-buffering="true"] .scene-loading{transition-delay:0}}
.home-view .sequence-wrap canvas[data-renderer="webgl-lost"],.home-view .sequence-wrap canvas[data-renderer="webgl-error"]{opacity:0!important}
/* Sculpted type reveal: real, accessible text with a masked 3D wave. */
#scene-title{perspective:900px}
.title-word{display:inline-block;overflow:clip;vertical-align:top;padding:0 .055em .12em;margin:0 -.055em -.12em;perspective:600px}
.title-ink{display:inline-block;transform-origin:50% 100%;backface-visibility:hidden}
.title-echo{position:absolute;left:0;pointer-events:none;font-family:World Display,Arial,sans-serif;font-size:clamp(50px,6.5vw,104px);line-height:1.02;letter-spacing:-.06em;text-wrap:balance;font-weight:400}
@media(max-width:1000px){.title-echo{font-size:clamp(42px,6.5vw,75px)}}
@media(max-width:800px){.title-echo{font-size:clamp(40px,10vw,64px);letter-spacing:-.065em}}
@media(max-height:700px){.title-echo{font-size:clamp(35px,6vw,60px)}}
@media(max-height:460px){.title-echo{font-size:35px}}
.world-journey [data-chapter="0"] .title-echo{display:none}
@media(max-width:800px){.home-view .sequence-wrap canvas,.home-view .world-poster{object-position:78% center}}
/* Keep navigation in place while scrolling and changing pages. */
body>header{position:sticky;top:0;z-index:20;view-transition-name:site-header}
.home-view>header{position:fixed}
html{scroll-padding-top:115px}
::view-transition-group(site-header){animation:none}
::view-transition-old(site-header),::view-transition-new(site-header){animation:none;mix-blend-mode:normal}
/* A visual archive of actual work. */
.archive-toolbar{display:flex;justify-content:space-between;align-items:center;padding:20px 0 30px;gap:20px;border-top:1px solid var(--line)}.archive-toolbar>div{display:flex;flex-wrap:wrap;gap:8px}.archive-toolbar button{background:none;border:1px solid transparent;padding:11px 17px;border-radius:30px;font-size:12px}.archive-toolbar button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}.archive-toolbar button:hover{border-color:var(--ink)}.archive-count{font-size:11px;color:var(--muted)}.archive-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 30px}.archive-shot[hidden]{display:none}.archive-image{position:relative;overflow:hidden;background:#e6e7e0;border-radius:3px;aspect-ratio:4/3}.archive-image img{width:100%;height:100%;object-fit:contain;display:block;transition:transform .65s var(--motion-ease)}.archive-shot:hover img{transform:scale(1.025)}.archive-view{position:absolute;right:18px;bottom:18px;background:var(--paper);color:var(--ink);padding:12px 16px;border-radius:2px;font-size:11px;opacity:0;transform:translateY(8px);transition:opacity .25s,transform .3s}.archive-shot:hover .archive-view,.archive-shot:focus-visible .archive-view{opacity:1;transform:none}.archive-label{display:flex;align-items:baseline;justify-content:space-between;gap:18px;padding-top:18px}.archive-label h2{font-size:22px;letter-spacing:-.7px;line-height:1.3;margin:0;text-wrap:initial}.archive-label>span{font-size:10px;color:var(--muted);flex-shrink:0}.archive-source{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:25px 0;margin-top:60px;font-size:12px;color:var(--muted)}.work-collaborations{margin-top:110px}.work-collaborations>h2{font-size:60px}.collaboration-list>a{display:grid;grid-template-columns:1fr 1.6fr 25px;gap:30px;align-items:center;border-top:1px solid var(--line);padding:30px 0;transition:padding .3s}.collaboration-list>a:hover{padding-left:15px}.collaboration-list h3{font-size:35px;letter-spacing:-1.4px;margin:0}.collaboration-list span{font-size:14px;color:var(--muted)}
/* Personal story, practice, and an expandable career timeline. */
.about-opening{display:grid;grid-template-columns:1.7fr 1fr;gap:8%;align-items:center;padding-bottom:110px}.about-opening .page-heading{padding-bottom:22px}.about-opening .page-heading h1{font-size:clamp(55px,6.4vw,105px)}.about-opening .lead{max-width:490px}.about-side-note{padding:42px;background:#dce4d0;transform:rotate(2deg);border-radius:2px}.about-side-note>.eyebrow{font-size:9px;display:block}.about-side-note>strong{font-family:World Display;font-weight:400;font-size:clamp(62px,6.5vw,110px);letter-spacing:-.07em;line-height:.98;display:block;margin:42px 0 30px}.about-side-note>p{font-size:14px;max-width:260px}.about-side-note>span:last-child{display:block;border-top:1px solid #20251f30;padding-top:18px;font-size:9px}.about-story{border-top:1px solid var(--line);padding:65px 0 85px;display:grid;grid-template-columns:1fr 2fr;gap:9%}.about-story>.eyebrow{font-size:10px;line-height:1.7;max-width:160px}.about-story h2{font-size:clamp(33px,4vw,61px);line-height:1.07;margin-bottom:35px}.about-story p{font-size:18px;line-height:1.8;max-width:650px;color:var(--muted)}.about-work-pair{display:grid;grid-template-columns:1.15fr 1fr;gap:5%;align-items:start;padding-bottom:110px}.about-work-pair figure{margin:0}.about-work-pair figure:nth-child(2){margin-top:90px}.about-work-pair img{width:100%;height:auto;display:block;border-radius:2px}.about-work-pair figcaption{margin-top:17px;color:var(--muted);font-size:10px;letter-spacing:.6px}.about-practice{display:grid;grid-template-columns:1fr 1.35fr;gap:10%;padding:65px 0 100px;border-top:1px solid var(--line)}.about-practice h2{font-size:clamp(35px,4vw,55px)}.practice-list article{display:flex;gap:25px;padding:25px 0;border-bottom:1px solid var(--line)}.practice-list article:first-child{padding-top:0}.practice-list article>span{font-size:10px;color:var(--muted);padding-top:7px}.practice-list h3{font-size:25px;letter-spacing:-.8px;margin-bottom:10px}.practice-list p{font-size:14px;color:var(--muted);margin:0}.about-history{padding:30px 0 100px}.about-history>h2{font-size:clamp(37px,5vw,70px);margin-bottom:45px}.about-history details{border-top:1px solid var(--line)}.about-history summary{cursor:pointer;display:grid;grid-template-columns:1fr 2fr 2fr 20px;gap:20px;align-items:center;padding:25px 0;list-style:none}.about-history summary::-webkit-details-marker{display:none}.about-history summary>span{font-size:12px;color:var(--muted)}.about-history h3{font-size:27px;margin:0;letter-spacing:-.8px}.about-history b{font-size:22px;font-weight:400;transition:transform .2s}.about-history details[open] b{transform:rotate(45deg)}.about-history details>p{max-width:660px;margin:0 0 28px auto;font-size:16px;color:var(--muted);line-height:1.8}.about-independent{border-top:1px solid var(--line);padding:60px 0;display:grid;grid-template-columns:1fr 1fr;gap:10%}.about-independent h2{font-size:65px}.about-independent p{max-width:330px;color:var(--muted)}.about-independent a{display:flex;align-items:center;gap:20px;padding:15px 0;border-bottom:1px solid var(--line)}.about-independent a>span:last-child{margin-left:auto}.about-independent img{width:58px;height:58px;border-radius:14px}.about-independent a>span{font-size:20px}.about-ending{padding:70px 0 0}.about-ending p{font-size:14px;color:var(--muted)}.about-ending>a{font-family:World Display;font-size:clamp(48px,7vw,100px);letter-spacing:-.065em}
@media(max-width:800px){.archive-toolbar{align-items:flex-start;flex-direction:column;gap:12px}.archive-toolbar button{padding:9px 12px;font-size:11px}.archive-grid{grid-template-columns:1fr;gap:35px}.archive-label h2{font-size:20px}.archive-label{gap:12px}.archive-label>span{font-size:9px}.archive-view{opacity:1;transform:none;font-size:9px;padding:9px 12px;right:12px;bottom:12px}.work-collaborations{margin-top:65px}.work-collaborations>h2{font-size:42px}.collaboration-list>a{grid-template-columns:1fr 20px;gap:15px}.collaboration-list h3{font-size:28px}.collaboration-list>a>span:nth-child(2){grid-column:1;grid-row:2}.collaboration-list>a>span:last-child{grid-column:2;grid-row:1}.about-opening{grid-template-columns:1fr;padding-bottom:70px;gap:45px}.about-opening .page-heading h1{font-size:58px}.about-side-note{padding:30px;transform:none}.about-side-note>strong{font-size:80px;margin:25px 0}.about-side-note>p{max-width:100%}.about-story{grid-template-columns:1fr;gap:20px;padding:40px 0 45px}.about-story>.eyebrow{max-width:none}.about-story p{font-size:16px}.about-work-pair{grid-template-columns:1fr;gap:30px;padding-bottom:60px}.about-work-pair figure:nth-child(2){margin:0}.about-practice{grid-template-columns:1fr;gap:25px;padding:40px 0 60px}.about-history{padding-bottom:55px}.about-history summary{grid-template-columns:80px 1fr 18px;gap:12px;padding:23px 0}.about-history summary>span:nth-of-type(2){grid-row:2;grid-column:2}.about-history summary>b{grid-column:3;grid-row:1}.about-history summary>span{font-size:10px}.about-history h3{font-size:22px}.about-history details>p{font-size:14px}.about-independent{grid-template-columns:1fr;gap:25px;padding:40px 0}.about-independent h2{font-size:48px}.about-independent a>span{font-size:18px}.about-ending{padding-top:35px}}
@media(prefers-reduced-motion:reduce){.archive-shot:hover img{transform:none}}
/* Editorial rhythm: one opening story, two visual notes, and a quiet reading view. */
.journal-heading{display:flex;justify-content:space-between;gap:60px;align-items:center}.journal-heading .page-heading{max-width:850px;padding-bottom:60px}.journal-heading h1{font-size:clamp(65px,7vw,112px)}.journal-heading .lead{max-width:600px;font-size:18px}.journal-margin{min-width:190px;border-left:1px solid var(--line);padding-left:28px}.journal-margin>span{font-size:10px;letter-spacing:2px;line-height:2}.journal-margin p{font-size:13px;color:var(--muted);line-height:1.8;margin-top:25px}.journal-feature{display:grid;grid-template-columns:1.25fr 1fr;background:#e6e9df;border-radius:3px;overflow:hidden}.note-cover{position:relative;overflow:hidden;min-width:0;aspect-ratio:4/3}.cover-everyday{background:#28352e;color:#fff}.cover-everyday img{width:100%;height:100%;object-fit:cover;object-position:65% center;display:block;transition:transform 1s var(--motion-ease)}.cover-everyday:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#14241de0,transparent 90%);pointer-events:none}.cover-caption{position:absolute;left:8%;bottom:9%;z-index:1;font-family:World Display;font-size:clamp(27px,3vw,49px);line-height:1.06;letter-spacing:-.055em}.cover-index{position:absolute;z-index:1;top:8%;left:8%;font-size:9px;letter-spacing:1.5px}.journal-feature:hover .cover-everyday img{transform:scale(1.035)}.feature-copy{padding:10% 11%;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.note-meta{display:flex;justify-content:space-between;gap:20px;width:100%;font-size:10px;color:var(--muted)}.feature-copy h2{font-size:clamp(32px,3.4vw,55px);letter-spacing:-.055em;line-height:1.08;margin:30px 0 22px}.feature-copy>p{font-size:15px;line-height:1.75;color:var(--muted)}.note-read{display:inline-flex;gap:30px;align-items:center;font-size:12px}.feature-copy .note-read{margin-top:15px}.feature-copy .note-read>span{font-size:24px}.note-draft{font-size:9px;letter-spacing:.7px;text-transform:uppercase;color:var(--muted)}.feature-copy>.note-draft{margin-top:35px}.journal-section-label{display:flex;justify-content:space-between;margin:70px 0 25px;padding-top:24px;border-top:1px solid var(--line);font-size:10px;letter-spacing:1px;color:var(--muted)}.journal-grid{display:grid;grid-template-columns:1fr 1fr;gap:45px}.cover-making{background:#d9e2cd;perspective:900px}.paper-stack{position:absolute;width:52%;height:74%;top:18%;left:26%;transition:transform .65s var(--motion-ease);transform:rotate(-7deg)}.paper-sheet{position:absolute;inset:0;background:#f8f7ef;border:1px solid #24321b20;padding:8%;box-shadow:0 12px 30px #29302512;font-size:8px;letter-spacing:1px}.paper-back{transform:rotate(-12deg) translate(-13%,-2%);background:#b6c6a5}.paper-middle{transform:rotate(9deg) translate(9%,-5%);background:#eeeade}.paper-front{display:flex;flex-direction:column}.paper-front small{font-size:8px}.paper-front>span{font-family:World Display;font-size:clamp(35px,4vw,65px);line-height:.98;letter-spacing:-.065em;margin-top:14%}.paper-front>b{font-size:36px;font-weight:400;margin-top:auto;align-self:flex-end}.journal-card:hover .paper-stack{transform:rotate(0deg) translateY(-6px)}.cover-judgement{background:#252d26;color:#d6e9bd}.glyph-field{position:absolute;right:7%;top:15%;font-family:monospace;font-size:clamp(39px,5vw,80px);line-height:.94;letter-spacing:.1em;transform:rotate(-10deg);opacity:.38;transition:transform .7s var(--motion-ease),opacity .7s}.cover-judgement .cover-caption{font-size:clamp(29px,3vw,46px)}.journal-card:hover .glyph-field{transform:rotate(0) translateX(-10px);opacity:.6}.journal-card>.note-meta{margin-top:24px}.journal-card>h2{font-size:clamp(29px,3vw,45px);line-height:1.15;letter-spacing:-.05em;margin:20px 0 14px;text-wrap:initial}.journal-card>p{font-size:15px;line-height:1.75;color:var(--muted);max-width:480px}.journal-card-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:25px}.journal-editorial-note{font-size:11px;color:var(--muted);line-height:1.7;border-top:1px solid var(--line);padding-top:24px;margin:50px 0 80px;max-width:700px}.journal-elsewhere{display:grid;grid-template-columns:1fr 1fr;gap:12%;padding:60px 0 10px;border-top:1px solid var(--line)}.journal-elsewhere h2{font-size:clamp(35px,4vw,60px);line-height:1.1}.journal-elsewhere>div>a{display:flex;justify-content:space-between;gap:25px;border-bottom:1px solid var(--line);padding:25px 0}.journal-elsewhere>div>a:first-child{padding-top:0}.journal-elsewhere h3{font-size:29px;letter-spacing:-1px;margin-bottom:10px}.journal-elsewhere p{font-size:13px;color:var(--muted);margin:0}.journal-elsewhere>div>a>span{font-size:24px}.reader-meta{display:flex;justify-content:space-between;max-width:650px;font-size:11px;color:var(--muted);margin:12px 0 30px}.story-reader>.note-cover{max-height:450px;aspect-ratio:2/1;margin:15px 0 30px}.story-reader>.cover-making .paper-stack{width:32%;left:35%}.story-reader>.cover-making .paper-front>span{font-size:52px}.story-reader .prose{max-width:710px;margin:65px auto}.story-reader .prose section{position:relative;padding-left:50px;margin-bottom:55px}.paragraph-index{position:absolute;top:8px;left:0;font-size:10px;color:var(--muted)}.story-reader .prose h2{font-size:28px;line-height:1.2;letter-spacing:-1px}.story-reader .prose p{font-size:18px;line-height:1.85}.next-note{display:block;border-top:1px solid var(--line);padding:40px 0 0}.next-note>.eyebrow{display:block}.next-note h2{font-size:clamp(30px,4vw,50px);max-width:620px;line-height:1.1}.next-note>span:last-child{font-size:12px}
@media(max-width:800px){.journal-heading{display:block}.journal-heading h1{font-size:60px}.journal-heading .page-heading{padding-bottom:35px}.journal-margin{display:none}.journal-feature{grid-template-columns:1fr}.feature-copy{padding:32px 26px}.feature-copy h2{font-size:36px;margin:23px 0 18px}.cover-caption{font-size:35px}.journal-grid{grid-template-columns:1fr;gap:45px}.journal-section-label{margin-top:45px}.paper-front>span{font-size:50px}.glyph-field{font-size:62px}.cover-judgement .cover-caption{font-size:35px}.journal-card>h2{font-size:32px}.journal-elsewhere{grid-template-columns:1fr;gap:30px;padding-top:35px}.journal-editorial-note{margin-bottom:45px}.journal-elsewhere h2{font-size:39px}.story-reader>.note-cover{aspect-ratio:4/3}.story-reader>.cover-making .paper-stack{width:55%;left:25%}.story-reader .prose section{padding-left:30px}.story-reader .prose h2{font-size:25px}.story-reader .prose p{font-size:16px}}
@media(prefers-reduced-motion:reduce){.journal-feature:hover .cover-everyday img,.journal-card:hover .paper-stack,.journal-card:hover .glyph-field{transform:none}}
.researched-cover{background:#e3e6dc}.researched-cover>img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--motion-ease)}.journal-feature:hover .researched-cover>img,.journal-card:hover .researched-cover>img{transform:scale(1.025)}.researched-reader>.note-cover{aspect-ratio:16/9;max-height:none}.researched-reader .page-heading h1{font-size:clamp(42px,5.2vw,73px);line-height:1.06}.researched-reader .prose{max-width:760px}.researched-reader .prose p{margin-bottom:23px}.researched-reader .prose a{color:var(--ink);text-decoration:underline;text-decoration-color:#899477;text-underline-offset:4px}.article-figure{margin:60px -35px 70px}.article-figure img{width:100%;height:auto;display:block;border-radius:3px}.article-figure figcaption{font-size:12px;line-height:1.75;color:var(--muted);margin-top:16px;max-width:690px}.portrait-evidence{background:#e4e9df;padding:35px}.portrait-evidence img{max-width:335px;margin:0 auto;box-shadow:0 10px 40px #20251f12}.portrait-evidence figcaption{margin:25px auto 0;max-width:550px}.cover-credit{font-size:10px;color:var(--muted);margin-top:-17px}.article-context{padding:26px 30px;background:#e5e9dd;margin:65px auto 35px;max-width:710px}.article-context>.eyebrow{display:block;margin-bottom:10px;font-size:9px}.article-context p{font-size:13px;line-height:1.8;margin:0;color:var(--muted)}.article-sources{max-width:710px;margin:0 auto 65px}.article-sources h2{font-size:24px;letter-spacing:-.7px}.article-sources ul{padding-left:20px;margin:18px 0}.article-sources li{font-size:13px;line-height:1.7;margin:12px 0}.article-sources a{text-decoration:underline;text-underline-offset:4px;text-decoration-color:#b8c1ab}.reader-meta{gap:20px}.journal-feature .researched-cover{aspect-ratio:auto;min-height:430px}.journal-feature .feature-copy h2{font-size:clamp(30px,3vw,46px)}
@media(max-width:800px){.journal-feature .researched-cover{aspect-ratio:4/3;min-height:0}.researched-reader .page-heading h1{font-size:40px}.researched-reader .prose section{padding-left:0}.researched-reader .paragraph-index{position:static;display:block;margin-bottom:12px}.article-figure{margin:35px 0 45px}.article-figure figcaption{font-size:11px}.portrait-evidence{padding:22px 18px}.portrait-evidence img{max-width:100%;width:270px}.article-context{padding:23px;margin-top:40px}.reader-meta{font-size:10px}.researched-reader>.note-cover{aspect-ratio:16/9}}
@media(prefers-reduced-motion:reduce){.journal-feature:hover .researched-cover>img,.journal-card:hover .researched-cover>img{transform:none}}

/* Expanded independent product collection. */
.icon-fala{background-color:#dcebd5}.icon-luma{background-color:#e6def0}.icon-prompti{background-color:#e9dfcf}.icon-forms{background-color:#e3dfee}.icon-webp{background-color:#dce9ec}.products-grid .project-card:nth-child(3){margin-top:0}.products-grid .card-label{align-items:flex-start}.products-grid .card-label>span{white-space:nowrap;padding-top:7px}.products-grid .card-label h3{max-width:80%}@media(max-width:800px){.products-grid .card-label h3{font-size:23px;max-width:70%}}

/* Personal portraits */
.about-opening{grid-template-columns:1.1fr 1fr;gap:7%;align-items:center}
.about-portrait{margin:0;min-width:0}
.about-portrait img{width:100%;height:auto;display:block;background:#e8e3dc;border-radius:2px}
.about-portrait figcaption{display:flex;justify-content:space-between;gap:16px;margin-top:16px;font-size:10px;letter-spacing:.08em;color:var(--muted)}
.about-portrait figcaption span{letter-spacing:0;text-align:right}
.about-portrait--seated{transform:rotate(1.5deg)}
.about-story{grid-template-columns:.85fr 1fr;gap:10%;align-items:center;padding:85px 0 110px}
.about-story>div>.eyebrow{display:block;margin-bottom:28px;font-size:10px}
.about-story h2{font-size:clamp(33px,3.7vw,57px)}
.about-portrait--standing{max-width:460px;transform:rotate(-1.5deg)}
@media(max-width:800px){.about-opening{grid-template-columns:1fr;gap:40px}.about-opening .page-heading h1{font-size:clamp(44px,11vw,68px)}.about-story{grid-template-columns:1fr;gap:40px;padding:45px 0 65px}.about-story>div{grid-row:1}.about-portrait--standing{width:85%;justify-self:center}.about-portrait figcaption{font-size:9px}.about-portrait--seated{transform:none}}

/* Keep first-scene actions together, with one clear primary action. */
.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:28px;margin-top:26px}
.hero-actions .begin-journey{margin:0}
.hero-about{font-size:13px;color:#ffffffdf;line-height:1.6;border-bottom:1px solid #ffffff55;padding:10px 0;text-decoration:none;transition:color .2s,border-color .2s}
.hero-about:hover{color:#fff;border-color:#fff}
.hero-about:focus-visible{outline:2px solid var(--accent);outline-offset:6px}
.world-journey .stage[data-chapter="0"] .scene-caption{display:none}
@media(max-width:800px){.hero-actions{gap:24px;margin-top:22px}.hero-about{font-size:12px}}
@media(max-height:460px){.hero-actions{position:absolute;left:65%;top:55px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin:0}.hero-actions .begin-journey{position:static;white-space:nowrap}}

/* Editorial layouts keep their complete text and original proportions. */
.journal-card .note-cover{aspect-ratio:8/5}
.researched-reader>.cover-beyond-figma{aspect-ratio:8/5}
.cover-beyond-figma>img{object-fit:contain;background:#d7e2c8}
.journal-card:hover .cover-beyond-figma>img,.journal-feature:hover .cover-beyond-figma>img{transform:none}

#world-map[open]::backdrop{animation:map-backdrop-in .5s ease both}
#world-map.map-closing::backdrop{animation:map-backdrop-out .24s ease both}
@keyframes map-backdrop-in{from{opacity:0}to{opacity:1}}
@keyframes map-backdrop-out{from{opacity:1}to{opacity:0}}
@media(prefers-reduced-motion:reduce){#world-map[open]::backdrop{animation:none}}

/* Pelin scene typography. */

.stage[data-chapter="2"] .travel-hint{display:none}.home-view .stage[data-chapter="2"] .scene-caption{max-width:57%}.home-view .stage[data-chapter="2"] .scene-caption h2{font-size:clamp(48px,5.7vw,90px);white-space:pre-line}

@media(max-width:1000px){.home-view .stage[data-chapter="2"] .scene-caption{max-width:52%}.home-view .stage[data-chapter="2"] .scene-caption h2{font-size:48px}}
@media(max-width:800px){.home-view .stage[data-chapter="2"] .scene-caption{top:21%;max-width:86%}.home-view .stage[data-chapter="2"] .scene-caption h2{font-size:clamp(35px,8.5vw,52px);margin:14px 0}.home-view .stage[data-chapter="2"] #scene-description{font-size:13px;max-width:100%;margin-bottom:12px}}




@media(min-width:1200px){.home-view .stage[data-chapter="2"] .scene-caption{max-width:48%}.home-view .stage[data-chapter="2"] .scene-caption h2{font-size:clamp(48px,5vw,80px)}}

.stage[data-chapter="6"] .travel-hint{display:none}

/* The last scene resolves into a direct invitation to write. */
.home-view .stage[data-chapter="6"] .scene-caption{top:25%;max-width:58%}
.home-view .stage[data-chapter="6"] #scene-title{font-size:clamp(48px,5.5vw,88px);max-width:860px}
.home-view .stage[data-chapter="6"] #scene-link{display:inline-flex;padding:20px 27px;min-height:64px;min-width:240px;justify-content:space-between;gap:40px;background:#e5efda;color:#20281d;border-radius:3px;font-size:18px;font-weight:500;transition:background .25s,transform .25s}
.home-view .stage[data-chapter="6"] #scene-link .action-orbit{border:0;width:auto;height:auto;font-size:24px}
.home-view .stage[data-chapter="6"] #scene-link:hover{background:#f2f8ea;transform:translateY(-2px)}
.scene-contact-details{display:flex;flex-direction:column;align-items:flex-start;gap:15px;margin-top:22px;font-size:15px}.scene-contact-details[hidden]{display:none}.scene-contact-details a:first-child{color:#fff;border-bottom:1px solid #ffffff66;padding-bottom:4px}.scene-contact-details a:last-child{font-size:12px;color:#ffffffb3}.scene-contact-details a:hover{color:#e5efda}.scene-contact-details a:focus-visible{outline:2px solid #e5efda;outline-offset:5px}
.stage[data-chapter="6"] .restart-world{font-size:10px;opacity:.6;bottom:110px}
@media(max-width:800px){.home-view .stage[data-chapter="6"] .scene-caption{top:23%;max-width:86%}.home-view .stage[data-chapter="6"] #scene-title{font-size:clamp(39px,9vw,64px)}.home-view .stage[data-chapter="6"] #scene-link{min-height:58px;min-width:220px;padding:15px 22px;font-size:17px}.scene-contact-details{font-size:14px;margin-top:17px;gap:12px}.stage[data-chapter="6"] .restart-world{display:none}}
@media(max-height:650px){.home-view .stage[data-chapter="6"] .scene-caption{top:21%}.home-view .stage[data-chapter="6"] #scene-title{font-size:clamp(30px,4vw,52px);margin:14px 0}.home-view .stage[data-chapter="6"] #scene-link{padding:12px 22px;min-height:48px}.scene-contact-details{flex-direction:row;gap:20px;margin-top:12px}.stage[data-chapter="6"] .restart-world{display:none}}
@media(prefers-reduced-motion:reduce){.home-view .stage[data-chapter="6"] #scene-link{transition:none}.home-view .stage[data-chapter="6"] #scene-link:hover{transform:none}}
