:root{--ink:#173b42;--ink-soft:#4c6d6b;--cream:#f4f2e5;--paper:#f8f6ec;--sage:#e6ede2;--line:#bbcebe;--green:#2c766b;--coral:#d8855e;--gold:#e8bb73;--header:78px;--footer:102px;--ground:66px;--actor:214px;--actor-left:46%;--scene-width:100vw;--shadow:0 14px 40px #173b4210;--mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace;--sans:"Aptos","Segoe UI",Arial,sans-serif;--serif:Georgia,"Times New Roman",serif}
*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden}body{font-family:var(--sans);color:var(--ink);background:var(--sage);-webkit-font-smoothing:antialiased}button,a,input{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{color:inherit;cursor:pointer}button{border:0}a{color:inherit;text-decoration:none}button:disabled{cursor:default;opacity:.35}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--coral);outline-offset:5px}svg{display:block;width:24px;height:24px;flex-shrink:0}button{touch-action:manipulation}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;z-index:500;top:8px;left:16px;padding:16px;background:var(--ink);color:white;transform:translateY(-150%);border-radius:4px}.skip-link:focus{transform:translateY(0)}
.topbar{height:var(--header);padding:0 clamp(24px,4vw,70px);display:flex;align-items:center;justify-content:space-between;gap:24px;position:relative;z-index:30;border-bottom:1px solid #abc5b580;background:#f4f4e9e8}.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}.brand-icon{width:40px;height:40px}.brand strong{display:block;font-size:12px;letter-spacing:.13em}.brand small{display:block;font:9px var(--mono);letter-spacing:.2em;margin-top:6px;color:var(--ink-soft)}.main-nav{display:flex;gap:clamp(15px,1.9vw,32px);height:100%;align-items:stretch}.main-nav a{font-size:12px;display:flex;align-items:center;position:relative;color:var(--ink-soft);transition:color .2s}.main-nav a[aria-current="page"]{color:var(--ink);font-weight:650}.main-nav a[aria-current="page"]:after{content:"";position:absolute;bottom:18px;left:calc(50% - 2px);width:4px;height:4px;border-radius:50%;background:var(--green)}.top-actions{display:flex;align-items:center;gap:18px}.language{font:11px var(--mono);border:1px solid var(--line);border-radius:50%;width:34px;height:34px;background:transparent;transition:.2s}.language:hover{background:var(--ink);color:white;border-color:var(--ink)}.top-divider{height:22px;width:1px;background:var(--line)}.cv-button{display:flex;gap:8px;align-items:center;background:transparent;padding:8px 0;font-size:12px;font-weight:650;white-space:nowrap}.cv-button svg{width:19px;height:19px}
.stage{position:relative;height:calc(100vh - var(--header) - var(--footer));height:calc(100dvh - var(--header) - var(--footer));overflow:hidden;isolation:isolate;background:var(--sage);touch-action:pan-y;outline:0}.sky-glow{position:absolute;inset:0;background:linear-gradient(120deg,#edf2e7aa,#e6eddf10 70%,#f3e8cbb0);pointer-events:none}.sky-layer{position:absolute;inset:-8% 0 0;width:115%;height:105%;opacity:.8;will-change:transform}.sky-layer svg{width:100%;height:100%}.mountain-layer{position:absolute;bottom:0;left:0;width:180%;height:70%;will-change:transform}.near-layer{position:absolute;bottom:0;left:0;width:210%;height:29%;will-change:transform}.mountain-layer svg,.near-layer svg{width:100%;height:100%}.world{display:flex;height:100%;width:max-content;will-change:transform;position:relative;z-index:4}.scene{width:var(--scene-width);height:100%;position:relative;flex-shrink:0;overflow:hidden}.scene-content{position:relative;z-index:3;margin:0 clamp(32px,6.2vw,104px);padding-top:clamp(24px,4.6vh,50px);max-height:calc(100% - var(--actor) - var(--ground) + 60px);overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#809f9050 transparent;overscroll-behavior:contain;padding-bottom:8px}.eyebrow{font:10px var(--mono);font-weight:600;letter-spacing:.17em;margin:0 0 18px}.section-title{font-size:clamp(30px,3.8vw,58px);font-weight:520;line-height:1.09;letter-spacing:-.042em;margin:0 0 14px;text-wrap:balance}.section-lead{color:var(--ink-soft);font-size:14px;line-height:1.65;max-width:720px;margin:0 0 24px}.scene-art{position:absolute;bottom:var(--ground);right:2.5%;width:52%;max-height:58%;height:440px;z-index:1;pointer-events:none}.scene-art svg{width:100%;height:100%}.scene:not(:first-child) .scene-art{opacity:.78;height:240px;width:43%;right:5%}.scene-marker{position:absolute;bottom:calc(var(--ground) + 5px);left:63%;width:42px;height:78px;z-index:2}.scene-marker:before{content:"";position:absolute;left:20px;top:0;height:100%;width:3px;background:#426e62}.scene-marker span{background:var(--cream);border:1px solid #769f8e;padding:9px 6px;position:absolute;top:10px;left:0;font:11px var(--mono);width:43px;text-align:center}.ground{position:absolute;bottom:0;left:0;right:0;height:var(--ground);background:linear-gradient(#7da390 0 3px,#c6d6bd 3px 6px,#d4decd 6px 100%);z-index:5;pointer-events:none;border-top:1px solid #507869;overflow:hidden}.ground-line{position:absolute;bottom:15px;left:0;right:0;height:1px;background:#9db6a055}.ground:after{content:"";position:absolute;inset:5px 0 0;background-image:linear-gradient(120deg,transparent 45%,#9cb5a029 46%,#9cb5a029 47%,transparent 48%),linear-gradient(60deg,transparent 55%,#b0c3ad45 56%,#b0c3ad45 57%,transparent 58%);background-size:120px 70px}#ground-ticks{position:absolute;left:-100%;right:-100%;height:30px;top:20px;background:repeating-linear-gradient(90deg,transparent 0,transparent 99px,#93ad9640 99px,#93ad9640 100px);will-change:transform}.chapter-stamp{position:absolute;z-index:9;bottom:24px;left:clamp(24px,4vw,70px);font:10px var(--mono);letter-spacing:.14em;color:#3d695f}.world-caption{position:absolute;z-index:9;bottom:24px;right:clamp(24px,4vw,70px);font:9px var(--mono);letter-spacing:.03em;color:#3f6c61;margin:0}.actor{position:absolute;left:var(--actor-left);height:var(--actor);width:calc(var(--actor)*.734);bottom:calc(var(--ground) + 1px);z-index:8;pointer-events:none;transform:translateX(-50%);will-change:transform}.actor-jump,.actor-facing{width:100%;height:100%;transform-origin:50% 100%}.actor-facing{transition:transform .14s}.actor-facing svg{width:100%;height:100%;overflow:visible}.actor-shadow{position:absolute;left:14%;bottom:-4px;width:66%;height:10px;border-radius:50%;background:#244e4e26;filter:blur(1px)}.leg{transform-box:view-box;transform-origin:98px 185px}.arm-front{transform-origin:72px 98px}.arm-back{transform-origin:120px 99px}.walking .leg-front{animation:walk-front .38s infinite alternate ease-in-out}.walking .leg-back{animation:walk-back .38s infinite alternate ease-in-out}.walking .archer-body{animation:walk-bob .19s infinite alternate ease-in-out}.walking .arm-front{animation:arm-swing .38s infinite alternate ease-in-out}.scarf-tail{transform-origin:80px 80px;animation:scarf 2.6s infinite alternate ease-in-out}.shooting .bow-string{animation:bow-string .4s ease-in-out}.shooting .nocked-arrow{opacity:0}.shooting .arm-front{transform:translateX(-5px)}.drone{position:absolute;left:calc(var(--actor-left) - 55px);bottom:calc(var(--ground) + var(--actor) + 13px);z-index:6;width:49px;height:35px;animation:drone-hover 3.5s ease-in-out infinite;pointer-events:none}.drone svg{width:100%;height:100%}.projectile-layer{position:absolute;inset:0;pointer-events:none;z-index:12}.projectile{position:absolute;left:0;top:0;width:66px;height:12px;transform-origin:100% 50%}.projectile svg{width:100%;height:100%}.projectile:after{content:"";position:absolute;right:60%;top:6px;width:90px;height:1px;background:linear-gradient(90deg,transparent,#dab77a80)}
@keyframes walk-front{from{transform:rotate(-17deg)}to{transform:rotate(15deg)}}@keyframes walk-back{from{transform:rotate(17deg)}to{transform:rotate(-15deg)}}@keyframes walk-bob{from{transform:translateY(0)}to{transform:translateY(-3px)}}@keyframes arm-swing{from{transform:rotate(-5deg)}to{transform:rotate(6deg)}}@keyframes scarf{from{transform:rotate(-3deg)}to{transform:rotate(3deg)}}@keyframes drone-hover{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-9px) rotate(3deg)}}@keyframes bow-string{0%,100%{transform:translateX(0)}40%{transform:translateX(-8px)}}@keyframes ping{0%{box-shadow:0 0 0 0 #d8855e55}100%{box-shadow:0 0 0 18px #d8855e00}}
.hero .scene-content{overflow:visible;max-height:none;width:64%;max-width:900px}.hero .eyebrow{margin-bottom:22px}.hero-name{font-size:14px;font-weight:650;margin:0 0 13px}.hero h1{font-size:clamp(46px,5.3vw,82px);font-weight:560;letter-spacing:-.065em;line-height:1.03;margin:0 0 24px;max-width:800px}.hero h1 em{font-family:var(--serif);color:var(--green);font-weight:400;letter-spacing:-.055em;display:block;line-height:1.04}.hero-role{font-size:14px;font-weight:700;margin:0 0 11px}.hero-text{font-size:15px;line-height:1.65;color:var(--ink-soft);max-width:480px;margin:0 0 23px}.hero-actions{display:flex;gap:23px;align-items:center;flex-wrap:wrap}.primary-button{border-radius:3px;background:var(--ink);color:#f6f4e9;padding:15px 20px;display:inline-flex;align-items:center;justify-content:space-between;gap:25px;font-size:12px;line-height:1.2;font-weight:600;border:1px solid var(--ink);transition:background .2s,transform .2s}.primary-button svg{width:22px;height:22px}.primary-button:hover{background:#2e655f;transform:translateY(-2px)}.text-link{font-size:12px;display:inline-flex;align-items:center;gap:8px;background:transparent;padding:8px 0;border-bottom:1px solid var(--ink);width:max-content;max-width:100%}.text-link svg{width:16px;height:16px}.stats{display:flex;gap:36px;border-top:1px solid #adc4b666;margin-top:24px;padding-top:15px;max-width:486px}.stat strong{font-weight:500;display:block;font-size:26px;letter-spacing:-.04em;line-height:1.1}.stat small{font-size:10px;color:var(--ink-soft);display:block;margin-top:5px}.hero-scenic-label{position:absolute;right:7%;top:19%;width:29%;text-align:center;font:9px var(--mono);letter-spacing:.17em;line-height:1.6;color:#567769}.hero-scenic-label span{display:block;font-size:12px;color:#365f5c;border:1px solid #a8c3ab;background:#f7f4e5b8;border-radius:4px;padding:11px;margin:12px auto 0;transform:rotate(-3deg);max-width:250px;letter-spacing:.1em}.hero-scenic-label i{display:inline-block;background:#70aa95;width:6px;height:6px;border-radius:50%;box-shadow:0 0 0 4px #83b49920;margin-right:10px}
.skill-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:28px;align-items:center}.target-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.target-button{position:relative;background:transparent;border:1px solid transparent;border-radius:8px;padding:9px 5px 12px;display:flex;flex-direction:column;align-items:center;text-align:center;transition:background .2s,border-color .2s,transform .2s;min-width:0}.target-button:hover{background:#f8f5e680;transform:translateY(-3px)}.target-button[aria-pressed="true"]{background:#f7f4e6aa;border-color:#90b6a180}.target-button .target-svg{width:clamp(68px,8vw,125px);height:auto;transition:transform .25s}.target-button:hover .target-svg{transform:rotate(-3deg)}.target-button strong{font-size:13px;display:block;font-weight:650;margin-top:8px;line-height:1.4;max-width:160px}.target-button small{font-size:10px;color:var(--ink-soft);margin-top:4px}.target-number{font:9px var(--mono);letter-spacing:.1em;color:#678171;margin-bottom:5px}.hit-arrow{display:none}.visited .hit-arrow{display:block}.target-button.hit{animation:ping .7s}.target-visited-mark{position:absolute;top:7px;right:7px;width:17px;height:17px;border-radius:50%;background:var(--green);color:white;display:none;align-items:center;justify-content:center}.target-visited-mark svg{width:12px;height:12px}.visited .target-visited-mark{display:flex}.skill-details{padding:22px 24px;background:#f8f6eedd;border:1px solid #a7c4af;box-shadow:var(--shadow);border-radius:5px;min-height:233px;position:relative}.skill-details:before{content:"";width:4px;position:absolute;top:23px;bottom:23px;left:-1px;background:var(--green)}.skill-kicker{font:9px var(--mono);letter-spacing:.14em;color:var(--green);margin-bottom:10px}.skill-details h3{font-size:23px;letter-spacing:-.025em;font-weight:550;margin:0 0 10px}.skill-details p{font-size:12px;line-height:1.65;color:var(--ink-soft);margin:0 0 13px}.tags{display:flex;gap:6px;flex-wrap:wrap}.tag{border:1px solid #bdd0bd;font:9px var(--mono);padding:5px 7px;border-radius:3px;background:#e9f0e350;line-height:1.3}.skills-foot{display:flex;justify-content:space-between;gap:14px;margin:17px 0 0;align-items:center}.skills-foot p{font-size:10px;color:var(--ink-soft);margin:0}.explored-count{font:9px var(--mono);color:var(--green);white-space:nowrap;border:1px solid #aac7ad;padding:7px 10px;border-radius:20px;background:#f5f4e480}
.career-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;position:relative;margin-top:28px}.career-grid:before{content:"";position:absolute;top:-12px;height:1px;background:#93b29d;left:10px;right:10px}.career-card{padding:22px 22px 18px;text-align:left;border:1px solid #a7c2ad;background:#f6f5e9d9;border-radius:5px;position:relative;display:flex;flex-direction:column;align-items:flex-start;min-height:210px;transition:transform .2s,box-shadow .2s}.career-card:before{content:"";position:absolute;top:-16px;left:20px;width:7px;height:7px;border-radius:50%;background:#699d84;border:2px solid var(--sage);box-sizing:content-box}.career-card:last-child:before{background:var(--coral)}.career-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.card-date{font:10px var(--mono);letter-spacing:.02em;margin-bottom:17px;color:var(--green);line-height:1.45}.career-card h3{font-size:19px;font-weight:550;letter-spacing:-.025em;line-height:1.22;margin:0 0 8px}.career-card .company{font-size:11px;font-weight:650;margin:0 0 11px}.career-card p{font-size:11px;line-height:1.6;color:var(--ink-soft);margin:0 0 12px}.career-card .card-icon{position:absolute;right:18px;top:14px;opacity:.35;width:28px;height:28px}.card-bottom{margin-top:auto;align-self:flex-end;display:flex;align-items:center;gap:5px;font-size:10px}.card-bottom svg{width:18px;height:18px}.career-footer{margin-top:16px;display:flex;align-items:center;justify-content:space-between;gap:14px}.career-footer p{font-size:10px;color:var(--ink-soft);margin:0}.career-footer .text-link{font-size:11px;padding-top:4px;padding-bottom:5px}
.mission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.mission-card{display:flex;flex-direction:column;align-items:stretch;position:relative;text-align:left;border:1px solid #9fbba6;background:#f6f3e6de;border-radius:5px;padding:21px 25px;min-height:245px;transition:transform .2s,box-shadow .2s}.mission-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.mission-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.mission-header .mission-icon{width:44px;height:44px;padding:5px;color:var(--green);background:#dce8d88c;border-radius:50%}.mission-header span{font:10px var(--mono);color:var(--ink-soft)}.mission-card small{font:9px var(--mono);letter-spacing:.045em;color:var(--green);margin-bottom:9px;display:block}.mission-card h3{font-size:23px;letter-spacing:-.03em;line-height:1.18;font-weight:550;margin:0 0 10px}.mission-card p{font-size:12px;line-height:1.6;color:var(--ink-soft);margin:0 0 20px;max-width:285px}.mission-card .card-bottom{border-top:1px solid #b6cbb77a;padding-top:12px;width:100%;justify-content:space-between;font-size:11px}.mission-card:nth-child(2){background:#eceddded}.mission-card:nth-child(3){background:#f2e8d5de}
.learning-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:46px}.mini-heading{font:9px var(--mono);letter-spacing:.16em;color:var(--green);margin:0 0 12px}.education-list{display:flex;flex-direction:column;gap:0}.education-item{border-top:1px solid #b1c6b39c;padding:13px 0;display:grid;grid-template-columns:86px 1fr;gap:17px}.education-item time{font:10px var(--mono);padding-top:4px;color:var(--green)}.education-item h3{font-size:16px;font-weight:580;letter-spacing:-.02em;line-height:1.4;margin:0 0 4px}.education-item p{font-size:11px;line-height:1.5;color:var(--ink-soft);margin:0}.language-list{display:flex;gap:8px;justify-content:space-between;margin-bottom:20px}.language-item{border:1px solid #acc5ad;background:#f7f4e58c;border-radius:4px;padding:10px 13px;flex:1}.language-code{font:9px var(--mono);color:var(--green);margin-bottom:7px}.language-item strong{font-size:14px;display:block;font-weight:580}.language-item small{font-size:10px;color:var(--ink-soft);display:block;margin-top:3px}.tool-preview{margin-top:16px}.tool-preview .tag{font-size:10px;padding:6px 8px}.tool-note{font-size:10px;color:var(--ink-soft);margin:10px 0}.tool-preview .text-link{font-size:10px;padding:4px 0;margin-top:1px}
.contact .scene-content{width:63%;max-width:900px;max-height:none;overflow:visible}.contact h2{font-size:clamp(42px,5.4vw,80px);line-height:1.06;letter-spacing:-.055em;margin:0 0 22px;font-weight:530}.contact h2 em{display:block;font-family:var(--serif);font-weight:400;color:var(--green)}.contact .section-lead{max-width:485px;margin-bottom:24px}.contact-actions{display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin-bottom:17px}.outline-button{background:#f3f4e570;border:1px solid #91b4a0;padding:15px 16px;border-radius:3px;display:inline-flex;align-items:center;gap:10px;font-size:12px;min-height:54px;transition:background .2s}.outline-button:hover{background:#f9f6e7}.outline-button svg{width:19px;height:19px}.contact-details{font-size:12px;line-height:1.7;color:var(--ink-soft);display:flex;gap:25px;flex-wrap:wrap;margin:0 0 22px}.contact-details a:hover{color:var(--green);text-decoration:underline}.contact-foot{display:flex;gap:23px;align-items:center;flex-wrap:wrap}.contact-foot .text-link{font-size:11px}.contact-note{font:9px var(--mono);color:var(--ink-soft);letter-spacing:.03em;margin-top:19px}.contact .scene-art{height:440px;width:55%;opacity:1;right:2%}
.controller{height:var(--footer);background:var(--ink);color:#e5ebd8;padding:0 clamp(24px,4vw,70px);display:flex;align-items:center;justify-content:space-between;gap:38px;position:relative;z-index:20;border-top:1px solid #15373c;padding-bottom:env(safe-area-inset-bottom,0)}.controller-hint{display:flex;align-items:center;gap:10px;font-size:11px;white-space:nowrap;flex-shrink:0}.controller-hint .mouse-icon{width:18px;height:26px;color:#adc8b1}.controller .icon-button{border-color:#6a8b784f;color:#c0d2ba}.controller-hint .icon-button{margin-left:4px;border:0;width:28px;height:28px;opacity:.7}.icon-button{background:transparent;border:1px solid #adc1af;border-radius:50%;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.icon-button svg{width:19px;height:19px}.icon-button:hover{background:#82a28d26}.progress-block{max-width:580px;flex:1;min-width:100px}.progress-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}.progress-top button{background:transparent;padding:0;display:flex;align-items:center;gap:7px;color:#e0e6d1;font:10px var(--mono);letter-spacing:.03em}.progress-top button svg{width:12px;height:12px;transform:rotate(90deg)}#percentage{font:9px var(--mono);color:#a6c0aa}.progress-block input{display:block;width:100%;height:16px;appearance:none;-webkit-appearance:none;border:0;background:transparent;cursor:pointer;margin:0;--progress:0%;border-radius:10px}.progress-block input::-webkit-slider-runnable-track{height:2px;background:linear-gradient(to right,var(--gold) 0%,var(--gold) var(--progress),#62806f var(--progress),#62806f 100%);border-radius:4px}.progress-block input::-moz-range-track{height:2px;background:#62806f}.progress-block input::-moz-range-progress{background:var(--gold);height:2px}.progress-block input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:10px;height:10px;background:var(--gold);border:2px solid var(--ink);border-radius:50%;margin-top:-4px;box-shadow:0 0 0 1px var(--gold)}.progress-block input::-moz-range-thumb{width:8px;height:8px;background:var(--gold);border:2px solid var(--ink);border-radius:50%;box-shadow:0 0 0 1px var(--gold)}.progress-labels{display:flex;justify-content:space-between;font:8px var(--mono);color:#a6bda7;margin-top:5px}.game-controls{display:flex;align-items:center;gap:7px;flex-shrink:0}.direction-controls{display:flex;gap:4px}.control-key{border:1px solid #73938166;border-radius:4px;width:34px;height:34px;background:#25494d;color:#e5ead5;display:flex;align-items:center;justify-content:center;gap:6px;user-select:none;touch-action:none;transition:background .15s}.control-key svg{width:18px;height:18px}.control-key:hover{background:#36605d}.control-key:active{background:#4e7b70}.action-key{width:auto;padding:0 9px;font:10px var(--mono)}.fire-key{background:#d4ab6c;color:#203f40;border-color:#d4ab6c}.fire-key:hover{background:#e5bf82}.fire-key svg{width:22px;height:22px}.motion-button{margin-left:7px}.motion-button[aria-pressed="true"]{background:#e6b979;color:var(--ink);border-color:#e6b979}.mobile-help{display:none!important}
.detail-dialog{width:min(900px,calc(100vw - 48px));max-height:calc(100vh - 64px);max-height:calc(100dvh - 64px);padding:0;border:1px solid #aec3ac;border-radius:8px;background:var(--paper);color:var(--ink);box-shadow:0 32px 100px #0c2d4066;overflow:hidden}.detail-dialog[open]{display:flex;flex-direction:column}.detail-dialog::backdrop{background:#0e333ba6;backdrop-filter:blur(7px)}.detail-dialog.resume-dialog{width:min(990px,calc(100vw - 48px))}.dialog-top{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #c3d1bc;padding:14px 24px;gap:15px;background:#edf0e4;flex-shrink:0}.dialog-top>span{font:9px var(--mono);letter-spacing:.13em}.dialog-actions{display:flex;align-items:center;gap:14px}.small-button{background:transparent;display:flex;align-items:center;gap:7px;font-size:11px;padding:5px}.small-button svg{width:18px;height:18px}.dialog-content{padding:32px 42px 42px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#8fac98 transparent}.dialog-content h2{font-size:34px;font-weight:550;line-height:1.15;letter-spacing:-.04em;margin:0 0 16px}.dialog-content .dialog-intro{font-size:14px;color:var(--ink-soft);line-height:1.7;margin:0 0 25px}.dialog-content .mini-heading{margin-top:27px;margin-bottom:11px}.dialog-content p{font-size:14px;line-height:1.7;color:var(--ink-soft)}.dialog-content ul{font-size:13px;line-height:1.7;padding-left:19px;color:var(--ink-soft);margin:12px 0}.dialog-content li{margin-bottom:7px;padding-left:3px}.dialog-content li::marker{color:var(--green)}.dialog-focus{margin-top:25px;border-left:3px solid var(--green);background:#e8eddf;padding:14px 20px}.dialog-focus p{margin:5px 0;font-size:13px}.dialog-company{font:11px var(--mono);color:var(--green);margin-bottom:13px}.resume-title{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.resume-title h2{font-size:43px}.resume-title .cv-subtitle{font-size:14px;color:var(--green);font-weight:650;margin-top:0;line-height:1.4}.resume-contact{display:flex;gap:20px;flex-wrap:wrap;font-size:12px;border-bottom:1px solid #bfccb6;padding-bottom:21px;margin-top:10px;margin-bottom:21px}.resume-contact a{text-decoration:underline;text-decoration-color:#aabfad;text-underline-offset:3px}.resume-summary p{font-size:13px;margin:9px 0}.resume-values{font-style:italic;color:var(--green)!important}.resume-section{margin:29px 0}.resume-section>h3{font:11px var(--mono);letter-spacing:.16em;margin:0 0 18px;color:var(--green)}.resume-role{border-left:2px solid #b4cab5;padding:0 0 0 19px;margin:0 0 25px;break-inside:avoid}.role-top{display:flex;justify-content:space-between;gap:15px;align-items:baseline}.role-top h3,.role-top h4{font-size:17px;letter-spacing:-.02em;line-height:1.35;margin:0;font-weight:630}.role-top time{font:10px var(--mono);white-space:nowrap;color:var(--green)}.role-meta{font-size:12px!important;margin:6px 0 10px!important;color:var(--green)!important;line-height:1.4!important}.role-subtitle{font-size:12px!important;margin:0 0 9px!important}.resume-role ul{margin-bottom:0}.resume-skills{display:grid;grid-template-columns:1fr 1fr;gap:18px}.resume-skill h4{font-size:14px;margin:0 0 5px}.resume-skill p{font-size:12px;margin:0}.resume-tools{font-size:12px!important}.resume-footer{font:10px var(--mono)!important;border-top:1px solid #c2d0ba;padding-top:18px}.help-grid{display:grid;gap:13px}.help-row{display:grid;grid-template-columns:64px 1fr;align-items:start;gap:15px;border-top:1px solid #c6d4bf;padding-top:15px}.help-row kbd{font:11px var(--mono);background:#e1e8d8;border:1px solid #b6cbb3;border-bottom:3px solid #acbfa8;border-radius:4px;padding:7px;text-align:center}.help-row p{margin:0;font-size:13px}.chapter-menu{display:grid;grid-template-columns:1fr 1fr;gap:13px}.chapter-menu button{display:flex;align-items:center;gap:18px;background:#e9eedf;border:1px solid #b4c9b0;border-radius:4px;padding:20px;text-align:left;min-height:80px}.chapter-menu button span{font:12px var(--mono);color:var(--green)}.chapter-menu button strong{font-size:16px;font-weight:550}.chapter-menu button svg{margin-left:auto;width:18px;height:18px}.chapter-menu button:hover{background:#dce8d5}.toast{position:fixed;z-index:70;bottom:calc(var(--footer) + 21px);left:50%;transform:translate(-50%,12px);border:1px solid #9fb99f;padding:12px 20px;border-radius:4px;background:var(--ink);color:var(--cream);font-size:12px;line-height:1.5;box-shadow:var(--shadow);opacity:0;pointer-events:none;max-width:min(90%,470px);transition:opacity .2s,transform .2s;text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}.nojs{position:relative;z-index:50;padding:40px;background:var(--paper);margin:30px;border:1px solid var(--line)}.nojs a{text-decoration:underline}
html[data-reduced="true"] *,html[data-reduced="true"] *:before,html[data-reduced="true"] *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media(min-width:1600px){.hero .scene-content{max-width:1000px}.hero h1{font-size:90px}.hero-text{font-size:17px}.section-title{font-size:62px}.section-lead{font-size:16px}.scene-content{max-height:calc(100% - var(--actor) - var(--ground) + 45px)}.target-button strong{font-size:15px}.skill-details{padding:25px;min-height:250px}.skill-details p{font-size:14px}.career-card{min-height:242px;padding:25px}.career-card h3{font-size:24px}.career-card p{font-size:13px}.mission-card{min-height:278px}.mission-card h3{font-size:27px}.mission-card p{font-size:14px}.hero-scenic-label{top:16%}}
@media(max-width:1150px){:root{--actor:196px;--header:70px;--footer:98px}.topbar{gap:15px;padding:0 28px}.main-nav{gap:16px}.main-nav a{font-size:11px}.brand strong{font-size:10px}.brand small{font-size:8px}.brand-icon{width:32px;height:32px}.top-actions{gap:11px}.controller{gap:20px;padding:0 28px}.controller-hint{font-size:10px;gap:7px}.controller-hint .icon-button{display:none}.game-controls{gap:5px}.action-key{padding:0 6px}.action-key span{display:none}.skill-layout{grid-template-columns:minmax(0,1fr) 250px;gap:18px}.skill-details{padding:18px}.skill-details h3{font-size:21px}.target-grid{gap:5px}.career-grid{gap:12px}.career-card{padding:19px 16px 15px}.career-card h3{font-size:18px}.mission-card{padding:18px 20px}.mission-card h3{font-size:21px}.scene-content{margin:0 5.2vw}.learning-layout{gap:28px}.hero h1{font-size:65px}.hero .scene-content{width:68%}.hero-scenic-label{right:4%;width:27%;top:23%}.stats{gap:29px}.hero-text{max-width:445px}.hero-actions{gap:18px}.hero .scene-art{width:53%}.education-item{grid-template-columns:77px 1fr;gap:11px}}
@media(max-width:950px){:root{--header:66px;--footer:102px;--actor:184px}.main-nav{display:none}.brand strong{font-size:12px}.brand small{font-size:9px}.brand-icon{width:36px;height:36px}.topbar{padding:0 25px}.hero h1{font-size:57px}.hero .scene-content{width:73%}.hero-text{max-width:400px}.hero-scenic-label{right:4%;top:37%;width:29%;font-size:8px}.hero-scenic-label span{font-size:10px}.scene-content{max-height:calc(100% - var(--actor) - var(--ground) + 50px)}.controller-hint{display:none}.progress-block{max-width:500px}.controller{gap:35px}.mobile-help{display:inline-flex!important}.skill-layout{grid-template-columns:1fr 245px;gap:16px}.target-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.target-button{padding:0 4px 7px;display:grid;grid-template-columns:56px 1fr;grid-template-rows:auto auto;text-align:left;column-gap:5px}.target-button .target-svg{width:56px;grid-row:1/3}.target-button strong{font-size:11px;margin:0;align-self:end}.target-button small{font-size:9px;margin:3px 0 0;align-self:start}.target-number{display:none}.target-visited-mark{top:0;right:0;width:13px;height:13px}.career-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:8px}.career-grid:before,.career-card:before{display:none}.career-card{min-height:140px;padding:14px 18px}.career-card .card-date{margin-bottom:7px}.career-card h3{font-size:17px;margin-bottom:4px}.career-card .company{font-size:10px;margin-bottom:4px}.career-card p{font-size:10px;margin-bottom:4px;max-width:85%}.career-card .card-bottom{position:absolute;right:12px;bottom:12px}.career-card .card-bottom span{display:none}.mission-card{padding:15px 17px;min-height:228px}.mission-card h3{font-size:20px}.mission-card p{font-size:11px}.mission-header{margin-bottom:15px}.mission-header .mission-icon{width:34px;height:34px}.learning-layout{gap:23px}.education-item{grid-template-columns:1fr;gap:6px;padding:10px 0}.education-item h3{font-size:14px}.education-item p{font-size:10px}.language-item{padding:9px}.language-item strong{font-size:12px}.language-item small{font-size:9px}.contact h2{font-size:56px}.contact .scene-content{width:69%}.contact-actions{gap:11px}}
@media(max-height:790px) and (min-width:701px){:root{--actor:168px;--ground:53px;--footer:85px;--header:65px}.scene-content{padding-top:23px;max-height:calc(100% - var(--actor) - var(--ground) + 46px)}.eyebrow{margin-bottom:12px;font-size:9px}.section-title{font-size:39px;margin-bottom:10px}.section-lead{font-size:12px;margin-bottom:17px}.hero h1{font-size:57px;margin-bottom:18px}.hero-name{font-size:12px;margin-bottom:9px}.hero .eyebrow{margin-bottom:16px}.hero-role{font-size:12px;margin-bottom:7px}.hero-text{font-size:13px;line-height:1.5;margin-bottom:18px;max-width:440px}.primary-button{padding:12px 17px}.stats{margin-top:18px;padding-top:12px}.stat strong{font-size:22px}.stat small{font-size:9px}.hero-scenic-label{top:18%}.hero-scenic-label span{font-size:10px}.scene-art{height:350px}.scene:not(:first-child) .scene-art{height:185px}.target-button .target-svg{width:85px}.target-button strong{font-size:11px}.target-button small{font-size:9px}.skill-details{min-height:190px;padding:16px 19px}.skill-details h3{font-size:19px;margin-bottom:6px}.skill-details p{font-size:11px;margin-bottom:10px}.skill-details .tag{font-size:8px;padding:4px 6px}.skills-foot{margin-top:10px}.skills-foot p{font-size:9px}.explored-count{font-size:8px;padding:5px 8px}.career-card{min-height:180px;padding:16px 18px}.card-date{margin-bottom:12px;font-size:9px}.career-card h3{font-size:17px}.career-card p{font-size:10px}.career-card .company{font-size:10px}.career-grid{margin-top:24px}.career-footer{margin-top:12px}.mission-card{min-height:200px;padding:17px 22px}.mission-header{margin-bottom:11px}.mission-header .mission-icon{width:33px;height:33px}.mission-card h3{font-size:21px}.mission-card p{font-size:11px;margin-bottom:15px}.education-item{padding:9px 0}.education-item h3{font-size:14px}.education-item p{font-size:10px}.mini-heading{font-size:8px;margin-bottom:9px}.language-item{padding:8px 10px}.language-item strong{font-size:12px}.language-item small{font-size:9px}.language-list{margin-bottom:14px}.tool-preview{margin-top:10px}.tool-preview .tag{font-size:9px;padding:5px 7px}.tool-note{font-size:9px}.contact h2{font-size:59px;margin-bottom:17px}.contact .scene-art{height:350px}.contact .section-lead{max-width:420px;margin-bottom:20px}.outline-button{padding:12px;min-height:48px}.contact-details{font-size:11px;margin-bottom:14px}.contact-note{margin-top:13px}.chapter-stamp,.world-caption{bottom:18px}}
@media(max-width:950px) and (min-width:701px) and (max-height:790px){.target-button .target-svg{width:56px}.career-card{min-height:130px;padding:12px 16px}.career-grid{margin-top:8px}.career-card .card-date{margin-bottom:5px}.career-card p{max-width:94%}.career-footer{flex-wrap:wrap}.hero h1{font-size:51px}.hero .scene-content{width:73%}}
@media(max-width:700px){:root{--header:62px;--footer:132px;--actor:145px;--ground:51px;--actor-left:23%}.topbar{padding:0 20px;gap:8px}.brand{gap:7px}.brand-icon{width:29px;height:29px}.brand strong{font-size:10px;letter-spacing:.08em}.brand small{font-size:7px;letter-spacing:.15em;margin-top:4px}.top-actions{gap:12px}.top-divider{display:none}.language{width:30px;height:30px;font-size:10px}.cv-button{font-size:10px;gap:5px}.cv-button svg{width:16px;height:16px}.scene-content{padding-top:24px;margin:0 24px;max-height:calc(100% - var(--actor) - var(--ground) + 36px);padding-bottom:8px}.eyebrow{font-size:8px;letter-spacing:.13em;line-height:1.4;margin-bottom:12px}.section-title{font-size:36px;line-height:1.1;margin-bottom:10px;letter-spacing:-.044em;max-width:500px}.section-lead{font-size:12px;line-height:1.55;margin-bottom:19px;max-width:440px}.hero .scene-content{width:auto;max-width:none;max-height:calc(100% - var(--actor) - var(--ground) + 36px);overflow-y:auto}.hero .eyebrow{margin-bottom:17px}.hero-name{font-size:12px;margin-bottom:12px}.hero h1{font-size:clamp(41px,7.7vw,54px);line-height:1.07;margin-bottom:20px;max-width:570px;letter-spacing:-.06em}.hero h1 em{max-width:580px;line-height:1.02}.hero-role{font-size:12px;margin-bottom:8px}.hero-text{font-size:12px;line-height:1.6;max-width:455px;margin-bottom:20px}.hero-actions{gap:16px;flex-wrap:wrap}.primary-button{font-size:11px;padding:13px 16px;gap:22px}.primary-button svg{width:19px;height:19px}.hero-actions>.text-link{font-size:10px;padding:6px 0}.stats{gap:28px;padding-top:13px;margin-top:19px;max-width:380px}.stat strong{font-size:23px}.stat small{font-size:9px}.hero-scenic-label{display:none}.hero .scene-art{width:74%;height:218px;right:-7%;max-height:40%;bottom:var(--ground)}.scene:not(:first-child) .scene-art{width:64%;height:170px;right:-6%;max-height:32%}.scene-marker{height:53px;width:35px;left:62%}.scene-marker span{font-size:9px;padding:6px 3px;width:35px}.scene-marker:before{left:17px}.drone{width:39px;height:30px;left:calc(var(--actor-left) - 42px);bottom:calc(var(--ground) + var(--actor) + 5px)}.chapter-stamp{font-size:8px;left:23px;bottom:19px}.world-caption{font-size:7px;right:20px;bottom:19px;max-width:61%;text-align:right}.skill-layout{grid-template-columns:1fr;gap:14px}.target-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.target-button{display:flex;text-align:center;padding:4px 2px 6px}.target-button .target-svg{width:61px;max-width:100%}.target-button strong{font-size:10px;line-height:1.3;margin-top:4px;align-self:center;max-width:86px}.target-button small{display:none}.target-number{display:none}.skill-details{padding:14px 17px;min-height:0;box-shadow:0 6px 24px #173b420a}.skill-details:before{top:15px;bottom:15px;width:3px}.skill-kicker{font-size:8px;margin-bottom:6px}.skill-details h3{font-size:21px;margin-bottom:6px}.skill-details p{font-size:11px;line-height:1.5;margin-bottom:10px}.skill-details .tag{font-size:8px;padding:4px 6px}.skills-foot{margin-top:10px;gap:10px;align-items:flex-start}.skills-foot p{font-size:9px;line-height:1.5}.explored-count{font-size:8px;padding:5px 8px}.target-visited-mark{top:0;right:0;width:14px;height:14px}.career-grid{grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.career-card{min-height:137px;padding:13px 13px 12px}.career-card .card-date{font-size:8px;margin-bottom:9px;max-width:91%}.career-card h3{font-size:16px;line-height:1.15;margin-bottom:6px}.career-card .company{font-size:9px;margin-bottom:5px}.career-card p{font-size:9px;line-height:1.4;max-width:96%;margin-bottom:6px}.career-card .card-icon{width:19px;height:19px;right:9px;top:8px;opacity:.3}.career-card .card-bottom{right:9px;bottom:8px}.career-card .card-bottom svg{width:15px;height:15px}.career-footer{margin-top:11px;display:block}.career-footer p{font-size:9px;line-height:1.5}.career-footer .text-link{font-size:10px;margin-top:7px}.mission-grid{grid-template-columns:1fr;gap:10px}.mission-card{min-height:0;padding:15px 17px 13px 65px;display:block}.mission-header{position:absolute;left:14px;top:17px;display:block;margin:0}.mission-header .mission-icon{width:33px;height:33px}.mission-header span{display:none}.mission-card small{font-size:8px;margin-bottom:6px}.mission-card h3{font-size:18px;line-height:1.15;margin-bottom:5px;max-width:400px}.mission-card p{font-size:10px;line-height:1.5;margin-bottom:8px;max-width:100%}.mission-card .card-bottom{font-size:9px;padding-top:7px}.mission-card .card-bottom svg{width:14px;height:14px}.learning-layout{grid-template-columns:1fr;gap:12px}.mini-heading{font-size:8px;margin-bottom:9px}.education-item{display:grid;grid-template-columns:66px 1fr;padding:9px 0;gap:9px}.education-item time{font-size:8px}.education-item h3{font-size:13px;line-height:1.25;margin-bottom:3px}.education-item p{font-size:9px;line-height:1.4}.language-list{gap:7px;margin-bottom:9px}.language-item{padding:8px 10px}.language-code{display:none}.language-item strong{font-size:11px}.language-item small{font-size:8px;margin-top:3px}.tool-preview{margin-top:10px}.tool-preview .tags{gap:4px}.tool-preview .tag{font-size:8px;padding:4px 6px}.tool-note{font-size:8px;margin:6px 0}.tool-preview .text-link{font-size:9px}.contact .scene-content{width:auto;max-height:calc(100% - var(--actor) - var(--ground) + 36px);overflow-y:auto}.contact h2{font-size:clamp(41px,7.7vw,57px);margin-bottom:18px}.contact .section-lead{font-size:12px;max-width:440px;margin-bottom:20px}.contact-actions{gap:10px;margin-bottom:15px}.outline-button{min-height:47px;font-size:10px;padding:11px 12px}.outline-button svg{width:16px;height:16px}.contact-details{font-size:11px;gap:3px;display:flex;flex-direction:column;margin-bottom:15px}.contact-foot{gap:17px}.contact-foot .text-link{font-size:10px}.contact-note{font-size:8px;margin-top:16px}.contact .scene-art{height:225px;width:81%;right:-14%;max-height:38%}.controller{padding:11px 22px 12px;height:var(--footer);display:grid;grid-template-columns:1fr;gap:10px;align-content:center;justify-content:stretch;padding-bottom:max(12px,env(safe-area-inset-bottom))}.progress-block{width:100%;max-width:none;flex:none}.progress-top{margin-bottom:5px}.progress-top button{font-size:9px;letter-spacing:.04em}.progress-top button svg{width:11px;height:11px}.progress-labels{display:none}.progress-block input{height:13px}.game-controls{width:100%;justify-content:space-between;gap:8px}.control-key{height:35px;width:39px}.direction-controls{gap:5px}.action-key{width:auto;padding:0 12px}.action-key span{display:inline;font:9px var(--mono)}.action-key svg{width:17px;height:17px}.fire-key svg{width:21px;height:21px}.motion-button{margin-left:0;width:31px;height:31px}.mobile-help{width:31px;height:31px}.detail-dialog,.detail-dialog.resume-dialog{width:calc(100vw - 20px);max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);border-radius:6px}.dialog-top{padding:11px 15px;gap:8px}.dialog-top>span{font-size:8px;letter-spacing:.08em}.dialog-actions{gap:7px}.dialog-top .small-button{font-size:9px;gap:5px}.dialog-top .small-button svg{width:15px;height:15px}.dialog-top .icon-button{width:30px;height:30px}.dialog-content{padding:24px 21px 30px}.dialog-content h2{font-size:30px}.dialog-content p{font-size:12px}.dialog-content .dialog-intro{font-size:12px}.dialog-content ul{font-size:12px;line-height:1.6}.dialog-content .mini-heading{margin-top:23px}.resume-title{display:block}.resume-title h2{font-size:35px;margin-bottom:10px}.resume-title .cv-subtitle{font-size:13px}.resume-title .text-link{font-size:10px;margin-bottom:3px}.resume-contact{font-size:11px;gap:8px;flex-direction:column;padding-bottom:16px;margin-bottom:17px}.role-top{flex-direction:column;gap:5px}.role-top h3,.role-top h4{font-size:15px}.resume-role{padding-left:13px}.role-top time{font-size:9px}.resume-skills{grid-template-columns:1fr;gap:14px}.resume-section>h3{font-size:9px}.resume-skill h4{font-size:13px}.resume-skill p{font-size:11px}.help-row{grid-template-columns:48px 1fr;gap:12px}.help-row kbd{font-size:9px;padding:6px}.help-row p{font-size:11px}.chapter-menu{gap:10px}.chapter-menu button{padding:16px 13px;gap:10px;min-height:76px}.chapter-menu button strong{font-size:14px}.chapter-menu button span{font-size:10px}.chapter-menu button svg{width:15px;height:15px}.toast{font-size:11px;padding:10px 16px;bottom:calc(var(--footer) + 10px)} }
@media(max-width:430px){.topbar{padding:0 17px}.top-actions{gap:9px}.scene-content{margin:0 22px}.hero-actions{gap:12px}.hero-actions>.text-link{font-size:9px}.primary-button{gap:16px}.stats{gap:27px}.stat strong{font-size:22px}.stat small{font-size:8px}.target-button .target-svg{width:58px}.section-title{font-size:33px}.career-card h3{font-size:15px}.career-card{padding:12px}.game-controls{gap:6px}.action-key{padding:0 9px}.controller{padding-left:19px;padding-right:19px}.control-key{width:36px}.action-key{width:auto}.brand strong{font-size:9px}.brand-icon{width:28px;height:28px}.contact h2{font-size:43px}.contact-foot{gap:14px}.contact-foot .text-link{font-size:9px}}
@media(max-height:740px) and (max-width:700px){:root{--header:56px;--footer:117px;--actor:121px;--ground:42px}.scene-content{padding-top:17px;max-height:calc(100% - var(--actor) - var(--ground) + 28px)}.hero .scene-content,.contact .scene-content{max-height:calc(100% - var(--actor) - var(--ground) + 28px)}.hero .eyebrow{margin-bottom:12px}.eyebrow{font-size:7px;margin-bottom:10px}.hero-name{font-size:11px;margin-bottom:8px}.hero h1{font-size:38px;margin-bottom:14px}.hero-role{font-size:11px;margin-bottom:7px}.hero-text{font-size:11px;line-height:1.45;margin-bottom:14px}.hero-actions{gap:12px}.hero-actions>.text-link{font-size:8px}.primary-button{font-size:10px;padding:11px 13px;gap:12px}.primary-button svg{width:17px;height:17px}.stats{margin-top:14px;padding-top:10px;gap:26px}.stat strong{font-size:20px}.stat small{font-size:8px}.section-title{font-size:29px;margin-bottom:9px}.section-lead{font-size:11px;line-height:1.45;margin-bottom:13px}.target-button .target-svg{width:47px}.target-button strong{font-size:9px}.skill-layout{gap:10px}.skill-details{padding:11px 14px}.skill-details h3{font-size:18px}.skill-details p{font-size:10px;line-height:1.45;margin-bottom:8px}.skill-details .tag{font-size:7px;padding:3px 5px}.skills-foot p{font-size:8px}.explored-count{font-size:7px;padding:5px 6px}.career-card{min-height:123px;padding:11px}.career-card h3{font-size:14px}.career-card p{font-size:8px}.career-card .company{font-size:8px}.career-card .card-date{font-size:7px;margin-bottom:7px}.career-footer{margin-top:8px}.career-footer p{font-size:8px}.career-footer .text-link{font-size:9px}.mission-card{padding:12px 14px 11px 56px}.mission-header{left:12px;top:14px}.mission-header .mission-icon{width:29px;height:29px}.mission-card h3{font-size:16px}.mission-card p{font-size:9px;line-height:1.4}.mission-card .card-bottom{font-size:8px;padding-top:5px}.mission-grid{gap:8px}.education-item h3{font-size:12px}.education-item p{font-size:8px}.education-item{padding:7px 0}.learning-layout{gap:9px}.language-item{padding:6px 8px}.language-item strong{font-size:10px}.language-item small{font-size:8px}.tool-preview .tag{font-size:7px;padding:3px 5px}.tool-note{font-size:7px}.contact h2{font-size:39px;margin-bottom:15px}.contact .section-lead{font-size:11px;line-height:1.5;margin-bottom:15px}.outline-button{min-height:41px;font-size:9px;padding:10px}.contact-details{font-size:10px;margin-bottom:11px}.contact-foot .text-link{font-size:9px}.contact-note{font-size:7px;margin-top:11px}.hero .scene-art{height:181px}.scene:not(:first-child) .scene-art{height:142px}.contact .scene-art{height:183px}.chapter-stamp,.world-caption{bottom:14px}.controller{padding-top:9px;padding-bottom:9px;gap:8px}.control-key{height:33px}.progress-top{margin-bottom:3px}.drone{width:32px;height:26px}.detail-dialog,.detail-dialog.resume-dialog{max-height:calc(100vh - 18px)}}
@media(max-height:530px){:root{--header:49px;--footer:66px;--actor:98px;--ground:28px}.topbar{padding:0 22px}.brand-icon{height:28px;width:28px}.brand small{font-size:7px}.controller{display:flex;gap:25px;padding:7px 23px}.controller-hint{display:none}.game-controls{width:auto}.progress-block{max-width:420px}.progress-labels{display:none}.scene-content{padding-top:16px;max-height:calc(100% - 52px)}.hero .scene-content,.contact .scene-content{overflow:auto;max-height:calc(100% - 52px);width:70%}.hero h1{font-size:40px;margin-bottom:10px}.hero .eyebrow{margin-bottom:10px}.hero-name{margin-bottom:7px}.hero-text{margin-bottom:12px;font-size:11px;max-width:400px}.hero-role{font-size:11px}.hero-actions{gap:15px}.stats{margin-top:13px;padding-top:10px}.hero-scenic-label{display:none}.hero .scene-art{height:210px;max-height:80%;width:43%;right:0}.section-title{font-size:30px}.section-lead{font-size:11px;margin-bottom:16px}.scene:not(:first-child) .scene-art{height:130px;opacity:.45}.chapter-stamp,.world-caption{bottom:8px;font-size:7px}.drone{display:none}.actor{opacity:.9;left:87%}.scene-marker{display:none}.contact h2{font-size:40px}.contact .scene-art{height:210px;max-height:85%}.detail-dialog,.detail-dialog.resume-dialog{max-height:calc(100vh - 16px)}.dialog-top{padding:9px 18px}.dialog-content{padding:20px 28px}.main-nav{display:none}}

/* Keep the hidden SVG symbol library out of document flow. */
#svg-library{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
#svg-library>svg{width:0;height:0}
/* The companion sits within the character band, never over resume text. */
.drone{bottom:calc(var(--ground) + var(--actor) - 25px)}
.panel-more{display:none;position:absolute;z-index:5;right:6%;bottom:calc(var(--ground) + var(--actor) + 12px);align-items:center;gap:7px;padding:7px 11px;border-radius:20px;background:var(--ink);color:var(--cream);font:9px var(--mono);box-shadow:0 3px 12px #173b4220}
.panel-more svg{width:12px;height:12px;transform:rotate(90deg)}
.scene.has-overflow .panel-more{display:flex}
@media(max-width:700px) and (min-height:531px){
  .scene-content,.hero .scene-content,.contact .scene-content{max-height:calc(100% - var(--actor) - var(--ground) - 12px)}
  .panel-more{right:22px;bottom:calc(var(--ground) + var(--actor) + 7px);font-size:8px;padding:6px 10px}
  .drone{bottom:calc(var(--ground) + var(--actor) - 25px)}
}
@media(max-height:530px){.panel-more{bottom:36px;right:5%}}

/* Version 2: private contact form, boot fallback, and uninterrupted mobile input. */
#app-shell{height:100%}
.boot-fallback{position:fixed;z-index:800;left:50%;top:50%;transform:translate(-50%,-50%);width:min(620px,90vw);padding:32px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);line-height:1.6}
.boot-fallback[hidden]{display:none}.boot-fallback a{display:block;text-decoration:underline;margin:14px 0}.boot-fallback button{padding:12px 18px;background:var(--ink);color:var(--cream);border-radius:4px}
.stage[data-chapter="contact"]{--actor-left:25%}
.contact .scene-content{width:auto;max-width:1440px;max-height:calc(100% - var(--ground) - 24px);overflow-x:hidden;overflow-y:auto;padding-bottom:20px}
.contact-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,1.05fr);gap:clamp(35px,7vw,100px);align-items:start}
.contact-intro{padding-top:16px}.contact h2{font-size:clamp(37px,4.3vw,64px);line-height:1.06;margin-bottom:20px}.contact .section-lead{font-size:14px;max-width:430px;margin-bottom:22px}.contact .scene-art{right:60%;width:36%;opacity:.38}.contact .scene-marker{left:40%}
.contact-form{background:#f8f6ecf7;border:1px solid #a6bfa8;border-top:3px solid var(--green);border-radius:5px;padding:23px 26px 20px;box-shadow:0 15px 45px #173b420b;max-width:620px;min-width:0}
.contact-form-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.contact-form-heading h3{font-size:26px;letter-spacing:-.04em;margin:0 0 5px;font-weight:550}.contact-form-heading p{font-size:12px;color:var(--ink-soft);line-height:1.5;margin:0}.contact-form-heading>svg{width:27px;height:27px;color:var(--green)}
.contact-required{font:9px var(--mono);line-height:1.5;color:var(--ink-soft);margin:16px 0 12px}.contact-fields{border:0;padding:0;margin:0;min-width:0;display:flex;flex-direction:column;gap:12px}.contact-field{display:flex;flex-direction:column;gap:6px;min-width:0}.contact-field label{font-size:11px;font-weight:650;line-height:1.4}.contact-field input,.contact-field textarea{width:100%;max-width:100%;min-width:0;background:#fffdf8;color:var(--ink);border:1px solid #bdcbb7;border-radius:3px;padding:11px 12px;font:13px var(--sans);line-height:1.45;box-shadow:none;outline-offset:2px}.contact-field textarea{resize:vertical;min-height:92px;max-height:240px;overscroll-behavior:contain}.contact-field input::placeholder,.contact-field textarea::placeholder{color:#74867d;opacity:1}.contact-field input:focus-visible,.contact-field textarea:focus-visible{outline:2px solid var(--green);border-color:var(--green)}
.contact-submit{width:100%;justify-content:space-between;margin-top:15px;min-height:44px;padding:12px 15px}.contact-submit:disabled{opacity:.6}.contact-submit:hover{transform:none}.contact-honeypot{display:none!important}.contact-status{font-size:12px;line-height:1.5;padding:10px 12px;border-radius:3px;border:1px solid #c8ceb4;background:#eef0df;margin:14px 0 0;overflow-wrap:anywhere}.contact-status[data-kind="error"]{border-color:#c39482;background:#fff0e8;color:#783822}.contact-status[data-kind="success"]{border-color:#8db69b;background:#e6f2e5;color:#205b46}.contact-status[hidden],.contact-verify[hidden]{display:none!important}.contact-verify{font-size:12px;margin-top:10px;width:100%;line-height:1.5}.contact-privacy{margin-top:14px;color:var(--ink-soft);font-size:10px;line-height:1.6}.contact-privacy summary{cursor:pointer;min-height:24px;padding:4px 0}.contact-privacy p{font-size:11px;margin:9px 0}.contact-privacy a{text-decoration:underline;text-underline-offset:3px}.resume-contact a{display:inline-flex;align-items:center;gap:8px}.resume-contact svg{width:16px;height:16px}
@media (max-width:1050px) and (min-width:701px){.contact-layout{gap:30px;grid-template-columns:minmax(0,1fr) minmax(300px,1.12fr)}.contact .scene-content{margin:0 4vw}.contact h2{font-size:45px}.contact-form{padding:19px 22px}.contact-intro .section-lead{font-size:12px}.stage[data-chapter="contact"]{--actor-left:24%}}
@media (max-height:790px) and (min-width:701px){.contact .scene-content{padding-top:24px;max-height:calc(100% - var(--ground) - 14px)}.contact-form{padding:16px 22px}.contact-form-heading h3{font-size:23px}.contact-required{margin:10px 0}.contact-fields{gap:9px}.contact-field input,.contact-field textarea{padding:9px 11px;font-size:12px}.contact-field textarea{min-height:68px;height:76px}.contact-privacy{margin-top:8px}.contact-submit{margin-top:12px}.contact-intro{padding-top:9px}.contact h2{font-size:clamp(35px,4.1vw,55px)}}
@media (max-width:700px){.contact .scene-content{width:auto!important;margin:0 20px!important;max-width:none;max-height:calc(100% - var(--ground) - 48px)!important;padding-top:24px;padding-bottom:20px;overflow:auto!important}.contact-layout{grid-template-columns:minmax(0,1fr);gap:20px}.contact-intro{padding-top:0}.contact h2{font-size:39px;margin:0 0 12px}.contact .section-lead{font-size:12px;line-height:1.6;margin-bottom:10px;max-width:100%}.contact .eyebrow{margin-bottom:10px;font-size:9px}.contact-note{display:none}.contact-foot{gap:22px}.contact-foot .text-link{font-size:10px}.contact-form{padding:18px 18px 16px;max-width:none}.contact-form-heading h3{font-size:25px}.contact-form-heading p{font-size:11px}.contact-required{font-size:9px;margin:12px 0}.contact-field label{font-size:12px}.contact-field input,.contact-field textarea{font-size:16px;padding:10px 11px}.contact-field input::placeholder,.contact-field textarea::placeholder{font-size:12px}.contact-field textarea{min-height:94px}.contact-privacy summary{font-size:11px}.stage[data-chapter="contact"] .actor{height:72px;width:53px;left:12%;opacity:.9}.stage[data-chapter="contact"] .drone{display:none}.contact .scene-art{opacity:.1;right:0;width:80%}.contact .scene-marker{display:none}.contact .panel-more{bottom:calc(var(--ground) + 12px)}.loader-brand{font-size:9px;letter-spacing:.16em}.loader-corner{inset:15px}.loader-status{font-size:11px}}
@media (max-width:380px){.contact .scene-content{margin:0 16px!important}.contact-form{padding:16px}.contact h2{font-size:36px}}
@media (max-height:500px){.contact .scene-content{max-height:calc(100% - 12px)!important;padding-top:15px}.stage[data-chapter="contact"] .actor,.stage[data-chapter="contact"] .drone,.stage[data-chapter="contact"] .ground,.stage[data-chapter="contact"] .chapter-stamp,.stage[data-chapter="contact"] .world-caption{display:none}.contact .panel-more{bottom:6px}}
