@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap";:root{color:#f7f4ea;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#172a30;font-family:DM Sans,sans-serif;font-weight:400}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible{outline-offset:5px;outline:2px solid #efb871}main,.scene{position:fixed;inset:0}.scene{touch-action:none}header{z-index:4;pointer-events:none;background:linear-gradient(#1422298c,#0000);justify-content:space-between;align-items:center;width:100%;padding:30px 42px;display:flex;position:absolute;top:0;left:0}.brand,.top-actions{pointer-events:auto}.brand{color:inherit;letter-spacing:3px;text-shadow:0 2px 12px #0005;align-items:center;gap:13px;font:700 18px Manrope,sans-serif;text-decoration:none;display:flex}.brand-symbol{color:#ecc39b;font-size:34px;line-height:1}.brand small{letter-spacing:2.2px;margin-top:4px;font-size:8px;font-weight:500;display:block}.top-actions{align-items:center;gap:20px;display:flex}.edition{letter-spacing:2px;opacity:.7;font-size:10px}.top-actions button{color:#fff;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#15282d70;border:1px solid #ffffff40;border-radius:2px;padding:10px 14px;font-size:12px}.top-actions button span,.top-actions button kbd{margin-left:18px}kbd{letter-spacing:1px;border:1px solid #ffffff45;border-radius:3px;padding:3px 5px;font:10px DM Sans,sans-serif}.entry{pointer-events:none;background:linear-gradient(90deg,#101f27e6 0%,#152832ba 32%,#10232a22 65%,#0000 100%);position:absolute;inset:0}.entry-copy{pointer-events:auto;width:min(450px,80vw);position:absolute;top:50%;left:8%;transform:translateY(-45%)}.eyebrow{letter-spacing:2.7px;color:#e7be97;align-items:center;gap:10px;font-size:10px;font-weight:600;display:flex}.eyebrow>span{background:#e7be97;width:28px;height:1px}h1{letter-spacing:-3px;margin:28px 0;font:500 clamp(46px,5vw,78px)/1.06 Manrope,sans-serif}h1 em{color:#e8bd92;font-style:normal}.intro{color:#d8e0df;max-width:325px;margin-bottom:30px;font-size:14px;line-height:1.8}.primary{color:#172a30;background:#e9bd92;border:0;border-radius:2px;justify-content:space-between;align-items:center;gap:45px;min-width:240px;padding:18px 22px;font-size:13px;font-weight:700;transition:background .2s,transform .2s;display:flex}.primary:hover{background:#f6d4b0;transform:translateY(-2px)}.primary span{font-size:21px;font-weight:400}.entry-notes{letter-spacing:1.7px;color:#c0cecf;gap:24px;margin-top:20px;font-size:8px;display:flex}.entry-bottom{color:#d3dcd8;letter-spacing:1.6px;justify-content:space-between;font-size:9px;display:flex;position:absolute;bottom:30px;left:42px;right:42px}.entry-bottom span:last-child{letter-spacing:0;font-size:11px}.location{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(90deg,#14272ddb,#14272d77);border-left:2px solid #e8bc90;min-width:260px;max-width:350px;padding:22px 27px;position:absolute;bottom:74px;left:42px}.location h2{letter-spacing:-.6px;margin:10px 0;font:500 26px Manrope,sans-serif}.location p:not(.eyebrow){color:#cad5d4;margin:0;font-size:12px}.encounter-button{color:#f1caa2;background:0 0;border:0;align-items:center;gap:10px;padding:17px 0 0;font-size:11px;display:flex}.encounter-button span{margin-left:16px}.journey{color:#f2f4e9;letter-spacing:1.8px;text-shadow:0 2px 9px #112b30;font-size:9px;position:absolute;bottom:88px;right:42px}.journey>div{gap:7px;margin-top:12px;display:flex}.journey button{background:#fff7;border:0;width:39px;height:5px;padding:0}.journey button.discovered{background:#f0b276}.movement-hint{white-space:nowrap;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#edf2ec;background:#152a2c99;border-radius:3px;align-items:center;gap:10px;padding:10px 16px;font-size:10px;display:flex;position:absolute;bottom:26px;left:50%;transform:translate(-50%)}.movement-hint i{background:#e0b284;border-radius:50%;width:3px;height:3px;margin:0 5px}.modal-backdrop{z-index:10;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#0d1f28a8;justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0;overflow:auto}.modal{color:#f4f0e5;background:#152b32;border:1px solid #c2d4d025;width:480px;max-width:100%;padding:42px;position:relative;box-shadow:0 30px 100px #0004}.modal h2{letter-spacing:-1px;margin:15px 0 24px;font:500 33px/1.2 Manrope,sans-serif}.close{color:#dce5df;background:0 0;border:0;font-size:25px;line-height:1;position:absolute;top:15px;right:18px}.modal-copy{color:#c6d4d2;font-size:14px;line-height:1.8}.control-list p{border-bottom:1px solid #ffffff15;justify-content:space-between;align-items:center;margin:0;padding:12px 0;font-size:12px;display:flex}.secondary{color:#e7bc91;background:0 0;border:1px solid #e7bc9160;margin-top:15px;padding:13px 16px;font-size:12px}.prototype-note{background:#ffffff05;border-left:2px solid #b9956e;margin:25px 0;padding:18px}.prototype-note span{letter-spacing:1.5px;color:#e2b386;font-size:9px}.prototype-note p{color:#bdcecb;margin-bottom:0;font-size:13px;line-height:1.7}.map-modal{grid-template-columns:1fr 1fr;gap:0 30px;width:720px;display:grid}.map-modal>.eyebrow,.map-modal>h2,.map-modal>.fine-print{grid-column:1/-1}.map-art{background:#20383b;border:1px solid #ffffff0c;align-items:center;display:flex}.map-art svg{width:100%}.map-route{fill:none;stroke:#c6aa82;stroke-width:2px;stroke-dasharray:4 5}.map-dot{fill:#21353b;stroke:#9eaa99;stroke-width:1.5px}.map-dot.active{fill:#e8bb8e;stroke:#e8bb8e}.map-art text{fill:#e9e4d4;text-anchor:middle;font:11px DM Sans,sans-serif}.map-dot.active+text{fill:#142a31}.map-art .map-caption{letter-spacing:1px;fill:#94aba6;font-size:7px}.place-list{flex-direction:column;display:flex}.place-list button{color:#efeee2;text-align:left;background:0 0;border:0;border-bottom:1px solid #ffffff13;align-items:center;gap:13px;padding:19px 0;font-size:12px;display:flex}.place-list button:hover{color:#efbd8c}.place-number{color:#dbb38c;font-size:10px}.place-list small{color:#96ada9;margin-top:7px;font-size:10px;display:block}.place-list button>span:last-child{margin-left:auto}.fine-print{color:#96ada9;margin-top:22px;margin-bottom:0;font-size:10px}.touch-stick-zone,.touch-only{display:none}.error-message{z-index:30;background:#193039;padding:40px;position:absolute;inset:20%;overflow:auto}.error-message p{overflow-wrap:anywhere;font-size:12px}.error-message button{padding:12px 24px}.scene canvas{outline:none}@media (width<=700px){header{padding:22px}.brand{font-size:14px}.brand small{font-size:6px}.brand-symbol{font-size:26px}.edition{display:none}.top-actions{gap:8px}.top-actions button{padding:8px;font-size:10px}.top-actions button span,.top-actions button kbd{display:none}.entry-copy{top:48%;left:8%}h1{font-size:52px}.entry-bottom{font-size:7px;left:22px;right:22px}.entry-bottom span:last-child{display:none}.location{min-width:230px;padding:14px 18px;bottom:150px;left:18px}.location h2{font-size:21px}.journey{font-size:8px;bottom:150px;right:20px}.journey button{width:20px}.movement-hint{display:none}.modal{max-height:90dvh;padding:30px 25px;overflow:auto}.modal h2{font-size:28px}.map-modal{grid-template-columns:1fr}.map-art{max-height:190px}.map-art svg{height:190px}.place-list button{padding:12px 0}.map-modal>.eyebrow{font-size:8px}.intro{max-width:280px}.entry{background:linear-gradient(90deg,#10202ae8,#1528328c)}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.resume-reveal{pointer-events:auto;box-sizing:border-box;color:#233a42;background:#f4fbfaf2;border-top:3px solid #83cddd;width:min(420px,90vw);max-height:80vh;padding:30px;position:absolute;top:50%;right:5%;overflow:auto;transform:translateY(-50%);box-shadow:0 15px 70px #08202c40}.resume-reveal h2{margin:12px 0;font-family:Georgia,serif;font-size:42px}.resume-reveal p{line-height:1.65}.resume-reveal small{opacity:.65;margin:20px 0;line-height:1.5;display:block}.resume-reveal .primary{width:100%;font-size:13px}.resume-placeholder{font-weight:600}.encounter-next{z-index:5;color:#f3f7f8;box-sizing:border-box;background:#193540ed;gap:8px;width:440px;max-width:85vw;padding:18px 24px;display:grid;position:absolute;top:100px;left:50%;transform:translate(-50%)}.encounter-next span{font-size:13px;line-height:1.5}.encounter-next button{color:#beecf4;text-align:left;background:0 0;border:0;padding:4px 0;text-decoration:underline}@media (width<=650px){.resume-reveal{max-height:62vh;padding:20px;top:auto;bottom:20px;transform:none}.resume-reveal h2{font-size:30px}.encounter-next{top:85px}}header[inert]{opacity:0;transition:opacity .5s}.finale-encounter{z-index:20;pointer-events:none;--bar:clamp(44px,9vh,96px);position:fixed;inset:0}.finale-encounter .letterbox{height:var(--bar);background:#05080b;animation:.9s cubic-bezier(.2,.7,.2,1) both bar-in;position:absolute;left:0;right:0}.finale-encounter .letterbox.top{--from:-100%;top:0}.finale-encounter .letterbox.bottom{--from:100%;bottom:0}.finale-encounter.reveal .letterbox{animation:1.1s cubic-bezier(.5,0,.2,1) .2s both bar-out}@keyframes bar-in{0%{transform:translateY(var(--from))}to{transform:none}}@keyframes bar-out{0%{transform:none}to{transform:translateY(var(--from))}}.finale-caption{left:5%;bottom:calc(var(--bar) + 26px);color:#fbf5f2;text-shadow:0 2px 18px #0a0d12cc,0 1px 3px #0a0d12;isolation:isolate;max-width:min(560px,80vw);animation:.7s cubic-bezier(.2,.7,.2,1) both caption-in;position:absolute}.finale-caption:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(at 35% 62%,#0a0d12b8 0%,#0a0d1266 38%,#0000 70%);position:absolute;inset:-70px -120px -40px -90px}.finale-caption .eyebrow{color:#f3b8c9}.finale-caption h2{letter-spacing:-.5px;margin:10px 0 8px;font:500 clamp(30px,4.2vw,58px)/1.05 Georgia,serif}.finale-caption p:last-child{color:#f1e3e6;margin:0;font-size:clamp(13px,1.3vw,16px)}.finale-encounter.reveal .finale-caption{display:none}@keyframes caption-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.finale-beats{top:calc(var(--bar) / 2 - 2px);gap:6px;margin:0;padding:0;list-style:none;display:flex;position:absolute;right:5%}.finale-beats li{background:#ffffff30;border-radius:2px;width:28px;height:4px;transition:background .4s}.finale-beats li.done{background:#f0a9bd}.finale-beats li.current{background:#fff}.finale-controls{right:5%;bottom:calc(var(--bar) / 2 - 19px);pointer-events:auto;gap:10px;display:flex;position:absolute}.finale-controls button{color:#e9e3e6;background:0 0;border:1px solid #ffffff38;border-radius:2px;align-items:center;gap:10px;padding:10px 14px;font-size:12px;display:flex}.finale-controls button:hover{color:#fff;border-color:#f3b8c9}.finale-controls .skip-cinematic{color:#1b1116;background:#f3b8c9;border-color:#f3b8c9;font-weight:600}.finale-controls .skip-cinematic kbd{border-color:#1b111655}.finale-reveal{border-top-color:#d9486c;animation:.9s cubic-bezier(.2,.7,.2,1) .5s both reveal-in}.finale-reveal .contact-placeholder{color:#5d6f75;border:1px dashed #9fb3b8;margin:14px 0;padding:10px 12px;font-size:13px}.finale-reveal code{background:#e3eeed;border-radius:2px;padding:1px 5px;font-size:12px}.finale-reveal .contact-links{gap:8px;margin:14px 0;padding:0;list-style:none;display:grid}.finale-reveal .contact-links a{color:#8e1d3a;font-weight:600}.chapter-recap{color:#40585f;grid-template-columns:1fr 1fr;gap:6px 14px;margin:18px 0 0;padding:0;font-size:12px;list-style:none;display:grid}.chapter-recap span{color:#c0506d;letter-spacing:1px;margin-right:8px;font-size:10px;font-weight:700}.finale-reveal .replay-finale{color:#8e1d3a;border-color:#8e1d3a55;width:100%;margin-top:10px}@keyframes reveal-in{0%{opacity:0;transform:translateY(calc(18px - 50%))}to{opacity:1;transform:translateY(-50%)}}@media (width<=650px){.finale-encounter{--bar:clamp(36px,7vh,60px)}.finale-caption{bottom:calc(var(--bar) + 64px);left:6%}.finale-controls{left:6%;right:6%;bottom:calc(var(--bar) + 12px);justify-content:space-between}.finale-controls button{padding:9px 11px;font-size:11px}.finale-beats li{width:18px}.finale-reveal{animation-name:reveal-in-mobile}@keyframes reveal-in-mobile{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}}@media (prefers-reduced-motion:reduce){.finale-encounter .letterbox,.finale-caption,.finale-reveal{animation-duration:10ms!important;animation-delay:0s!important}}.finale-encounter.intro{max-width:none;font-size:inherit;line-height:inherit;color:inherit;margin:0}.gate-reveal{border-top-color:#8fd3ea;animation:.9s cubic-bezier(.2,.7,.2,1) .45s both reveal-in}@media (width<=650px){.gate-reveal{animation-name:reveal-in-mobile}}@media (prefers-reduced-motion:reduce){.gate-reveal{animation-duration:10ms!important;animation-delay:0s!important}}.garden-reveal{border-top-color:#e3b25a}.map-spur{stroke-dasharray:2 4;opacity:.8}.place-number.side{color:#9fd0dc}.side-section{z-index:3;box-sizing:border-box;color:#233a42;background:#f4fbfaf0;border-top:3px solid #e9bd92;width:min(360px,100vw - 36px);max-height:calc(100vh - 300px);padding:24px 26px 18px;animation:.7s cubic-bezier(.2,.7,.2,1) both section-in;position:absolute;top:112px;right:42px;overflow:auto;box-shadow:0 15px 60px #08202c40}@keyframes section-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.side-section h2{margin:10px 0;font-family:Georgia,serif;font-size:30px}.side-section p{font-size:14px;line-height:1.6}.side-section .eyebrow{color:#b57a45}.side-section .close{color:#43606a;top:10px;right:12px}.side-section small{opacity:.6;margin-top:14px;font-size:11px;line-height:1.5;display:block}.side-section code{background:#e3eeed;border-radius:2px;padding:1px 5px;font-size:12px}.side-section .contact-links{gap:8px;margin:12px 0;padding:0;list-style:none;display:grid}.side-section .contact-links a{color:#8e5a2a;font-weight:600}.section-placeholder{color:#5d6f75;border:1px dashed #9fb3b8;padding:10px 12px}@media (width<=700px){.side-section{width:auto;max-height:34vh;padding:18px;top:78px;left:18px;right:18px}.side-section h2{font-size:24px}}@media (prefers-reduced-motion:reduce){.side-section{animation:none}}@media (width<=700px){.journey{bottom:118px;left:18px;right:auto}}.gallery-panel{z-index:6;box-sizing:border-box;color:#e7f5fa;background:#0b1c29f2;border-top:3px solid #6fe0ff;width:min(390px,100vw - 36px);max-height:calc(100vh - 140px);padding:24px 26px 18px;animation:.6s cubic-bezier(.2,.7,.2,1) both section-in;position:absolute;top:96px;right:42px;overflow:auto;box-shadow:0 18px 70px #0009}.gallery-panel .eyebrow{color:#7fdcff}.gallery-panel h2{margin:12px 0 8px;font-family:Georgia,serif;font-size:30px}.gallery-panel p{color:#c8e3ec;font-size:14px;line-height:1.6}.gallery-panel img{aspect-ratio:16/9;object-fit:cover;background:#08141d;border:1px solid #6fe0ff44;width:100%;margin:12px 0 4px;display:block}.gallery-panel .close{color:#bfe9f7;top:10px;right:12px}.gallery-panel .section-placeholder{color:#9fc3cf;border-color:#6fe0ff55}.gallery-panel code{color:#bfeaff;background:#12324a;border-radius:2px;padding:1px 5px;font-size:12px}.gallery-panel .resume-placeholder{color:#e7f5fa}.site-tags{flex-wrap:wrap;gap:6px;margin:10px 0;padding:0;list-style:none;display:flex}.site-tags li{letter-spacing:.5px;color:#bfeaff;border:1px solid #6fe0ff66;border-radius:12px;padding:3px 8px;font-size:11px}.gallery-panel .visit-site{box-sizing:border-box;width:100%;margin:14px 0 4px;text-decoration:none}.gallery-nav{color:#9fc3cf;justify-content:space-between;align-items:center;margin-top:14px;font-size:12px;display:flex}.gallery-nav button{color:#e7f5fa;background:#12324a;border:1px solid #6fe0ff55;border-radius:2px;padding:9px 14px}.gallery-nav button:hover{border-color:#6fe0ff}.gallery-panel small{opacity:.6;margin-top:14px;font-size:11px;line-height:1.5;display:block}@media (width<=700px){.gallery-panel{width:auto;max-height:48vh;padding:16px 18px;inset:auto 12px 14px}.gallery-panel h2{font-size:22px}.gallery-panel img{display:none}}@media (prefers-reduced-motion:reduce){.gallery-panel{animation:none}}.wide-reveal{flex-direction:column;width:min(520px,92vw);display:flex;overflow:hidden}.wide-reveal .roles{flex:auto;min-height:0;margin-right:-12px;padding-right:12px;overflow:auto}.wide-reveal>*{flex-shrink:0}.wide-reveal>.roles{flex-shrink:1}.profile-line{flex-direction:column;gap:2px;margin:0 0 6px;display:flex}.profile-line strong{font-size:17px}.profile-line span{color:#4b666e;font-size:13px}.roles details{border-top:1px solid #b9d3d9;padding:10px 0}.roles details:last-child{border-bottom:1px solid #b9d3d9}.roles summary{cursor:pointer;list-style-position:outside;display:list-item}.roles summary strong{font-size:15px}.roles summary span{color:#4b666e;margin-top:2px;font-size:12px;display:block}.role-tech{flex-wrap:wrap;gap:5px;margin:10px 0 4px;padding:0;list-style:none;display:flex}.role-tech li{color:#265663;background:#e4f4f6;border:1px solid #83cddd;border-radius:10px;padding:2px 8px;font-size:11px}.role-points{margin:8px 0 2px;padding-left:18px;font-size:13px;line-height:1.55}.role-points li{margin:6px 0}.role-points a{color:#1f6f86;font-weight:600}.skill-groups section{margin:12px 0}.skill-groups h3{letter-spacing:1.4px;text-transform:uppercase;color:#4b666e;margin:0 0 4px;font-size:12px}.site-links{align-items:stretch;gap:10px;display:flex}.site-links .visit-site{flex:1}.site-links .secondary{color:#9fe6ff;border-color:#6fe0ff66;align-items:center;margin:14px 0 4px;text-decoration:none;display:flex}.senkaimon{z-index:40;pointer-events:all;position:fixed;inset:0;overflow:hidden}.senkaimon-light{opacity:0;background:radial-gradient(#fff 0,#f1f5ff 35%,#dfe8ff00 75%);animation:4.2s both gate-light;position:absolute;inset:0}.senkaimon-door{box-sizing:border-box;background:repeating-linear-gradient(90deg,#0000 0 62px,#c9a24a2e 62px 64px),repeating-linear-gradient(0deg,#0000 0 84px,#c9a24a2e 84px 86px),linear-gradient(#16141b,#241e2c);border:3px solid #c9a24a;justify-content:center;align-items:center;width:50.5%;display:flex;position:absolute;top:0;bottom:0;box-shadow:inset 0 0 90px #000c}.senkaimon-door span{color:#c9a24a8c;text-shadow:0 0 30px #c9a24a44;font:700 18vh Yu Mincho,Hiragino Mincho ProN,Noto Serif JP,serif}.senkaimon-door.left{animation:4.2s cubic-bezier(.6,0,.3,1) both door-left;left:0}.senkaimon-door.right{animation:4.2s cubic-bezier(.6,0,.3,1) both door-right;right:0}.senkaimon-caption{text-align:center;letter-spacing:4px;color:#e9bd92;margin:0;font-size:11px;animation:4.2s both gate-caption;position:absolute;bottom:12vh;left:0;right:0}.senkaimon-bf{opacity:0;width:44px;height:36px;margin:-18px 0 0 -22px;animation:2.6s cubic-bezier(.4,.1,.5,1) both bf-fly;position:absolute;top:0;left:0}.senkaimon-bf .bf-wing{fill:#140f1a;stroke:#8a5bc6;stroke-width:.8px;transform-origin:0 0;animation:.2s ease-in-out infinite alternate bf-flap}@keyframes door-left{0%{transform:translate(-101%)}21%,45%{transform:translate(0)}72%,to{transform:translate(-101%)}}@keyframes door-right{0%{transform:translate(101%)}21%,45%{transform:translate(0)}72%,to{transform:translate(101%)}}@keyframes gate-light{0%,40%{opacity:0}48%{opacity:1}62%{opacity:.85}to{opacity:0}}@keyframes gate-caption{0%,14%{opacity:0}24%,40%{opacity:1}48%,to{opacity:0}}@keyframes bf-fly{0%{opacity:0;transform:translate(var(--x0),var(--y0)) rotate(var(--r)) scale(var(--s))}15%,80%{opacity:1}to{opacity:0;transform:translate(var(--x1),var(--y1)) rotate(var(--r)) scale(var(--s))}}@keyframes bf-flap{0%{transform:scaleX(1)}to{transform:scaleX(.25)}}@keyframes gate-fade{0%{opacity:0}25%,50%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.senkaimon{background:#0d1f28;animation:2.1s both gate-fade}.senkaimon-door,.senkaimon-bf,.senkaimon-light{display:none}.senkaimon-caption{animation:2.1s both gate-fade}}@media (hover:none) and (pointer:coarse){.touch-stick-zone{touch-action:none;z-index:1;width:48vw;height:46vh;display:block;position:absolute;bottom:0;left:0}.touch-only{display:flex}.movement-hint{display:none}.location{min-width:0;max-width:62vw;padding:12px 16px;top:78px;bottom:auto;left:16px}.location h2{margin:6px 0;font-size:19px}.location p:not(.eyebrow){display:none}.encounter-button{padding-top:10px}.journey{text-align:right;bottom:16px;left:auto;right:14px}.journey>div{justify-content:flex-end}.journey button{width:14px}}.touch-stick{opacity:.55;pointer-events:none;background:radial-gradient(circle,#15282d55 0,#15282d99 70%);border:1.5px solid #fff5;border-radius:50%;width:112px;height:112px;margin:-56px 0 0 -56px;transition:opacity .15s;position:absolute;top:calc(100% - 96px);left:92px;box-shadow:0 0 0 6px #4fc3ff14}.touch-knob{background:radial-gradient(circle at 40% 35%,#e8f7ff,#7fcff5 55%,#2f8fbf);border-radius:50%;width:48px;height:48px;margin:-24px 0 0 -24px;position:absolute;top:50%;left:50%;box-shadow:0 2px 10px #0006}.touch-stick-zone.active .touch-stick{opacity:.95}.loading{width:min(340px,80vw);margin:0 0 18px}.loading-row{letter-spacing:2.2px;color:#e7be97;text-transform:uppercase;align-items:center;gap:10px;font-size:10px;font-weight:600;display:flex}.loading-row b{color:#f4efe2;letter-spacing:1px;margin-left:auto;font-weight:600}.loading-mark{color:#ecc39b;font-size:15px;animation:2.4s linear infinite loading-spin;display:inline-block}.loading-bar{background:#ffffff1f;border-radius:2px;height:4px;margin:10px 0 8px;position:relative;overflow:hidden}.loading-bar i{transform-origin:0;background:linear-gradient(90deg,#e9bd92,#4fc3ff);transition:transform .25s ease-out;position:absolute;inset:0}.loading-bar.building i{background:linear-gradient(90deg,#e9bd92 0%,#4fc3ff 40%,#e8f7ff 50%,#4fc3ff 60%,#e9bd92 100%) 0 0/200% 100%;animation:1.2s linear infinite loading-shimmer}.loading small{color:#b9c7c6;letter-spacing:.3px;font-size:11px}.primary.ready{animation:.6s cubic-bezier(.2,.7,.2,1) both ready-in}@keyframes loading-spin{to{transform:rotate(360deg)}}@keyframes loading-shimmer{0%{background-position:200% 0}to{background-position:0 0}}@keyframes ready-in{0%{transform:translateY(6px);box-shadow:0 0 #e9bd9200}50%{box-shadow:0 0 0 8px #e9bd9233}to{transform:none;box-shadow:0 0 0 14px #e9bd9200}}@media (prefers-reduced-motion:reduce){.loading-mark,.loading-bar.building i,.primary.ready{animation:none}}.loading.done .loading-mark{animation:none}.loading.done .loading-bar i{opacity:.7;background:#e9bd92}.quick-link{color:#e9bd92;text-underline-offset:4px;text-align:left;background:0 0;border:0;margin:14px 0 0;padding:0;font-size:12px;text-decoration:underline;display:block}.quick-link span{margin-left:6px}.top-actions .quick-open{color:#f1caa2;border-color:#e9bd9280}.quick-backdrop{z-index:30;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0d1f28b8;justify-content:center;align-items:center;padding:24px;animation:.25s both quick-fade;display:flex;position:fixed;inset:0}.quick{color:#233a42;background:#f4fbfa;border-top:3px solid #83cddd;flex-direction:column;width:min(980px,100%);height:min(100%,960px);animation:.35s cubic-bezier(.2,.7,.2,1) both quick-in;display:flex;position:relative;overflow:hidden;box-shadow:0 30px 100px #0006}.quick-head{background:#eef7f7;border-bottom:1px solid #cfe1e4;padding:26px 34px 0;position:relative}.quick-head .eyebrow{color:#b57a45}.quick-head h1{letter-spacing:0;margin:8px 0 4px;font:500 38px/1.1 Georgia,serif}.quick-role{color:#4b666e;margin:0 0 14px;font-size:14px}.quick-head .close{color:#43606a;top:14px;right:18px}.quick-head nav{scrollbar-width:none;gap:4px;display:flex;overflow-x:auto}.quick-head nav button{letter-spacing:.4px;color:#43606a;background:0 0;border:0;border-bottom:2px solid #0000;flex:none;padding:10px 12px;font-size:12px;font-weight:600}.quick-head nav button:hover{color:#1f6f86;border-bottom-color:#83cddd}.quick-body{scroll-behavior:smooth;flex:1;padding:10px 34px 34px;overflow-y:auto}.quick-body section{border-bottom:1px solid #e0ecee;padding:22px 0 8px;scroll-margin-top:8px}.quick-body h2{margin:0 0 12px;font:500 26px Georgia,serif}.quick-body h3{margin:0 0 4px;font-size:15px}.quick-body p{max-width:72ch;margin:0 0 12px;font-size:14.5px;line-height:1.65}.quick-role-block{margin:0 0 22px}.quick-meta{color:#4b666e;margin:0 0 6px!important;font-size:13px!important}.quick-tags{flex-wrap:wrap;gap:5px;margin:6px 0 8px;padding:0;list-style:none;display:flex}.quick-tags li{color:#265663;background:#e4f4f6;border:1px solid #83cddd;border-radius:10px;padding:2px 9px;font-size:11.5px}.quick-points{max-width:78ch;margin:6px 0 0;padding-left:18px;font-size:14px;line-height:1.6}.quick-points li{margin:5px 0}.quick-body a{color:#1f6f86;font-weight:600}.quick-skill-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:6px 26px;margin-bottom:10px;display:grid}.quick-skill-grid h3{letter-spacing:1.4px;text-transform:uppercase;color:#4b666e;margin-top:8px;font-size:11.5px}.quick-sites{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:22px;margin-bottom:14px;display:grid}.quick-site img{aspect-ratio:16/9;object-fit:cover;background:#dfeaec;border:1px solid #cfe1e4;width:100%;margin-bottom:10px;display:block}.quick-site p{font-size:13.5px}.quick-links{gap:16px;display:flex}.quick-contact{gap:8px;margin:0 0 10px;padding:0;font-size:15px;list-style:none;display:grid}.quick-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:24px 0 0;display:flex}.quick-foot p{color:#4b666e;max-width:52ch;margin:0;font-size:13px}.quick-foot .primary:disabled{opacity:.6}@keyframes quick-fade{0%{opacity:0}}@keyframes quick-in{0%{opacity:0;transform:translateY(14px)}}@media (width<=700px){.quick-backdrop{padding:0}.quick{border-top:0;height:100%}.quick-head{padding:20px 18px 0}.quick-head h1{font-size:30px}.quick-body{padding:6px 18px 28px}.quick-link{font-size:11px}}@media (prefers-reduced-motion:reduce){.quick-backdrop,.quick{animation:none}.quick-body{scroll-behavior:auto}}
