.project-showcase.projects{background:var(--color-canvas);overflow:visible}.project-showcase .project-head{align-items:end;gap:28px;margin-bottom:40px}.project-showcase .project-head h2{max-width:none;font-size:clamp(2.75rem,5.5vw,4.875rem);line-height:1}.project-showcase .projects-github{min-height:var(--control-height);border-bottom-width:1px;gap:22px;font-size:.875rem;font-weight:600}.project-showcase .showcase-stack{isolation:isolate;max-width:1600px;margin-inline:auto;position:relative}.project-showcase .showcase-anchor{height:0;scroll-margin-top:calc(var(--header-height) + 18px);display:block}.project-showcase .showcase-slot{margin-bottom:80px;position:relative}.project-showcase .showcase-slot:nth-last-child(2){margin-bottom:0}.project-showcase .showcase-stack[data-stack-enabled=true] .showcase-slot{top:calc(var(--stack-pin) + var(--stack-step));z-index:var(--stack-order);position:sticky}.project-showcase .showcase-card{min-width:0;color:var(--color-text);transform-origin:top;isolation:isolate;scroll-margin-top:calc(var(--header-height) + 18px);background:#e7e0d2;border:1px solid #778286;border-radius:22px;grid-template-columns:minmax(0,1.16fr) minmax(0,1fr);align-items:center;gap:32px;padding:30px;display:grid;position:relative;box-shadow:0 18px 42px #20303e14}.project-showcase .showcase-card.is-featured{border-color:#9b8058}.project-showcase .showcase-card--sage{background:#dce4dc}.project-showcase .showcase-card--terracotta{background:#e6d8cd}.project-showcase .showcase-card--navy{background:var(--color-inverse);color:var(--color-canvas)}.project-showcase .showcase-card--text{grid-template-columns:1fr}.project-showcase .showcase-card--text .showcase-copy{max-width:800px}.project-showcase .showcase-figure{min-width:0;margin:0}.project-showcase .showcase-media{width:min(100%, calc(var(--media-ratio) * 460px));aspect-ratio:var(--media-ratio);margin-inline:auto;position:relative;overflow:hidden;container-type:inline-size}.project-showcase .showcase-media>.artwork{width:100%;height:100%;min-height:0;position:absolute;inset:0}.project-showcase .showcase-media .project-image{object-fit:contain;object-position:center}.project-showcase .showcase-media .artwork *{animation:none}.project-showcase .showcase-figure figcaption{color:#53616a;margin-top:10px;font-size:.75rem;line-height:1.5}.project-showcase .showcase-card--navy figcaption{color:#c7d4cf}.project-showcase .showcase-copy{min-width:0;padding-block:4px}.project-showcase .showcase-copy h3{letter-spacing:-.055em;overflow-wrap:anywhere;margin:0 0 20px;font-size:clamp(2rem,3.3vw,3rem);font-weight:750;line-height:1.04}.project-showcase .showcase-description{color:inherit;overflow-wrap:anywhere;margin:0 0 22px;font-size:1.0625rem;line-height:1.6}.project-showcase .showcase-technologies{font:.75rem/1.6 var(--font-mono);flex-wrap:wrap;gap:8px 17px;margin:22px 0;padding:0;list-style:none;display:flex}.project-showcase .showcase-actions{flex-wrap:wrap;gap:12px 22px;display:flex}.project-showcase .showcase-actions a{min-height:46px;transition:color var(--duration-control) var(--ease-control);border-bottom:1px solid;justify-content:space-between;align-items:center;gap:20px;padding-block:3px;font-size:.875rem;font-weight:650;display:inline-flex}.project-showcase .showcase-actions a svg{transition:transform var(--duration-control) var(--ease-control);flex:none}.project-showcase .showcase-actions a:hover,.project-showcase .showcase-actions a:focus-visible{color:#9b5146}.project-showcase .showcase-actions a:is(:hover,:focus-visible) svg{transform:translate(3px,-3px)}.project-showcase .showcase-card--navy .showcase-actions a:is(:hover,:focus-visible){color:var(--color-gold)}.project-showcase .showcase-card--navy :focus-visible{outline-color:var(--color-gold)}.project-showcase .showcase-demo{margin-top:16px}.project-showcase .showcase-demo summary{min-height:var(--control-height);cursor:pointer;text-underline-offset:4px;padding-block:10px;font-size:.8125rem;text-decoration:underline}.project-showcase .showcase-demo p{font:.75rem/1.7 var(--font-mono);overflow-wrap:anywhere;margin:6px 0 0}.project-showcase .showcase-shade{z-index:5;opacity:var(--stack-shade,0);border-radius:inherit;pointer-events:none;background:#10232e;position:absolute;inset:0}.project-showcase .showcase-tail{height:0}.project-showcase .showcase-stack[data-stack-enabled=true] .showcase-tail{height:100px}.project-showcase .showcase-media .pos-shell{width:auto;height:auto;inset:12% 9%;transform:rotate(-5deg)}.project-showcase .showcase-media .pos-main{padding:5%}.project-showcase .showcase-media .pos-side{padding:5% 0}.project-showcase .showcase-media .pos-top{font-size:clamp(6px,1.4cqw,10px)}.project-showcase .showcase-media .pos-salutation{font-size:clamp(12px,4cqw,27px)}.project-showcase .showcase-media .pos-metrics div{min-height:0}.project-showcase .showcase-media .pos-metrics b{font-size:clamp(13px,4.4cqw,28px)}.project-showcase .showcase-media .pos-metrics small{font-size:clamp(5px,1.3cqw,9px)}.project-showcase .showcase-media .pos-metrics div span{font-size:clamp(6px,1.4cqw,10px)}.project-showcase .showcase-media .pos-chart-title{font-size:clamp(5px,1.4cqw,9px)}.project-showcase .showcase-media .pos-side strong{font-size:clamp(20px,7cqw,48px)}.project-showcase .showcase-media .ink-frame{padding:4%;inset:12% 9%}.project-showcase .showcase-media .ink-main{font-size:14cqw}.project-showcase .showcase-media .ink-top,.project-showcase .showcase-media .ink-bottom{font-size:clamp(6px,1.6cqw,11px)}.project-showcase .showcase-media .ink-small{font-size:clamp(6px,1.4cqw,10px)}.project-showcase .showcase-media .ink-spark{font-size:clamp(32px,10cqw,80px)}.project-showcase .showcase-media .chat-server strong{font-size:7.5cqw}.project-showcase .showcase-media .chat-server>span{font-size:clamp(6px,1.8cqw,11px)}.project-showcase .showcase-media .chat-server small{font-size:clamp(5px,1.5cqw,9px)}.project-showcase .showcase-media .chat-clients div{font-size:clamp(6px,2cqw,13px)}.project-showcase .showcase-media .chat-log{font-size:clamp(6px,1.5cqw,11px)}.project-showcase .showcase-media .chat-log p{margin:0 0 5px;line-height:1.4}@media (width<=1099px){.project-showcase .showcase-slot{margin-bottom:34px}.project-showcase .showcase-card{gap:26px;padding:26px}.project-showcase .showcase-copy h3{font-size:2.25rem}.project-showcase .showcase-description{font-size:1rem}}@media (width<=800px){.project-showcase .showcase-card{grid-template-columns:1fr;gap:24px}.project-showcase .showcase-figure{width:100%}.project-showcase .showcase-copy{padding:0}.project-showcase .project-head{align-items:start}}@media (width<=560px){.project-showcase .project-head{flex-direction:row;gap:16px;margin-bottom:28px}.project-showcase .project-head h2{max-width:220px;font-size:2.625rem}.project-showcase .projects-github{white-space:normal;gap:7px;max-width:85px;font-size:.75rem}.project-showcase .showcase-card{border-radius:16px;gap:20px;padding:18px}.project-showcase .showcase-slot{margin-bottom:26px}.project-showcase .showcase-copy h3{margin-bottom:16px;font-size:1.9375rem}.project-showcase .showcase-description{margin-bottom:18px}.project-showcase .showcase-technologies{gap:6px 12px;margin:18px 0;font-size:.6875rem}.project-showcase .showcase-actions{gap:10px 16px}.project-showcase .showcase-actions a{gap:15px;font-size:.8125rem}.project-showcase .showcase-media{width:min(100%, calc(var(--media-ratio) * 340px))}}@media (prefers-reduced-motion:reduce){.project-showcase .showcase-slot{position:relative!important;top:auto!important}.project-showcase .showcase-card{transform:none!important}.project-showcase .showcase-shade{opacity:0!important}.project-showcase .showcase-actions a,.project-showcase .showcase-actions a svg{transition:none}.project-showcase .showcase-actions a:is(:hover,:focus-visible) svg{transform:none}}:root{--color-canvas:#f3eee4;--color-surface:#e6dfd3;--color-text:#23394a;--color-muted:#556876;--color-inverse:#20303e;--color-gold:#d9b476;--color-sage:#b9ccc7;--color-terracotta:#af6258;--accent-dev:var(--color-gold);--accent-ops:#d39784;--mode-accent:var(--accent-dev);--mode-accent-ink:#7b5529;--mode-accent-soft:#efe4d1;--color-rule:#2237483d;--color-rule-inverse:#f3eee440;--color-focus:#aa5b4f;--color-control-hover:#ddd5c7;--paper:var(--color-canvas);--paper-2:var(--color-surface);--ink:var(--color-text);--dim:var(--color-muted);--line:var(--color-rule);--line-light:var(--color-rule-inverse);--accent:var(--mode-accent);--dark:var(--color-inverse);--font-body:"DM Sans", Arial, sans-serif;--font-editorial:"Instrument Serif", Georgia, serif;--font-mono:"DM Mono", ui-monospace, monospace;--text-small:.78rem;--text-nav:.82rem;--text-body:1rem;--text-section:clamp(3.25rem, 7vw, 8.5rem);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--gutter-page:clamp(22px, 5.1vw, 88px);--gutter-header:clamp(20px, 4.7vw, 78px);--border-control:1px solid var(--ink);--border-separator:1px solid var(--line);--control-height:44px;--focus-width:3px;--focus-ring-offset:4px;--duration-fast:.16s;--duration-control:.22s;--duration-menu:.32s;--duration-reveal:.75s;--ease-control:cubic-bezier(.2, .7, .2, 1);--ease:cubic-bezier(.22, 1, .36, 1);--header-height:78px}body[data-mode=ops]{--mode-accent:var(--accent-ops);--accent:var(--mode-accent);--mode-accent-ink:#91473d;--mode-accent-soft:#efdfd8}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--header-height)}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;overflow-x:clip}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}::selection{background:var(--accent);color:var(--ink)}:focus-visible{outline:var(--focus-width) solid var(--color-focus);outline-offset:var(--focus-ring-offset)}p{text-wrap:pretty}.mono{font-family:var(--font-mono)}em{font-family:var(--font-editorial);font-style:italic;font-weight:400}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:450;background:var(--accent);color:var(--ink);padding:12px 18px;position:fixed;top:-90px;left:14px}.skip-link:focus{top:12px}main:focus,section[tabindex="-1"]:focus{outline:none}.noise{z-index:89;pointer-events:none;opacity:.032;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");position:fixed;inset:0}.progress{z-index:100;transform-origin:0;pointer-events:none;background:#d95b32;width:100%;height:2px;position:fixed;top:0;left:0}.site-header{z-index:90;height:var(--header-height);align-items:center;gap:var(--space-6);width:100%;padding:0 var(--gutter-header);background:var(--paper);border-bottom:var(--border-separator);transition:box-shadow var(--duration-control) var(--ease-control);grid-template-columns:minmax(150px,1fr) auto minmax(180px,1fr);display:grid;position:sticky;top:0}.site-header.is-scrolled{box-shadow:0 4px 16px #20303e14}.brand{align-items:center;gap:var(--space-3);min-height:var(--control-height);grid-area:1/1;width:fit-content;display:inline-flex}.brand-mark{letter-spacing:-.135em;white-space:nowrap;font-size:2rem;font-weight:900;line-height:1}.brand-mark span{color:#d55537;padding:0 .12em 0 .04em}.site-header .brand-detail{font-size:var(--text-small);letter-spacing:-.025em;font-weight:700;line-height:1.15;display:block}.main-nav{grid-area:1/2}.nav-items{justify-content:center;gap:clamp(16px,1.8vw,28px);display:flex}.main-nav a{font-size:var(--text-nav);white-space:nowrap;min-height:var(--control-height);transition:color var(--duration-fast) var(--ease-control);align-items:center;padding:12px 0;font-weight:700;display:inline-flex;position:relative}.main-nav a:after{content:"";transform-origin:100%;height:2px;transition:transform var(--duration-control) var(--ease);background:currentColor;position:absolute;bottom:8px;left:0;right:0;transform:scaleX(0)}.main-nav a:hover:after,.main-nav a:focus-visible:after,.main-nav a[aria-current=location]:after{transform-origin:0;transform:scaleX(1)}.main-nav a[aria-current=location]{color:var(--mode-accent-ink)}.mode-switch{border:var(--border-control);background:var(--paper);grid-area:1/3;justify-self:end;gap:3px;padding:3px;display:inline-flex}.mode-switch button{color:var(--ink);white-space:nowrap;min-height:var(--control-height);transition:background var(--duration-control), color var(--duration-control);background:0 0;border:0;padding:10px 14px;font-size:.76rem;font-weight:750}.mode-switch button.active{background:var(--ink);color:var(--paper)}.mobile-menu-button{display:none}.live-mark{background:var(--accent);border-radius:50%;flex:none;width:9px;height:9px;box-shadow:0 0 0 5px #d8fa651f}@keyframes spinSlow{to{transform:rotate(360deg)}}.expertise{background:var(--accent);border-bottom:1px solid var(--ink);grid-template-columns:minmax(200px,.8fr) 3.2fr;display:grid}.expertise-label{border-right:1px solid var(--ink);letter-spacing:-.045em;align-items:center;margin:0;padding:25px clamp(20px,4vw,65px);font-size:clamp(1.15rem,1.5vw,1.6rem);line-height:1.1;display:flex}.expertise-items{grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.expertise-item{border-right:1px solid var(--ink);isolation:isolate;flex-direction:column;justify-content:center;gap:15px;min-height:128px;padding:22px clamp(16px,2vw,32px);transition:color 1.4s,transform 1.4s cubic-bezier(.22,1,.36,1);display:flex;position:relative;overflow:hidden}.expertise-item:before{content:"";background:var(--ink);transform-origin:bottom;z-index:-1;transition:transform .5s cubic-bezier(.22,1,.36,1);position:absolute;inset:0;transform:scaleY(0)}.expertise-item:hover{color:var(--accent);transform:translateY(-4px)}.expertise-item:hover:before{transform:scaleY(1)}@media (prefers-reduced-motion:reduce){.expertise-item,.expertise-item:before{transition:none}}.expertise-item:last-child{border-right:0}.expertise-item strong{letter-spacing:-.05em;font-size:clamp(1rem,1.35vw,1.4rem);line-height:1.15}.expertise-plus{align-self:flex-end;font-size:1.3rem}.section{padding:clamp(64px, 7.6vw, 120px) var(--gutter-page);scroll-margin-top:var(--header-height)}.section-head{justify-content:space-between;align-items:end;gap:45px;margin-bottom:clamp(32px,4vw,66px);display:flex}.section-head h2,.tool h2{max-width:850px;font-size:var(--text-section);letter-spacing:-.083em;margin:0;font-weight:800;line-height:.9}.section-head h2 em,.tool h2 em{font-size:1.07em}.section-head p{max-width:345px;color:var(--dim);flex:0 0 min(30%,345px);margin:0 0 7px;font-size:clamp(.98rem,1.15vw,1.1rem);line-height:1.5}.scroll-reveal{opacity:0;transition:opacity var(--duration-reveal) var(--ease), transform .85s var(--ease);transition-delay:var(--reveal-delay,0s);transform:translateY(30px)}.scroll-reveal.is-visible{opacity:1;transform:none}.projects{background:var(--paper)}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:clamp(15px,2.4vw,36px);display:grid}.project-card{border:1px solid var(--ink);background:var(--paper-2);flex-direction:column;min-width:0;transition:border-color .3s;display:flex;overflow:hidden}.project-card:hover{border-color:#657560}.project-media{aspect-ratio:1.28;background:var(--dark);width:100%;overflow:hidden}.project-media .artwork{transition:transform .8s var(--ease)}.project-card:hover .project-media .artwork{transform:scale(1.035)}.project-card-body{flex-direction:column;flex:1;padding:clamp(21px,2.8vw,42px);display:flex}.project-year{color:var(--dim);font-size:.92rem;font-weight:600}.project-card h3{letter-spacing:-.066em;overflow-wrap:anywhere;margin:11px 0 13px;font-size:clamp(2rem,3vw,3.6rem);font-weight:750;line-height:1}.project-card p{color:#434c42;max-width:580px;margin:0 0 23px;font-size:clamp(.98rem,1.11vw,1.1rem);line-height:1.55}.project-stack{flex-wrap:wrap;gap:8px;margin-top:auto;padding-bottom:23px;display:flex}.project-stack span{border:1px solid #191c1852;padding:7px 10px;font-size:.78rem;font-weight:600;display:inline-block}.project-image{object-fit:cover;object-position:center;width:100%;height:100%}.project-demo{color:#20303e;background:#f3eee4;border-left:3px solid #d9b476;border-radius:0 12px 12px 0;margin-top:1.5rem;padding:1.25rem 1.5rem;transition:background .3s,transform .3s}.project-demo:hover{background:#ece4d6;transform:translateY(-2px)}.project-demo strong{letter-spacing:-.02em;margin-bottom:.65rem;font-size:.95rem;font-weight:650;display:block}.project-demo p{color:#455464;overflow-wrap:anywhere;margin:0;font-size:.85rem;line-height:1.9}@media (width<=640px){.project-demo{margin-top:1rem;padding:1rem}.project-demo strong{font-size:.9rem}.project-demo p{font-size:.8rem;line-height:1.7}}@media (prefers-reduced-motion:reduce){.project-demo{transition:none}.project-demo:hover{transform:none}}.project-links{border-top:1px solid var(--line);flex-wrap:wrap;gap:8px;padding-top:18px;display:flex}.project-links a{background:var(--ink);min-height:44px;color:var(--paper);justify-content:space-between;align-items:center;gap:15px;padding:10px 13px;font-size:.87rem;font-weight:700;transition:background .25s,color .25s;display:inline-flex}.project-featured{grid-column:span 2;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);min-height:clamp(390px,37vw,570px);display:grid}.project-featured .project-media{aspect-ratio:auto;height:100%;min-height:390px}.project-featured h3{font-size:clamp(2.8rem,5vw,5.5rem)}.project-featured .project-card-body{justify-content:center}.artwork-fallback{color:#1b2923;background:#b0bdb5;flex-direction:column;justify-content:space-between;padding:10%;display:flex}.artwork-fallback-1{color:#2d211b;background:#d0aa92}.artwork-fallback-2{color:#29271f;background:#d6c8ab}.artwork-fallback-3{color:#1c2937;background:#acbac7}.artwork-fallback-4{color:#25291d;background:#bbbc97}.fallback-icon{align-self:flex-end;font-size:clamp(2rem,5vw,5rem);line-height:1;animation:33s linear infinite spinSlow}.fallback-title{letter-spacing:-.09em;overflow-wrap:anywhere;font-size:clamp(2.3rem,5vw,6rem);font-weight:900;line-height:.9}.fallback-baseline{border-top:1px solid;justify-content:space-between;gap:10px;padding-top:14px;font-size:clamp(.76rem,1vw,1rem);font-weight:600;display:flex}.artwork{isolation:isolate;width:100%;height:100%;position:relative;overflow:hidden}.artwork-serveflow{color:#163b2f;background:#cfdfbe}.art-grid{background-color:#0000;background-image:linear-gradient(90deg,#10342918 1px,#0000 1px),linear-gradient(0deg,#10342918 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:38px 38px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:absolute;inset:0;transform:rotate(-8deg)scale(1.5)}.pos-shell{z-index:2;background:#edf1e7;border:5px solid #12382d;border-radius:8px;width:78%;height:64%;display:flex;position:absolute;top:21%;left:14%;overflow:hidden;transform:rotate(-6deg);box-shadow:15px 25px #143c2a2b,0 25px 70px #143c2a4d}.pos-side{background:#174637;flex-direction:column;align-items:center;gap:14%;width:13%;padding:10% 0;display:flex}.pos-side strong{letter-spacing:-.09em;color:#edf1e7;margin-top:-32%;font-size:clamp(20px,3vw,46px);line-height:1}.pos-side strong span{color:#c9ef7c}.pos-side i{background:#ffffff80;border-radius:5px;width:30%;height:4px;display:block}.pos-side i:first-of-type{background:#cbf178}.pos-main{flex:1;padding:5% 6%;overflow:hidden}.pos-top{color:#7c8b7e;justify-content:space-between;font-size:clamp(6px,.8vw,10px);display:flex}.pos-salutation{letter-spacing:-.06em;justify-content:space-between;margin:8% 0 6%;font-size:clamp(11px,1.9vw,25px);font-weight:800;display:flex}.pos-salutation span{color:#507e65}.pos-metrics{grid-template-columns:1fr 1fr;gap:4%;display:grid}.pos-metrics div{background:#fff;flex-direction:column;gap:7%;min-height:75px;padding:9%;display:flex}.pos-metrics small{color:#738674;font:400 clamp(5px,.6vw,9px) DM Mono,monospace}.pos-metrics b{letter-spacing:-.07em;font-size:clamp(12px,2vw,28px)}.pos-metrics div span{color:#33875f;font:500 clamp(7px,.7vw,10px) DM Mono,monospace}.pos-chart{background:#fff;height:31%;margin-top:4%;padding:4% 5%}.pos-chart-title{color:#8a9c90;font-size:clamp(5px,.62vw,9px)}.pos-bars{align-items:end;gap:3%;height:80%;padding-top:5%;display:flex}.pos-bars i{background:#9bd2aa;border-radius:1px 1px 0 0;flex:1}.artwork-ink{color:#231b18;background:#dc6b51}.artwork-ink:before{content:"";background:repeating-linear-gradient(0deg,#0000 0 2px,#120a050f 3px 4px);width:125%;height:90%;position:absolute;top:4%;left:-13%;transform:rotate(-12deg)}.ink-ornament{aspect-ratio:1;border:1px solid #1e141066;border-radius:50%;width:73%;position:absolute;transform:rotate(-30deg)}.ink-ornament-one{top:8%;left:-35%}.ink-ornament-two{border-width:2px;width:90%;bottom:-40%;right:-47%}.ink-frame{border:1px solid #241c18;flex-direction:column;justify-content:space-between;padding:6%;display:flex;position:absolute;inset:16% 11%;transform:rotate(4deg);box-shadow:12px 12px #1f181526}.ink-frame:after{content:"";pointer-events:none;border:1px solid #241c1852;position:absolute;inset:2%}.ink-top,.ink-bottom{z-index:1;justify-content:space-between;align-items:center;font-size:clamp(7px,.8vw,11px);display:flex;position:relative}.ink-spark{font:400 clamp(35px,6vw,78px) Georgia,serif;animation:30s linear infinite spinSlow;position:absolute;top:18%;right:10%}.ink-main{letter-spacing:-.11em;z-index:1;text-align:center;font-size:clamp(2.8rem,6.9vw,7.5rem);font-weight:900;line-height:.78;position:relative;transform:translate(-3%,3%)}.ink-main em{text-transform:lowercase;font-family:Instrument Serif,Georgia,serif;font-size:.85em;font-weight:400}.ink-main span{vertical-align:top;letter-spacing:0;font:500 clamp(12px,1.3vw,18px) DM Mono,monospace}.ink-small{align-self:center;font-size:clamp(7px,.8vw,10px)}.artwork-chat:before{content:"";opacity:.25;background-image:radial-gradient(#a0d8ac 1px,#0000 1px);background-size:18px 18px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(110deg,#000,#0000 74%);mask-image:linear-gradient(110deg,#000,#0000 74%)}.chat-diagram{position:absolute;inset:20% 9% 14%}.chat-server{z-index:2;color:#19221d;background:#cced86;flex-direction:column;justify-content:space-between;width:40%;height:59%;padding:5%;display:flex;position:absolute;top:12%;left:2%;box-shadow:13px 13px #161e1c}.chat-server>span{font-size:clamp(7px,.9vw,11px)}.chat-server strong{letter-spacing:-.08em;font-size:clamp(2rem,4.2vw,5rem);line-height:.87}.chat-server small{font-size:clamp(6px,.7vw,9px)}.chat-clients{z-index:2;gap:10%;width:44%;height:50%;display:grid;position:absolute;top:8%;right:0}.chat-clients div{background:#283633;border:1px solid #a1b3a7;justify-content:space-between;align-items:center;gap:5%;padding:9% 10%;font:400 clamp(7px,1vw,13px) DM Mono,monospace;display:flex}.chat-clients b{color:#cced86;font-size:1.3em}.chat-led{background:#cbed86;border-radius:50%;flex:none;width:5px;height:5px;box-shadow:0 0 8px #cbed86}.chat-connectors{z-index:1;opacity:.5;border-top:1px solid #b8db8a;border-bottom:1px solid #b8db8a;border-right:1px solid #b8db8a;position:absolute;inset:21% 19% 32% 38%}.chat-connectors:after{content:"";border-top:1px solid #b8db8a;width:100%;position:absolute;top:50%}.chat-log{background:#111a19;border:1px solid #4b6456;width:60%;padding:4%;font-size:clamp(7px,.75vw,10px);position:absolute;bottom:0;right:0;box-shadow:0 10px 20px #0000004d}.chat-log p{margin:0 0 6px}.chat-log p:last-child{color:#cbed86;margin-bottom:0}.chat-cursor span{animation:1s steps(2,end) infinite blink}@keyframes blink{50%{opacity:0}}.impact{background:var(--paper-2);min-height:calc(100svh - var(--header-height));flex-direction:column;justify-content:center;display:flex}.impact-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(230px,.84fr) minmax(300px,1.16fr);align-items:center;gap:clamp(22px,4vw,70px);padding:clamp(18px,2.45vw,32px) 0;display:grid}.impact-row h3{letter-spacing:-.06em;margin:0;font-size:clamp(1.65rem,2.45vw,2.9rem);line-height:1.1}.impact-row p{color:#434c42;max-width:570px;margin:0;font-size:clamp(.95rem,1.08vw,1.07rem);line-height:1.6}.experience{background:var(--dark);color:var(--paper);min-height:calc(100svh - var(--header-height));flex-direction:column;justify-content:center;display:flex}.timeline{border-top:2px solid var(--paper)}.job{border-bottom:1px solid var(--line-light);grid-template-columns:minmax(180px,.35fr) minmax(0,1fr);gap:clamp(20px,4vw,85px);padding:clamp(20px,2.45vw,36px) 0;display:grid}.job-date{color:var(--accent);font-size:.95rem;font-weight:600}.job h3{letter-spacing:-.055em;margin:0;font-size:clamp(1.65rem,2.45vw,2.95rem);line-height:1.08}.company{margin:9px 0 11px;font-size:.96rem;font-weight:750}.job p{color:#c0c4b9;max-width:670px;margin:0;font-size:.99rem;line-height:1.5}.tool{min-height:calc(100svh - var(--header-height));grid-template-columns:minmax(210px,.87fr) minmax(0,1.13fr);align-items:center;gap:clamp(45px,7vw,140px);display:grid}.tool-intro h2{font-size:clamp(3.55rem,6.4vw,7rem)}.tool-intro h2 em{color:#9d4b32}.tool-intro p{color:var(--dim);max-width:420px;margin-top:27px;font-size:clamp(.98rem,1.2vw,1.14rem);line-height:1.65}.skill-groups{border-top:2px solid var(--ink)}.skill-group{border-bottom:1px solid var(--line);padding:clamp(18px,2.1vw,29px) 0}.skill-group h3{letter-spacing:-.06em;margin:0 0 16px;font-size:clamp(1.55rem,2.2vw,2.5rem);line-height:1}.skill-tags{flex-wrap:wrap;gap:7px;display:flex}.skill-tags span{border:1px solid #a3a69c;padding:7px 10px;font-size:.81rem;transition:color .25s,background .25s}.skill-tags span:hover{background:var(--dark);color:var(--paper)}.contact{min-height:calc(100svh - var(--header-height));padding:clamp(40px, 5vw, 75px) var(--gutter-page) 27px;color:var(--ink);scroll-margin-top:var(--header-height);background:#b7c5b8;flex-direction:column;justify-content:space-between;gap:35px;display:flex}.contact-content{margin:auto 0;padding:25px 0}.contact-kicker{align-items:center;gap:15px;margin:0;font-size:clamp(.95rem,1.25vw,1.2rem);font-weight:650;display:flex}.contact-kicker .live-mark{background:var(--ink);box-shadow:0 0 0 5px #00000014}.contact h2{letter-spacing:-.098em;margin:28px 0 37px -.06em;font-size:clamp(4.2rem,10.4vw,13rem);font-weight:900;line-height:.85}.contact h2 em{letter-spacing:-.07em;font-size:1.04em}.contact-cta{border-bottom:2px solid var(--ink);justify-content:space-between;align-items:center;gap:clamp(45px,9vw,160px);padding-bottom:12px;font-size:clamp(1.2rem,1.85vw,1.6rem);font-weight:750;display:inline-flex}.contact-cta span{transition:transform .3s var(--ease);display:inline-block}.contact-cta:hover span{transform:translate(4px,-4px)}.contact-links{border-top:1px solid var(--ink);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.contact-links a{border-right:1px solid var(--ink);grid-template-columns:1fr auto;align-items:center;gap:9px;padding:17px 23px;transition:background .3s,color .3s;display:grid}.contact-links a:first-child{padding-left:0}.contact-links a:last-child{border:0}.contact-links a:hover{color:var(--paper);background:var(--ink)}.contact-links a span{grid-column:span 2;font-size:.83rem;font-weight:600}.contact-links a strong{overflow-wrap:anywhere;font-size:clamp(.9rem,1.18vw,1.15rem)}.footer{border-top:1px solid var(--ink);justify-content:space-between;gap:18px;padding-top:21px;font-size:.86rem;font-weight:600;display:flex}.footer a{text-underline-offset:4px;text-decoration:underline}@media (width<=1150px){.site-header{padding-inline:var(--space-6);grid-template-columns:auto 1fr auto}.brand-detail{display:none}.expertise{grid-template-columns:190px 1fr}.expertise-item{padding:20px 15px}.section-head{align-items:flex-start}.section-head p{flex-basis:29%}}@media (width<=880px){:root{--header-height:75px}.site-header{gap:var(--space-3);grid-template-columns:auto 1fr auto}.main-nav,.main-nav.is-open{top:100%;left:var(--space-4);right:var(--space-4);padding:0 var(--space-6);background:var(--paper);border:var(--border-control);visibility:hidden;opacity:0;pointer-events:none;max-height:0;transition:max-height var(--duration-menu) var(--ease), opacity var(--duration-control) var(--ease-control), transform var(--duration-menu) var(--ease), visibility 0s var(--duration-menu);grid-area:auto;display:block;position:absolute;overflow:hidden;transform:translateY(-8px);box-shadow:0 12px 28px #20303e1f}.main-nav.is-open{max-height:min(420px, calc(100dvh - var(--header-height) - 24px));visibility:visible;opacity:1;pointer-events:auto;transition-delay:0s;overflow-y:auto;transform:none}.nav-items{padding-block:var(--space-4);flex-direction:column;align-items:stretch;gap:0}.main-nav a{padding:var(--space-3) 0;border-bottom:var(--border-separator);min-height:52px;font-size:1.15rem}.main-nav a:last-child{border-bottom:0}.main-nav a[aria-current=location]{background:var(--mode-accent-soft);padding-inline:var(--space-3)}.main-nav a:after{width:24px;bottom:5px;right:auto}.mode-switch{grid-column:2;justify-self:end}.mobile-menu-button{padding:var(--space-2) 0 var(--space-2) var(--space-2);min-height:var(--control-height);min-width:var(--control-height);background:0 0;border:0;grid-area:1/3;font-size:.87rem;font-weight:700;display:block}.mobile-menu-button span{transition:transform var(--duration-control) var(--ease);display:inline-block}.mobile-menu-button[aria-expanded=true] span{transform:rotate(45deg)}.expertise{grid-template-columns:1fr}.expertise-label{border-right:0;border-bottom:1px solid var(--ink);padding:16px 23px}.expertise-item{min-height:114px}.section-head{flex-direction:column;gap:20px}.section-head p{max-width:580px;margin:0}.project-featured{grid-template-columns:1fr 1fr;min-height:360px}.project-featured .project-media{min-height:330px}.project-card h3{font-size:clamp(1.7rem,3vw,2.6rem)}.impact-row{grid-template-columns:.85fr 1.15fr}.tool{grid-template-columns:1fr;gap:25px}.tool-intro p{max-width:580px}.contact-links{grid-template-columns:1fr}.contact-links a{border-right:0;border-bottom:1px solid var(--ink);padding:13px 0}.contact-links a:last-child{border-bottom:0}}@media (width<=620px){:root{--header-height:71px}.site-header{padding:0 var(--space-4);gap:var(--space-2)}.site-header .brand-detail{font-size:.66rem}.brand{gap:var(--space-2)}.brand-mark{font-size:1.7rem}.mode-switch{gap:0;padding:3px}.mode-switch button{padding:10px 9px;font-size:.75rem}.mobile-menu-button{font-size:.75rem}.expertise-items{grid-template-columns:repeat(2,minmax(0,1fr))}.expertise-item{border-bottom:1px solid var(--ink);min-height:104px}.expertise-item:nth-child(2n){border-right:0}.expertise-item:nth-last-child(-n+2){border-bottom:0}.expertise-item strong{font-size:1.08rem}.section{padding:69px 18px}.section-head{margin-bottom:33px}.section-head h2,.tool h2{font-size:clamp(3.05rem,11.5vw,5.5rem)}.section-head p{font-size:1rem}.project-grid{grid-template-columns:1fr;gap:21px}.project-card,.project-featured{grid-column:auto;min-height:0;display:flex}.project-media,.project-featured .project-media{aspect-ratio:1.3;height:auto;min-height:0}.project-card-body{padding:22px}.project-card h3,.project-featured h3{font-size:clamp(2rem,8vw,3.1rem)}.project-stack span{font-size:.78rem}.project-links a{font-size:.91rem}.pos-shell{width:81%;height:61%;top:21%;left:10%}.pos-salutation{font-size:14px}.pos-metrics small{font-size:6px}.pos-metrics b{font-size:14px}.ink-main{font-size:clamp(3.1rem,13vw,5rem)}.chat-server strong{font-size:clamp(1.6rem,7.9vw,3.6rem)}.chat-clients div{font-size:7px}.chat-log{font-size:6px}.impact-row{grid-template-columns:1fr;gap:10px;padding:23px 0}.impact-row h3{font-size:clamp(1.6rem,6.6vw,2.1rem)}.impact-row p{font-size:1rem}.job{grid-template-columns:1fr;gap:9px;padding:24px 0}.job-date{font-size:.9rem}.job h3{font-size:1.72rem}.skill-group h3{font-size:1.8rem}.contact{min-height:max(750px, calc(100svh - var(--header-height)));padding:45px 18px 22px}.contact h2{overflow-wrap:normal;font-size:clamp(3.7rem,12vw,6.3rem);line-height:.85}.contact-kicker{font-size:.95rem}.contact-cta{gap:30px;font-size:1.15rem}.footer{font-size:.8rem}}@media (width<=355px){.site-header .brand-detail{display:none}.site-header{gap:3px;padding:0 9px}.brand-mark{font-size:1.48rem}.mode-switch button{padding:9px 5px;font-size:.68rem}.contact h2{font-size:11.6vw}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.scroll-reveal{opacity:1;transform:none}}::selection{color:#20303e;background:#e1c18a}:focus-visible{outline-color:var(--color-focus)}.skip-link{background:#e1c18a}.progress{background:#b7675a}.brand-mark span{color:#af6258}.main-nav a:focus-visible,.main-nav a:hover{color:var(--mode-accent-ink)}.mode-switch button:not(.active):hover{background:var(--color-control-hover)}.live-mark{background:var(--accent);box-shadow:0 0 0 5px #d9b47626}.expertise{background:#b9ccc7}.expertise-item:hover{color:#f6ecda;background:#24495d}.section-head h2,.tool h2{overflow-wrap:break-word}[data-focus-headline]{opacity:var(--focus-opacity,.27);transform:translateY(var(--focus-offset,15px));will-change:opacity, transform;transition:opacity .12s linear,transform .12s linear}.projects{background:#efe9dd;padding-bottom:clamp(70px,11vw,165px);overflow:visible}.project-introduction{max-width:1600px;margin-inline:auto}.project-head{align-items:end}.project-head>div{max-width:930px}.project-head h2{max-width:none}.project-head p{max-width:570px;margin:24px 0 0;font-size:clamp(1.05rem,1.35vw,1.24rem)}.projects-github{white-space:nowrap;border-bottom:2px solid;flex:none;align-items:center;gap:25px;padding:14px 0;font-size:1rem;font-weight:750;display:inline-flex}.projects-github:hover{color:#a45147}.project-stack-list{flex-direction:column;max-width:1600px;margin:0 auto;padding-bottom:8vh;display:flex}.project-card{top:calc(var(--header-height) + 15px + var(--card-offset,0px));z-index:calc(2 + var(--card-order));isolation:isolate;min-height:min(72svh,720px);transition:box-shadow .45s, border-color .3s, opacity .75s var(--ease), transform .85s var(--ease);background:#e7e0d2;border:1px solid #31485a;border-radius:clamp(18px,2.4vw,32px);grid-template-columns:minmax(0,1.12fr) minmax(360px,.88fr);margin-bottom:15svh;display:grid;position:sticky;box-shadow:0 16px #192b381f,0 26px 75px #1d2b341a}.project-card:last-child{margin-bottom:0}.project-card:nth-child(3n+2){background:#d8e0da}.project-card:nth-child(3n+3){background:#e6dbcf}.project-card:hover{border-color:#a55c50;box-shadow:0 20px #1d2d3d26,0 32px 90px #1d2b3424}.project-card .project-media{aspect-ratio:auto;height:100%;min-height:450px}.project-card .project-media .artwork{height:100%}.project-card .project-card-body{justify-content:center;padding:clamp(27px,4.5vw,74px)}.project-card-meta{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:15px;padding-bottom:clamp(22px,3vw,45px);font-weight:650;display:flex}.project-kind{color:var(--dim);font-size:.92rem}.project-year{color:var(--ink);font-size:1rem}.project-card h3{margin:28px 0 20px;font-size:clamp(2.7rem,4.6vw,6rem);line-height:.97}.project-card p{color:#405363;font-size:clamp(1.05rem,1.25vw,1.2rem);line-height:1.6}.project-stack span{border-color:#23394a59;font-size:.84rem}.project-links a{color:#f5eee0;background:#23394a}.project-links a:hover{background:#a65c52}.project-image{object-fit:cover}.artwork-ink{background:#be8572}.artwork-chat{color:#e8e2d5;background:#273f4b}.artwork-chat:before{background-image:radial-gradient(#b4c9cd 1px,#0000 1px)}.chat-server{color:#23394a;background:#dbc08a}.chat-server strong span{color:#a77b4f}.chat-clients b{color:#e5c990}.chat-led{background:#d7b878;box-shadow:0 0 8px #d7b878}.chat-log p:last-child{color:#e5c990}.split-layout{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:start;gap:clamp(50px,7vw,135px);width:100%;max-width:1600px;margin:0 auto;display:grid}.split-intro{top:clamp(calc(var(--header-height) + 20px), 26svh, 270px);align-self:start;min-width:0;position:sticky}.section-head.split-intro{flex-direction:column;justify-content:center;align-items:flex-start;gap:28px;margin-bottom:0;display:flex}.split-intro h2,.tool .split-intro h2{max-width:620px;font-size:clamp(3.4rem,5.4vw,7.3rem);line-height:.93}.section-head.split-intro p{flex:none;max-width:440px;font-size:1.12rem;line-height:1.65}.split-content{min-width:0}.impact,.experience,.tool{min-height:max(640px, calc(100svh - var(--header-height)));padding-block:clamp(96px,10vw,165px);display:block}.impact{background:#e1e9e3}.impact-list{border-top:2px solid var(--ink)}.impact-row{padding:clamp(25px,3.5vw,56px) 0;display:block}.impact-row h3{margin:0 0 14px;font-size:clamp(1.8rem,2.7vw,3.3rem)}.impact-row p{color:#425664;font-size:clamp(1.03rem,1.2vw,1.19rem);line-height:1.63}.experience{background:#20303e}.experience .section-head p{color:#c8d0ce}.experience .job{flex-direction:column;gap:15px;padding-block:clamp(26px,3.1vw,49px);display:flex}.experience .job-date{color:#dfbc86;font-size:.97rem}.experience .job h3{font-size:clamp(1.75rem,2.65vw,3rem)}.experience .job p{color:#c8d0ce}.tool{background:#f3eee4}.tool .split-intro h2 em{color:#af675d}.tool .split-intro p{max-width:460px;color:var(--dim)}.skill-group{padding-block:clamp(25px,3vw,48px)}.skill-tags span{background:#ffffff45;border:1px solid #a9b0ae;padding:9px 12px;font-size:.85rem}.contact{background:#bfd0cd}.contact-ops{background:#dfbeb0}.contact .contact-kicker .live-mark{background:#a8584e}.contact .contact-cta:hover{color:#a35449}@media (width<=1080px){.project-card{grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:0;margin-bottom:30px;display:grid;position:relative;top:auto;box-shadow:0 8px #20303e1a,0 20px 45px #20303e14}.project-card .project-media{min-height:360px}.project-card h3{font-size:clamp(2.2rem,4vw,4.3rem)}.project-card .project-card-body{padding:clamp(25px,3.5vw,40px)}.project-card-meta{padding-bottom:16px}.project-stack-list{padding-bottom:0}.split-layout{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:45px}.split-intro h2,.tool .split-intro h2{font-size:clamp(3rem,5.4vw,5.4rem)}}@media (width<=880px){.split-layout{flex-direction:column;gap:35px;display:flex}.split-intro{width:100%;position:static}.section-head.split-intro{gap:16px}.split-intro h2,.tool .split-intro h2{font-size:clamp(3.2rem,8.6vw,6rem)}.split-content{width:100%}.impact,.experience,.tool{min-height:0;padding-block:90px}.project-card{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.project-card .project-media{min-height:320px}.projects-github{padding-top:0}}@media (width<=700px){.project-head{align-items:flex-start}.project-head p{margin-top:18px}.project-card{flex-direction:column;display:flex}.project-card .project-media{aspect-ratio:1.18;height:auto;min-height:0}.project-card .project-card-body{padding:24px}.project-card h3{margin:23px 0 14px;font-size:clamp(2.2rem,8.2vw,4rem)}.project-card p{font-size:1rem}.project-card-meta{font-size:.92rem}.project-stack{padding-bottom:18px}}@media (width<=620px){.section-head.split-intro h2,.tool .split-intro h2{font-size:clamp(3rem,11vw,5.2rem)}.impact,.experience,.tool{padding-block:75px}.project-stack-list{gap:8px}.project-card{border-radius:19px;margin-bottom:20px}.project-card .project-media{aspect-ratio:1.22}.project-card .project-card-body{padding:23px 21px}.projects-github{font-size:1.02rem}}@media (width<=355px){.project-card .project-card-body{padding:19px}.project-card h3{font-size:2.1rem}}@media (prefers-reduced-motion:reduce){[data-focus-headline]{will-change:auto;opacity:1!important;transform:none!important}.site-header{transition:none}}.artwork-serveflow{background:#bfcebc}.pos-side{background:#2b5c63}.pos-side strong span,.pos-side i:first-of-type{color:#e1c18b;background-color:#e1c18b}.pos-side strong span{background:0 0}.pos-bars i{background:#a9c7bd}.pos-bars i:nth-child(3n){background:#668f89}.hero{--hero-travel:-32%;--hero-accent:#e7c58d;--hero-route-ink:#d9b476;isolation:isolate;min-height:min(760px, calc(100svh - var(--header-height) - 48px));padding:36px var(--gutter-page) 32px;background:var(--dark);color:var(--paper);grid-template-rows:auto 1fr auto;gap:32px;display:grid;position:relative}.hero-ops{--hero-travel:-18%;--hero-accent:#d39784;--hero-route-ink:var(--color-sage)}.hero-topline{justify-content:space-between;align-items:center;gap:24px;display:flex}.hero-identity{border-left:2px solid var(--hero-accent);animation:heroIdentity .6s var(--ease) both;padding-left:16px}.hero-name{letter-spacing:-.025em;margin:0 0 7px;font-size:1.05rem;font-weight:650}.hero-role{color:#c8d0ce;align-items:center;gap:10px;margin:0;font-size:.88rem;display:flex}.hero-role .live-mark{width:6px;height:6px;box-shadow:none;background:var(--hero-accent)}.hero-location{color:#c8d0ce;text-align:right;margin:0;font-size:.82rem;line-height:1.5}.hero-location strong{color:var(--hero-accent);font-weight:600}.hero-stage{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);grid-template-areas:"statement journey";align-items:center;gap:48px;display:grid}.hero-title{letter-spacing:-.065em;grid-area:statement;margin:0;font-size:clamp(5.5rem,9vw,9rem);font-weight:900;line-height:.94}.hero-title-line{width:fit-content;animation:heroTypeArrive .68s var(--ease) both;display:block;position:relative}.hero-title-line.line-2{margin-left:.28em;animation-delay:80ms}.hero-title-line.line-3{margin-left:.78em;animation-delay:.16s}.hero-title em{font-family:var(--font-editorial);letter-spacing:-.045em;color:var(--hero-accent);font-size:1.09em;font-weight:400;line-height:1;display:inline-block}.hero-journey{grid-area:journey;min-width:0;margin:0;overflow:hidden}.hero-route-scene{aspect-ratio:1.53;position:relative}.hero-route-map{width:100%;height:100%;display:block;overflow:visible}.hero-route-orbits{stroke:var(--hero-route-ink);stroke-width:.8px;opacity:.22}.hero-route-trail{stroke:var(--hero-route-ink);stroke-width:1.4px;stroke-dasharray:690;animation:heroRouteArrive 1.1s var(--ease) .25s both}.hero-route-stop{fill:var(--hero-accent)}.hero-route-road{stroke:var(--hero-route-ink);stroke-width:1px;opacity:.5}.hero-vehicle{aspect-ratio:760/340;width:112%;animation:heroJeepneyArrive 1.2s var(--ease) .2s both;position:absolute;bottom:18px;left:-6%}.jeepney-illustration{width:100%;height:auto;display:block}.hero-vehicle .jeepney-bounce{transform-origin:50% 260px;animation:1.2s ease-out .2s both heroJeepneySettle}.hero-vehicle .jeepney-wheel{transform-box:fill-box;transform-origin:50%;animation:heroWheelArrive 1.15s var(--ease) .2s both}.hero-bottom{border-top:1px solid #f3eee440;justify-content:space-between;align-items:center;gap:40px;padding-top:24px;display:flex}.hero-intro{max-width:660px;color:var(--paper);margin:0;font-size:clamp(1rem,1.23vw,1.18rem);line-height:1.6}.hero-actions{flex-shrink:0;align-items:stretch;gap:10px;display:flex}.hero-actions a{border:1px solid var(--paper);min-height:50px;transition:background var(--duration-control), color var(--duration-control);justify-content:space-between;align-items:center;gap:24px;padding:12px 16px;font-size:.88rem;font-weight:700;display:inline-flex}.hero-actions .hero-primary{background:var(--hero-accent);border-color:var(--hero-accent);color:var(--dark)}.hero-actions a:hover{background:var(--paper);border-color:var(--paper);color:var(--dark)}.hero-actions a:focus-visible{outline-color:var(--hero-accent)}.hero-actions span{transition:transform var(--duration-control) var(--ease)}.hero-actions a:hover span,.hero-actions a:focus-visible span{transform:translate(3px,-3px)}.hero-ops .hero-stage{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);grid-template-areas:"journey statement"}.hero-ops .hero-title{font-size:clamp(5.5rem,8.5vw,8.5rem)}.hero-ops .hero-title-line.line-2{margin-left:0}.hero-ops .hero-title-line.line-3{margin-left:.24em}.hero-ops .hero-title-line{animation-name:heroOpsTypeArrive}.hero-ops .hero-vehicle{width:100%;animation-name:heroOpsJeepneyArrive;left:0}@keyframes heroIdentity{0%{transform:translateY(8px)}to{transform:none}}@keyframes heroTypeArrive{0%{transform:translate(18px,16px)rotate(-.5deg)}to{transform:none}}@keyframes heroOpsTypeArrive{0%{transform:translateY(12px)}to{transform:none}}@keyframes heroRouteArrive{0%{stroke-dashoffset:690px}to{stroke-dashoffset:0}}@keyframes heroJeepneyArrive{0%{transform:translateX(var(--hero-travel))}to{transform:translate(0)}}@keyframes heroOpsJeepneyArrive{0%{transform:translateX(var(--hero-travel))}to{transform:translate(0)}}@keyframes heroJeepneySettle{0%,to{transform:none}35%{transform:translateY(-2px)}55%{transform:translateY(1px)}75%{transform:translateY(-.5px)}}@keyframes heroWheelArrive{0%{transform:rotate(-210deg)}to{transform:rotate(0)}}@media (width>=1100px) and (height<=760px){.hero{gap:20px;min-height:0;padding-block:24px}.hero-title{font-size:104px}.hero-ops .hero-title{font-size:100px}.hero-journey{justify-self:end;width:100%;max-width:420px}.hero-ops .hero-journey{justify-self:start}.hero-bottom{padding-top:18px}.hero-intro{max-width:650px;font-size:1rem}}@media (width<=1099px){.hero{min-height:0;padding:32px var(--gutter-page);gap:32px}.hero-stage,.hero-ops .hero-stage{gap:24px}.hero-title,.hero-ops .hero-title{font-size:clamp(3.6rem,8.9vw,6.1rem)}.hero-title-line.line-2{margin-left:.13em}.hero-title-line.line-3{margin-left:.35em}.hero-bottom{align-items:flex-start;gap:24px}.hero-actions{flex-direction:column;min-width:170px}.hero-intro{font-size:1rem}}@media (width<=620px){.hero{--hero-travel:-12%;gap:22px;padding:24px 20px 28px}.hero-ops{--hero-travel:-8%}.hero-topline{align-items:flex-start;gap:16px}.hero-identity{padding-left:10px}.hero-name{margin-bottom:6px;font-size:.94rem}.hero-role{gap:7px;max-width:180px;font-size:.74rem;line-height:1.4}.hero-location{max-width:130px;font-size:.68rem}.hero-stage,.hero-ops .hero-stage{grid-template-columns:minmax(0,1fr);grid-template-areas:"statement""journey";gap:22px}.hero-title,.hero-ops .hero-title{font-size:clamp(2.8rem,14.1vw,5.4rem);line-height:.94}.hero-title-line.line-2{margin-left:.18em}.hero-title-line.line-3{margin-left:.7em}.hero-ops .hero-title-line.line-3{margin-left:.42em}.hero-journey{grid-template-columns:minmax(0,1fr);display:grid}.hero-route-scene{aspect-ratio:auto;height:clamp(120px,36vw,180px);overflow:hidden}.hero-route-map{height:auto;position:absolute;top:auto;bottom:0}.hero-vehicle{width:min(94%,380px);bottom:14px;left:auto;right:-1%}.hero-ops .hero-vehicle{width:min(90%,365px);bottom:14px;left:1%}.hero-bottom{flex-direction:column;gap:20px;padding-top:20px}.hero-intro{font-size:1rem;line-height:1.55}.hero-actions{flex-direction:row;width:100%;min-width:0}.hero-actions a{flex:1;gap:10px;min-height:48px;padding:12px;font-size:.82rem}.hero-actions .hero-primary{flex:1.4}}.hero[data-arrival=holding] .hero-identity,.hero[data-arrival=holding] .hero-title-line,.hero[data-arrival=holding] .hero-route-trail{animation-play-state:paused}.hero[data-arrival=holding] .hero-vehicle,.hero[data-arrival=handoff] .hero-vehicle,.hero[data-arrival=done] .hero-vehicle,.hero[data-arrival=done] *{animation:none}.hero[data-arrival=holding] .hero-route-trail,.hero[data-arrival=handoff] .hero-route-trail{animation-duration:.8s;animation-delay:0s}@media (width<=355px){.hero{gap:20px;padding-inline:16px}.hero-location{max-width:110px;font-size:.64rem}.hero-role{max-width:145px}.hero-actions a{padding-inline:10px;font-size:.75rem}}@media (prefers-reduced-motion:reduce){.hero *,.hero :before,.hero :after{transition:none!important;animation:none!important}.hero-route-trail{stroke-dashoffset:0}}.welcome-screen{--welcome-accent:#a95f52;z-index:350;isolation:isolate;color:var(--dark);position:fixed;inset:0;overflow:hidden}.welcome-screen:focus{outline:none}.welcome-ops{--welcome-accent:#91473d}.welcome-backdrop{background:var(--paper);animation:2s linear both welcomeReveal;position:absolute;inset:0}.welcome-backdrop:before{content:"";background:repeating-linear-gradient(135deg,#0000 0 35px,#20303e06 36px 37px);position:absolute;inset:0}.welcome-sun{aspect-ratio:1;background:var(--color-gold);opacity:.55;border-radius:50%;width:clamp(220px,32vw,420px);position:absolute;top:18%;right:12%;box-shadow:0 0 0 36px #d9b47621}.welcome-copy{padding:clamp(40px, 8vh, 88px) var(--gutter-page) 0;animation:2s linear both welcomeCopy;position:relative}.welcome-eyebrow{font-family:var(--font-mono);margin:0;font-size:.75rem;line-height:1.5}.welcome-eyebrow span{color:var(--dim)}.welcome-copy h2{letter-spacing:-.06em;margin:32px 0 20px;font-size:clamp(3rem,6.4vw,6.8rem);font-weight:800;line-height:.98}.welcome-copy h2 em{color:var(--welcome-accent);letter-spacing:-.04em}.welcome-copy>p:last-child{margin:0;font-size:1.05rem;line-height:1.5}.welcome-road{left:0;right:0;top:var(--welcome-road-y,79%);border-block:1px solid #20303e4d;height:9px;position:absolute}.welcome-vehicle{width:var(--welcome-width,420px);aspect-ratio:760/340;transform-origin:0 0;pointer-events:none;visibility:hidden;position:fixed;top:0;left:0}.welcome-screen[data-ready] .welcome-vehicle{visibility:visible;animation:2s linear both welcomeJourney}.welcome-vehicle .jeepney-wheel{transform-box:fill-box;transform-origin:50%;animation:2s linear both welcomeWheels}.welcome-vehicle .jeepney-bounce{animation:2s ease-in-out both welcomeSuspension}.welcome-footer{left:var(--gutter-page);right:var(--gutter-page);justify-content:space-between;align-items:center;gap:20px;font-size:.85rem;display:flex;position:absolute;bottom:28px}.welcome-footer>span{background:var(--paper);padding:8px 12px}.welcome-footer button{background:var(--dark);min-height:48px;color:var(--paper);border:1px solid var(--paper);justify-content:space-between;align-items:center;gap:28px;padding:12px 18px;font-size:.9rem;font-weight:650;display:inline-flex}.welcome-footer button:focus-visible{outline-color:var(--welcome-accent)}.welcome-footer button:hover{background:var(--ink)}@keyframes welcomeJourney{0%{transform:translate(var(--welcome-from-x), var(--welcome-hold-y));animation-timing-function:cubic-bezier(.22,1,.36,1)}40%{transform:translate(var(--welcome-hold-x), var(--welcome-hold-y))}50%{transform:translate(var(--welcome-hold-x), var(--welcome-hold-y));animation-timing-function:cubic-bezier(.4,0,.2,1)}95%,to{transform:translate(var(--welcome-target-x), var(--welcome-target-y)) scale(var(--welcome-scale))}}@keyframes welcomeWheels{0%{animation-timing-function:cubic-bezier(.22,1,.36,1);transform:rotate(-420deg)}40%{transform:rotate(-210deg)}50%{animation-timing-function:cubic-bezier(.4,0,.2,1);transform:rotate(-210deg)}95%,to{transform:rotate(0)}}@keyframes welcomeSuspension{0%,40%,50%,95%,to{transform:none}20%{transform:translateY(-2px)}70%{transform:translateY(-1px)}}@keyframes welcomeReveal{0%,50%{opacity:1}95%,to{opacity:0}}@keyframes welcomeCopy{0%,42%{opacity:1}60%,to{opacity:0}}@media (width>=1100px){.welcome-backdrop{animation-name:welcomeSceneRight}.welcome-ops .welcome-backdrop{animation-name:welcomeSceneLeft}.welcome-footer>span{animation:2s linear both welcomeCopy}}@keyframes welcomeSceneRight{0%,55%{clip-path:inset(0);animation-timing-function:cubic-bezier(.4,0,.2,1)}90%,to{clip-path:inset(0 0 0 100%)}}@keyframes welcomeSceneLeft{0%,55%{clip-path:inset(0);animation-timing-function:cubic-bezier(.4,0,.2,1)}90%,to{clip-path:inset(0 100% 0 0)}}@media (width<=620px){.welcome-copy{padding:48px 20px 0}.welcome-eyebrow{font-size:.65rem}.welcome-eyebrow span{display:block}.welcome-copy h2{margin-top:28px;font-size:clamp(2.7rem,11.8vw,4.5rem)}.welcome-copy>p:last-child{font-size:.94rem}.welcome-sun{width:230px;top:22%;right:-14%}.welcome-footer{gap:16px;bottom:24px;left:20px;right:20px}.welcome-footer>span{max-width:125px;padding:0;font-size:.72rem;line-height:1.5}.welcome-footer button{gap:14px;padding-inline:12px;font-size:.8rem}}@media (height<=700px) and (width>=621px){.welcome-copy{padding-top:36px}.welcome-copy h2{margin-top:24px;font-size:clamp(3rem,5.5vw,5.6rem)}}@media (prefers-reduced-motion:reduce){.welcome-screen *,.welcome-screen :before{animation:none!important}}.mode-journey{z-index:80;pointer-events:none;clip-path:inset(var(--clip-top,0px) 0 var(--clip-bottom,0px));position:fixed;inset:0;overflow:hidden}.mode-vehicle{width:var(--vehicle-width);aspect-ratio:760/340;transform-origin:0 0;visibility:hidden;position:absolute;top:0;left:0}.mode-journey[data-ready] .mode-vehicle{visibility:visible;animation:modeDriveDirect var(--journey-duration) cubic-bezier(.4, 0, .2, 1) both}.mode-journey[data-route=wrap][data-ready] .mode-vehicle{animation-name:modeDriveWrap;animation-timing-function:linear}.mode-journey[data-ready] .jeepney-wheel{transform-box:fill-box;transform-origin:50%;animation:modeWheelDirect var(--journey-duration) cubic-bezier(.4, 0, .2, 1) both}.mode-journey[data-route=wrap][data-ready] .jeepney-wheel{animation-name:modeWheelWrap;animation-timing-function:linear}.mode-journey[data-ready] .jeepney-bounce{animation:modeSuspension var(--journey-duration) ease-in-out both}.hero[data-arrival=switching] *{animation:none}.hero[data-arrival=switching] .hero-title,.hero[data-arrival=switching] .hero-journey{animation:modeSceneReveal .15s ease-out calc(var(--journey-duration) - .15s) both}.hero[data-arrival=switching][data-journey=wrap] .hero-title,.hero[data-arrival=switching][data-journey=wrap] .hero-journey{animation-delay:calc(var(--journey-duration) * .48)}@keyframes modeDriveDirect{0%{transform:translate(var(--from-x), var(--from-y))}95%,to{transform:translate(var(--to-x), var(--to-y)) scale(var(--to-scale))}}@keyframes modeDriveWrap{0%{transform:translate(var(--from-x), var(--from-y));opacity:1;animation-timing-function:cubic-bezier(.4,0,.7,.4)}43%{transform:translate(var(--exit-x), var(--from-y));opacity:1}44%{transform:translate(var(--exit-x), var(--from-y));opacity:0}46%{transform:translate(var(--entry-x), var(--to-y)) scale(var(--to-scale));opacity:0}47%{transform:translate(var(--entry-x), var(--to-y)) scale(var(--to-scale));opacity:1;animation-timing-function:cubic-bezier(.16,1,.3,1)}95%,to{transform:translate(var(--to-x), var(--to-y)) scale(var(--to-scale));opacity:1}}@keyframes modeWheelDirect{0%{transform:rotate(0)}95%,to{transform:rotate(var(--wheel-end))}}@keyframes modeWheelWrap{0%{animation-timing-function:cubic-bezier(.4,0,.7,.4);transform:rotate(0)}43%,44%{transform:rotate(var(--wheel-exit))}46%,47%{transform:rotate(var(--wheel-exit));animation-timing-function:cubic-bezier(.16,1,.3,1)}95%,to{transform:rotate(var(--wheel-end))}}@keyframes modeSuspension{0%,43%,47%,95%,to{transform:none}20%,70%{transform:translateY(-1.5px)}}@keyframes modeSceneReveal{0%{opacity:0}to{opacity:1}}@media (width<=620px){.hero[data-arrival=switching] .hero-title,.hero[data-arrival=switching][data-journey=wrap] .hero-title{animation-delay:0s}}@media (prefers-reduced-motion:reduce){.mode-journey{display:none}.hero[data-arrival=switching] *{animation:none!important}}
