@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Playfair Display Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/playfair-display-cyrillic-wght-normal-5WvUvBgz.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Playfair Display Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/playfair-display-vietnamese-wght-normal-Cabi7G8-.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Playfair Display Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/playfair-display-latin-ext-wght-normal-CT1r92Rl.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Playfair Display Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/playfair-display-latin-wght-normal-BOwq7MWX.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Playfair Display Variable;font-style:italic;font-display:swap;font-weight:400 900;src:url(/assets/playfair-display-cyrillic-wght-italic-D5dBZ3aJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Playfair Display Variable;font-style:italic;font-display:swap;font-weight:400 900;src:url(/assets/playfair-display-vietnamese-wght-italic-DUEcMSM3.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Playfair Display Variable;font-style:italic;font-display:swap;font-weight:400 900;src:url(/assets/playfair-display-latin-ext-wght-italic-ze_cPdSg.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Playfair Display Variable;font-style:italic;font-display:swap;font-weight:400 900;src:url(/assets/playfair-display-latin-wght-italic-DmbndNpe.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink:#14161f;--ink-2:#4a4f5e;--muted:#7b8090;--bg:#f6f3ee;--paper:#fffdf9;--accent:#5b6cff;--accent-2:#ff8a5c;--line:#14161f1a;--glass:#ffffff94;--glass-border:#ffffffbf;--shadow:0 20px 50px -20px #14161f40, 0 2px 6px #14161f0f;--radius:20px;--serif:"Playfair Display", Georgia, "Songti SC", "Noto Serif SC", "Noto Serif CJK SC", serif;--sans:"Inter", system-ui, -apple-system, "Segoe UI", "PingFang SC", "Microsoft YaHei", "Noto Sans SC", "Noto Sans CJK SC", sans-serif;--ease:cubic-bezier(.22, 1, .36, 1);--floor:14vh;--scene-h:64vh;--scene-w:calc(var(--scene-h) * 600 / 420);--walker-x:62vw}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:auto}body{font-family:var(--sans);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;line-height:1.6;overflow-x:hidden}body.modal-open{overflow:hidden}img,svg,video{max-width:100%;display:block}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit;color:inherit}ul{list-style:none}.skip-link{z-index:100;background:var(--ink);color:#fff;border-radius:10px;padding:10px 16px;transition:top .2s;position:fixed;top:-60px;left:16px}.skip-link:focus{top:16px}.glass{background:var(--glass);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(18px)saturate(1.4);box-shadow:var(--shadow)}.glass-dark{-webkit-backdrop-filter:blur(20px)saturate(1.3);background:#1e18158c;border:1px solid #ffffff1f;box-shadow:0 30px 60px -20px #00000080}.btn{cursor:pointer;transition:transform .35s var(--ease), box-shadow .35s var(--ease), background .25s, color .25s;white-space:nowrap;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:13px 22px;font-size:.95rem;font-weight:600;line-height:1;display:inline-flex}.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(0)}.btn-primary{background:var(--ink);color:#fff;box-shadow:0 10px 24px -10px #14161f99}.btn-primary:hover{background:var(--accent);box-shadow:0 14px 30px -10px #5b6cffb3}.btn-ghost{border-color:var(--line);background:#ffffff80}.btn-light{color:var(--ink);background:#fff;box-shadow:0 10px 30px -8px #00000073}.btn-sm{padding:10px 18px;font-size:.875rem}.btn:disabled{opacity:.6;cursor:progress}.nav{z-index:50;pointer-events:none;padding:14px 16px 0;position:fixed;inset:0 0 auto}.nav-inner{pointer-events:auto;border-radius:999px;justify-content:space-between;align-items:center;gap:16px;max-width:1180px;margin:0 auto;padding:8px 8px 8px 12px;display:flex}.logo{align-items:center;gap:10px;display:flex}.logo-mark{background:var(--ink);color:#fff;width:36px;height:36px;font-family:var(--serif);border-radius:11px;place-items:center;font-size:1.2rem;font-weight:700;display:grid}.logo-text{letter-spacing:-.01em;flex-direction:column;font-weight:700;line-height:1.1;display:flex}.logo-text .dot{color:var(--accent-2)}.logo-text small{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:.7rem;font-weight:500}.nav-links{gap:4px;display:flex}.nav-links a{color:var(--ink-2);border-radius:999px;padding:8px 14px;font-size:.9rem;font-weight:500;transition:color .25s,background .25s;position:relative}.nav-links a:hover{color:var(--ink);background:#ffffffb3}.nav-links a.is-active{color:var(--ink);background:#fff;box-shadow:0 2px 8px #14161f14}.progress{background:#14161f0f;border-radius:2px;max-width:1140px;height:2px;margin:6px auto 0;overflow:hidden}.progress span{background:linear-gradient(90deg, var(--accent), var(--accent-2));transform-origin:0;height:100%;display:block;transform:scaleX(0)}.eyebrow,.kicker{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);font-size:.78rem;font-weight:600}.kicker{color:var(--accent);margin-bottom:14px}h1,h2,h3{letter-spacing:-.02em;line-height:1.08}h2{font-size:clamp(2rem,3.6vw,3.4rem);font-weight:700}h2 em,.h1-role{font-family:var(--serif);font-style:italic;font-weight:600}h2 em{color:var(--accent)}.section-intro p:last-child{color:var(--ink-2);max-width:34ch;margin-top:16px;font-size:1.05rem}.chips{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.chips li{color:#3d4bd6;background:#5b6cff1a;border-radius:999px;padding:5px 10px;font-size:.75rem;font-weight:600;list-style:none}.reveal{opacity:0;transition:opacity .9s var(--ease), transform .9s var(--ease);transform:translateY(36px)}.reveal.is-in{opacity:1;transform:none}.track{position:relative}.panel{position:relative;overflow:hidden}.floor{height:48px}.walker,.door,.scroll-hint{display:none}.panel-hero{background:linear-gradient(#f8f4ee 0%,#f3ede4 100%);flex-direction:column;padding:120px 20px 0;display:flex}.hero-copy{max-width:600px}.js .hero-copy{opacity:0}.js.is-ready .hero-copy{animation:heroIn .9s var(--ease) both}.js:not(.is-ready) .hero-copy{animation:heroIn .9s var(--ease) 3s both}@keyframes heroIn{0%{opacity:0;translate:0 18px}to{opacity:1;translate:0}}.eyebrow{border:1px solid var(--line);background:#ffffffb3;border-radius:999px;align-items:center;gap:10px;padding:6px 14px 6px 10px;display:inline-flex}.pulse{background:#2ecc8a;border-radius:50%;width:8px;height:8px;animation:2s infinite pulse;box-shadow:0 0 #2ecc8a99}@keyframes pulse{70%{box-shadow:0 0 0 10px #2ecc8a00}to{box-shadow:0 0 #2ecc8a00}}h1{flex-direction:column;margin:22px 0 18px;display:flex}.h1-name{letter-spacing:-.045em;font-size:clamp(3.4rem,8vw,7rem);font-weight:700;line-height:.92}.h1-role{color:var(--accent);margin-top:6px;font-size:clamp(1.9rem,3.6vw,3.2rem)}.lead{color:var(--ink-2);max-width:46ch;font-size:clamp(1rem,1.25vw,1.15rem)}.cta-row{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.stats{border-top:1px solid var(--line);gap:28px;margin-top:36px;padding-top:22px;display:flex}.stats dt{font-family:var(--serif);font-size:1.9rem;font-weight:700;line-height:1}.stats dd{color:var(--muted);max-width:14ch;margin-top:6px;font-size:.8rem;line-height:1.35}.hero-scene{width:100%;max-width:640px;height:auto;margin:40px auto 0}.floor-office{background:linear-gradient(#dcc7a8 0,#d3bc9b 6px,#c9b08d 100%);margin:0 -20px}.panel-journey{background:linear-gradient(#cfe0f5 0%,#e9eef4 55%,#f3ece2 100%);padding:100px 20px 0}.sky,.clouds,.skyline{pointer-events:none;position:absolute}.sky{background:radial-gradient(60% 40% at 80% 10%,#ffd6aa8c,#0000 70%);inset:0}.clouds{opacity:.8;background-repeat:repeat-x;background-size:auto 100%;height:220px;inset:4% 0 auto}.skyline{background-position-y:bottom;background-repeat:repeat-x;bottom:48px;left:0;right:0}.skyline-far{opacity:.6;background-size:auto 300px;height:300px}.skyline-near{opacity:.8;background-size:auto 240px;height:240px}.journey-intro{z-index:2;max-width:560px;margin-bottom:40px;position:relative}.stations{z-index:2;gap:64px;padding-bottom:40px;display:grid;position:relative}.station{gap:20px;display:grid;position:relative}.station-card{border-radius:var(--radius);z-index:2;max-width:460px;padding:26px;position:relative}.period{color:var(--accent-2);letter-spacing:.08em;text-transform:uppercase;font-size:.8rem;font-weight:600}.station-card h3{margin:8px 0 4px;font-size:1.5rem}.company{color:var(--ink-2);font-weight:500}.summary{color:var(--ink-2);margin:12px 0 16px;font-size:.95rem}.building{justify-self:center;height:260px}.building svg{width:auto;height:100%}.bus-stop,.tree{display:none}.floor-street{z-index:1;background:linear-gradient(#f1ede6 0 8px,#d9d3c8 8px,#e2ddd3 14px,#ddd7cc 100%);margin:0 -20px;position:relative}.panel-gallery{background:repeating-linear-gradient(90deg,#0000 0 239px,#14161f09 239px 240px),linear-gradient(#fbfaf7 0%,#f4f1eb 100%);padding:100px 20px 0}.gallery-intro{max-width:560px;margin-bottom:40px}.frames{gap:48px;padding-bottom:48px;display:grid}.frame-slot{position:relative}.spot{display:none}.frame{cursor:pointer;transition:transform .6s var(--ease), box-shadow .6s var(--ease), opacity .9s var(--ease);background:#1b1d24;border-radius:6px;padding:12px;position:relative;box-shadow:0 30px 60px -24px #14161f73,0 0 0 1px #0003}.frame-inner{aspect-ratio:16/10;background:#000;border-radius:2px;position:relative;overflow:hidden}.frame.is-live{transform:translateY(-8px)scale(1.015);box-shadow:0 40px 80px -24px #14161f8c,0 0 0 1px #0003}.frame.reveal.is-in.is-live{transform:translateY(-8px)scale(1.015)}.frame-overlay{opacity:0;transition:opacity .4s var(--ease);background:linear-gradient(#0000 50%,#0a0c148c);place-items:end start;padding:18px;display:grid;position:absolute;inset:12px}.frame-overlay .btn{transition:transform .5s var(--ease), background .25s, color .25s;transform:translateY(10px)}.frame.is-live .frame-overlay{opacity:1}.frame.is-live .frame-overlay .btn{transform:none}.plaque{align-items:center;gap:14px;margin-top:18px;display:flex}.plaque-no{font-family:var(--serif);color:var(--accent-2);font-size:1.5rem;font-weight:700}.plaque h3{font-size:1.1rem}.floor-gallery{background:linear-gradient(#e6dfd3 0,#ece6dc 30%,#f2ede5 100%);margin:0 -20px}.panel-contact{color:#f6efe7;background:radial-gradient(70% 60% at 70% 20%,#4a3a31 0%,#2c231f 60%,#221b18 100%);padding:100px 20px 0}.panel-contact .kicker,.contact-after .kicker,.panel-contact h2 em,.contact-after h2 em{color:#ffb08a}.contact-card{z-index:3;border-radius:24px;max-width:520px;padding:30px;position:relative}.contact-card h2{margin-bottom:24px;font-size:clamp(1.7rem,2.6vw,2.5rem)}.contact-form{gap:14px;display:grid}.field-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.field{color:#f6efe7bf;gap:6px;font-size:.8rem;font-weight:600;display:grid}.field input,.field textarea{color:#fff;resize:vertical;background:#ffffff0f;border:1px solid #ffffff24;border-radius:12px;width:100%;padding:12px 14px;font-size:.95rem;font-weight:400;transition:border-color .25s,background .25s}.field input::placeholder,.field textarea::placeholder{color:#f6efe766}.field input:focus,.field textarea:focus{background:#ffffff1a;border-color:#ffb08a;outline:none}.form-foot{flex-wrap:wrap;align-items:center;gap:16px;margin-top:4px;display:flex}.panel-contact .btn-primary,.contact-after .btn-primary{color:var(--ink);background:#fff}.panel-contact .btn-primary:hover,.contact-after .btn-primary:hover{background:var(--accent-2);color:#fff}.form-status{font-size:.85rem}.form-status[data-state=error]{color:#ff9b8a}.form-status[data-state=ok]{color:#9be7c4}.socials{border-top:1px solid #ffffff1a;flex-wrap:wrap;gap:8px;margin-top:24px;padding-top:22px;display:flex}.social{transition:background .25s, border-color .25s, transform .35s var(--ease);border:1px solid #ffffff24;border-radius:999px;align-items:center;gap:8px;padding:9px 14px;font-size:.85rem;font-weight:500;display:inline-flex}.social:hover{color:var(--ink);background:#fff;transform:translateY(-2px)}.cafe-scene{width:100%;max-width:640px;height:auto;margin:40px auto 0}.floor-cafe{background:linear-gradient(#5a463b 0,#4c3b31 8px,#3f3129 100%);margin:0 -20px}.footer-note{color:#f6efe780;text-align:center;padding:20px 0 28px;font-size:.78rem}.type{transform-box:view-box;animation:.36s ease-in-out infinite alternate type}.type-b{animation-delay:-.18s}@keyframes type{to{transform:rotate(-5deg)}}.cursor{animation:1s step-end infinite blink}@keyframes blink{50%{opacity:0}}.code-typing{transform-box:fill-box;transform-origin:0;animation:2.6s steps(12,end) infinite typing}@keyframes typing{0%{transform:scaleX(0)}80%,to{transform:scaleX(1)}}.screen-glow{animation:3s ease-in-out infinite glow}@keyframes glow{50%{opacity:.55}}.steam path{opacity:0;animation:2.8s ease-in-out infinite steam}.steam .s2{animation-delay:-1.4s}@keyframes steam{0%{opacity:0;transform:translateY(6px)}40%{opacity:.9}to{opacity:0;transform:translateY(-10px)}}.cloud{animation:30s linear infinite alternate drift}.cloud-b{animation-duration:40s}@keyframes drift{to{transform:translate(40px)}}.lamp-glow{animation:5s ease-in-out infinite lamp}@keyframes lamp{50%{opacity:.75}}.city-lights rect{animation:3.4s step-end infinite blink}.city-lights rect:nth-child(3n){animation-delay:-1.2s}.city-lights rect:nth-child(2n){animation-duration:5s}.biz-card{transform-box:view-box;transform-origin:314px 276px;animation:3s ease-in-out infinite offer}@keyframes offer{50%{transform:translateY(-3px)rotate(-2deg)}}.seated{transition:opacity .15s linear}.modal{z-index:80;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal[hidden]{display:none}.modal-backdrop{-webkit-backdrop-filter:blur(8px);opacity:0;background:#0e0f1480;transition:opacity .3s;position:absolute;inset:0}.modal-card{background:var(--paper);width:min(980px,100%);max-height:calc(100vh - 40px);box-shadow:var(--shadow);opacity:0;transition:opacity .35s var(--ease), transform .5s var(--ease);border-radius:24px;grid-template-columns:1.15fr 1fr;display:grid;position:relative;overflow:auto;transform:translateY(30px)scale(.98)}.modal.is-open .modal-backdrop{opacity:1}.modal.is-open .modal-card{opacity:1;transform:none}.modal-media{background:#111;min-height:340px;position:relative}.modal-body{padding:36px 32px}.modal-body h3{font-family:var(--serif);margin-bottom:16px;font-size:2.2rem}.modal-close{z-index:3;border:1px solid var(--line);cursor:pointer;width:40px;height:40px;transition:transform .3s var(--ease), background .2s;background:#fff;border-radius:50%;font-size:1.5rem;line-height:1;position:absolute;top:14px;right:14px}.modal-close:hover{background:var(--bg);transform:rotate(90deg)}.case{gap:16px;margin-top:24px;display:grid}.case dt{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:.72rem;font-weight:700}.case dd{color:var(--ink-2);margin-top:4px}@media (width>=640px){.frames{grid-template-columns:1fr 1fr}.station{grid-template-columns:1fr auto;align-items:end}}@media (width<=720px){.nav-links,.logo-text small{display:none}.modal-card{grid-template-columns:1fr}.modal-media{min-height:220px}.modal-body{padding:28px 22px}.field-row{grid-template-columns:1fr}.stats{gap:18px}}.h-mode body{overflow-x:hidden}.h-mode .journey{height:100vh;position:relative;overflow:hidden}.h-mode .track{will-change:transform;width:max-content;height:100%;display:flex}.h-mode .panel{flex:none;height:100%;padding:0}.h-mode .floor{height:var(--floor);z-index:1;margin:0;position:absolute;bottom:0;left:0;right:0}.h-mode .scene{z-index:2;max-width:none;bottom:var(--floor);height:var(--scene-h);width:var(--scene-w);left:calc(var(--walker-x) - var(--scene-w) * .3833);margin:0;position:absolute}.h-mode .panel-hero{width:100vw;display:block}.h-mode .hero-copy{z-index:3;left:max(6vw,32px);top:calc((100vh - var(--floor) + 76px) / 2);width:min(36vw,560px);position:absolute;transform:translateY(-50%)}.h-mode .stats{margin-top:26px;padding-top:18px}.h-mode .cta-row{margin-top:22px}.h-mode .h1-name{font-size:clamp(3.2rem,min(6.5vw,11vh),7.5rem)}.h-mode .h1-role{font-size:clamp(1.7rem,min(3.2vw,5.4vh),3.2rem)}.h-mode .door{display:block}.door{z-index:1;bottom:var(--floor);background:linear-gradient(120deg,#bed5f099,#ffffff40 60%,#bed5f080);border:10px solid #fff;border-bottom:none;border-radius:6px 6px 0 0;width:8vw;min-width:90px;height:58vh;position:absolute;box-shadow:inset 0 0 0 2px #14161f0f,0 10px 30px -10px #14161f33}.door span{letter-spacing:.2em;color:#fff;background:#2ecc8a;border-radius:4px;padding:5px 10px;font-size:.65rem;font-weight:700;position:absolute;top:-40px;left:50%;transform:translate(-50%)}.door-exit{right:3vw}.door-gallery{background:linear-gradient(#2a2d36,#1b1d24);border-color:#1b1d24;left:2vw}.door-gallery span{background:var(--ink)}.scroll-hint{z-index:4;left:50%;bottom:calc(var(--floor) * .5);letter-spacing:.1em;text-transform:uppercase;color:#6d5a43;align-items:center;gap:10px;font-size:.78rem;font-weight:600;position:absolute;transform:translate(-50%,50%)}.h-mode .scroll-hint{display:flex}.mouse{border:2px solid;border-radius:12px;width:20px;height:30px;position:relative}.mouse:after{content:"";background:currentColor;border-radius:2px;width:3px;height:6px;margin-left:-1.5px;animation:1.6s ease-in-out infinite wheel;position:absolute;top:6px;left:50%}@keyframes wheel{60%{opacity:0;transform:translateY(7px)}to{opacity:0}}.h-mode .floor-office{background-blend-mode:multiply;background:linear-gradient(#dcc7a8 0,#d3bc9b 8px,#c9b08d 100%),repeating-linear-gradient(90deg,#0000 0 140px,#0000000d 140px 142px)}.h-mode .panel-journey{display:flex}.h-mode .clouds{height:22vh;top:10vh}.h-mode .skyline{bottom:var(--floor)}.h-mode .skyline-far{background-size:auto 52vh;height:52vh}.h-mode .skyline-near{background-size:auto 38vh;height:38vh}.h-mode .journey-intro{flex:none;align-self:center;width:46vw;margin:0 0 12vh;padding:0 4vw 0 8vw}.h-mode .stations{gap:0;height:100%;padding:0;display:flex}.h-mode .station{flex:none;width:72vw;height:100%;display:block}.h-mode .station:last-child{width:82vw}.h-mode .station-card{width:min(32vw,440px);position:absolute;top:15vh;left:2vw}.h-mode .building{bottom:var(--floor);z-index:1;height:68vh;position:absolute;left:40vw}.h-mode .bus-stop,.h-mode .tree{display:block}.bus-stop{z-index:1;bottom:var(--floor);width:4px;height:30vh;position:absolute;left:35vw}.bus-pole{z-index:-1;background:#3a3f4b;border-radius:2px;position:absolute;inset:0}.bus-sign{background:var(--accent);color:#fff;width:5.4vh;min-width:44px;height:5.4vh;min-height:44px;box-shadow:0 0 0 4px #fff, var(--shadow);border-radius:50%;align-content:center;place-items:center;font-size:1rem;font-weight:700;line-height:1;display:grid;position:absolute;top:0;left:50%;transform:translate(-50%,-60%)}.bus-sign small{letter-spacing:.06em;opacity:.85;white-space:nowrap;max-width:88%;margin-bottom:2px;font-size:.42rem;overflow:hidden}.tree{z-index:1;bottom:var(--floor);background:#8a6a55;border-radius:3px;width:6px;height:16vh;position:absolute;left:26vw}.tree span{background:radial-gradient(circle at 35% 30%,#9fd0a9,#6aa57c 60%,#5a9470);border-radius:50% 50% 46% 46%;width:12vh;height:14vh;position:absolute;bottom:70%;left:50%;transform:translate(-50%)}.h-mode .floor-street{background-blend-mode:multiply;background:linear-gradient(#f4f0ea 0 1.2vh,#d6cfc3 1.2vh,#ddd7cc 2vh,#e2ddd3 2vh),repeating-linear-gradient(90deg,#0000 0 120px,#0000000f 120px 122px)}.h-mode .panel-gallery{padding-left:0;display:flex}.h-mode .gallery-intro{z-index:2;flex:none;align-self:center;width:46vw;margin:0 0 12vh;padding:0 4vw 0 16vw;position:relative}.h-mode .frames{gap:0;height:100%;padding:0 12vw 0 0;display:flex}.h-mode .frame-slot{flex:none;width:40vw;height:100%;position:relative}.h-mode .frame{width:30vw;position:absolute;top:15vh;left:5vw}.h-mode .plaque{margin:0;position:absolute;top:calc(15vh + 18.75vw + 42px);left:5vw}.h-mode .spot{pointer-events:none;background:radial-gradient(40% 55% at 50% 0,#ffecc899,#0000 70%);width:40vw;height:100%;display:block;position:absolute;top:0;left:0}.h-mode .spot:before{content:"";background:#1b1d24;border-radius:0 0 10px 10px;width:46px;height:12px;margin-left:-23px;position:absolute;top:0;left:50%}.h-mode .floor-gallery{background:linear-gradient(#e2dacd 0,#ebe5da 25%,#f3eee6 100%)}.h-mode .floor-gallery:after{content:"";background:linear-gradient(#ffffff80,#0000 50%);position:absolute;inset:0}.h-mode .panel-contact{width:100vw}.h-mode .contact-card{width:min(38vw,520px);max-height:calc(100vh - 120px);position:absolute;top:52%;left:max(6vw,32px);overflow:auto;transform:translateY(-50%)}.h-mode .contact-card.reveal:not(.is-in){transform:translateY(calc(36px - 50%))}.h-mode .contact-card h2{font-size:clamp(1.6rem,2.3vw,2.4rem)}.h-mode .footer-note{z-index:3;padding:0 0 calc(var(--floor) * .4);text-align:right;position:absolute;bottom:0;right:4vw}@media (height<=760px){.h-mode .contact-card{padding:22px 24px}.h-mode .contact-card h2{margin-bottom:14px}.h-mode .contact-form textarea{height:80px;min-height:70px}.h-mode .socials{margin-top:14px;padding-top:14px}.h-mode .stats{margin-top:24px;padding-top:16px}.h-mode .cta-row{margin-top:20px}}.h-mode .walker{z-index:6;pointer-events:none;opacity:0;bottom:var(--floor);height:calc(var(--scene-h) * 250 / 420);width:calc(var(--scene-h) * 140 / 420);left:calc(var(--walker-x) - var(--scene-h) * 72 / 420);transform:translateY(var(--rise,0px));display:block;position:absolute}.walker-shadow{z-index:-1;background:radial-gradient(closest-side,#14161f40,#0000);border-radius:50%;width:60%;height:1.4vh;position:absolute;bottom:-.6vh;left:50%;transform:translate(-50%)}.nav.is-dark .nav-inner{background:#1e181599;border-color:#ffffff1f}.nav.is-dark .logo-text small{color:#f6efe780}.nav.is-dark .nav-links a:hover{color:#fff;background:#ffffff14}.nav.is-dark .nav-links a.is-active,.nav.is-dark .logo-mark,.nav.is-dark .btn-primary{color:var(--ink);background:#fff}.nav-inner,.nav-links a,.logo-text{transition:background .4s,color .4s,border-color .4s}.nav-actions{align-items:center;gap:8px;display:flex}.lang-menu{position:relative}.lang-toggle{border:1px solid var(--line);height:36px;color:var(--ink);letter-spacing:.04em;cursor:pointer;background:#fff9;border-radius:999px;align-items:center;gap:6px;padding:0 10px 0 11px;font-size:.78rem;font-weight:700;transition:background .25s,border-color .25s,color .25s;display:inline-flex}.lang-toggle:hover{background:#fff;border-color:#14161f33}.lang-toggle svg{width:16px;height:16px}.lang-toggle .chev{width:14px;height:14px;transition:transform .25s var(--ease)}.lang-menu.is-open .chev{transform:rotate(180deg)}.lang-list{z-index:60;border:1px solid var(--line);min-width:176px;box-shadow:var(--shadow);opacity:0;visibility:hidden;transition:opacity .2s, transform .25s var(--ease), visibility .2s;background:#fff;border-radius:16px;padding:6px;position:absolute;top:calc(100% + 8px);right:0;transform:translateY(-6px)}.lang-menu.is-open .lang-list{opacity:1;visibility:visible;transform:none}.lang-list button{width:100%;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:9px 12px;font-size:.9rem;font-weight:500;display:flex}.lang-list button span{color:var(--muted);letter-spacing:.06em;font-size:.7rem;font-weight:700}.lang-list button:hover,.lang-list button:focus-visible{background:var(--bg);outline:none}.lang-list button[aria-checked=true]{color:#3d4bd6;background:#5b6cff1a;font-weight:700}.nav.is-dark .lang-toggle{color:#f6efe7;background:#ffffff14;border-color:#ffffff29}.nav.is-dark .lang-toggle:hover{background:#ffffff29}@media (width<=380px){.logo-text{display:none}}.hint-swipe,.cafe-caption{display:none}html.m-mode{--floor:12vh;--scene-h:min(38vh, calc(112vw * 420 / 600));--walker-x:46vw}html.m-mode,html.m-mode body{overscroll-behavior:none;height:100%;overflow:hidden}.m-mode .journey{touch-action:none;-webkit-user-select:none;user-select:none;height:100vh;position:fixed;inset:0}@supports (height:1dvh){html.m-mode{--scene-h:min(38dvh, calc(112vw * 420 / 600))}.m-mode .journey{height:100dvh}}.m-mode .door{display:none}.m-mode .hero-copy{width:auto;top:84px;left:20px;right:20px;transform:none}.m-mode .eyebrow{padding:5px 12px 5px 9px;font-size:.68rem}.m-mode .hero-copy h1{margin:14px 0 10px}.m-mode .h1-name{font-size:clamp(2.8rem,14vw,4.2rem)}.m-mode .h1-role{margin-top:2px;font-size:clamp(1.5rem,7.4vw,2.3rem)}.m-mode .lead{font-size:.95rem}.m-mode .cta-row{gap:10px;margin-top:18px}.m-mode .cta-row .btn{padding:12px 18px}.m-mode .stats{display:none}.m-mode .scroll-hint{letter-spacing:.08em;white-space:nowrap;font-size:.68rem}.m-mode .hint-scroll{display:none}.m-mode .hint-swipe{display:inline}.m-mode .mouse{width:16px;height:24px}@media (height<=720px){.m-mode .eyebrow{display:none}.m-mode .hero-copy{top:76px}.m-mode .lead{font-size:.88rem;line-height:1.5}}.m-mode .clouds{height:14vh;top:9vh}.m-mode .skyline-far{background-size:auto 40vh;height:40vh}.m-mode .skyline-near{background-size:auto 28vh;height:28vh}.m-mode .journey-intro{align-self:flex-start;width:100vw;margin:96px 0 0;padding:0 24px}.m-mode .section-intro p:last-child{font-size:.95rem}.m-mode .station-card{width:calc(100vw - 32px);padding:20px;top:84px;left:16px}.m-mode .station-card h3{font-size:1.25rem}.m-mode .summary{margin:8px 0 12px;font-size:.88rem}.m-mode .bus-stop{height:19vh;left:30vw}.m-mode .bus-sign{width:40px;min-width:0;height:40px;min-height:0;font-size:.85rem}.m-mode .tree{height:10vh;left:8vw}.m-mode .tree span{width:9vh;height:10vh}.m-mode .gallery-intro{align-self:flex-start;width:100vw;margin:96px 0 0;padding:0 24px 0 28px}.m-mode .frames{padding:0}.m-mode .frame-slot{width:100vw}.m-mode .frame{width:86vw;padding:10px;top:96px;left:7vw}.m-mode .frame-overlay{inset:10px}.m-mode .plaque{top:calc(53.75vw + 117.5px);left:7vw}.m-mode .spot{background:radial-gradient(60% 45% at 50% 0,#ffecc899,#0000 70%);width:100vw}.m-mode .cafe-caption{z-index:3;color:#f6efe7;opacity:0;display:block;position:absolute;top:92px;left:24px;right:24px}.cafe-caption h2{margin:4px 0 10px;font-size:clamp(2.1rem,10vw,2.8rem)}.cafe-caption p:not(.kicker){color:#f6efe7bf;max-width:30ch}.cafe-caption .btn{margin-top:18px}.stage-dock{z-index:45;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));border-radius:24px;flex-direction:column;gap:6px;padding:6px;display:flex;position:fixed}.stage-dock[hidden]{display:none}.dock-tabs{grid-template-columns:repeat(5,1fr);gap:1px;display:grid}.dock-tabs button{cursor:pointer;min-width:0;color:var(--ink-2);white-space:nowrap;background:0 0;border:0;border-radius:14px;flex-direction:column;align-items:center;gap:5px;padding:7px 1px 6px;font-size:.68rem;font-weight:600;transition:background .3s,color .3s;display:flex}.dock-tabs button>span:first-child{text-overflow:ellipsis;max-width:100%;overflow:hidden}.dock-tabs button.is-active{color:var(--ink);background:#14161f14}.dock-dots{gap:3px;height:4px;display:flex}.dock-dots b{opacity:.3;width:4px;height:4px;transition:width .35s var(--ease), opacity .35s, background .35s;background:currentColor;border-radius:2px}.dock-tabs button.is-active .dock-dots b{opacity:.45}.dock-dots b.is-current{background:var(--accent);width:14px;opacity:1!important}.dock-row{gap:6px;display:flex}.dock-arrow,.dock-next{cursor:pointer;border:0;border-radius:999px;height:46px;transition:opacity .25s,transform .2s,background .3s}.dock-arrow:active,.dock-next:active{transform:scale(.96)}.dock-arrow{width:46px;color:var(--ink);background:#fff;flex:none;place-items:center;font-size:1.5rem;line-height:1;display:grid;box-shadow:0 2px 8px #14161f1f}.dock-arrow:disabled{opacity:.35;cursor:default;transform:none}.dock-next{background:var(--ink);color:#fff;flex:1;justify-content:space-between;align-items:center;gap:10px;min-width:0;padding:0 18px;font-size:.9rem;font-weight:600;display:flex}.dock-next-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dock-next-icon{flex:none;font-size:1.05rem}@keyframes nudge{0%,to{box-shadow:0 0 #5b6cff8c}60%{box-shadow:0 0 0 12px #5b6cff00}}.coach{opacity:0;background:var(--ink);color:#fff;width:max-content;max-width:calc(100vw - 40px);transition:opacity .3s, transform .4s var(--ease);pointer-events:none;border-radius:16px;align-items:center;gap:12px;padding:10px 16px 10px 12px;font-size:.8rem;font-weight:500;line-height:1.35;display:flex;position:absolute;bottom:calc(100% + 12px);left:50%;transform:translate(-50%,8px);box-shadow:0 12px 30px -10px #14161f80}.coach[hidden]{display:none}.coach.is-on{opacity:1;transform:translate(-50%)}.coach:after{content:"";border:6px solid #0000;border-top-color:var(--ink);margin-left:-6px;position:absolute;top:100%;left:50%}.coach-gesture{flex:none;width:44px;height:28px;position:relative}.coach-gesture i{font-size:1.35rem;font-style:normal;line-height:1;animation:1.6s ease-in-out infinite swipe;position:absolute;top:0;left:18px}@keyframes swipe{0%,12%{transform:translateY(-4px)}30%{transform:translateY(9px)}42%,to{transform:translateY(-4px)}}html.m-mode{--floor:calc(124px + env(safe-area-inset-bottom))}.m-mode .scroll-hint{display:none}@media (height<=760px){html.m-mode{--scene-h:min(30vh, calc(94vw * 420 / 600))}.m-mode .hero-copy .cta-row{display:none}.m-mode .building{height:30vh}}.sheet{z-index:70;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet[hidden]{display:none}.sheet-backdrop{opacity:0;background:#0e0c0a8c;transition:opacity .3s;position:absolute;inset:0}.sheet-panel{overscroll-behavior:contain;width:100%;max-height:90%;padding:8px 8px calc(8px + env(safe-area-inset-bottom));transition:transform .45s var(--ease);background:#221b18;border-radius:24px 24px 0 0;position:relative;overflow-y:auto;transform:translateY(100%);box-shadow:0 -20px 50px #0006}.sheet.is-open .sheet-backdrop{opacity:1}.sheet.is-open .sheet-panel{transform:none}.sheet-close{z-index:5;color:#fff;cursor:pointer;background:#ffffff14;border:1px solid #fff3;border-radius:50%;width:36px;height:36px;font-size:1.4rem;line-height:1;position:absolute;top:18px;right:16px}.sheet .contact-card{color:#f6efe7;width:auto;max-height:none;box-shadow:none;-webkit-backdrop-filter:none;background:0 0;border:0;padding:20px 16px 8px;position:relative;top:auto;left:auto;overflow:visible;transform:none}.sheet .contact-card.reveal,.h-mode .sheet .contact-card.reveal:not(.is-in){opacity:1;transform:none}.sheet .contact-card h2{padding-right:40px;font-size:clamp(1.5rem,6.5vw,2rem)}.sheet .kicker,.sheet h2 em{color:#ffb08a}.sheet .btn-primary{color:var(--ink);background:#fff}.sheet .footer-note{text-align:center;color:#f6efe799;padding:14px 0 4px;position:static}.m-mode .cafe-caption{top:88px}.panel-hobbies{background:radial-gradient(45% 35% at 70% 18%,#ffd6a0bf,#0000 70%),linear-gradient(#fbe6d3 0%,#f6d2b9 60%,#efc2a3 100%);padding:100px 20px 0}.hobbies-intro{z-index:2;max-width:560px;margin-bottom:40px;position:relative}.hobbies{z-index:2;gap:64px;padding-bottom:40px;display:grid;position:relative}.hobby .period{color:var(--accent)}.hobby-art{height:240px}.floor-hobbies{background-blend-mode:multiply;background:linear-gradient(#b98e6b 0,#ad8360 8px,#a07656 100%),repeating-linear-gradient(90deg,#0000 0 160px,#0000000f 160px 162px);margin:0 -20px}.h-mode .panel-hobbies{display:flex}.h-mode .hobbies-intro{flex:none;align-self:center;width:46vw;margin:0 0 12vh;padding:0 4vw 0 12vw}.h-mode .hobbies{gap:0;height:100%;padding:0;display:flex}.m-mode .hobbies-intro{align-self:flex-start;width:100vw;margin:96px 0 0;padding:0 24px 0 28px}.m-mode .hobby-art{height:min(36vh,78.75vw);left:calc(50vw - min(36vh,78.75vw)/1.875)}.note{opacity:0;animation:3.2s ease-in-out infinite note-float}.note.n2{animation-delay:-1.1s}.note.n3{animation-delay:-2.2s}@keyframes note-float{0%{opacity:0;transform:translateY(10px)}20%{opacity:1}to{opacity:0;transform:translate(14px,-50px)rotate(14deg)}}.strings line{animation:90ms linear infinite alternate string-buzz}@keyframes string-buzz{to{transform:translate(.6px)}}.speaker{transform-box:fill-box;transform-origin:50%;animation:.48s ease-in-out infinite alternate thump}@keyframes thump{to{transform:scale(1.08)}}.rgb{animation:4s linear infinite rgb}@keyframes rgb{to{filter:hue-rotate(360deg)}}.clash{opacity:0;transform-box:fill-box;transform-origin:50%;animation:4s ease-out infinite clash}@keyframes clash{0%,40%{opacity:0;transform:scale(.3)}47%{opacity:1;transform:scale(1.5)}60%,to{opacity:0;transform:scale(2)}}.hp{transform-box:fill-box;transform-origin:0;animation:4s ease-in-out infinite hp}@keyframes hp{0%,40%{transform:scaleX(1)}55%{transform:scaleX(.55)}to{transform:scaleX(1)}}.route{stroke-dasharray:5 6;animation:1.1s linear infinite dash}@keyframes dash{to{stroke-dashoffset:-22px}}.pulse-ring{transform-box:fill-box;transform-origin:50%;animation:1.8s ease-out infinite ring}@keyframes ring{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(3.4)}}.globe-land{animation:9s linear infinite spin-globe}@keyframes spin-globe{to{transform:translate(-120px)}}.reel{transform-box:fill-box;transform-origin:50%;animation:2.4s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.beam{animation:.16s steps(2,end) infinite beam}@keyframes beam{0%{opacity:.5}to{opacity:.36}}.grain{animation:.12s steps(2,end) infinite grain}@keyframes grain{0%{opacity:.06}to{opacity:.02}}.twinkle{animation:2.4s step-end infinite blink}.twinkle.t2{animation-delay:-1.2s}.pop{transform-box:fill-box;animation:1.8s ease-out infinite pop}.pop.p2{animation-delay:-.6s}.pop.p3{animation-delay:-1.2s}@keyframes pop{0%,60%{transform:translateY(0)}72%{transform:translateY(-16px)}to{transform:translateY(0)}}.clap{transform-box:view-box;transform-origin:262px 270px;animation:2.6s ease-in-out infinite clap}@keyframes clap{0%,70%,to{transform:rotate(-24deg)}80%{transform:rotate(0)}}.play-scope:not(.is-playing) *{animation-play-state:paused!important}@keyframes coin{0%,55%,to{transform:scaleX(1)}65%{transform:scaleX(.05)}75%{transform:scaleX(1)}85%{transform:scaleX(.05)}95%{transform:scaleX(1)}}.blink-light{animation:1.4s step-end infinite blink}.product-glow{animation:2.2s ease-in-out infinite glow}.scanline{animation:1.5s ease-in-out infinite alternate scan}@keyframes scan{to{transform:translateY(54px)}}.pay-pop{opacity:0;transform-box:fill-box;transform-origin:50% 100%;animation:3.4s ease-out infinite paypop}@keyframes paypop{0%,50%{opacity:0;transform:translateY(8px)scale(.6)}60%,88%{opacity:1;transform:none}to{opacity:0;transform:translateY(-6px)}}.shimmer{animation:3.2s ease-in-out infinite shimmer}@keyframes shimmer{0%{transform:skew(-20deg)translate(-40px)}60%,to{transform:skew(-20deg)translate(260px)}}.sparkle{transform-box:fill-box;transform-origin:50%;animation:2.2s ease-in-out infinite sparkle}.sparkle.s2{animation-delay:-.8s}.sparkle.s3{animation-delay:-1.5s}@keyframes sparkle{0%,to{opacity:0;transform:scale(0)}50%{opacity:1;transform:scale(1)}}.box-move{animation:6s linear infinite boxmove}.box-move.b2{animation-delay:-2s}.box-move.b3{animation-delay:-4s}@keyframes boxmove{0%{transform:translate(-50px)}to{transform:translate(230px)}}.hue{animation:6s linear infinite rgb}.actor{z-index:3;justify-self:center;width:140px;height:250px;position:relative}.h-mode .actor{bottom:var(--floor);pointer-events:none;opacity:0;height:calc(var(--scene-h) * 250 / 420);width:calc(var(--scene-h) * 140 / 420);left:calc(var(--walker-x) - var(--scene-h) * 72 / 420);position:absolute}.walker{transition:none}.h-mode .station,.h-mode .station:last-child{width:92vw}.h-mode .building{height:62vh;left:68vw}.h-mode .bus-stop{left:36vw}.h-mode .tree{left:27vw}.m-mode .station,.m-mode .station:last-child{width:100vw}.m-mode .building{height:36vh;left:58vw}.m-mode .bus-stop{left:22vw}.m-mode .tree{left:4vw}.swipe{animation:3s ease-in-out infinite swipe}.pos-ok{opacity:0;animation:3s step-end infinite pos-ok}@keyframes pos-ok{0%,32%{opacity:0}34%,88%{opacity:1}90%,to{opacity:0}}.receipt,.receipt-lines{transform-box:fill-box;transform-origin:50% 100%;animation:3s ease-out infinite receipt}@keyframes receipt{0%,36%{transform:scaleY(0)}70%,88%{transform:scaleY(1)}92%,to{transform:scaleY(0)}}.beam-scan{animation:3.2s ease-in-out infinite beam-scan}@keyframes beam-scan{0%,to{opacity:.08}20%,45%{opacity:.32}}.scan-ok{opacity:0;animation:3.2s step-end infinite pos-ok}.paid-pop{opacity:0;transform-box:fill-box;transform-origin:30% 100%;animation:3.2s ease-out infinite paypop}.explain{transform-box:fill-box;transform-origin:0 100%;animation:1.6s ease-in-out infinite alternate explain}@keyframes explain{0%{transform:rotate(-8deg)}to{transform:rotate(14deg)}}.loan-progress{transform-box:fill-box;transform-origin:0;animation:4.5s ease-in-out infinite loan}@keyframes loan{0%{transform:scaleX(0)}66%,to{transform:scaleX(1)}}.loan-ok{opacity:0;animation:4.5s step-end infinite loan-ok}@keyframes loan-ok{0%,66%{opacity:0}68%,to{opacity:1}}.step{opacity:0;animation:4.5s ease-in-out infinite step}.step.s2{animation-delay:-3s}.step.s3{animation-delay:-1.5s}@keyframes step{0%{opacity:0;transform:translateY(4px)}4%,29%{opacity:1;transform:none}33%,to{opacity:0;transform:translateY(-4px)}}.phone-turn{transform-box:fill-box;transform-origin:50%;animation:3.4s ease-in-out infinite coin}.halo{transform-box:fill-box;transform-origin:50%;animation:2.4s ease-in-out infinite halo}@keyframes halo{50%{opacity:.55;transform:scale(1.18)}}.halo-ring{transform-box:fill-box;transform-origin:50%;animation:3s ease-in-out infinite halo-ring}@keyframes halo-ring{50%{opacity:.4;transform:scaleX(.4)}}.tap{transform-box:fill-box;transform-origin:0 0;animation:.26s ease-in-out infinite alternate tap}.tap.t2{animation-delay:-.13s}@keyframes tap{to{transform:rotate(-6deg)}}.order-pop{opacity:0;animation:2.7s ease-out infinite order}.order-pop.o2{animation-delay:-.9s}.order-pop.o3{animation-delay:-1.8s}@keyframes order{0%{opacity:0;transform:translateY(14px)scale(.7)}15%{opacity:1;transform:none}75%{opacity:1;transform:translateY(-26px)}to{opacity:0;transform:translateY(-36px)}}.strum{transform-box:fill-box;transform-origin:0 0;animation:.42s ease-in-out infinite alternate strum}@keyframes strum{0%{transform:rotate(-12deg)}to{transform:rotate(8deg)}}.screen-light{animation:1.2s steps(3,end) infinite screen}@keyframes screen{33%{opacity:.55}66%{opacity:.85}}.flash{opacity:0;transform-box:fill-box;transform-origin:50%;animation:2.6s ease-out infinite flash}@keyframes flash{0%,82%{opacity:0;transform:scale(.4)}86%{opacity:1;transform:scale(1.2)}to{opacity:0;transform:scale(1.8)}}.camera{animation:2.6s ease-out infinite snap}@keyframes snap{0%,82%,to{transform:none}86%{transform:translate(-1.5px)}}.munch{transform-box:fill-box;transform-origin:0 0;animation:2.4s ease-in-out infinite munch}@keyframes munch{0%,40%,to{transform:rotate(0)}58%,74%{transform:rotate(-70deg)}}.kernel{opacity:0;animation:2.4s ease-in-out infinite kernel}@keyframes kernel{0%,48%{opacity:0;transform:translate(0)}56%{opacity:1}70%{opacity:1;transform:translate(-24px,-64px)}73%,to{opacity:0;transform:translate(-24px,-64px)}}.startle{transform-box:view-box;transform-origin:66px 190px;animation:4s ease-in-out infinite startle}@keyframes startle{0%,60%{transform:none}68%{transform:rotate(-8deg)translate(-3px)}82%{transform:rotate(-2deg)}92%,to{transform:none}}.pop3d{transform-box:fill-box;transform-origin:50%;animation:4s cubic-bezier(.5,0,.75,0) infinite pop3d}@keyframes pop3d{0%{opacity:0;transform:translate(0)scale(.3)}10%{opacity:1}66%{opacity:1;transform:translate(-70px,70px)scale(2.6)}74%,to{opacity:0;transform:translate(-90px,90px)scale(3.2)}}.pop-r{animation:4s cubic-bezier(.5,0,.75,0) infinite pop-r}.pop-c{animation:4s cubic-bezier(.5,0,.75,0) infinite pop-c}@keyframes pop-r{0%{transform:translate(-1px)}66%,to{transform:translate(-6px)}}@keyframes pop-c{0%{transform:translate(1px)}66%,to{transform:translate(6px)}}.wave{animation:3s linear infinite wave}.wave.w2{animation-duration:4.4s;animation-direction:reverse}@keyframes wave{to{transform:translate(40px)}}.foam{animation:3.2s ease-in-out infinite alternate foam}@keyframes foam{to{opacity:.6;transform:translateY(3px)}}.palm{transform-box:view-box;transform-origin:76px 150px;animation:3.4s ease-in-out infinite alternate palm}@keyframes palm{0%{transform:rotate(-4deg)}to{transform:rotate(5deg)}}.gull{transform-box:fill-box;transform-origin:50%;animation:.6s ease-in-out infinite alternate gull}.gull.g2{animation-delay:-.3s}@keyframes gull{to{transform:scaleY(.4)translateY(4px)}}.sun-glow{transform-box:fill-box;transform-origin:50%;animation:3s ease-in-out infinite halo}.m-mode .hero-copy .lead{max-width:34ch}@media (height<=860px){.m-mode .hero-copy .eyebrow{display:none}}.nav-links a{white-space:nowrap}@media (width<=1100px){.nav-links a{padding:8px 10px}.logo-text small{display:none}}.glass-sweep{animation:6s ease-in-out infinite glass-sweep}@keyframes glass-sweep{0%{transform:translate(-40px)}60%,to{transform:translate(300px)}}.win{animation:5s step-end infinite win}.win.w1{animation-delay:-1.7s}.win.w2{animation-delay:-3.3s}@keyframes win{0%,55%{opacity:1}56%,to{opacity:.15}}.atm{animation:1.6s step-end infinite blink}.atm.a2{animation-delay:-.8s}.fin-progress{transform-box:fill-box;transform-origin:0;animation:4s ease-in-out infinite loan}.fin-ok{opacity:0;transform-box:fill-box;transform-origin:50%;animation:4s ease-out infinite fin-ok}@keyframes fin-ok{0%,64%{opacity:0;transform:scale(.4)}72%,94%{opacity:1;transform:none}to{opacity:0}}.coin-drop{opacity:0;animation:4s cubic-bezier(.5,0,.8,.4) infinite coin-drop}.coin-drop.c2{animation-delay:.35s}@keyframes coin-drop{0%,66%{opacity:0;transform:translateY(-60px)}70%{opacity:1}80%,94%{opacity:1;transform:none}to{opacity:0;transform:none}}.stamp{opacity:0;transform-box:fill-box;transform-origin:50%;animation:4s ease-out infinite stamp}@keyframes stamp{0%,74%{opacity:0;transform:scale(1.8)rotate(-20deg)}80%,94%{opacity:1;transform:rotate(-12deg)}to{opacity:0;transform:rotate(-12deg)}}:lang(zh) h2 em,:lang(zh) .h1-role,:lang(zh) .cafe-caption h2 em{font-style:normal}:lang(zh) .eyebrow,:lang(zh) .kicker,:lang(zh) .case dt{letter-spacing:.04em}:root{--sans:"Inter Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--serif:"Playfair Display Variable", Georgia, serif}html:not(.h-mode){scroll-padding-top:100px}.scene-wrapper{display:contents}.hero-copy{opacity:1}.lang-list{opacity:1;visibility:visible;display:block;transform:none}.lang-list button{width:100%}.frame{font:inherit;text-align:left;cursor:pointer;color:inherit}.frame:hover,.frame:focus-visible{transform:translateY(-8px)scale(1.015)}.frame:hover .frame-overlay,.frame:focus-visible .frame-overlay{opacity:1}.frame:hover .frame-overlay .btn,.frame:focus-visible .frame-overlay .btn{transform:none}.social>div{width:18px;height:18px}.social svg{width:100%;height:100%}.portfolio-dialog{color:var(--ink);background:0 0;border:0;border-radius:24px;width:min(920px,100vw - 32px);max-width:none;max-height:calc(100dvh - 32px);margin:auto;padding:0;position:fixed;overflow:auto;box-shadow:0 40px 120px #0006}.portfolio-dialog .modal-card{opacity:1;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);width:100%;max-height:none;margin:0;overflow:visible;transform:none}.portfolio-dialog .modal-media{aspect-ratio:auto;min-width:0}.portfolio-dialog .modal-body{min-width:0}@media (width<=720px){.portfolio-dialog .modal-card{grid-template-columns:minmax(0,1fr)}.portfolio-dialog .modal-media{aspect-ratio:16/10;min-height:0}.portfolio-dialog .modal-body{padding:28px 24px}}.portfolio-dialog .modal-close,.portfolio-dialog .sheet-close{z-index:5}.portfolio-dialog .modal-body>*+*,.portfolio-dialog .modal-body .case>*+*{margin-top:1.25rem}.contact-dialog{border-radius:24px 24px 0 0;width:min(560px,100vw);margin:auto auto 0}.contact-dialog .sheet-panel{height:auto;max-height:calc(100dvh - 24px);position:relative;overflow:auto;transform:none}.contact-dialog .contact-card{width:100%;max-height:none;margin:0;padding:42px 24px 28px;position:static;transform:none}.contact-dialog .sheet-close{position:absolute}.m-mode .contact-dialog .contact-card{display:block}.nav.on-dark .nav-inner{background:#fffdf9e8}@media (width<=720px){.nav-inner{gap:8px}.nav-actions{gap:6px}.logo-text small{font-size:.55rem}.nav-actions>.btn{padding:10px 12px;font-size:.72rem}.lang-toggle{padding-inline:8px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.reveal,.hero-copy{transform:none;opacity:1!important}}.contact-dialog .contact-card{color:#f6efe7;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0}.contact-dialog .kicker,.contact-dialog h2 em{color:#ffb08a}.contact-dialog .btn-primary{color:var(--ink);background:#fff}.contact-dialog .btn-primary:hover{background:#ffb08a}.contact-dialog .social{color:#f6efe7;border-color:#ffffff40}.contact-dialog .social:hover{background:#ffffff1a}.frame-inner{display:block}.frame{background:#263c30;border-radius:0;padding:10px;box-shadow:8px 8px #a4b892}.plaque-no{color:#cf7751;font-family:monospace}.plaque h3{color:#263c30}.pixel-vision{background:#dce8c2;display:block;position:absolute;inset:0;overflow:hidden}.pixel-grid{background-image:linear-gradient(#99ad7d44 1px,#0000 1px),linear-gradient(90deg,#99ad7d44 1px,#0000 1px);background-size:24px 24px;position:absolute;inset:0}.pixel-monitor{background:#354f3d;width:34%;height:40%;position:absolute;top:26%;left:33%;box-shadow:7px 0 #354f3d,-7px 0 #354f3d,0 7px #354f3d,0 -7px #354f3d,13px 13px #a3bc82}.pixel-screen{background:#b9d77f;border:7px solid #f3f2d9;position:absolute;inset:12%}.pixel-lens{aspect-ratio:1;background:#354f3d;width:30%;position:absolute;top:25%;left:35%;box-shadow:0 0 0 6px #7da65f}.pixel-light{background:#e98d5d;width:10px;height:10px;position:absolute;top:5px;right:5px}.pixel-stand{background:#354f3d;width:50%;height:8px;position:absolute;bottom:-20px;left:25%;box-shadow:0 8px #354f3d}.pixel-cross,.pixel-star{color:#789663;font:22px monospace;position:absolute}.pixel-cross-a{top:10%;left:12%}.pixel-cross-b{bottom:16%;right:12%}.pixel-star{top:8%;right:8%}.pixel-label{letter-spacing:.12em;color:#607b53;font:700 9px monospace;position:absolute;bottom:12px;left:14px}.modal-media .pixel-vision{min-height:100%}.panel-gallery .gallery-intro .kicker{color:#638348}.panel-gallery .gallery-intro h2 em{color:#d4774e}:root{--accent:#64844e;--accent-2:#c8754f}.panel-hero{background:#f7f5e9}.panel-journey,.panel-hobbies{background:#e7eedb}.panel-contact{background:#263d31}.station-card,.contact-card,.nav-inner,.btn,.eyebrow,.chip{border-radius:2px}.station-card{border:2px solid #354d39;box-shadow:6px 6px #aabd99}.btn-primary{background:#34513b}.bus-sign{background:#6d8d53;border-radius:0}.h-mode .floor-office,.h-mode .floor-street,.h-mode .floor-hobbies{background:repeating-linear-gradient(90deg,#d3c5a7 0 72px,#c5b796 72px 76px)}.h-mode .floor-cafe{background:repeating-linear-gradient(90deg,#816c50 0 72px,#6a5a43 72px 76px)}@font-face{font-family:Pixelify Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/pixelify-sans-latin-wght-normal-Cbhn5ptY.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Pixelify Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/pixelify-sans-latin-ext-wght-normal-CsF3XSp0.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--pix:"Pixelify Sans Variable", "Inter Variable", system-ui, sans-serif;--sans:"Inter Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--serif:var(--pix);--ink:#1e2d24;--ink-2:#3f5246;--muted:#6c7d70;--bg:#f1eedb;--paper:#fbf9ec;--line:#1e2d24;--leaf:#c3dc8c;--sage:#9bb586;--sage-d:#557d4b;--clay:#d9774e;--clay-d:#a95c3d;--radius:0;--px-depth:6px;--shadow:6px 6px 0 #1e2d24;--pix-grid:linear-gradient(#557d4b17 1px, transparent 1px), linear-gradient(90deg, #557d4b17 1px, transparent 1px)}body{background:var(--bg);color:var(--ink)}::selection{background:var(--leaf);color:var(--ink)}:focus-visible{outline:3px solid var(--clay);outline-offset:3px}h1,h2,h3,.logo-text,.nav-links a,.btn,.eyebrow,.kicker,.period,.chips li,.stats dt,.plaque-no,.bus-sign,.door span,.dock-tabs button,.dock-next,.case dt,.lang-toggle,.lang-list button,.field,.social,.scroll-hint,.coach,.more strong,.footer-note{font-family:var(--pix)}h1,h2,h3{letter-spacing:0;font-weight:700;line-height:1.02}h2 em,.h1-role{font-family:var(--pix);color:var(--zone-accent);font-style:normal;font-weight:700}.h1-name{letter-spacing:0;font-weight:700}.kicker,.period,.eyebrow{letter-spacing:.06em;text-transform:uppercase;font-size:.85rem;font-weight:600}.kicker{color:var(--zone-kicker)}.period{color:var(--zone-accent)}.lead,.summary,.section-intro p,.plaque p,.case dd,.field input,.field textarea{font-family:var(--sans)}.btn{border:3px solid var(--ink);letter-spacing:.02em;box-shadow:4px 4px 0 var(--ink);border-radius:0;padding:12px 18px;font-size:1rem;font-weight:600;transition:transform .12s steps(2,end),box-shadow .12s steps(2,end),background .1s step-end}.btn:hover{box-shadow:1px 1px 0 var(--ink);transform:translate(3px,3px)}.btn:active{box-shadow:0 0 0 var(--ink);transform:translate(4px,4px)}.btn-primary{background:var(--leaf);color:var(--ink)}.btn-primary:hover{color:var(--ink);background:#d4e8a4}.btn-ghost{background:var(--paper);border-color:var(--ink)}.btn-ghost:hover{border-color:var(--ink);background:#fff}.btn-light{color:var(--ink);background:#fff}.btn-light:hover{background:var(--clay);color:#fff}.eyebrow{background:var(--paper);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--sage);padding:6px 12px 6px 10px}.pulse{background:var(--sage-d);box-shadow:none;border-radius:0;animation:1.2s step-end infinite pix-blink}@keyframes pix-blink{50%{background:var(--leaf)}}.chips li{border:2px solid var(--ink);background:var(--leaf);color:var(--ink);border-radius:0;padding:3px 8px;font-size:.85rem;font-weight:600}.glass{background:var(--paper);border:3px solid var(--ink);-webkit-backdrop-filter:none;box-shadow:var(--shadow);border-radius:0}.glass-dark{-webkit-backdrop-filter:none;background:#22362b;border:3px solid #0f1a13;border-radius:0;box-shadow:6px 6px #0f1a13}.station-card,.contact-card{border-radius:0}.station-card{border:3px solid var(--ink);box-shadow:var(--px-depth) var(--px-depth) 0 var(--zone-shadow);padding:24px 26px}.station-card h3{font-size:1.9rem}.nav{padding:12px 14px 0}.nav-inner{box-shadow:4px 4px 0 var(--ink);border-radius:0;padding:8px 10px}.nav-links{gap:6px}.nav-links a{border:2px solid #0000;border-radius:0;padding:7px 12px;font-size:1rem;font-weight:600}.nav-links a:hover{background:var(--leaf);border-color:var(--ink);color:var(--ink)}.nav-links a.is-active{background:var(--ink);color:var(--paper);border-color:var(--ink);box-shadow:none}.logo-mark{background:var(--ink);width:40px;height:40px;color:var(--leaf);box-shadow:3px 3px 0 var(--clay);border-radius:0;font-size:1.6rem;font-weight:700}.logo-text{font-size:1rem;font-weight:700}.logo-text small{letter-spacing:.06em;font-size:.72rem;font-weight:600}.lang-toggle{border:2px solid var(--ink);background:var(--paper);height:38px;box-shadow:2px 2px 0 var(--ink);border-radius:0;font-size:.95rem}.lang-toggle:hover{background:var(--leaf)}.lang-list{border:3px solid var(--ink);box-shadow:var(--shadow);background:var(--paper);border-radius:0}.lang-list button{border-radius:0;font-size:1rem}.lang-list button[aria-checked=true]{background:var(--leaf);color:var(--ink)}.lang-list button[aria-checked=true] span{color:var(--ink)}.nav.is-dark .nav-inner,.nav.on-dark .nav-inner{background:var(--paper)}.nav.is-dark .logo-text,.nav.is-dark .nav-links a{color:var(--ink-2)}.nav.is-dark .nav-links a.is-active{background:var(--ink);color:var(--paper)}.nav.is-dark .logo-mark,.nav.is-dark .btn-primary{background:var(--ink);color:var(--leaf)}.nav.is-dark .lang-toggle{background:var(--paper);border-color:var(--ink);color:var(--ink)}.panel-hero{background-color:var(--zone-bg);background-image:var(--pix-grid);background-size:24px 24px}.h-mode .hero-copy h1{margin:18px 0 14px}.hero-copy h1 .h1-name{text-shadow:4px 4px 0 var(--sage)}.stats dt{color:var(--ink);font-size:2.2rem;font-weight:700}.stats dd{font-family:var(--sans)}.stats{border-top:3px dashed var(--sage)}.hero-copy .lead{color:var(--ink-2)}.door{border:4px solid var(--ink);background:var(--paper);box-shadow:6px 0 0 var(--sage);border-bottom:none;border-radius:0}.door span{border:2px solid var(--ink);background:var(--leaf);color:var(--ink);box-shadow:2px 2px 0 var(--ink);border-radius:0}.door-gallery{border-color:var(--ink);background:#3a4a3e}.door-gallery span{background:var(--clay);color:#fff}.scroll-hint{color:var(--ink-2);letter-spacing:.04em;text-transform:uppercase;font-size:.9rem;font-weight:600}.mouse{border-width:3px;border-radius:0;width:18px;height:28px}.mouse:after{border-radius:0}.pixel-scene{z-index:2;border:4px solid var(--ink);max-width:none;height:auto;box-shadow:10px 10px 0 var(--sage);pointer-events:none;-webkit-user-select:none;user-select:none;background:#dfe9cf;margin:0;display:block;position:absolute}.h-mode .pixel-scene-hero,.h-mode .pixel-scene-cafe{aspect-ratio:auto;right:auto}.h-mode .pixel-scene-hero{width:min(48vw,760px);left:calc(var(--walker-x) - min(48vw, 760px) * .27);bottom:var(--floor)}.h-mode .pixel-scene-cafe{width:min(52vw,820px);left:calc(var(--walker-x) - min(52vw, 820px) * .35);bottom:var(--floor)}.h-mode .door-exit{display:none}.m-mode .pixel-scene-hero,.m-mode .pixel-scene-cafe{width:84vw;left:8vw;bottom:calc(var(--floor) + 2vh);aspect-ratio:auto;right:auto}html:not(.h-mode) .pixel-scene{width:100%;margin:40px 0 0;position:relative;bottom:auto;left:auto}.h-mode .walker{z-index:6;bottom:var(--floor);pointer-events:none;opacity:0;height:calc(var(--scene-h) * .56);aspect-ratio:450/548;width:auto;left:var(--walker-x);display:block;position:absolute;transform:translate(-50%)}.walker-shadow{background:#1e2d2459;border-radius:0;width:70%;height:10px;position:absolute;bottom:-1%;left:50%;transform:translate(-50%);box-shadow:0 0 0 4px #1e2d2426}.pixel-walker,.actor{image-rendering:auto;background:url(/assets/engineer-sheet-BJjbCOo5.webp) 0 0/700% 100% no-repeat;background-position:calc(var(--frame,0) * 100% / 6) 0;width:100%;height:100%;transform:scaleX(var(--facing,1)) translateY(var(--pixel-step,0px));transform-origin:50% 100%;display:block}.pixel-walker{background-image:url(/assets/engineer-walk-cycle-Bk3kCRxD.webp);background-size:600% 100%;background-position:calc(var(--frame,0) * 100% / 5) 0}.actor{aspect-ratio:450/548;justify-self:center;width:auto;height:360px;position:relative;transform:none}.h-mode .actor{bottom:var(--floor);pointer-events:none;opacity:0;z-index:3;height:calc(var(--scene-h) * .56);aspect-ratio:450/548;width:auto;left:var(--walker-x);position:absolute;transform:translate(-50%)}html:not(.h-mode) .walker{display:none}.panel-journey{background-color:var(--zone-bg);background-image:linear-gradient(180deg, var(--zone-bg) 0 58%, var(--zone-bg-2) 58% 100%)}.h-mode .station-card{top:11vh}.h-mode .building{left:50vw}.h-mode .hobby-art{height:46vh;left:50vw}.sky{background:radial-gradient(circle at 84% 14%,#f7e2a6 0 46px,#0000 47px),linear-gradient(#d5e7c4 0 40%,#0000 40%)}.clouds{opacity:1}.skyline-far{opacity:.95}.skyline-near{opacity:1}.bus-sign{background:var(--clay);width:5.4vh;height:5.4vh;color:var(--paper);border:3px solid var(--ink);box-shadow:4px 4px 0 var(--ink);border-radius:0}.bus-sign small{letter-spacing:.02em;font-size:.5rem}.bus-pole{background:var(--ink);border-radius:0;width:4px}.tree{background:var(--clay-d);border-radius:0;width:8px}.tree span{background:var(--sage-d);clip-path:polygon(0 20%,25% 20%,25% 0,75% 0,75% 20%,100% 20%,100% 80%,75% 80%,75% 100%,25% 100%,25% 80%,0 80%);border-radius:0}.building{filter:drop-shadow(6px 6px #1e2d2459)}.floor{border-top:4px solid var(--ink)}.floor-office{background:repeating-linear-gradient(90deg,#d6b48a 0 96px,#c79f70 96px 100px)}.floor-street{background:repeating-linear-gradient(90deg,#d8d4bd 0 64px,#c9c4aa 64px 68px)}.floor-hobbies{background:repeating-linear-gradient(90deg,#d19d6e 0 96px,#bd8858 96px 100px)}.floor-gallery{background:repeating-linear-gradient(90deg,#e4dfc8 0 48px,#d6d0b6 48px 52px)}.floor-gallery:after{background:0 0}.floor-cafe{background:repeating-linear-gradient(90deg,#6e5440 0 96px,#5d4535 96px 100px)}.panel-gallery{background-color:var(--zone-bg);background-image:var(--pix-grid);background-size:28px 28px}.frame{border:4px solid var(--ink);box-shadow:calc(var(--px-depth) + 4px) calc(var(--px-depth) + 4px) 0 var(--zone-shadow);background:#263c30;border-radius:0;padding:8px}.frame-inner{border-radius:0}.frame-overlay{inset:8px}.frame:hover,.frame:focus-visible{box-shadow:calc(var(--px-depth) + 8px) calc(var(--px-depth) + 8px) 0 var(--zone-shadow);transform:translate(-4px,-4px)}.frame-overlay .btn{border-width:3px}.plaque{gap:14px}.plaque-no{color:var(--zone-accent);font-size:1.8rem;font-weight:700}.plaque h3{color:var(--ink);font-size:1.3rem;font-weight:700}.plaque p{color:var(--muted);font-size:.85rem}.panel-hobbies{background-color:var(--zone-bg);background-image:linear-gradient(180deg, var(--zone-bg) 0 55%, var(--zone-bg-2) 55% 100%)}.hobby-art{box-shadow:none;border:0}.hobby-svg{image-rendering:pixelated}.panel-contact{background-color:var(--zone-bg);background-image:var(--pix-grid);color:#f1ecd9;background-size:24px 24px}.panel-contact .kicker,.contact-after .kicker,.panel-contact h2 em{color:var(--leaf)}.contact-card h2{font-weight:700}.field{color:#e9e3cf;font-size:.85rem;font-weight:600}.field input,.field textarea{background:#1a2a21;border:2px solid #f1ecd966;border-radius:0;padding:10px 12px}.field input:focus,.field textarea:focus{border-color:var(--leaf);box-shadow:3px 3px 0 var(--leaf);background:#13211a}.panel-contact .btn-primary,.contact-after .btn-primary{background:var(--leaf);color:var(--ink)}.panel-contact .btn-primary:hover{background:var(--clay);color:#fff}.social{color:#f1ecd9;border:2px solid #f1ecd966;border-radius:0;padding:8px 12px}.social:hover{background:var(--leaf);color:var(--ink);border-color:var(--leaf);box-shadow:3px 3px 0 var(--clay)}.socials{border-top:3px dashed #f1ecd933}.cafe-caption h2 em{color:var(--leaf)}.footer-note{font-family:var(--pix);font-size:.9rem}.modal-card,.portfolio-dialog .modal-card{border:4px solid var(--ink);box-shadow:12px 12px 0 var(--sage);border-radius:0}.portfolio-dialog{border-radius:0;box-shadow:12px 12px #0007}.portfolio-dialog::backdrop{-webkit-backdrop-filter:none;backdrop-filter:none;background:#1e2d24cc}.modal-body h3{font-size:2.2rem;font-weight:700}.modal-close,.sheet-close,.modal-x{border:3px solid var(--ink);background:var(--leaf);color:var(--ink);box-shadow:3px 3px 0 var(--ink);border-radius:0;width:40px;height:40px;font-size:1.4rem}.modal-close:hover{background:var(--clay);color:#fff;transform:none}.case dt{color:var(--sage-d);letter-spacing:.06em;font-size:.85rem}.contact-dialog{border-radius:0}.contact-dialog .contact-card{box-shadow:none}.stage-dock{border:3px solid var(--ink);box-shadow:6px 6px 0 var(--ink);background:var(--paper);border-radius:0}.dock-tabs{gap:4px}.dock-tabs button{border:2px solid #0000;border-radius:0;font-size:.8rem;font-weight:600}.dock-tabs button.is-active{background:var(--leaf);border-color:var(--ink);color:var(--ink)}.dock-dots b{border-radius:0}.dock-dots b.is-current{background:var(--clay)}.dock-arrow,.dock-next{border:3px solid var(--ink);box-shadow:3px 3px 0 var(--ink);border-radius:0;font-size:1rem}.dock-arrow{background:var(--paper);color:var(--ink);width:48px}.dock-next{background:var(--ink);color:var(--paper)}.stage-dock.is-start .dock-next{background:var(--sage-d);animation:none}.stage-dock.is-end .dock-next{background:var(--clay)}.sheet-panel{border-top:3px solid var(--ink);box-shadow:none;background:#22362b;border-radius:0}.coach{border:3px solid var(--ink);box-shadow:4px 4px 0 var(--ink);border-radius:0}@media (prefers-reduced-motion:reduce){.pixel-walker,.actor{transform:scaleX(var(--facing,1))}.pulse{animation:none}}.h-mode .building.station-art{height:44vh}.m-mode .building.station-art{height:30vh}.station-art{aspect-ratio:4/3}.station-art>svg,.pixel-vision>svg{width:100%;height:100%;display:block}.pixel-vision{display:block;position:absolute;inset:0}.station-art{transition:transform .2s steps(2,end)}.px-blink,.px-blink-b{animation:1.2s step-end infinite px-blink}.px-blink-b{animation-delay:-.6s}@keyframes px-blink{50%{opacity:0}}.px-flicker{transform-box:fill-box;transform-origin:50% 100%;animation:.5s steps(2,end) infinite px-flicker}@keyframes px-flicker{0%{transform:scale(1)}50%{transform:scale(.9,1.1)}}.px-bob{animation:1.6s steps(2,end) infinite px-bob}@keyframes px-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.px-spin,.px-spin-slow,.px-spin-rev{transform-box:fill-box;transform-origin:50%}.px-spin{animation:.4s linear infinite px-spin}.px-spin-slow{animation:6s linear infinite px-spin}.px-spin-rev{animation:4s linear infinite reverse px-spin}@keyframes px-spin{to{transform:rotate(360deg)}}.px-belt{animation:3.2s steps(8,end) infinite px-belt}@keyframes px-belt{to{transform:translate(-80px)}}.px-type,.px-type-b,.px-type-c,.px-type-d{transform-box:fill-box;transform-origin:0%;animation:2.4s steps(6,end) infinite px-type}.px-type-b{animation-delay:-.6s}.px-type-c{animation-delay:-1.2s}.px-type-d{animation-delay:-1.8s}@keyframes px-type{0%{transform:scaleX(0)}70%,to{transform:scaleX(1)}}.station:hover .px-scene *,.frame:hover .px-scene *,.hobby:hover .px-scene *{animation-duration:.5s!important}@media (prefers-reduced-motion:reduce){.px-blink,.px-blink-b,.px-flicker,.px-bob,.px-spin,.px-spin-slow,.px-spin-rev,.px-belt,.px-type,.px-type-b,.px-type-c,.px-type-d{animation:none}.station-art{transition:none}.station:hover .station-art{transform:none}}.actor{aspect-ratio:1;background:0 0;width:280px;height:auto}.h-mode .actor{width:calc(var(--scene-h) * .64);aspect-ratio:1;z-index:5;height:auto}.actor>span{display:block;position:absolute}.frame-slot .actor{display:none}.h-mode .frame-slot .actor{display:block}.action-actor .action-person{object-fit:contain;object-position:center bottom;width:80%;height:100%;image-rendering:pixelated;position:absolute;bottom:0;left:10%}.action-actor[data-scene=inspection] .action-person,.action-actor[data-scene=travel] .action-person{height:65%}.action-signal{background:#c3dc8c;width:8px;height:8px;animation:1.4s step-end infinite action-signal;top:20%;right:8%;box-shadow:12px -10px #d9774e}@keyframes action-signal{50%{opacity:0}}.px-smoke{animation:1.8s steps(4,end) infinite px-smoke}@keyframes px-smoke{to{opacity:0;transform:translate(8px,-16px)}}.px-roller{animation:.8s steps(2,end) infinite px-roller}@keyframes px-roller{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.action-signal,.px-smoke,.px-roller{animation:none}}html:lang(vi){--pix:"Inter Variable", system-ui, sans-serif}html:lang(vi) h1,html:lang(vi) h2,html:lang(vi) h3{line-height:1.18}.station-art{filter:none}.station-art>.px-scene>rect:first-child,.station-art>.px-scene-ehs>rect:nth-child(2),.station-art>.px-scene-mech>rect:nth-child(2),.station-art>.px-scene-learn>rect:nth-child(2){display:none}.station:hover .station-art{transform:none}.pixel-scene{box-shadow:none;background:0 0;border:0;-webkit-mask-image:radial-gradient(72% 75%,#000 58%,#0000 100%);mask-image:radial-gradient(72% 75%,#000 58%,#0000 100%)}.h-mode .floor{border-top-color:#6d8062}.px-intro{z-index:200;pointer-events:auto;place-items:center;display:grid;position:fixed;inset:0}.px-intro-grid{grid-template-rows:repeat(9,1fr);grid-template-columns:repeat(16,1fr);display:grid;position:absolute;inset:0}.px-intro-grid span{background:var(--ink);animation:px-tile-out .14s steps(1) var(--d,0s) forwards}@keyframes px-tile-out{to{opacity:0;visibility:hidden}}.px-intro-logo{font:700 clamp(4rem, 14vw, 9rem)/1 var(--pix);color:var(--leaf);text-shadow:6px 6px 0 var(--clay);margin:0;animation:.3s steps(3,end) .15s both px-logo-in,.2s steps(2,end) 1s forwards px-logo-out;position:relative}.px-intro-logo span{color:var(--clay)}@keyframes px-logo-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes px-logo-out{to{opacity:0}}body{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='34' viewBox='0 0 12 17' shape-rendering='crispEdges'%3E%3Crect x='0' y='0' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='0' y='1' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='1' y='1' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='0' y='2' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='1' y='2' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='2' y='2' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='0' y='3' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='1' y='3' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='2' y='3' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='3' y='3' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='0' y='4' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='1' y='4' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='2' y='4' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='3' y='4' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='4' y='4' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='0' y='5' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='1' y='5' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='2' y='5' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='3' y='5' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='4' y='5' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='5' y='5' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='0' y='6' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='1' y='6' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='2' y='6' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='3' y='6' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='4' y='6' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='5' y='6' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='6' y='6' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='0' y='7' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='1' y='7' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='2' y='7' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='3' y='7' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='4' y='7' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='5' y='7' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='6' y='7' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='7' y='7' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='0' y='8' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='1' y='8' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='2' y='8' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='3' y='8' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='4' y='8' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='5' y='8' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='6' y='8' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='7' y='8' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='8' y='8' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='0' y='9' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='1' y='9' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='2' y='9' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='3' y='9' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='4' y='9' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='5' y='9' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='6' y='9' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='7' y='9' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='8' y='9' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='9' y='9' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='0' y='10' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='1' y='10' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='2' y='10' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='3' y='10' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='4' y='10' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='5' y='10' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='6' y='10' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='7' y='10' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='8' y='10' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='9' y='10' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='10' y='10' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='0' y='11' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='1' y='11' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='2' y='11' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='3' y='11' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='4' y='11' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='5' y='11' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='6' y='11' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='0' y='12' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='1' y='12' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='2' y='12' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='4' y='12' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='5' y='12' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='6' y='12' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='7' y='12' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='0' y='13' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='1' y='13' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='4' y='13' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='5' y='13' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='6' y='13' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='7' y='13' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='0' y='14' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='5' y='14' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='6' y='14' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='7' y='14' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='8' y='14' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='5' y='15' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='6' y='15' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='7' y='15' width='1' height='1' fill='%23fbf9ec'/%3E%3Crect x='8' y='15' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='6' y='16' width='1' height='1' fill='%231e2d24'/%3E%3Crect x='7' y='16' width='1' height='1' fill='%231e2d24'/%3E%3C/svg%3E") 0 0,auto}a,button,[role=button]{cursor:pointer}.sfx-toggle{border:2px solid var(--ink);background:var(--paper);height:38px;color:var(--ink);font:700 .75rem var(--pix);box-shadow:2px 2px 0 var(--ink);cursor:pointer;border-radius:0;align-items:center;gap:4px;padding:0 8px;display:inline-flex}.sfx-toggle:hover{background:var(--leaf)}.sfx-toggle[aria-pressed=true]{background:var(--ink);color:var(--leaf)}.sfx-toggle span[aria-hidden]{font-size:.95rem}@media (width<=720px){.sfx-state{display:none}}.panel-hero{--zone-bg:#f1eedb;--zone-bg-2:#f1eedb;--zone-accent:#d9774e;--zone-kicker:#557d4b;--zone-shadow:#9bb586}.panel-journey{--zone-bg:#dde9c9;--zone-bg-2:#eef0d6;--zone-accent:#d9774e;--zone-kicker:#557d4b;--zone-shadow:#9bb586}.panel-gallery{--zone-bg:#e6ecd6;--zone-bg-2:#e6ecd6;--zone-accent:#d9774e;--zone-kicker:#557d4b;--zone-shadow:#9bb586}.panel-hobbies{--zone-bg:#f6e2c8;--zone-bg-2:#f0d2b0;--zone-accent:#a95c3d;--zone-kicker:#a95c3d;--zone-shadow:#d9a57e}.panel-contact{--zone-bg:#22362b;--zone-bg-2:#22362b;--zone-accent:#c3dc8c;--zone-kicker:#c3dc8c;--zone-shadow:#0f1a13}.pixel-vision>.project-simulation{width:100%;height:100%;display:block}.sim-camera-alert{animation:1.5s step-end infinite sim-alert}.sim-aerial{animation:7s steps(24,end) infinite alternate sim-aerial}.sim-worker{animation:8s steps(40,end) infinite sim-worker}.sim-zone-alert{animation:8s step-end infinite sim-zone-alert}@keyframes sim-alert{50%{opacity:.35}}@keyframes sim-aerial{to{transform:translate(-12px,-6px)}}@keyframes sim-worker{0%{transform:translate(93px,-55px)}70%,to{transform:translate(103px,90px)}}@keyframes sim-zone-alert{0%,42%,to{opacity:0}55%,75%{opacity:1}65%,85%{opacity:.35}}@media (prefers-reduced-motion:reduce){.sim-camera-alert,.sim-aerial,.sim-worker,.sim-zone-alert{animation:none}.sim-worker{transform:translate(103px,65px)}}.workstation-actor .workstation-image{object-fit:contain;object-position:center bottom;image-rendering:auto;width:150%;height:100%;position:absolute;bottom:0;left:-20%}@media (width>=901px){.h-mode .hobbies .station,.h-mode .hobbies .station:last-child{width:100vw}.h-mode .hobbies .station-card{width:min(30vw,420px);top:27vh;left:6vw}}.h-mode .workstation-actor{width:calc(var(--scene-h) * .82)}.workstation-actor .workstation-image{width:140%;image-rendering:pixelated;left:-20%}.h-mode .station[data-scene=guitar] .station-art,.h-mode .station[data-scene=movies] .station-art{left:calc(var(--walker-x) + 5vw);bottom:calc(var(--floor) + var(--scene-h) * .65);opacity:.88;height:min(19vh,180px)}.m-mode .workstation-actor{width:calc(var(--scene-h) * .95)}.m-mode .station[data-scene=guitar] .station-art,.m-mode .station[data-scene=movies] .station-art{left:calc(var(--walker-x) + 10vw);bottom:calc(var(--floor) + var(--scene-h) * .72);height:min(13vh,24vw)}.skill-backdrop{pointer-events:none;display:none}.h-mode .skill-backdrop{z-index:0;left:35vw;bottom:var(--floor);opacity:.8;width:min(62vw,920px);height:min(58vh,570px);display:block;position:absolute}.m-mode .skill-backdrop{left:5vw;bottom:var(--floor);opacity:.7;width:90vw;height:39vh}@media (height<=720px){.m-mode .skill-backdrop{height:31vh}}.h-mode .station[data-scene=guitar] .station-art:before,.h-mode .station[data-scene=movies] .station-art:before{content:"";z-index:0;background:#a97858;border:3px solid #596b56;height:7%;position:absolute;bottom:8%;left:7%;right:7%;box-shadow:0 4px #d4a27c}.h-mode .station[data-scene=guitar] .station-art:after,.h-mode .station[data-scene=movies] .station-art:after{content:"";z-index:0;border-left:5px solid #7d8269;border-right:5px solid #7d8269;height:12%;position:absolute;bottom:-3%;left:18%;right:18%}.h-mode .station[data-scene=guitar] .station-art>svg,.h-mode .station[data-scene=movies] .station-art>svg{z-index:1;position:relative}
