:root{--forest:#244b35;--leaf:#5f9851;--moss:#8ba66a;--sun:#ffd99a;--sky:#a9d9e8;--earth:#806044;--river:#72c9d0;--cream:#f7f0dd;--ink:#1d2b22;--panel:#18281e9e;--panel-strong:#16241cd1;--panel-border:#ffecc438;--text:#f7f0dd;--text-dim:#f7f0ddbd;--radius:18px;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;--sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;background:#cfdcc2;margin:0;overflow:hidden}.app,.scene,.game-canvas{position:fixed;inset:0}.scene{cursor:grab}.scene:active{cursor:grabbing}.overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:10;background:radial-gradient(#14221a40,#0e18128c);place-items:center;padding:16px;animation:.4s both fade-in;display:grid;position:fixed;inset:0}.overlay--start{-webkit-backdrop-filter:none;backdrop-filter:none;background:linear-gradient(#0e1a131a 0%,#0e1a1326 45%,#0e1a138c 100%);place-items:end center;padding-bottom:calc(max(16px,6vh) + 46px)}.overlay--soft{background:radial-gradient(#ffd99a1f,#0e181273)}.overlay--drawer{-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px);background:linear-gradient(90deg,#0a120d14 0%,#0a120d80 100%);place-items:stretch end;padding:0;animation:.25s both fade-in}.panel.panel--drawer{text-align:left;background:linear-gradient(#1a2a20eb,#101b15f2);border-right:none;border-radius:24px 0 0 24px;flex-direction:column;width:min(440px,100vw);height:auto;max-height:none;margin:0;padding:0;animation:.36s cubic-bezier(.2,.85,.25,1) both drawer-in;display:flex;position:fixed;top:0;bottom:0;right:0;overflow:hidden;box-shadow:-24px 0 60px #060c0873,inset 1px 0 #ffffff0f}.drawer__head{border-bottom:1px solid #ffecc41f;flex:none;margin:0;padding:22px 24px 16px}.drawer__title{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.drawer__title h2{margin:0}.drawer__close{appearance:none;border:1px solid var(--panel-border);width:38px;height:38px;color:var(--text);cursor:pointer;background:#ffffff0a;border-radius:50%;font-size:1.5rem;line-height:1}.drawer__close:hover,.drawer__close:focus-visible{background:#ffffff1f}.panel--drawer .btn-row{justify-content:stretch;margin:0}.panel--drawer .btn-row .btn{flex:1}.drawer__body{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#ffecc440 transparent;flex:1;padding:6px 24px 24px;overflow-y:auto}.drawer__section{text-align:left;font-family:var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--sun);opacity:.85;margin:14px 0 2px;font-size:.72rem;font-weight:700}.panel--drawer .controls{grid-template-columns:1fr;margin-top:6px}@keyframes drawer-in{0%{transform:translate(100%)}}@media (max-width:640px){.panel.panel--drawer{border-radius:0}}.overlay--error{background:#1f3327}.panel{border-radius:var(--radius);background:var(--panel-strong);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(10px)saturate(1.1);backdrop-filter:blur(10px)saturate(1.1);text-align:center;width:min(520px,100%);max-height:calc(100vh - 32px);padding:28px 30px;overflow:auto;box-shadow:0 18px 50px #08100b59,inset 0 1px #ffffff0f}.panel--start{background:#16241cb8;width:min(560px,100%)}.panel--small{text-align:left;background:var(--panel);width:auto;padding:12px 16px}h1,h2{font-family:var(--serif);letter-spacing:.01em;color:var(--cream);margin:0 0 10px;font-weight:600}h1{text-shadow:0 2px 18px #ffd99a40;font-size:clamp(2.2rem,6vw,3.4rem);font-style:italic}h2{font-size:1.8rem}.eyebrow{text-transform:uppercase;letter-spacing:.22em;color:var(--sun);opacity:.85;margin:0 0 6px;font-size:.72rem}.lede{max-width:40ch;color:var(--text-dim);margin:0 auto 20px;line-height:1.5}.fineprint{color:var(--text-dim);opacity:.8;margin:14px 0 0;font-size:.78rem}.btn{appearance:none;color:var(--cream);font:600 1rem var(--sans);cursor:pointer;background:#ffffff0f;border:1px solid #ffecc459;border-radius:999px;padding:11px 26px;transition:transform .15s,background .15s,box-shadow .15s}.btn:hover:not(:disabled){background:#ffffff24;transform:translateY(-1px)}.btn:focus-visible,.icon-btn:focus-visible,.seg button:focus-visible{outline:2px solid var(--sun);outline-offset:2px}.btn--primary{color:#3a2a14;background:linear-gradient(#ffe2ac,#f2c477);border-color:#0000;min-width:160px;box-shadow:0 6px 18px #f2c47759}.btn--primary:hover:not(:disabled){background:linear-gradient(#ffeac0,#f6cd88)}.btn:disabled{opacity:.7;cursor:progress}.btn-row{flex-wrap:wrap;justify-content:center;gap:12px;margin:6px 0 18px;display:flex}.controls{text-align:left;grid-template-columns:1fr;gap:6px;margin:20px 0 0;font-size:.86rem;display:grid}@media (min-width:700px){.panel--start .controls{grid-template-columns:1fr 1fr;column-gap:22px}.panel--start{width:min(680px,100%)}}.controls div{border-top:1px solid #ffffff12;grid-template-columns:112px 1fr;align-items:baseline;gap:12px;padding:4px 0;display:grid}.controls dt{color:var(--sun);white-space:nowrap;margin:0;font-weight:600}.controls dd{color:var(--text-dim);margin:0}.settings{text-align:left;gap:10px;margin:4px 0 6px;display:grid}.toggle{background:#ffffff0d;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;font-size:.92rem;display:flex}.toggle input[type=checkbox]{width:20px;height:20px;accent-color:var(--moss)}.seg{border:1px solid #ffecc440;border-radius:999px;display:inline-flex;overflow:hidden}.seg button{appearance:none;color:var(--text-dim);font:600 .85rem var(--sans);cursor:pointer;background:0 0;border:0;padding:5px 14px}.seg button.on{background:var(--moss);color:#1d2b22}.hud{pointer-events:none;z-index:5;position:fixed;inset:0}.hud__tracker{max-width:calc(100vw - 130px);position:absolute;top:16px;left:16px}.hud__label{letter-spacing:.18em;text-transform:uppercase;color:var(--sun);margin-bottom:4px;font-size:.7rem}.hud__gems{align-items:center;gap:4px;display:flex}.hud__count{font:600 1.05rem var(--sans);font-variant-numeric:tabular-nums;margin-left:8px}.hud__objective{color:var(--text-dim);margin-top:4px;font-size:.8rem}.hud__buttons{pointer-events:auto;gap:8px;display:flex;position:absolute;top:16px;right:16px}.icon-btn{appearance:none;border:1px solid var(--panel-border);background:var(--panel);width:42px;height:42px;color:var(--cream);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:50%;place-items:center;transition:background .15s;display:grid}.icon-btn:hover{background:var(--panel-strong)}.hud__prompt{background:var(--panel-strong);border:1px solid var(--panel-border);white-space:nowrap;border-radius:999px;align-items:center;gap:10px;padding:9px 16px 9px 10px;font-weight:600;animation:.25s both rise;display:flex;position:absolute;bottom:18%;left:50%;transform:translate(-50%)}kbd{background:var(--cream);min-width:28px;height:28px;color:var(--ink);font:700 .9rem var(--sans);border-radius:8px;place-items:center;padding:0 6px;display:inline-grid;box-shadow:0 2px #00000059}.hud__hint{background:var(--panel);color:var(--text-dim);text-align:center;border-radius:999px;max-width:calc(100vw - 32px);padding:7px 14px;font-size:.82rem;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}.hud__hint--quiet{opacity:.7}.notice{--notice-accent:var(--sun);z-index:25;border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(10px);background:linear-gradient(160deg,#223628f0,#121e17f0);border-radius:20px;grid-template-columns:auto 1fr auto;align-items:start;gap:14px;width:min(440px,100vw - 32px);padding:18px 16px 20px 18px;animation:.38s cubic-bezier(.2,.9,.3,1.25) both notice-in;display:grid;position:fixed;top:clamp(136px,17vh,210px);left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 24px 60px #060c0873,0 0 0 1px #00000026,inset 0 1px #ffffff14}.notice--crystal{--notice-accent:#c8b6ff}.notice--item{--notice-accent:#a8d58a}.notice--fish{--notice-accent:var(--river)}.notice--quest{--notice-accent:#ffb68a}.notice--weather{--notice-accent:var(--sky)}.notice--season{--notice-accent:#ffd0e0}.notice--photo{--notice-accent:#ffe08a}.notice--tip{--notice-accent:var(--sky)}.notice--system{--notice-accent:#e8d8b8}.notice__icon{width:44px;height:44px;color:var(--notice-accent);background:color-mix(in srgb, var(--notice-accent) 16%, transparent);border:1px solid color-mix(in srgb, var(--notice-accent) 35%, transparent);border-radius:14px;place-items:center;display:grid}.notice__body{min-width:0;padding-top:1px}.notice__title{font-family:var(--serif);color:var(--notice-accent);margin-bottom:4px;font-size:1.08rem;font-weight:600}.notice__text{color:var(--text);margin:0;font-size:.93rem;line-height:1.5}.notice__close{appearance:none;width:30px;height:30px;color:var(--text-dim);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:50%;margin:-4px -2px 0 0;font-size:1.3rem;line-height:1}.notice__close:hover,.notice__close:focus-visible{border-color:var(--panel-border);color:var(--text);background:#ffffff14}.notice__timer{background:var(--notice-accent);opacity:.7;transform-origin:0;width:100%;height:3px;animation:linear forwards notice-timer;position:absolute;bottom:0;left:0}@keyframes notice-in{0%{opacity:0;transform:translate(-50%,-14px)scale(.94)}}@keyframes notice-timer{to{transform:scaleX(0)}}.credit{letter-spacing:.02em;color:var(--text-dim);text-align:center;border-top:1px solid #ffecc41f;margin:16px 0 0;padding-top:12px;font-size:.78rem}.credit--footer{border:1px solid var(--panel-border);background:var(--panel-strong);white-space:nowrap;z-index:2;border-radius:999px;margin:0;padding:7px 16px;position:fixed;bottom:14px;left:50%;transform:translate(-50%)}.credit a{color:var(--sun);font-weight:600;text-decoration:none}.credit a:hover,.credit a:focus-visible{text-decoration:underline}.gems-large{justify-content:center;gap:10px;margin-bottom:8px;display:flex}.gems-large svg{filter:drop-shadow(0 0 10px #ffd99a80);width:38px;height:38px}@media (max-width:640px){.hud__tracker{top:12px;left:12px}.hud__buttons{top:12px;right:12px}.notice{top:auto;bottom:76px}.controls div{grid-template-columns:110px 1fr}.panel{padding:22px 18px}}@keyframes fade-in{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translate(-50%,8px)}}@keyframes drop{0%{opacity:0;transform:translate(-50%,-8px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}.hud__clock{border:1px solid var(--panel-border);background:var(--panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);height:42px;font:600 .95rem var(--sans);font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:6px;padding:0 14px;display:flex}.hud__clock-part{color:var(--text-dim);font-size:.78rem;font-weight:500}.muted{color:var(--text-dim);margin-left:6px;font-weight:400}.settings .seg{border:none;border-radius:0;flex-wrap:wrap;justify-content:flex-end;gap:4px;overflow:visible}.settings .seg button{border:1px solid #ffecc438;border-radius:999px;padding:4px 10px;font-size:.8rem;transition:background .15s,color .15s,border-color .15s}.settings .seg button:hover{color:#fff;border-color:#ffecc473}.settings .seg button.on{border-color:var(--moss)}.hud__season-badge{appearance:none;cursor:pointer;color:var(--cream);pointer-events:auto;transition:transform .15s,background .15s,border-color .15s}.hud__season-badge:hover{background:var(--panel-strong);border-color:#ffecc473;transform:translateY(-1px)}.toggle--season{flex-direction:column;align-items:stretch;gap:8px}.toggle__meta{justify-content:space-between;align-items:baseline;display:flex}.seg--season{flex-wrap:wrap;gap:6px;display:flex}.season-btn{align-items:center;gap:6px;display:inline-flex}.season-btn--vernal.on{box-shadow:0 0 10px #ff9ec273;color:#2b141e!important;background:#ff9ec2!important;border-color:#ff80b0!important}.season-btn--estival.on{box-shadow:0 0 10px #ffd45273;color:#2e2105!important;background:#ffd452!important;border-color:#ffbe1a!important}.season-btn--fall.on{box-shadow:0 0 10px #e8853273;color:#2e1505!important;background:#e88532!important;border-color:#d16b17!important}.season-btn--hibernal.on{box-shadow:0 0 10px #b4dcff73;color:#0c2236!important;background:#b4dcff!important;border-color:#8cc6ff!important}.toggle--weather{align-items:flex-start;padding-top:10px}.sleep-fade{z-index:15;opacity:0;pointer-events:none;background:#05070d;transition:opacity .9s;position:fixed;inset:0}.sleep-fade--on{opacity:1}@media (max-width:640px){.hud__clock-part{display:none}}.weather-btn{position:relative}.icon-btn--active{border-color:#8fc4ff8c;box-shadow:0 0 0 2px #8fc4ff26}.weather-menu{z-index:5;flex-direction:column;gap:2px;min-width:180px;padding:8px;display:flex;position:absolute;top:calc(100% + 8px);right:0}.weather-menu__title{letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);padding:2px 8px 6px;font-size:.72rem}.weather-menu__item{appearance:none;color:var(--cream);font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:10px;padding:7px 10px;font-size:.9rem;display:flex}.weather-menu__item:hover{background:#ffffff14}.weather-menu__item.on{border-color:var(--moss);background:#ffffff0f}.hud__chips{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.chip{font-variant-numeric:tabular-nums;background:#ffffff14;border-radius:999px;align-items:center;gap:4px;padding:2px 8px 2px 5px;font-size:.8rem;display:inline-flex}.activity-panel{border-radius:var(--radius);background:var(--panel-strong);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-align:center;pointer-events:none;min-width:260px;padding:12px 18px;position:absolute;bottom:14%;left:50%;transform:translate(-50%)}.activity-title{font-family:var(--serif);font-size:1.15rem}.activity-title.bite{color:var(--sun);animation:.35s ease-in-out infinite alternate bite-pulse}@keyframes bite-pulse{0%{transform:scale(1)}to{transform:scale(1.08)}}.activity-hint{color:var(--text-dim);margin-top:6px;font-size:.8rem}.activity-hint-bar{background:var(--panel);border:1px solid var(--panel-border);white-space:nowrap;pointer-events:none;border-radius:999px;padding:7px 14px;font-size:.85rem;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}.reel{justify-content:center;gap:10px;margin:10px auto 2px;display:flex}.reel__track{border:1px solid var(--panel-border);background:linear-gradient(#2a6f8f,#164a62);border-radius:10px;width:34px;height:180px;position:relative;overflow:hidden}.reel__zone{background:#7fe36a8c;border:1px solid #beffaae6;border-radius:8px;position:absolute;left:2px;right:2px}.reel__fish{width:18px;height:18px;position:absolute;left:50%;transform:translate(-50%)}.reel__progress{background:#ffffff1f;border-radius:6px;width:10px;height:180px;position:relative;overflow:hidden}.reel__progress>div{background:linear-gradient(#ffd99a,#f6a42a);position:absolute;bottom:0;left:0;right:0}.photo-ui{pointer-events:none;position:fixed;inset:0}.photo-ui__hint{background:var(--panel);white-space:nowrap;border-radius:999px;padding:6px 14px;font-size:.82rem;position:absolute;top:16px;left:50%;transform:translate(-50%)}.photo-ui__bar{pointer-events:auto;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;max-width:calc(100vw - 32px);display:flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.photo-ui__check{align-items:center;gap:6px;font-size:.85rem;display:inline-flex}.overlay--journal{background:#0a140e59}.panel--journal{flex-direction:column;width:min(640px,100vw - 32px);max-height:calc(100vh - 60px);display:flex}.journal__head{justify-content:space-between;align-items:center;display:flex}.journal__head h2{font-family:var(--serif);margin:0}.journal__tabs{flex-wrap:wrap;margin:10px 0}.journal__body{overflow-y:auto}.journal__list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.journal__list li{background:#ffffff0f;border-radius:12px;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px;display:flex}.journal__list small{color:var(--text-dim)}.journal__grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));display:grid}.journal__grid li{flex-direction:column;align-items:flex-start}.journal__grid li.locked{opacity:.55}.journal__help li{line-height:1.45;display:block}.quest{flex-direction:column;align-items:flex-start!important}.quest--done{opacity:.7}.quest__status{color:var(--sun);font-size:.85rem}@media (max-width:640px){.activity-hint-bar,.photo-ui__hint{white-space:normal;text-align:center;width:calc(100vw - 32px)}}.overlay--map{z-index:30;background:radial-gradient(#0e1e1a59,#08100cb3);padding:16px}.panel.panel--map{text-align:left;flex-direction:column;gap:12px;width:min(1180px,100%);max-height:calc(100vh - 32px);padding:18px 20px 20px;display:flex;overflow:hidden}.map__head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.map__head h2{margin:0 0 2px}.map__head p{margin:0;font-size:.86rem}.map__tabs{flex-wrap:wrap;align-self:flex-start}.map__body{flex:1;grid-template-columns:minmax(0,1fr) 260px;gap:14px;min-height:0;display:grid}.map__frame{background:#1f86b8;border-radius:16px;width:100%;max-height:calc(100vh - 210px);margin:0 auto;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff1f,0 12px 30px #0000004d}.map__img{object-fit:fill;-webkit-user-select:none;user-select:none;width:100%;height:100%;animation:.3s both fade-in;position:absolute;inset:0}.map__area{color:#1d4a33;cursor:pointer;text-align:center;background:#fffffff2;border:0;border-radius:999px;gap:2px;padding:10px 18px;transition:transform .15s,box-shadow .15s;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 8px 22px #00000047}.map__area:hover,.map__area:focus-visible{transform:translate(-50%,-50%)scale(1.06);box-shadow:0 10px 28px #00000059}.map__area-name{font-size:1rem;font-weight:800}.map__area-count{color:#4f7a62;font-size:.72rem}.map__dot{pointer-events:none;background:#e8413a;border-radius:50%;width:8px;height:8px;margin:-4px 0 0 -4px;position:absolute;box-shadow:0 0 0 2px #fff}.map__pin{cursor:pointer;z-index:1;background:0 0;border:0;align-items:center;gap:0;padding:0;display:flex;position:absolute;transform:translate(-9px,-9px)}.map__pin:hover,.map__pin.is-hover,.map__pin:focus-visible{z-index:3}.map__pin-dot{background:#e8413a;border-radius:50%;flex:none;width:18px;height:18px;position:relative;box-shadow:0 0 0 3px #fff,0 3px 8px #00000059}.map__pin-dot:after{content:"!";color:#fff;place-items:center;font-size:.72rem;font-weight:900;display:grid;position:absolute;inset:0}.map__pin-label{color:#fff;white-space:nowrap;background:#1f5a3c;border-radius:8px;margin-left:6px;padding:4px 10px;font-size:.78rem;font-weight:700;transition:background .15s,transform .15s;box-shadow:0 4px 10px #0000004d}.map__pin--left{flex-direction:row-reverse;transform:translate(calc(9px - 100%),-9px)}.map__pin--left .map__pin-label{margin:0 6px 0 0}.map__pin--below,.map__pin--above{flex-direction:column;transform:translate(-50%,-9px)}.map__pin--above{flex-direction:column-reverse;transform:translate(-50%,calc(9px - 100%))}.map__pin--below .map__pin-label,.map__pin--above .map__pin-label{margin:4px 0}.map__pin:hover .map__pin-label,.map__pin.is-hover .map__pin-label,.map__pin:focus-visible .map__pin-label{background:#e8413a}.map__you{pointer-events:none;z-index:2;background:#33e1ff40;border-radius:50%;width:26px;height:26px;margin:-13px 0 0 -13px;animation:1.6s ease-in-out infinite map-you;position:absolute;box-shadow:0 0 0 2px #fff}.map__you-arrow{transform-origin:6px 9px;border-bottom:16px solid #0aa6d6;border-left:6px solid #0000;border-right:6px solid #0000;width:0;height:0;margin:-9px 0 0 -6px;position:absolute;top:50%;left:50%}@keyframes map-you{50%{box-shadow:0 0 0 5px #fff9}}.map__list{align-content:start;gap:6px;max-height:calc(100vh - 210px);margin:0;padding:0 4px 0 0;list-style:none;display:grid;overflow-y:auto}.map__list button{border:1px solid var(--panel-border);width:100%;color:var(--text);text-align:left;cursor:pointer;background:#ffffff0d;border-radius:12px;gap:2px;padding:9px 12px;display:grid}.map__list button:hover,.map__list button.is-hover,.map__list button:focus-visible{background:#ffd99a29;border-color:#ffd99a80}.map__list small{color:var(--text-dim);font-size:.76rem}@media (max-width:820px){.map__body{grid-template-columns:1fr}.map__list{max-height:30vh}.map__pin-label{padding:3px 7px;font-size:.68rem}}.map__loading{color:#ffffffd9;letter-spacing:.04em;place-items:center;font-weight:600;display:grid;position:absolute;inset:0}
