@charset "UTF-8";
body.loader-open,body.dialog-open{overflow:hidden}.motion-paused .scroll-symbol{animation-play-state:paused}
:root{--paper:#eceee6;--ink:#233d36;--muted:#596b61;--line:#233d362b;--sage:#93b3a0;--orange:#d56538;--mono:Consolas,"Courier New",monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:#91a695 var(--paper)}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}button{color:inherit;cursor:pointer}button:disabled{cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--orange);outline-offset:6px}button{border:0}a{text-underline-offset:5px}button:active{transform:translateY(1px)}[hidden]{display:none!important}.sr-only,.skip-link:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link:focus{position:fixed;z-index:1000;top:10px;left:10px;padding:15px;background:#fff}
.world-header{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:28px 3.8vw;gap:24px;pointer-events:none}.world-header>*{pointer-events:auto}.world-brand{display:flex;gap:12px;align-items:center;text-decoration:none}.world-brand img{width:37px;height:43px;object-fit:contain}.world-brand>span{font:bold 11px/1.3 var(--mono);letter-spacing:2px}.world-brand b{color:#55765e}.header-caption{font:10px/1.7 var(--mono);letter-spacing:1.4px;margin-left:-5vw}.header-caption span{color:var(--muted)}.contact-link{background:transparent;font-size:14px;font-weight:600;border-bottom:1px solid var(--ink);padding:10px 0;display:flex;gap:30px}.contact-link span{font-size:20px}
.world-stage{position:fixed;inset:0;overflow:hidden;z-index:0;pointer-events:none}.world-stage canvas{display:block;width:100%;height:100%;pointer-events:auto;touch-action:pan-y}.scene-grain{position:absolute;inset:0;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 140 140' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23000' opacity='.12' filter='url(%23n)' d='M0 0h140v140H0z'/%3E%3C/svg%3E");opacity:.12}.world-fallback{position:absolute;width:56%;right:4%;top:23%;height:59%;display:flex;align-items:center;justify-content:center}.world-fallback img{width:100%;height:100%;object-fit:contain;border-radius:50% 45% 48% 38%}.has-webgl .world-fallback{display:none}#world-canvas{opacity:0;transition:opacity .7s}.has-webgl #world-canvas{opacity:1}
.journey{height:400svh;position:relative;pointer-events:none}.chapter{position:fixed;inset:0;opacity:0;visibility:hidden;z-index:2;transition:opacity .3s,visibility .3s;pointer-events:none}.chapter.is-active{opacity:1;visibility:visible}.chapter-copy{position:absolute;left:7.2vw;top:46%;transform:translateY(-50%);width:37%;max-width:590px;pointer-events:auto}.chapter-eyebrow{display:flex;gap:27px;align-items:center;font:600 10px/1.4 var(--mono);letter-spacing:1.8px;margin:0 0 28px}.chapter-eyebrow>span{color:var(--orange)}h1,h2{font-size:clamp(45px,5.4vw,91px);line-height:.98;font-weight:500;letter-spacing:-.065em;margin:0 0 27px}h1 em,h2 em{font-family:Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:-.065em;color:#557d65}h1 .heading-period{display:block;margin-top:5px}h1{font-size:clamp(44px,5vw,86px)}.chapter-description{font-size:clamp(15px,1.12vw,18px);line-height:1.65;color:var(--muted);margin:0 0 22px}.chapter-tags{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 27px}.chapter-tags span{font:9px/1.4 var(--mono);padding:7px 10px;border:1px solid var(--line);border-radius:3px;color:var(--muted)}.chapter-link{font-size:12px;font-weight:600;display:inline-flex;align-items:center;gap:30px;padding:0 0 8px;border:0;border-bottom:1px solid var(--ink);text-decoration:none;background:none}.chapter-link span{font-size:20px}.chapter-link:hover,.contact-link:hover{color:var(--orange);border-color:var(--orange)}.scene-label{position:absolute;right:7%;bottom:24%;font:9px var(--mono);letter-spacing:1.2px;display:flex;align-items:center;gap:9px;color:#4e6859}.scene-label-dot{width:5px;height:5px;border-radius:50%;background:var(--orange)}.personal-signature{display:flex;gap:15px;align-items:center;margin-bottom:18px}.personal-signature img{width:65px;height:75px;object-fit:cover;object-position:center 20%;border-radius:32px 32px 6px 6px}.personal-signature span{font:11px/1.5 var(--mono);color:var(--muted)}
.world-controls{position:fixed;left:7.2vw;right:4%;bottom:155px;z-index:5;display:flex;align-items:flex-end;justify-content:space-between;pointer-events:none}.world-controls>*{pointer-events:auto}.explore-note{display:flex;align-items:center;gap:14px;font:10px/1.4 var(--mono)}.explore-note small{display:block;font-size:9px;color:var(--muted);margin-top:5px}.scroll-symbol{width:33px;height:45px;border:1px solid var(--line);border-radius:20px;display:grid;place-items:center;font:18px Arial;animation:scrollNudge 3s ease-in-out infinite}.scene-action{display:flex;align-items:center;gap:20px}.scene-action>span{font:10px var(--mono);color:var(--muted)}.scene-action button{display:flex;align-items:center;gap:24px;background:#f8f9f1e8;padding:10px 11px 10px 20px;box-shadow:0 3px 20px #193a2310;border:1px solid var(--line);border-radius:40px;font-size:11px}.scene-action button:hover{background:#fff;border-color:#78947f}.action-icon{background:var(--ink);color:#fff;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:25px;transition:transform .6s}.scene-action button:hover .action-icon{transform:rotate(90deg)}
.world-footer{position:fixed;z-index:10;bottom:0;left:3.8%;right:3.8%;padding:0 0 20px}.chapter-navigation{display:flex;align-items:center;gap:50px;padding:0 0 19px}.nav-label{font:8px var(--mono);letter-spacing:1.8px;color:var(--muted)}.chapter-navigation nav{display:flex;gap:clamp(25px,5vw,90px)}.chapter-navigation a{display:flex;gap:10px;align-items:center;font-size:11px;text-decoration:none;opacity:.5;transition:opacity .3s}.chapter-navigation a span{font:9px var(--mono)}.chapter-navigation a[aria-current]{opacity:1}.chapter-navigation a[aria-current] span{color:var(--orange)}.chapter-navigation a:hover{opacity:1}.journey-track{height:1px;background:var(--line);position:relative}.journey-track i{display:block;width:0;height:2px;position:absolute;top:-1px;background:var(--ink);transition:width .15s linear}.footer-baseline{display:flex;justify-content:space-between;gap:15px;padding-top:17px;font:8px var(--mono);letter-spacing:.7px}.footer-baseline>div{display:flex;gap:25px;align-items:center}.footer-baseline a,.footer-baseline button{text-decoration:none;background:none;padding:0;font:inherit;letter-spacing:inherit}.footer-baseline a:hover,.footer-baseline button:hover{color:var(--orange)}.footer-location{color:var(--muted)}
.loader{--intro-duration:2.55s;--intro-total:3.55s;position:fixed;inset:0;z-index:100;overflow:hidden;background:#0d1d19;color:#f4f6eb;display:grid;place-items:center;transition:opacity .45s,visibility .45s}.loader.is-finished{opacity:0;visibility:hidden;pointer-events:none}.loader-skip{position:absolute;right:4vw;top:35px;background:none;color:#b6c4b6;font:10px var(--mono);padding:10px}.loader-identity{text-align:center}
/* Both moving parts use exact clips of the final PNG in its native coordinates.
   Once settled, a synchronized step swaps identical pixels without a crossfade. */
.loader-symbol{position:relative;width:clamp(96px,min(44vw,28svh),180px);aspect-ratio:12/13;margin:0 auto 23px}
.loader-assembly{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.intro-team{animation:introTeamPush var(--intro-duration) cubic-bezier(.4,0,.25,1) both}
.intro-team-left{--push-start:-86px}.intro-team-right{--push-start:86px}
.loader-part{opacity:0;animation:introPushParts var(--intro-total) steps(1,end) both}
.intro-bot-actor{opacity:0;transform-box:view-box;animation:introBotTravel var(--intro-duration) both}
.intro-bot-left{--bot-arrival:-130px;--bot-lay-shift:216px;--bot-half-turn:-45deg;--bot-rest-turn:-90deg;transform-origin:-174px 1250px}
.intro-bot-right{--bot-arrival:130px;--bot-lay-shift:-200px;--bot-half-turn:45deg;--bot-rest-turn:90deg;transform-origin:1338px 1250px}
.intro-bot-leg-front,.intro-bot-leg-back{transform-box:fill-box;transform-origin:50% 5%;animation:introBotStep var(--intro-duration) linear both}
.intro-bot-leg-front{--step:1}.intro-bot-leg-back{--step:-1}
.intro-bot-head{transform-box:fill-box;transform-origin:55% 85%;animation:introBotNod var(--intro-duration) both}
.intro-bot-arm-front{transform-box:fill-box;transform-origin:15% 18%;animation:introBotBrace var(--intro-duration) both}
.intro-bot-arm-back{transform-box:fill-box;transform-origin:15% 18%;animation:introBotRestArm var(--intro-duration) both}
.intro-bot-right .intro-bot-arm-front{--arm-reach:9px}
.intro-bot-eyes{transform-box:fill-box;transform-origin:center;animation:introBotBlink var(--intro-total) both}
.intro-bot-shadow{animation:introBotShadow var(--intro-duration) both}.intro-rest-shadow{opacity:0;animation:introRestShadow var(--intro-duration) both}
.loader-join{opacity:0;animation:introJoin var(--intro-duration) both}
.loader-symbol img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;animation:introLogoReveal var(--intro-total) steps(1,end) both}
.loader-identity strong{display:block;font:12px var(--mono);letter-spacing:4px;animation:introBrand var(--intro-duration) both}.loader-identity strong b{color:#a3ec00}.loader-identity p{font-size:13px;color:#a9b8ac;margin:20px 0 25px;animation:introTagline var(--intro-duration) both}
.loader-track{height:1px;width:min(280px,calc(100vw - 48px));background:#506452;margin:0 auto 12px}.loader-track i{display:block;height:2px;background:#a3ec00;width:0;animation:introProgress var(--intro-duration) linear both}
.loader-console{display:grid;min-height:14px;font:9px/1.5 var(--mono);letter-spacing:.3px;color:#a9b8ac;opacity:1}.loader-console span{grid-area:1/1;animation:introTeamCaption var(--intro-duration) both}.loader-console span:last-child{color:#f4f6eb;animation-name:introReady}
.loader small{font:9px var(--mono);letter-spacing:.7px}.loader-signature{position:absolute;bottom:35px;font:9px var(--mono);letter-spacing:2px;color:#99ae9f}
.contact-dialog{max-width:650px;width:calc(100% - 32px);border:1px solid var(--line);background:#f5f6ee;color:var(--ink);padding:48px;max-height:90svh;overflow:auto;border-radius:8px;box-shadow:0 30px 100px #10251c33}.contact-dialog::backdrop{background:#10251c88;backdrop-filter:blur(8px)}.dialog-close{position:absolute;top:14px;right:18px;background:none;font-size:29px;line-height:1}.contact-dialog h2{font-size:50px;margin:15px 0 16px}.contact-dialog>.chapter-eyebrow{font-size:9px;display:block;margin-right:20px}.contact-dialog>p{font-size:13px;color:var(--muted);line-height:1.6}.direct-mail{font-size:16px;display:inline-block;margin:0 0 25px}.contact-dialog form{display:grid;gap:18px}.contact-dialog label{display:flex;flex-direction:column;font-size:11px;gap:8px}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:15px}.contact-dialog input:not([type=checkbox]),.contact-dialog textarea{border:1px solid var(--line);background:#fff;padding:12px;color:var(--ink);width:100%;min-width:0;font-size:15px;border-radius:3px}.contact-dialog textarea{resize:vertical}.privacy-check{flex-direction:row!important;align-items:flex-start;line-height:1.5}.privacy-check input{accent-color:var(--ink);margin:2px 5px 0 0}.submit-button{background:var(--ink);color:#fff;padding:16px;text-align:center;font-size:12px;border-radius:3px}.form-status{font-size:12px;line-height:1.5;margin:0}.form-status:empty{display:none}.contact-phone{font-size:11px!important;margin-bottom:0}.honeypot{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.noscript-note{padding:120px 8vw 0}
@keyframes scrollNudge{0%,70%,100%{transform:translateY(0)}80%{transform:translateY(4px)}}
@keyframes introTeamPush{0%,14%{transform:translateX(var(--push-start))}58%,100%{transform:translateX(0)}}
@keyframes introPushParts{0%{opacity:0}6%{opacity:1}56%,100%{opacity:0}}
@keyframes introBotTravel{0%{opacity:0;transform:translateX(var(--bot-arrival)) rotate(0deg)}12%,68%{opacity:1;transform:translateX(0) rotate(0deg)}82%{opacity:1;transform:translateX(var(--bot-lay-shift)) translateY(-80px) rotate(var(--bot-half-turn))}100%{opacity:1;transform:translateX(var(--bot-lay-shift)) translateY(-180px) rotate(var(--bot-rest-turn))}}
@keyframes introBotStep{0%,12%,64%,90%,100%{transform:rotate(0deg)}6%,18%,30%,42%,54%,74%{transform:rotate(calc(var(--step)*14deg))}24%,36%,48%,60%,82%{transform:rotate(calc(var(--step)*-14deg))}}
@keyframes introBotNod{0%,12%{transform:rotate(-3deg)}26%,54%{transform:rotate(3deg)}38%,64%{transform:rotate(0deg)}76%{transform:rotate(-5deg)}90%,100%{transform:rotate(0deg)}}
@keyframes introBotBrace{0%,12%,30%,46%,62%{transform:translateX(var(--arm-reach,0px)) rotate(0deg)}22%,38%,54%{transform:translateX(var(--arm-reach,0px)) rotate(-3deg)}74%{transform:translateX(var(--arm-reach,0px)) rotate(24deg)}100%{transform:translateX(var(--arm-reach,0px)) rotate(65deg)}}
@keyframes introBotRestArm{0%,64%{transform:rotate(0deg)}82%{transform:rotate(30deg)}100%{transform:rotate(65deg)}}
@keyframes introBotBlink{0%,41%,45%,63%{transform:scaleY(1)}43%{transform:scaleY(.15)}72%,100%{transform:scaleY(.15)}}
@keyframes introBotShadow{0%,62%{opacity:.24}78%,100%{opacity:0}}
@keyframes introRestShadow{0%,72%{opacity:0}100%{opacity:.2}}
@keyframes introJoin{0%,58%{opacity:0}65%{opacity:1}74%,100%{opacity:0}}
@keyframes introLogoReveal{0%{opacity:0}56%,100%{opacity:1}}
@keyframes introBrand{0%,6%{opacity:0;transform:translateY(5px)}18%,100%{opacity:1;transform:translateY(0)}}
@keyframes introTagline{0%,14%{opacity:0;transform:translateY(4px)}28%,100%{opacity:1;transform:translateY(0)}}
@keyframes introProgress{0%{width:0}14%{width:12%}58%{width:68%}78%{width:91%}100%{width:100%}}
@keyframes introTeamCaption{0%,10%{opacity:0}20%,62%{opacity:1}73%,100%{opacity:0}}
@keyframes introReady{0%,73%{opacity:0}84%,100%{opacity:1}}
@media(min-width:1800px){.chapter-copy{left:9%;width:34%}.world-controls{left:9%}.scene-label{right:10%}}
@media(max-height:760px) and (min-width:761px){h1,h2{font-size:clamp(42px,4.2vw,64px);margin-bottom:18px}.chapter-eyebrow{margin-bottom:18px}.chapter-description{font-size:14px;margin-bottom:15px}.chapter-tags{margin-bottom:16px}.chapter-copy{top:44%}.world-controls{bottom:130px}.scene-label{bottom:26%}.personal-signature img{width:45px;height:53px}.personal-signature{margin-bottom:12px}}
@media(max-width:760px){.world-header{padding:20px 6vw}.world-brand img{width:29px;height:34px}.world-brand>span{font-size:9px;letter-spacing:1.4px}.header-caption{display:none}.contact-link{font-size:12px;gap:18px}.world-stage{top:30svh;height:54svh;bottom:auto}.world-fallback{inset:0;width:100%;height:100%;padding:0 5%}.world-fallback img{object-fit:contain}.chapter-copy{left:7vw;top:112px;transform:none;width:88%;max-width:none}.chapter-eyebrow{font-size:8px;letter-spacing:1.4px;gap:20px;margin-bottom:13px}h1,h2{font-size:clamp(37px,9.5vw,57px);line-height:.99;letter-spacing:-.06em;margin-bottom:12px}h1 br,h2 br{display:none}h1 .heading-period{display:inline;margin-left:.18em}h1 em{white-space:nowrap}.chapter-description{font-size:12px;line-height:1.6;margin-bottom:13px}.chapter-description br{display:none}.chapter-tags{display:none}.chapter-link{font-size:10px;padding-bottom:5px;gap:18px}.chapter-link span{font-size:15px}.scene-label{right:7%;bottom:24%;font-size:7px;letter-spacing:.6px}.world-controls{left:7%;right:6%;bottom:144px;justify-content:flex-end}.explore-note{display:none}.scene-action>span{display:none}.scene-action button{font-size:10px;padding:7px 8px 7px 16px;gap:16px}.action-icon{width:29px;height:29px;font-size:21px}.world-footer{left:6%;right:6%;padding-bottom:18px;background:linear-gradient(transparent,var(--paper) 30%)}.chapter-navigation{padding-bottom:17px;gap:0}.nav-label{display:none}.chapter-navigation nav{display:flex;justify-content:space-between;width:100%;gap:12px}.chapter-navigation a{flex-direction:column;gap:5px;font-size:10px}.chapter-navigation a span{font-size:8px}.footer-baseline{font-size:7px;line-height:1.8;padding-top:12px;align-items:center}.footer-baseline>div{gap:15px;flex-wrap:wrap;justify-content:flex-end}.footer-baseline>span{max-width:90px}.footer-location{display:none}#motion-toggle{flex-basis:100%;text-align:right;font-size:8px}.personal-signature{position:absolute;right:0;top:26px;display:block}.personal-signature img{width:58px;height:69px}.personal-signature span{display:none}#yvonne h2{padding-right:60px;max-width:90%}#yvonne .chapter-description{max-width:86%}.contact-dialog{padding:35px 24px}.contact-dialog h2{font-size:38px}.field-pair{grid-template-columns:1fr}.scene-grain{display:none}}
@media(max-width:760px) and (max-height:700px){.chapter-copy{top:94px}h1,h2{font-size:36px}.chapter-description{margin-bottom:8px;font-size:11px}.chapter-eyebrow{margin-bottom:10px}.world-stage{top:31svh;height:48svh}.world-controls{bottom:125px}.scene-label{display:none}.world-footer{padding-bottom:12px}.chapter-navigation{padding-bottom:12px}.personal-signature img{width:40px;height:47px}}
.world-next{position:fixed;z-index:15;right:3.2vw;top:46%;display:flex;flex-direction:column;align-items:center;gap:9px;padding:0;background:transparent}
.next-arrow-icon{display:grid;place-items:center;width:60px;height:60px;background:var(--ink);color:#fff;border:1px solid var(--ink);border-radius:50%;font:30px/1 Arial,sans-serif;box-shadow:0 5px 24px #183d3520;transition:transform .25s,background .25s}
.world-next:hover .next-arrow-icon{transform:translateX(4px);background:#456b55}.world-next>span:last-child{font:10px var(--mono);white-space:nowrap}.world-next:active{transform:translateY(1px)}
@media(max-width:760px){.world-next{right:12px;top:46%;gap:6px}.next-arrow-icon{width:46px;height:46px;font-size:27px}.world-next>span:last-child{font-size:8px}}
.footer-baseline>div{font-size:10px}.footer-baseline a,.footer-baseline button{padding:5px 0}
@media(max-width:760px){.chapter-navigation a{font-size:11px}.footer-baseline>div{font-size:9px}.scene-action button{font-size:11px}#motion-toggle{font-size:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.loader-assembly,.loader-console{display:none}.loader-symbol img{opacity:1}.loader-track i{width:100%}.world-stage canvas{touch-action:pan-y}}

/* A short introduction and a direct route to a personal website quote. */
.device-inspecting .scene-label{visibility:hidden}
.device-closeup #action-hint{visibility:hidden}
#webdesign .chapter-description{max-width:clamp(310px,27vw,500px)}
@media(max-width:760px){#webdesign .chapter-description{max-width:none}}
.chapter-actions{display:flex;flex-direction:column;align-items:flex-start;gap:18px}
.website-inquiry-button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;background:var(--ink);color:#fff;border:1px solid var(--ink);border-radius:4px;padding:13px 18px;font-size:12px;font-weight:600;transition:background .2s}
.website-inquiry-button span{font-size:20px;line-height:1}
.website-inquiry-button:hover{background:#456b55;border-color:#456b55}
select{font:inherit;color:inherit}
select:focus-visible{outline:2px solid var(--orange);outline-offset:6px}
.contact-dialog input:not([type=checkbox]):focus-visible,.contact-dialog textarea:focus-visible,.contact-dialog select:focus-visible{outline:none;border-color:#557d65}
.contact-dialog input[type=checkbox]:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.website-details{display:grid;gap:18px;min-width:0;border:0;padding:0;margin:0}
.contact-dialog select{width:100%;min-width:0;border:1px solid var(--line);border-radius:3px;background:#fff;padding:12px;color:var(--ink);font-size:14px}
.inquiry-note{font-size:12px;line-height:1.5;color:var(--muted);margin:0}
.contact-dialog[aria-busy=true] .submit-button{opacity:.65}
.dialog-toolbar{position:sticky;top:16px;height:0;z-index:3;pointer-events:none}
.dialog-toolbar .dialog-close{top:-16px;right:-18px;width:32px;height:32px;background:#f5f6ee;border-radius:50%;pointer-events:auto}
.contact-dialog[data-inquiry=website]{max-width:760px;padding:30px 36px}
.contact-dialog[data-inquiry=website]>.chapter-eyebrow{margin:0 28px 14px 0}
.contact-dialog[data-inquiry=website] h2{font-size:44px;margin:0 0 10px}
.contact-dialog[data-inquiry=website]>#contact-description{margin:0 0 18px}
.contact-dialog[data-inquiry=website]>.direct-mail{display:none}
.contact-dialog[data-inquiry=website] form,.contact-dialog[data-inquiry=website] .website-details{gap:12px}
.contact-dialog[data-inquiry=website] label{gap:6px}
.contact-dialog[data-inquiry=website] input:not([type=checkbox]),.contact-dialog[data-inquiry=website] select,.contact-dialog[data-inquiry=website] textarea{padding:10px}
.contact-dialog[data-inquiry=website] textarea{height:calc(4lh + 44px)}
.scene-action{position:relative}
.scene-action #scene-interact{position:relative;overflow:hidden}
.web-build-meter{position:absolute;left:18px;right:18px;bottom:4px;height:2px;background:#233d361c}
.web-build-meter i{display:block;height:100%;width:0;background:#557d65;transition:width .16s linear}
.scene-action.is-building .action-icon{animation:buildTurn 2.4s linear infinite}
.motion-paused .scene-action.is-building .action-icon{animation-play-state:paused}
.web-device-controls{position:absolute;right:0;bottom:calc(100% + 12px);display:flex;gap:5px;align-items:center;padding:5px;background:#f8f9f1f2;border:1px solid var(--line);border-radius:24px;box-shadow:0 3px 18px #193a2310;white-space:nowrap}
.scene-action .device-chip{display:block;gap:0;margin:0;padding:9px 11px;border:1px solid transparent;border-radius:18px;font-size:10px;background:transparent;box-shadow:none}
.scene-action .device-chip[aria-pressed=true]{background:var(--ink);color:#fff}
.scene-action .device-chip:hover{border-color:#78947f}
.scene-action .device-chip:disabled{opacity:.4;cursor:default}
.software-controls{position:absolute;right:0;bottom:-49px;display:flex;align-items:center;gap:5px;padding:4px;background:#f8f9f1f2;border:1px solid var(--line);border-radius:26px;box-shadow:0 3px 18px #193a2310;white-space:nowrap}
.scene-action .software-step{gap:7px;padding:9px 12px;border:1px solid transparent;border-radius:20px;box-shadow:none;background:transparent;font-size:10px}
.software-step>span{font:8px var(--mono);opacity:.6}
.scene-action .software-step[aria-pressed=true]{background:var(--ink);color:#fff}
.scene-action .software-step[data-running=true]{border-color:#82bca1;background:#deeee3}
.scene-action .software-step[aria-pressed=true][data-running=true]{background:var(--ink)}
.software-connector{font-size:12px;color:var(--muted)}
body[data-chapter="1"] #action-hint,body[data-chapter="1"] .scene-label{display:none}
body[data-chapter="1"] .world-fallback img{border-radius:0}
.loader-open #software-demo-root,.loader-open .software-story-panel{visibility:hidden!important}
body.software-focused{overflow:hidden}
body[data-chapter="1"] .explore-note{visibility:hidden}
.software-story-panel{position:fixed;z-index:5;top:92px;right:5%;width:33%;display:flex;gap:13px;align-items:center;pointer-events:none;color:var(--ink)}
.software-story-kicker{font:8px var(--mono);letter-spacing:1px;color:var(--muted);white-space:nowrap}
.software-story-panel p{margin:0;font-size:12px;line-height:1.5}
#software-story-time{font:9px var(--mono);margin-left:auto;white-space:nowrap;color:var(--muted)}
.software-hover{position:fixed;z-index:7;pointer-events:none;padding:8px 12px;background:#f8faf4f2;border:1px solid var(--line);border-radius:8px;box-shadow:0 4px 16px #142e2212;font:11px Arial,sans-serif;color:var(--ink)}
body[data-chapter="1"] .scene-action #scene-interact{min-width:190px;justify-content:space-between}
body[data-chapter="1"] .software-controls{gap:2px}
body[data-chapter="1"] .scene-action .software-step{padding:9px 10px}
.scene-action .software-tool{font:9px var(--mono);color:var(--muted)}
#software h2 em{white-space:nowrap}
@media(max-width:760px){body[data-chapter="1"] .world-next{top:40%}}
@media(min-width:761px){#software .chapter-copy{width:33%;max-width:480px}#software h2{font-size:clamp(40px,3.7vw,66px)}#software .chapter-description{max-width:300px}body[data-chapter="1"] .world-controls{left:4%;bottom:98px}body[data-chapter="1"] .world-next{right:1.3vw}}
@media(max-width:760px){#software .chapter-description{max-width:335px;font-size:11.5px;line-height:1.5}#software .chapter-copy{top:104px}#software h2{font-size:36px}#software .chapter-actions{gap:9px}#software .chapter-link{font-size:10px}#software .website-inquiry-button{padding:9px 14px}.software-story-panel{top:auto;right:6%;left:7%;bottom:249px;width:auto;display:block;background:#eceee6ed;border-radius:6px;padding:5px 8px}.software-story-kicker{display:none}.software-story-panel p{font-size:10px;padding-right:35px}#software-story-time{position:absolute;right:8px;top:8px;font-size:8px}body[data-chapter="1"] .scene-action .software-step{padding:8px 9px;font-size:10px}body[data-chapter="1"] .software-controls{width:max-content;max-width:87vw;flex-wrap:wrap;justify-content:center;gap:0}body[data-chapter="1"] .scene-action #scene-interact{min-width:200px}.software-hover{display:none}}
@media(max-width:760px) and (max-height:740px){#software .chapter-copy{top:90px}#software h2{font-size:32px}#software .chapter-description{font-size:10px;line-height:1.4;margin-bottom:8px}#software .website-inquiry-button{padding:7px 12px}.software-story-panel{bottom:218px}}
@media(min-width:761px){body[data-chapter="1"] .world-controls{bottom:98px;justify-content:flex-start}body[data-chapter="1"] .explore-note{display:none}body[data-chapter="1"] .scene-action{gap:12px}body[data-chapter="1"] .software-controls{position:static;order:-1}}
@media(max-width:760px){.software-controls{bottom:calc(100% + 10px);gap:1px;padding:3px}.scene-action .software-step{padding:8px 9px;font-size:10px}.software-step>span{font-size:7px}body[data-chapter="1"] .scene-label{display:none}}
#world-canvas.is-dragging{cursor:grabbing!important}
.device-screen-input{position:fixed;z-index:1;touch-action:none;pointer-events:auto;cursor:ns-resize;background:transparent}
.device-page-controls{display:inline-flex;align-items:center;gap:2px;margin-left:3px;padding-left:5px;border-left:1px solid var(--line)}
.device-page-controls>span{font:9px var(--mono);min-width:30px;text-align:center}
.scene-action .device-page-controls .device-chip{padding:7px 8px;font-size:15px;line-height:1}
@keyframes buildTurn{to{transform:rotate(360deg)}}
@media(min-width:761px){.web-device-controls{bottom:-46px}}
@media(max-width:760px){.web-device-controls{gap:1px;padding:4px;bottom:calc(100% + 10px)}.scene-action .device-chip{padding:8px;font-size:9px}.scene-action.has-selected-device>#action-hint{display:block;position:absolute;right:0;bottom:calc(100% + 50px);font-size:9px;white-space:nowrap;background:#eceee6e8;padding:3px 6px;border-radius:3px}}
@media(max-width:760px){.web-device-controls{flex-wrap:wrap;justify-content:center;max-width:330px;width:max-content}.device-page-controls{flex-basis:100%;justify-content:center;border-left:0;border-top:1px solid var(--line);padding:3px 0 0;margin:1px 0 0}.scene-action.has-selected-device>#action-hint{bottom:calc(100% + 82px)}}
@media(max-width:760px){.chapter-actions{gap:12px}.website-inquiry-button{font-size:11px;padding:11px 16px;gap:24px}.website-inquiry-button span{font-size:18px}.website-details{gap:15px}.contact-dialog select{font-size:16px}.contact-dialog input:not([type=checkbox]),.contact-dialog textarea{font-size:16px}}
@media(max-width:760px){.contact-dialog[data-inquiry=website]{padding:30px 20px}.contact-dialog[data-inquiry=website] h2{font-size:36px}}
.software-robot-trigger{position:fixed;z-index:4;display:block;padding:0;border:0;border-radius:35%;background:transparent;box-shadow:none;pointer-events:auto;cursor:pointer;touch-action:manipulation;color:transparent}
.software-robot-trigger:hover{background:transparent}
.software-robot-trigger:focus-visible{outline:2px solid #498c67;outline-offset:4px;background:transparent}
.software-robot-trigger:disabled{cursor:default}
.loader-open .software-robot-trigger{visibility:hidden}
.software-speech{position:fixed;z-index:6;width:clamp(250px,22vw,320px);padding:20px 23px 22px;background:#fcfdf7;border:1px solid #b7ccbc;border-radius:22px;box-shadow:0 12px 36px #203c3212;pointer-events:none;color:var(--ink);transform-origin:right bottom}
.software-speech-tail{position:absolute;left:calc(100% - 1px);top:calc(var(--speech-tail-offset,60px) - 20px);width:var(--speech-tail-length,70px);height:26px;overflow:visible;fill:#fcfdf7;stroke:#b7ccbc;stroke-width:1;vector-effect:non-scaling-stroke}
.software-speech-chapter{display:flex;gap:8px;align-items:center;margin-bottom:10px;color:#547862;font:600 9px/1.4 var(--mono);letter-spacing:1.5px;text-transform:uppercase}
.software-speech-chapter::before{content:"";width:6px;height:6px;border-radius:50%;background:#7eaf93}
.software-speech p{margin:0;font-size:clamp(16px,1.2vw,19px);font-weight:500;line-height:1.45;letter-spacing:-.25px;text-wrap:pretty}
#software .chapter-copy{transition:opacity .25s}
.software-narrating #software .chapter-copy{opacity:0;pointer-events:none}
.loader-open .software-speech{visibility:hidden}
@media(max-width:760px){.software-speech{width:min(310px,calc(100vw - 40px));padding:17px 20px 19px;border-radius:19px;transform-origin:center bottom}.software-speech p{font-size:16px}.software-speech-chapter{margin-bottom:8px}.software-speech-tail{display:none}.software-speech::after{content:"";position:absolute;bottom:-10px;left:calc(var(--speech-tail-x,50%) - 9px);width:18px;height:18px;background:#fcfdf7;border-right:1px solid #b7ccbc;border-bottom:1px solid #b7ccbc;transform:rotate(45deg)}}
@media(prefers-reduced-motion:reduce){#software .chapter-copy{transition:none}}
