:root{--ink: #1d2233;--ink-2: #2b3350;--glass: rgba(24, 30, 52, .78);--glass-line: rgba(255, 255, 255, .16);--paper: #f7efdd;--paper-2: #efe3c7;--paper-ink: #2c2620;--muted: #7c7466;--accent: #f2a541;--accent-2: #ffd27a;--green: #7fc97a;--heart: #ff4f6d;--font-pixel: "Pixelify Sans", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--font-hand: "Caveat", cursive;--shadow: 0 10px 30px rgba(0, 0, 0, .35);color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#1b2233;color:#fff;font-family:var(--font-mono);font-size:15px;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}#game,#game canvas{position:fixed;top:0;right:0;bottom:0;left:0;display:block;touch-action:none}button{font:inherit;color:inherit;cursor:pointer}kbd{display:inline-block;min-width:1.5em;padding:0 .35em;margin:0 .12em;border:1px solid currentColor;border-radius:3px;font:600 .8em/1.45 var(--font-mono);text-align:center;opacity:.9}.ico{display:inline-flex;vertical-align:-2px}.hand{font-family:var(--font-hand)}.emo{font-family:system-ui,"Segoe UI Emoji","Apple Color Emoji",sans-serif}.muted{color:var(--muted)}.loader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-content:center;gap:18px;justify-items:center;background:#141a2a;transition:opacity .5s ease,visibility .5s}.loader.done{opacity:0;visibility:hidden}.loader-title{font:700 44px var(--font-pixel);letter-spacing:4px}.loader-track{width:min(280px,70vw);height:10px;border:2px solid #fff;padding:2px}.loader-bar{height:100%;width:0;background:var(--accent);transition:width .2s}.loader-text{font-size:13px;opacity:.7}.fade{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:#0c0f18;opacity:0;pointer-events:none;transition:opacity .3s ease}.fade.on{opacity:1}.landing{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .5s,visibility .5s;text-shadow:0 2px 0 rgba(10,20,50,.35)}.landing.show{opacity:1;visibility:visible}.landing>*{pointer-events:auto}.land-tag{position:absolute;top:22px;font:500 13px/1.5 var(--font-mono);letter-spacing:2px}.land-tag.tl{left:26px}.land-tag.tl .code{font-size:18px;letter-spacing:4px}.land-tag.tr{right:26px;text-align:right;font-size:11px}.land-center{position:absolute;left:50%;top:9vh;transform:translate(-50%);width:min(560px,92vw);text-align:center}.welcome{font:600 clamp(16px,2.2vw,24px) var(--font-pixel);letter-spacing:6px}.title{margin:6px 0 4px;font:700 clamp(46px,8vw,96px)/1 var(--font-pixel);letter-spacing:6px;color:#fff;text-shadow:0 4px 0 #3a5da8,0 8px 0 rgba(15,30,70,.4)}.sub{font:600 clamp(13px,1.5vw,17px) var(--font-mono);letter-spacing:5px}.tagline{margin:14px 0 22px;font-size:clamp(13px,1.4vw,16px);text-shadow:0 1px 6px rgba(10,30,80,.8),0 0 2px rgba(10,30,80,.9)}.land-menu{display:grid;gap:4px;width:min(300px,86vw);margin:0 auto;padding:6px;background:#ffffffd1;border-radius:4px;box-shadow:var(--shadow);text-shadow:none}.menu-btn{display:flex;align-items:center;gap:12px;padding:11px 16px;border:0;border-radius:3px;background:transparent;color:var(--ink);text-align:left;font-size:15px;transition:background .15s,transform .15s}.menu-btn .lbl{flex:1}.menu-btn.primary{background:var(--ink-2);color:#fff}.menu-btn:hover,.menu-btn:focus-visible{background:#dfe6f5;outline:none;transform:translate(3px)}.menu-btn.primary:hover,.menu-btn.primary:focus-visible{background:#3a4670}.land-note{position:absolute;right:5vw;top:46vh;font-size:clamp(20px,2.2vw,30px);line-height:1.15;transform:rotate(-12deg);color:#fff}.contact-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .6s,visibility .6s;text-shadow:0 2px 10px rgba(0,0,30,.7)}.contact-overlay.show{opacity:1;visibility:visible}.contact-main{position:absolute;left:50%;top:12vh;transform:translate(-50%);width:min(720px,94vw);text-align:center;pointer-events:auto}.thanks{margin:0;font-size:clamp(40px,5vw,64px);font-weight:500}.together{margin:0 0 22px;font-size:clamp(22px,2.4vw,30px)}.contact-links{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.bye{position:absolute;left:50%;bottom:3vh;transform:translate(-50%);margin:0;font-size:clamp(20px,2.2vw,28px);white-space:nowrap}.btn{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border:2px solid var(--ink-2);border-radius:3px;background:#fff;color:var(--ink);text-decoration:none;font:600 13px var(--font-mono);transition:transform .12s,background .12s}.btn:hover{transform:translateY(-2px);background:#f1f4fb}.btn.primary{background:var(--ink-2);color:#fff}.btn.primary:hover{background:#3a4670}.btn.ghost{background:#0a0e1e59;color:#fff;border-color:#ffffffd9;text-shadow:none}.btn.ghost:hover{background:#ffffff26}#hud{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;pointer-events:none}#hud>*{display:none}#hud[data-mode=world] .hud-world,#hud[data-mode=room] .hud-room,#hud[data-mode=mini] .hud-mini{display:block}#hud button{pointer-events:auto}.player-card{position:absolute;left:16px;top:14px;display:flex;align-items:center;gap:10px;padding:6px 14px 6px 6px;background:var(--glass);border:1px solid var(--glass-line);border-radius:4px}.avatar{width:52px;height:52px;border-radius:3px;background:#f4e6c9;border:2px solid #fff;image-rendering:pixelated}.hearts{display:flex;gap:3px;color:var(--heart)}.hearts .ico svg{width:18px;height:18px}.level{margin-top:3px;font-size:13px}.lv{font-family:var(--font-pixel);font-weight:700;color:var(--accent-2)}.controls-hint{position:absolute;left:16px;top:88px;padding:8px 12px;background:#ffffffe6;color:var(--ink);border-radius:4px;border:2px solid var(--ink-2);font-size:12px;line-height:1.8}.hud-nav{position:absolute;right:16px;top:14px;display:flex;background:var(--glass);border:1px solid var(--glass-line);border-radius:4px;overflow:hidden}.hud-nav button,.room-actions button,.hud-mini button{display:inline-flex;align-items:center;gap:7px;padding:9px 13px;border:0;background:transparent;font-size:13px}.hud-nav button:hover,.room-actions button:hover,.hud-mini button:hover{background:#ffffff1f}.hud-nav .hot{color:var(--accent-2)}.hud-room{position:absolute;inset:0 0 auto 0;height:50px;display:flex!important;align-items:center;justify-content:space-between;padding:0 16px;background:linear-gradient(#0e1222d9,#0e122200)}#hud:not([data-mode=room]) .hud-room{display:none!important}.room-title{font:500 15px var(--font-mono);letter-spacing:2px}.room-actions{display:flex;gap:6px}.room-actions button{background:var(--glass);border:1px solid var(--glass-line);border-radius:4px}.hud-mini{position:absolute;right:16px;bottom:16px}.hud-mini button{background:var(--glass);border:1px solid var(--glass-line);border-radius:4px}.touch{display:none!important}@media (pointer: coarse){#hud[data-mode=world] .touch,#hud[data-mode=room] .touch,#hud[data-mode=mini] .touch{display:flex!important;position:absolute;inset:auto 0 0 0;justify-content:space-between;padding:0 max(16px,env(safe-area-inset-left)) max(18px,env(safe-area-inset-bottom))}.hud-mini{bottom:auto;top:70px}.controls-hint{display:none}}.touch-left,.touch-right{display:flex;gap:12px;align-items:flex-end}.pad{width:64px;height:64px;border-radius:50%;border:2px solid rgba(255,255,255,.7);background:#141a2e80;font:700 22px var(--font-pixel);touch-action:none;user-select:none;-webkit-user-select:none}.pad.small{width:52px;height:52px;font-size:18px}.pad.down{background:#f2a541b3}.prompt{position:fixed;left:0;top:0;z-index:15;padding:7px 12px;background:#fdf8ec;color:var(--ink);border:2px solid var(--ink);border-radius:5px;font-size:13px;white-space:nowrap;box-shadow:0 4px #00000040;opacity:0;pointer-events:none;transition:opacity .15s;cursor:pointer}.prompt.show{opacity:1;pointer-events:auto;animation:bob 1.4s ease-in-out infinite}.prompt:after{content:"";position:absolute;left:50%;bottom:-8px;margin-left:-6px;border:6px solid transparent;border-top-color:var(--ink);border-bottom:0}@keyframes bob{50%{margin-top:-4px}}.toast{position:fixed;left:50%;bottom:26px;z-index:30;transform:translate(-50%,20px);max-width:92vw;padding:10px 16px;background:var(--glass);border:1px solid var(--glass-line);border-radius:4px;font-size:13px;text-align:center;opacity:0;transition:opacity .25s,transform .25s;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%)}@media (pointer: coarse){.toast{bottom:110px}}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:16px;background:#080a1473;opacity:0;transition:opacity .18s}.modal.open{opacity:1}.panel{position:relative;width:min(960px,100%);max-height:calc(100dvh - 32px);overflow:auto;padding:26px 28px;background:var(--paper);color:var(--paper-ink);border:3px solid var(--ink);border-radius:6px;box-shadow:0 6px #0000004d,var(--shadow);transform:translateY(12px);transition:transform .2s}.modal.open .panel{transform:none}.panel-close{position:absolute;right:10px;top:10px;z-index:2;width:34px;height:34px;display:grid;place-items:center;border:2px solid var(--ink);border-radius:4px;background:#fff;color:var(--ink)}.panel-close:hover{background:var(--accent-2)}.panel h2{margin:0 0 4px;font:700 28px var(--font-pixel);letter-spacing:1px}.panel h3{margin:18px 0 6px;font:700 16px var(--font-pixel);letter-spacing:1px}.panel p,.panel li{line-height:1.6;font-size:14px}.panel ul{padding-left:20px;margin:6px 0}.crumb{margin-bottom:12px;font:500 14px var(--font-mono);letter-spacing:2px;color:var(--muted)}.tags{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.tag{padding:3px 9px;background:#dfe8f7;color:#274070;border-radius:3px;font-size:12px;font-weight:600}.links{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.badge{display:inline-block;padding:4px 10px;background:var(--paper-2);border-radius:3px;font-size:12px!important}.role{margin:0 0 12px;font-weight:600;color:#4a5a8a}.modal:has(.about-panel){background:#080a141f;place-items:stretch}.about-panel{width:100%;transform:translateY(12px);transition:transform .2s}.modal.open .about-panel{transform:none}.about-layout{display:grid;grid-template-columns:180px 1fr;gap:18px;align-items:start;height:100%}.about-tabs{display:grid;gap:6px;margin-top:7vh}.about-layout .paper{position:relative;justify-self:center;width:min(640px,100%);margin:7vh 0 0 6vw;max-height:80vh}.paper .panel-close{right:10px;top:10px}.about-body{min-height:230px}.tw-hidden{visibility:hidden}.typing{cursor:pointer}.tab{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--glass-line);border-radius:4px;background:var(--glass);color:#fff;text-align:left;font-size:13px}.tab.active{background:#e8ecf6;color:var(--ink)}.paper{display:flex;flex-direction:column;max-height:calc(100dvh - 40px);background:var(--paper);color:var(--paper-ink);border:3px solid var(--ink);border-radius:6px;box-shadow:var(--shadow)}.about-body{padding:28px 30px 10px;overflow:auto}.paper-foot{padding:12px 30px 20px;display:flex;justify-content:flex-end}.card-title{font:700 28px var(--font-pixel)!important}.traits{list-style:none;padding:0!important;display:flex;flex-wrap:wrap;gap:6px}.traits li{padding:2px 10px 2px 6px;background:var(--paper-2);border-radius:3px;font-size:13px}.traits .emo{display:inline-block;width:22px}.story{position:relative;min-height:132px;margin-top:14px;padding:12px 16px 14px;background:#fffaf0;border:2px solid var(--paper-ink);border-radius:4px;box-shadow:0 3px #0000001f}.story:empty{visibility:hidden}.story-tag{font:700 14px var(--font-pixel);color:#b8691c;letter-spacing:1px}.story-text{margin:6px 0 0!important;font-size:14.5px!important}.story-next{position:absolute;right:12px;bottom:6px;font-size:12px;color:var(--paper-ink);animation:nudge .8s ease-in-out infinite}@keyframes nudge{50%{transform:translateY(3px)}}.timeline{list-style:none;padding:0;margin:12px 0 0;border-left:3px solid var(--accent)}.timeline>li{position:relative;padding:0 0 16px 18px}.timeline>li:before{content:"";position:absolute;left:-8px;top:5px;width:11px;height:11px;background:var(--accent);border:2px solid var(--paper-ink)}.tl-period{font-size:12px;color:var(--muted)}.tl-role{font:700 16px var(--font-pixel)}.tl-company{font-size:13px;font-weight:600;color:#4a5a8a}.interest-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.interest{padding:14px;background:var(--paper-2);border-radius:4px}.interest h3{margin:6px 0 2px}.interest p{margin:0;font-size:13px}.emo.big{font-size:26px}.note{font-size:26px;margin:0;color:#6a5a3a}.facts li{margin-bottom:6px}.skills-panel{width:min(1080px,100%)}.skill-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:14px}.skill-card{padding:16px;background:#fff;border:2px solid var(--ink);border-radius:5px;box-shadow:0 4px #0000001f}.skill-card header{display:flex;align-items:center;gap:10px}.skill-card header .emo{font-size:24px}.skill-card h3{margin:0}.skill-card .hand{margin:4px 0 0;font-size:20px;color:#6a5a3a}.detail-panel{width:min(1100px,100%)}.detail-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:26px}.media-main{position:relative;aspect-ratio:16 / 10;overflow:hidden;background:var(--accent);border:3px solid var(--ink);border-radius:4px}.media-main img{width:100%;height:100%;object-fit:cover;display:block}.media-placeholder{height:100%;display:grid;place-content:center;justify-items:center;gap:10px;color:#fff;font-weight:600;text-shadow:0 2px 0 rgba(0,0,0,.3);background:linear-gradient(transparent 62%,#0000002e 62%)}.emo.huge{font-size:84px}.media-nav{position:absolute;top:50%;transform:translateY(-50%);width:36px;height:44px;border:2px solid var(--ink);background:#ffffffe6;color:var(--ink);font-size:26px;line-height:1}.media-nav.prev{left:8px}.media-nav.next{right:8px}.thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:8px}.thumbs button{padding:0;border:3px solid transparent;aspect-ratio:16 / 10;overflow:hidden;background:#ccc}.thumbs button.active{border-color:var(--accent)}.thumbs img{width:100%;height:100%;object-fit:cover;display:block}.detail-info h2{font-size:32px}.subtitle{margin:0;font-weight:600}.meta{margin:4px 0 10px;font-size:12px!important;color:var(--muted)}.detail-foot{display:flex;align-items:center;justify-content:space-between;margin-top:18px;padding-top:12px;border-top:2px dashed #d6c8a8}.detail-foot .hand{margin:0;font-size:22px;color:#6a5a3a}.detail-foot .btn.ghost{background:#fff;color:var(--ink);border-color:var(--ink)}.resume-panel{width:min(900px,100%)}.resume-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:2px dashed #d6c8a8}.resume-head h2{font-size:30px}.resume-head .role{margin:0}.resume-head .muted{margin:4px 0 0;font-size:13px}.resume section{margin-top:6px}.skill-list{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:0;font-size:13px}.skill-list dt{font-weight:700}.skill-list dd{margin:0}.map-panel,.site-panel{width:min(560px,100%)}.map-route{display:grid;gap:8px}.map-place{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;border:2px solid var(--ink);border-radius:4px;background:#fff;color:var(--ink);text-align:left}.map-place:hover{background:#fff6e0;transform:translate(3px)}.map-place span{font-size:12px;color:var(--muted)}.controls{list-style:none;padding:0!important}@media (max-width: 760px){.land-tag.tr,.land-note{display:none}.land-center{top:11vh}.hud-nav button>span:not(.ico){display:none}.hud-nav button{padding:10px}.player-card{padding-right:10px}.avatar{width:40px;height:40px}.about-layout{grid-template-columns:1fr;height:auto}.about-tabs{grid-template-columns:repeat(4,1fr);margin-top:36px}.about-layout .paper{margin:0;justify-self:stretch}.tab{justify-content:center;padding:8px 4px;font-size:11px;flex-direction:column;gap:3px}.about-layout .paper{max-height:calc(100dvh - 130px)}.about-body{padding:20px 18px 6px}.detail-grid{grid-template-columns:1fr}.panel{padding:20px 16px}.room-actions button>span:not(.ico){display:none}.room-actions kbd{display:none}.room-actions button:last-child:after{content:"Map"}.detail-foot .hand{display:none}.skill-list{grid-template-columns:1fr}}@media (max-width: 520px){.hud-nav{top:78px}}@media (max-height: 520px){.land-center{top:4vh}.title{font-size:44px}.tagline{margin:6px 0 10px}.contact-main{top:8vh}}
