@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:300 700;font-display:swap;src:url(/fonts/cormorant-garamond-normal.woff2) format("woff2")}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:300;font-display:swap;src:url(/fonts/cormorant-garamond-italic.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/inter-normal.woff2) format("woff2")}:root{--sat: env(safe-area-inset-top, 0px);--sar: env(safe-area-inset-right, 0px);--sab: env(safe-area-inset-bottom, 0px);--sal: env(safe-area-inset-left, 0px);--ink: #4a3828;--cream: #f6ecd6;--sun: #e9c97a;--orange: #c9916c;--sage: #4f6b56;--paper: #f7f3ea;--dust: #4a6a7c;--font: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#1f1510;font-family:var(--font);color:var(--ink);user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}#scene{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;touch-action:none}.hidden{display:none!important}button{font-family:inherit;cursor:pointer}.screen-title{--t-cream: #f7ecd6;--t-ochre: #e6a95e;--t-muted: rgba(247, 236, 214, .62);position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:flex-end;background:#1f1510;color:var(--t-cream);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;transition:opacity .9s ease;overflow:hidden}.screen-title.live{background:transparent}.screen-title.fade{opacity:0;pointer-events:none}.title-veil{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(to top,#1a0f09eb,#22140cb3 28%,#28180e38 58%,#28180e1a),linear-gradient(to bottom,#1a0f0973,#1a0f0900 22%),radial-gradient(ellipse at 50% 42%,#0000 38%,#1209048c);transition:opacity .6s}.title-card{position:relative;width:100%;padding:clamp(28px,6vh,72px) clamp(22px,5.5vw,96px) calc(clamp(28px,6vh,64px) + var(--sab));padding-left:calc(clamp(22px,5.5vw,96px) + var(--sal));max-width:1500px;text-align:left}.title-card>*{opacity:0;transform:translateY(14px);animation:titleIn 1.1s cubic-bezier(.2,.7,.2,1) forwards}.title-card>:nth-child(1){animation-delay:.1s}.title-card>:nth-child(2){animation-delay:.25s}.title-card>:nth-child(3){animation-delay:.45s}.title-card>:nth-child(4){animation-delay:.65s}.title-card>:nth-child(5),.title-card>:nth-child(6){animation-delay:.85s}@keyframes titleIn{to{opacity:1;transform:none}}.title-eyebrow{font-size:11px;font-weight:500;letter-spacing:.34em;text-transform:uppercase;color:var(--t-ochre);margin-bottom:clamp(10px,2vh,22px)}.title-card h1{margin:0;font-family:Cormorant Garamond,Iowan Old Style,Georgia,serif;font-weight:300;font-size:clamp(64px,min(13.5vh,11vw),190px);line-height:.88;letter-spacing:-.02em;color:var(--t-cream);text-shadow:0 2px 40px rgba(20,8,2,.35)}.title-card h1 span{display:block}.title-card h1 .t-last{font-style:italic;color:#f3d9a8}.title-line{margin:clamp(16px,3vh,30px) 0 0;font-size:clamp(12px,1.05vw + 8px,17px);font-weight:400;letter-spacing:.16em;text-transform:uppercase;color:var(--t-muted)}.title-line i{font-style:normal;color:var(--t-ochre);margin:0 .5em}.title-actions{margin-top:clamp(26px,5vh,52px);display:flex;align-items:center;flex-wrap:wrap;gap:14px 30px}.enter-btn{display:inline-flex;align-items:center;gap:14px;padding:15px 28px;border:1px solid rgba(247,236,214,.55);border-radius:999px;background:#f7ecd60f;color:var(--t-cream);font:500 12px/1 Inter,system-ui,sans-serif;letter-spacing:.26em;text-transform:uppercase;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:background .35s,color .35s,border-color .35s,opacity .35s}.enter-btn:disabled{opacity:.4;cursor:progress}.enter-btn:not(:disabled):hover,.enter-btn:not(:disabled):focus-visible{background:var(--t-cream);color:#2a180e;border-color:var(--t-cream);outline:none}.enter-arrow{transition:transform .35s}.enter-btn:not(:disabled):hover .enter-arrow{transform:translate(4px)}.title-link{color:var(--t-cream);font-size:12px;font-weight:500;letter-spacing:.26em;text-transform:uppercase;text-decoration:none;padding:6px 0;border-bottom:1px solid rgba(247,236,214,.4);transition:color .3s,border-color .3s}.title-link:hover,.title-link:focus-visible{color:var(--t-ochre);border-color:var(--t-ochre);outline:none}.title-icon{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;border:1px solid rgba(247,236,214,.3);color:var(--t-muted);transition:color .3s,border-color .3s}.title-icon:hover,.title-icon:focus-visible{color:var(--t-ochre);border-color:var(--t-ochre);outline:none}.press{margin-top:clamp(22px,4vh,40px);font-size:11px;line-height:1.5;font-weight:400;letter-spacing:.3em;text-transform:uppercase;color:var(--t-ochre)}.press.ready{animation:breathe 2.8s ease-in-out infinite}.title-help{margin-top:8px;line-height:1.5;color:#f7ecd661;font-size:11px;letter-spacing:.08em}@keyframes breathe{50%{opacity:.45}}@media (min-width: 2400px){.title-card{zoom:1.25}}@media (max-width: 640px){.title-card{padding-bottom:calc(34px + var(--sab))}.title-card h1{font-size:clamp(64px,21vw,110px);line-height:.88}.title-card h1 span{display:block}.title-line{letter-spacing:.12em;font-size:12px;line-height:1.7}.title-actions{gap:16px 22px}.enter-btn{width:100%;justify-content:space-between;padding:17px 24px}}@media (max-height: 520px) and (orientation: landscape){.title-card h1{font-size:clamp(44px,12vh,90px)}.title-line{margin-top:8px}.title-actions{margin-top:14px}.press,.title-help{display:none}}@media (prefers-reduced-motion: reduce){.title-card>*{animation:none;opacity:1;transform:none}.press.ready{animation:none}}:root{--g-cream: #f7ecd6;--g-ochre: #e6a95e;--g-ochre-soft: #f3d9a8;--g-muted: rgba(247, 236, 214, .62);--g-faint: rgba(247, 236, 214, .4);--g-glass: rgba(28, 18, 12, .62);--g-glass-hi: rgba(28, 18, 12, .82);--g-line: rgba(247, 236, 214, .2);--g-line-hi: rgba(247, 236, 214, .5);--g-serif: "Cormorant Garamond", "Iowan Old Style", Georgia, serif;--g-sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--g-blur: blur(14px) saturate(1.15)}@media (prefers-reduced-transparency: reduce){:root{--g-glass: rgba(28, 18, 12, .92);--g-glass-hi: rgba(28, 18, 12, .96)}}.g-glass,#quest-tracker,#prompt,.toast,#dialogue,#fish-status,#fish-reel,#fish-result{background:var(--g-glass);border:1px solid var(--g-line);-webkit-backdrop-filter:var(--g-blur);backdrop-filter:var(--g-blur);box-shadow:0 10px 40px #0c060259;color:var(--g-cream);font-family:var(--g-sans)}.g-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:0 22px;border-radius:999px;border:1px solid var(--g-line-hi);background:var(--g-glass);-webkit-backdrop-filter:var(--g-blur);backdrop-filter:var(--g-blur);color:var(--g-cream);font:500 11px/1 var(--g-sans);letter-spacing:.24em;text-transform:uppercase;white-space:nowrap;transition:background .25s,border-color .25s,color .25s}.g-btn:hover,.g-btn:focus-visible{background:#f7ecd61f;border-color:var(--g-ochre);color:#fff;outline:none}.g-btn:active{background:#e6a95e38}.g-btn:not(.alt){border-color:#e6a95ebf;color:var(--g-ochre-soft)}.g-btn.alt{border-color:var(--g-line);color:var(--g-muted)}.g-btn svg{flex:none}#skip{position:fixed;top:18px;left:18px;z-index:20}#minimap-wrap{position:fixed;top:18px;right:18px;width:168px;height:168px;border-radius:50%;border:1px solid var(--g-line-hi);box-shadow:0 0 0 5px #1c120c8c,0 10px 40px #0c060266;overflow:hidden;z-index:20;background:#3b2a1e}#minimap{width:100%;height:100%;display:block;filter:saturate(.78) brightness(.9) sepia(.12)}#minimap-wrap:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;box-shadow:inset 0 0 22px #140a048c;pointer-events:none}.mm-n{position:absolute;top:5px;left:50%;transform:translate(-50%);font:500 10px/1 var(--g-sans);letter-spacing:.1em;color:var(--g-ochre);z-index:2}#quest-tracker{position:fixed;top:206px;right:18px;z-index:20;max-width:260px;border-radius:10px;padding:10px 14px 11px;font-size:12.5px;line-height:1.4;letter-spacing:.02em}#quest-tracker:before{content:"Quest";display:block;margin-bottom:4px;font-size:9.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--g-ochre)}#prompt{position:fixed;bottom:96px;left:50%;transform:translate(-50%);z-index:20;border-radius:999px;padding:9px 22px 9px 10px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;display:flex;align-items:center;gap:12px;animation:bob 2.4s ease-in-out infinite}#prompt kbd{display:grid;place-items:center;min-width:26px;height:26px;padding:0 6px;border:1px solid var(--g-ochre);border-radius:50%;font:500 12px/1 var(--g-sans);letter-spacing:0;color:var(--g-ochre-soft)}#prompt b{font:500 19px/1 var(--g-serif);letter-spacing:.02em;text-transform:none;color:var(--g-cream);margin-left:-4px}@keyframes bob{50%{transform:translate(-50%,-4px)}}.help{position:fixed;bottom:18px;left:20px;z-index:20;color:var(--g-muted);font:400 10.5px/1.4 var(--g-sans);letter-spacing:.18em;text-transform:uppercase;text-shadow:0 1px 12px rgba(12,6,2,.9)}#toasts{position:fixed;top:80px;left:50%;transform:translate(-50%);z-index:60;display:flex;flex-direction:column;gap:10px;align-items:center;pointer-events:none}.toast{border-radius:14px;padding:12px 22px 12px 16px;display:flex;gap:14px;align-items:center;animation:toastIn .6s cubic-bezier(.2,.8,.2,1),toastOut .5s ease-in 3.6s forwards}.toast .ic{width:9px;height:9px;flex:none;transform:rotate(45deg);background:var(--g-ochre);box-shadow:0 0 14px #e6a95ecc}.toast small{display:block;margin-bottom:3px;font-size:9.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--g-ochre)}.toast b{font:500 20px/1.15 var(--g-serif);color:var(--g-cream)}@keyframes toastIn{0%{transform:translateY(-14px);opacity:0}}@keyframes toastOut{to{transform:translateY(-10px);opacity:0}}#dialogue{position:fixed;left:50%;bottom:28px;transform:translate(-50%);width:min(760px,94vw);z-index:30;background:var(--g-glass-hi);border-radius:14px;padding:26px 30px 20px;animation:pop .45s cubic-bezier(.2,.8,.2,1)}@keyframes pop{0%{transform:translate(-50%) translateY(14px);opacity:0}}.dlg-name{margin:0 0 10px;font:500 10.5px/1 var(--g-sans);letter-spacing:.32em;text-transform:uppercase;color:var(--g-ochre)}.dlg-text{font:400 clamp(21px,1.5vw + 12px,27px) / 1.35 var(--g-serif);letter-spacing:.005em;color:var(--g-cream);min-height:58px}.dlg-text .caret{display:inline-block;width:10px;color:var(--g-ochre);animation:pulse .6s infinite}.dlg-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:16px}#page-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:stretch;justify-content:center;padding:calc(14px + var(--sat)) calc(14px + var(--sar)) calc(14px + var(--sab)) calc(14px + var(--sal));background:#140c088c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);user-select:text;-webkit-user-select:text}#page-overlay.hidden{display:none!important}body[data-mode=page] #hud,body[data-mode=page] #toasts{visibility:hidden;pointer-events:none}.page-shell{position:relative;display:grid;grid-template-columns:280px minmax(0,1fr);grid-template-rows:1fr;width:100%;height:100%;background:#1f1510e6;border:1px solid var(--g-line);border-radius:14px;box-shadow:0 30px 90px #0a050280;overflow:hidden;color:var(--g-cream);font-family:var(--g-sans)}.page-top{display:none}.page-nav{display:flex;flex-direction:column;gap:6px;padding:34px 20px 20px;background:#f7ecd608;border-right:1px solid var(--g-line);min-height:0}.page-nav-brand{font:300 30px/1 var(--g-serif);letter-spacing:-.01em;color:var(--g-cream);padding:0 12px 6px}.page-nav-brand:after{content:"Personal portfolio";display:block;margin-top:10px;font:400 9.5px/1 var(--g-sans);letter-spacing:.3em;text-transform:uppercase;color:var(--g-ochre)}.page-nav-list{display:flex;flex-direction:column;gap:2px;flex:1;min-height:0;overflow-y:auto;margin-top:22px}.page-nav-item{display:flex;align-items:baseline;gap:14px;width:100%;min-height:44px;text-align:left;padding:12px;border:0;border-left:1px solid transparent;background:transparent;color:var(--g-muted);font:500 11.5px/1.2 var(--g-sans);letter-spacing:.18em;text-transform:uppercase;transition:color .2s,border-color .2s,background .2s}.page-nav-item:hover,.page-nav-item:focus-visible{background:#f7ecd60f;color:var(--g-cream);outline:none}.page-nav-item.on{border-left-color:var(--g-ochre);background:#e6a95e14;color:var(--g-cream)}.page-nav-icon{font:italic 300 17px/1 var(--g-serif);letter-spacing:0;color:var(--g-ochre);min-width:1.5em}.page-back,.page-close{margin-top:auto;width:100%;min-height:44px;padding:0 18px;border-radius:999px;border:1px solid rgba(230,169,94,.7);background:transparent;color:var(--g-ochre-soft);font:500 11px/1 var(--g-sans);letter-spacing:.22em;text-transform:uppercase;transition:background .25s}.page-back:hover,.page-close:hover,.page-back:focus-visible,.page-close:focus-visible{background:#e6a95e24;outline:none}.page-nav-hint{margin:12px 4px 0;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--g-faint)}.page-main{min-width:0;min-height:0;overflow-y:auto;padding:40px clamp(24px,4vw,64px) 64px;scroll-behavior:smooth;outline:none;scrollbar-width:thin;scrollbar-color:rgba(247,236,214,.25) transparent}.page-main .cv-page{display:block}.page-main .cv-toc{display:none}.page-main .cv-sheet{width:min(860px,100%);margin:0 auto;padding:8px 8px 24px;border:0;border-radius:0;box-shadow:none;background:transparent}.site-page{width:min(840px,100%);margin:0 auto}.site-page-header{margin-bottom:36px}.site-page-kicker{margin:0 0 14px;font:400 10.5px/1 var(--g-sans);letter-spacing:.32em;text-transform:uppercase;color:var(--g-ochre)}.site-page-header h1{margin:0;font:300 clamp(44px,6vw,76px) / .98 var(--g-serif);letter-spacing:-.02em;color:var(--g-cream)}.site-page-intro{margin:18px 0 0;font-size:15.5px;line-height:1.65;color:var(--g-muted);max-width:44em}.site-cards{display:grid;gap:16px}.site-card{position:relative;background:#f7ecd609;border:1px solid var(--g-line);border-radius:12px;padding:22px 24px 24px}.site-card h2{margin:0 0 10px;font:400 26px/1.15 var(--g-serif);color:var(--g-cream)}.site-card p{margin:0;font-size:14.5px;line-height:1.65;color:#f7ecd6d1}.site-card ul{margin:10px 0 0;padding-left:1.15em;font-size:14.5px;line-height:1.6;color:#f7ecd6d1}.site-card li::marker{color:var(--g-ochre)}.site-card .badge{position:absolute;top:18px;right:18px;border:1px solid rgba(230,169,94,.6);color:var(--g-ochre);font:500 9px/1 var(--g-sans);letter-spacing:.24em;text-transform:uppercase;padding:6px 10px;border-radius:999px}.site-card .tags,.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.site-card .tags span,.tags span{border:1px solid var(--g-line);border-radius:999px;padding:5px 12px;font:400 10.5px/1.2 var(--g-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--g-muted)}.site-card .swatch,.swatch{display:flex;height:56px;border-radius:8px;overflow:hidden;margin-bottom:14px}.site-card .swatch i,.swatch i{flex:1}.site-card a{color:var(--g-ochre-soft);font-weight:500;text-decoration:none;border-bottom:1px solid rgba(230,169,94,.5)}.site-card a:hover,.site-card a:focus-visible{color:#fff;outline:none}.page-nav-toggle{display:none;width:44px;height:44px;padding:0;border:1px solid var(--g-line-hi);border-radius:50%;background:transparent;flex-direction:column;align-items:center;justify-content:center;gap:5px}.page-nav-toggle span{display:block;width:16px;height:1.5px;background:var(--g-cream);border-radius:1px}@keyframes pulse{50%{opacity:0}}@media (max-width: 800px){#page-overlay{padding:0;-webkit-backdrop-filter:none;backdrop-filter:none}.page-shell{grid-template-columns:1fr;grid-template-rows:auto 1fr;width:100%;height:100%;border-radius:0;border:0;background:#1f1510f7}.page-top{display:flex;align-items:center;gap:12px;padding:calc(10px + var(--sat)) calc(14px + var(--sar)) 10px calc(14px + var(--sal));background:#1f1510fa;border-bottom:1px solid var(--g-line);z-index:2}.page-top-title{flex:1;margin:0;font:400 26px/1 var(--g-serif);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page-nav-toggle{display:flex;flex-shrink:0}.page-close{width:auto;margin:0;flex-shrink:0;min-height:44px;padding:0 16px;font-size:10px}.page-nav{position:absolute;top:0;left:0;bottom:0;width:min(300px,86vw);z-index:3;transform:translate(-105%);transition:transform .28s ease;box-shadow:none;background:#251a13;padding-top:calc(var(--sat) + 72px)}.page-shell.nav-open .page-nav{transform:none;box-shadow:8px 0 40px #0a050280}.page-shell.nav-open:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#0a050280;z-index:2}.page-back,.page-nav-brand,.page-nav-hint{display:none}.page-nav-list{margin-top:0}.page-main{padding:28px 20px calc(40px + var(--sab))}.page-main .cv-sheet{padding:0 0 24px}}@media (max-width: 700px){#minimap-wrap{width:110px;height:110px}#quest-tracker{top:150px;font-size:12px}.help{display:none}#prompt{bottom:90px}}.touch-only,#joystick,#menu-wrap,#talk-btn{display:none}body.touch span.touch-only{display:inline}body.touch .desk-only{display:none!important}html.touch,body.touch{touch-action:none;overscroll-behavior:none}body.touch{-webkit-touch-callout:none;position:fixed;top:0;right:0;bottom:0;left:0;width:100%}body.touch *{-webkit-touch-callout:none}body.touch .screen-body{touch-action:pan-y;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scroll-behavior:auto}body.touch .screen-body::-webkit-scrollbar{display:none}body.touch{--mm: 124px;--pad: 14px}body.touch #minimap-wrap{width:var(--mm);height:var(--mm);top:calc(var(--sat) + var(--pad));right:calc(var(--sar) + var(--pad))}body.touch .mm-n{font-size:9px}body.touch #quest-tracker{top:calc(var(--sat) + var(--pad) + var(--mm) + 14px);right:calc(var(--sar) + var(--pad));max-width:min(220px,58vw);font-size:12px}body.touch #skip,body.touch #prompt{display:none}body.touch #toasts{top:calc(var(--sat) + 70px);max-width:calc(100vw - var(--sal) - var(--sar) - 24px)}body.touch #menu-wrap{display:block;position:fixed;top:calc(var(--sat) + var(--pad));left:calc(var(--sal) + var(--pad));z-index:25}#menu-btn{min-height:46px;min-width:46px;padding:0 20px 0 16px}#menu-list{display:flex;flex-direction:column;gap:0;margin-top:10px;min-width:232px;padding:6px;border-radius:14px;background:var(--g-glass-hi);border:1px solid var(--g-line);-webkit-backdrop-filter:var(--g-blur);backdrop-filter:var(--g-blur);box-shadow:0 14px 50px #0c060273}#menu-list .g-btn{justify-content:flex-start;gap:14px;min-height:48px;padding:0 16px;border:0;border-radius:10px;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;color:var(--g-cream);font-size:11px;text-align:left}#menu-list .g-btn:not(:last-child){border-bottom:1px solid rgba(247,236,214,.08);border-radius:10px 10px 0 0}#menu-list .g-btn:active,#menu-list .g-btn:hover{background:#e6a95e24}#menu-list .g-btn:last-child{color:var(--g-muted);letter-spacing:.18em;margin-top:4px;border-top:1px solid rgba(247,236,214,.14);border-radius:0 0 10px 10px}#menu-list .mi{font:italic 300 17px/1 var(--g-serif);letter-spacing:0;color:var(--g-ochre);min-width:1.4em}body.touch #joystick{display:grid;place-items:center;position:fixed;left:calc(var(--sal) + 8px);bottom:calc(var(--sab) + 8px);width:176px;height:176px;z-index:20;touch-action:none}.js-base{--b: 128px;width:var(--b);height:var(--b);border-radius:50%;background:radial-gradient(circle,#1c120c2e,#1c120c6b);border:1px solid var(--g-line-hi);box-shadow:inset 0 0 0 10px #f7ecd60a,0 8px 30px #0c06024d;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;place-items:center;pointer-events:none;transition:background .2s,border-color .2s}.js-knob{width:56px;height:56px;border-radius:50%;background:#f7ecd629;border:1px solid rgba(247,236,214,.8);box-shadow:0 4px 18px #0c060266;pointer-events:none;will-change:transform}#joystick.running .js-knob{background:#e6a95e4d;border-color:var(--g-ochre)}#joystick.running .js-base{border-color:var(--g-ochre)}#joystick.active .js-base{background:radial-gradient(circle,#f7ecd61a,#1c120c80)}body.touch #talk-btn{position:fixed;right:calc(var(--sar) + 20px);bottom:calc(var(--sab) + 40px);z-index:22;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:124px;min-height:68px;padding:10px 24px;border-radius:999px;background:var(--g-glass-hi);border:1px solid rgba(230,169,94,.85);box-shadow:0 0 0 4px #e6a95e1a,0 10px 36px #0c060273;animation:talkPulse 2.4s ease-in-out infinite}body.touch #talk-btn .t-main{font:500 12px/1 var(--g-sans);letter-spacing:.28em;text-transform:uppercase;color:var(--g-ochre-soft)}body.touch #talk-btn small{font:500 17px/1 var(--g-serif);letter-spacing:.01em;text-transform:none;max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--g-cream)}@keyframes talkPulse{50%{box-shadow:0 0 0 9px #e6a95e00,0 10px 36px #0c060273}}body.touch:not([data-mode=play]) #joystick,body.touch:not([data-mode=play]) #menu-wrap,body.touch:not([data-mode=play]) #talk-btn{display:none}body.touch #dialogue{bottom:calc(var(--sab) + 12px);width:min(760px,calc(100vw - var(--sal) - var(--sar) - 24px));padding:22px 20px 14px}body.touch .dlg-text{font-size:22px;max-height:calc(100dvh - var(--sat) - var(--sab) - 210px);overflow-y:auto;touch-action:pan-y}body.touch .dlg-actions{flex-wrap:wrap}body.touch .dlg-actions .g-btn{flex:1 1 140px;min-height:52px}@media (orientation: landscape) and (max-height: 520px){body.touch{--mm: 92px;--pad: 10px}body.touch #toasts{top:calc(var(--sat) + 10px)}body.touch #joystick{width:150px;height:150px}.js-base{--b: 108px}.js-knob{width:48px;height:48px}body.touch #talk-btn{bottom:calc(var(--sab) + 22px);right:calc(var(--sar) + 18px);min-height:60px}body.touch #dialogue{padding:16px 16px 10px;bottom:calc(var(--sab) + 6px)}body.touch .dlg-text{max-height:calc(100dvh - var(--sat) - var(--sab) - 130px);font-size:18px;min-height:0;line-height:1.3}body.touch .dlg-actions{margin-top:8px}body.touch .dlg-actions .g-btn{min-height:46px;padding:0 14px}body.touch #menu-wrap{display:flex;align-items:flex-start;gap:8px}body.touch #menu-list{display:grid;grid-template-columns:repeat(2,auto);margin-top:0;min-width:0}body.touch #menu-btn{white-space:nowrap;min-height:44px}body.touch #menu-list .g-btn{min-height:44px;padding:0 14px}}#secret-hint{position:fixed;bottom:92px;left:50%;transform:translate(-50%);z-index:21;font:300 30px/1 var(--g-serif);color:var(--g-ochre-soft);text-shadow:0 0 16px rgba(230,169,94,.8);pointer-events:none;animation:heartBob 2.2s ease-in-out infinite}@keyframes heartBob{50%{transform:translate(-50%,-5px)}}body.touch #secret-hint{bottom:calc(var(--sab) + 130px)}#fish-ui{position:fixed;left:50%;bottom:28px;transform:translate(-50%);z-index:30;display:flex;flex-direction:column;align-items:center;gap:12px;width:min(440px,calc(100vw - 32px));pointer-events:none}#fish-ui .fish-actions,#fish-ui button{pointer-events:auto}#fish-ui.behind-log{visibility:hidden}#fish-status{border-radius:999px;padding:11px 24px;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--g-ochre-soft)}#fish-bite{display:grid;place-items:center;width:92px;height:92px;border-radius:50%;border:1px solid var(--g-ochre);background:var(--g-glass-hi);font:400 64px/1 var(--g-serif);color:var(--g-ochre-soft);text-shadow:0 0 18px rgba(230,169,94,.8);animation:bitePop .5s ease-in-out infinite alternate;pointer-events:none}@keyframes bitePop{0%{transform:scale(.95);box-shadow:0 0 #e6a95e73}to{transform:scale(1.06);box-shadow:0 0 0 16px #e6a95e00}}#fish-reel{width:100%;border-radius:14px;padding:16px 18px 18px}#fish-reel.hot{border-color:#d66450cc}.reel-label{font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:var(--g-ochre);text-align:center;margin-bottom:12px}.reel-track{position:relative;height:20px;border-radius:999px;background:#f7ecd61a;border:1px solid var(--g-line);overflow:hidden}.reel-zone{position:absolute;top:0;bottom:0;background:#e6a95e66;border-left:1px solid var(--g-ochre);border-right:1px solid var(--g-ochre)}.reel-needle{position:absolute;top:0;bottom:0;width:3px;margin-left:-1.5px;background:var(--g-cream);box-shadow:0 0 10px #f7ecd6e6;z-index:2}.reel-progress{margin-top:14px;height:2px;background:#f7ecd624;overflow:hidden}#fish-fill{height:100%;width:0;background:var(--g-ochre)}#fish-result{width:100%;border-radius:14px;background:var(--g-glass-hi);padding:22px 20px 20px;text-align:center}#fish-result h2{margin:10px 0 6px;font:400 34px/1.05 var(--g-serif);color:var(--g-cream)}#fish-result p{margin:0;font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--g-muted)}.fish-caught-ico{width:9px;height:9px;margin:0 auto;transform:rotate(45deg);background:var(--g-ochre);box-shadow:0 0 14px #e6a95ecc}.fish-caught-ico.rarity-common{background:var(--g-muted);box-shadow:none}.fish-caught-ico.rarity-uncommon{background:#9cc9d8;box-shadow:0 0 12px #9cc9d899}.fish-caught-ico.rarity-junk{background:transparent;border:1px solid var(--g-faint);box-shadow:none}.rarity-common{color:var(--g-muted)}.rarity-uncommon{color:#9cc9d8}.rarity-rare{color:var(--g-ochre)}.rarity-legendary{color:#ffd98a;text-shadow:0 0 12px rgba(233,201,122,.7)}.rarity-junk{color:var(--g-faint)}#fish-result p.rarity-common,#fish-result p.rarity-uncommon,#fish-result p.rarity-rare,#fish-result p.rarity-legendary,#fish-result p.rarity-junk{letter-spacing:.24em}.fish-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}#fish-action.hold{min-width:170px}#fish-log{position:fixed;top:0;right:0;bottom:0;left:0;z-index:45;background:#140c0899;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:calc(16px + var(--sat)) 16px calc(16px + var(--sab));overflow:auto;user-select:text;-webkit-user-select:text}#fish-log.hidden{display:none!important}.fish-log-card{width:min(720px,100%);background:#1f1510f0;border:1px solid var(--g-line);border-radius:14px;box-shadow:0 30px 90px #0a050280;overflow:hidden;display:flex;flex-direction:column;max-height:min(86vh,900px);color:var(--g-cream);font-family:var(--g-sans)}.fish-log-head{padding:24px 24px 18px;position:relative;border-bottom:1px solid var(--g-line)}.fish-log-head h2{margin:0 120px 8px 0;font:300 38px/1 var(--g-serif)}.fish-log-head p{margin:0 120px 0 0;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--g-muted)}#fish-log-close{position:absolute;top:20px;right:20px}.fish-tiles{list-style:none;margin:0;padding:18px;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;overflow:auto;flex:1}.fish-tile{background:#f7ecd609;border:1px solid var(--g-line);border-radius:10px;padding:14px 14px 12px;display:flex;flex-direction:column;gap:4px}.fish-tile.locked{opacity:.45}.fish-tile b{font:500 19px/1.1 var(--g-serif);color:var(--g-cream)}.fish-tile small{font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--g-muted)}.fish-ico{width:7px;height:7px;margin-bottom:6px;transform:rotate(45deg);background:currentColor}.fish-tile.locked .fish-ico{background:transparent;border:1px solid var(--g-faint)}#fish-log h3{margin:4px 24px 8px;font:500 10px/1 var(--g-sans);letter-spacing:.3em;text-transform:uppercase;color:var(--g-ochre)}.fish-recent{list-style:none;margin:0 0 14px;padding:0 24px 8px;color:var(--g-cream);font:400 19px/1.5 var(--g-serif)}.fish-recent em{font:400 11px/1 var(--g-sans);letter-spacing:.16em;text-transform:uppercase;font-style:normal;color:var(--g-ochre);margin-left:6px}body[data-mode=fishing] #prompt,body[data-mode=fishing] #help,body[data-mode=fishing] #skip{display:none}body.touch #fish-ui{bottom:calc(var(--sab) + 16px);width:min(460px,calc(100vw - var(--sal) - var(--sar) - 20px))}body.touch #fish-bite{width:110px;height:110px;font-size:76px}body.touch #fish-action{min-width:170px;min-height:64px;font-size:12px}body.touch #fish-cancel,body.touch #fish-log-btn{min-height:48px}body.touch #fish-log .fish-tiles{max-height:50dvh;touch-action:pan-y}
