:root{--cream: #fbf6ec;--cream-2: #f3ebdb;--paper: rgba(251, 246, 236, .94);--ink: #1f2a24;--ink-2: #4a544d;--ink-3: #7b847d;--forest: #2f5d46;--forest-2: #3f7a5b;--gold: #d9a441;--gold-2: #f2c86a;--clay: #c8664a;--sky: #5f9fbf;--danger: #c0533f;--radius: 18px;--radius-sm: 12px;--shadow: 0 10px 30px rgba(20, 28, 22, .18), 0 2px 6px rgba(20, 28, 22, .08);--shadow-lg: 0 24px 60px rgba(20, 28, 22, .28);--display: "Fraunces", Georgia, "Times New Roman", serif;--sans: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px);--ease: cubic-bezier(.2, .8, .2, 1);--spring: cubic-bezier(.34, 1.56, .64, 1)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden;background:#1f2a24;color:var(--ink);font-family:var(--sans);overscroll-behavior:none}#scene{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;touch-action:none;outline:none}#ui{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2}#ui>*:not(.farm-ui):not(.market):not(.reveal):not(.hud):not(.letterbox){pointer-events:auto}#ui .passthrough{pointer-events:none}#ui .passthrough>*{pointer-events:auto}button{font-family:inherit;cursor:pointer;border:0;color:inherit;background:none}button:focus-visible,[tabindex]:focus-visible,input:focus-visible{outline:3px solid var(--gold-2);outline-offset:3px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border-radius:999px;font-weight:800;font-size:15px;letter-spacing:.08em;text-transform:uppercase;background:var(--cream);color:var(--ink);box-shadow:var(--shadow);transition:transform .18s var(--spring),box-shadow .2s,background .2s,opacity .2s;-webkit-user-select:none;user-select:none}.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn:active{transform:translateY(1px) scale(.97)}.btn.primary{background:var(--forest);color:var(--cream)}.btn.primary:hover{background:var(--forest-2)}.btn.gold{background:linear-gradient(180deg,var(--gold-2),var(--gold));color:#3a2a10}.btn.ghost{background:#fbf6ec29;color:var(--cream);box-shadow:none;border:1.5px solid rgba(251,246,236,.5);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.btn.ghost:hover{background:#fbf6ec42}.btn.small{min-height:40px;padding:0 16px;font-size:12px}.btn[disabled]{opacity:.55;cursor:not-allowed;transform:none}.btn .ico{font-size:18px;letter-spacing:0}.chip{display:inline-flex;align-items:center;gap:8px;padding:0 14px;height:40px;border-radius:999px;background:var(--paper);box-shadow:var(--shadow);font-weight:800;font-size:13px;letter-spacing:.04em}.icon-btn{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-size:18px;background:var(--paper);box-shadow:var(--shadow);transition:transform .18s var(--spring)}.icon-btn:hover{transform:translateY(-2px)}.icon-btn:active{transform:scale(.92)}.screen{position:absolute;top:0;right:0;bottom:0;left:0;animation:fadeIn .6s var(--ease) both}.screen.out{animation:fadeOut .45s var(--ease) both;pointer-events:none!important}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{to{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes pop{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.08);opacity:1}to{transform:scale(1)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.loading{display:grid;place-items:center;background:radial-gradient(ellipse at 50% 120%,#f6c98a,#e89a6a 25%,#4a5f7a 70%,#1f2a3a);color:var(--cream)}.loading .landscape{position:absolute;left:0;right:0;bottom:0;height:45%}.loading .landscape svg{width:100%;height:100%;display:block}.loading .ld-center{position:relative;text-align:center;transform:translateY(-8vh)}.loading .ld-title{font-family:var(--display);font-weight:800;font-size:clamp(30px,6vw,56px);letter-spacing:-.01em}.loading .ld-sub{margin-top:10px;font-weight:700;letter-spacing:.3em;font-size:12px;opacity:.85}.loading .bar{margin:24px auto 0;width:min(280px,60vw);height:4px;border-radius:4px;background:#fff3;overflow:hidden}.loading .bar i{display:block;height:100%;width:0%;background:var(--gold-2);border-radius:4px;transition:width .3s var(--ease)}.sun-disc{position:absolute;left:50%;bottom:38%;width:120px;height:120px;margin-left:-60px;border-radius:50%;background:radial-gradient(circle,#ffe7a8,#f6b46a 70%,#f6b46a00);filter:blur(1px);animation:sunrise 3s var(--ease) both}@keyframes sunrise{0%{transform:translateY(60px);opacity:.2}to{transform:none;opacity:1}}.intro{display:grid;place-items:center;padding:24px;background:linear-gradient(180deg,#141e1a26,#141e1a8c)}.intro-card{max-width:640px;text-align:center;color:var(--cream)}.intro h1{font-family:var(--display);font-weight:800;font-size:clamp(44px,9vw,96px);line-height:.95;margin:0 0 26px;letter-spacing:-.02em;text-shadow:0 4px 30px rgba(0,0,0,.25)}.intro h1 span{display:block;animation:rise .9s var(--ease) both}.intro h1 span:nth-child(2){animation-delay:.25s}.intro h1 span:nth-child(3){animation-delay:.5s;color:var(--gold-2);font-style:italic}.intro p{font-size:clamp(15px,2.2vw,18px);line-height:1.6;margin:0 auto 30px;max-width:520px;opacity:.94;animation:rise .9s .75s var(--ease) both}.intro .btn{animation:rise .9s 1s var(--ease) both;min-height:60px;padding:0 38px;font-size:16px}.intro .fine{margin-top:22px;font-size:12px;letter-spacing:.06em;opacity:.7;animation:rise .9s 1.2s var(--ease) both}.brand{position:absolute;top:calc(18px + var(--safe-t));left:22px;font-family:var(--display);font-weight:800;font-size:20px;color:var(--cream);letter-spacing:-.01em;text-shadow:0 2px 12px rgba(0,0,0,.3)}.brand small{font-family:var(--sans);font-weight:700;font-size:10px;letter-spacing:.3em;opacity:.7;display:block}.hud{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.hud *{pointer-events:none}.hud .hud-top{position:absolute;top:calc(14px + var(--safe-t));left:0;right:0;display:flex;justify-content:center}.score-box{text-align:center;color:var(--cream);text-shadow:0 2px 14px rgba(0,0,0,.35)}.score-box .lbl{font-weight:800;letter-spacing:.3em;font-size:11px;opacity:.9}.score-box .val{font-family:var(--display);font-weight:800;font-size:clamp(38px,7vw,60px);line-height:1;font-variant-numeric:tabular-nums}.combo{position:absolute;top:calc(18px + var(--safe-t));right:18px;text-align:right;color:var(--cream)}.combo .mult{font-family:var(--display);font-weight:800;font-size:44px;line-height:1;text-shadow:0 3px 16px rgba(0,0,0,.3);transition:color .3s}.combo .mult.bump{animation:pulse .35s var(--spring)}.combo .meter{width:110px;height:6px;border-radius:6px;background:#ffffff40;margin-top:6px;margin-left:auto;overflow:hidden}.combo .meter i{display:block;height:100%;background:var(--gold-2);border-radius:6px}.combo .lbl{font-size:10px;font-weight:800;letter-spacing:.3em;opacity:.85}.speedo{position:absolute;left:18px;top:calc(18px + var(--safe-t));color:var(--cream);text-shadow:0 2px 10px rgba(0,0,0,.3)}.speedo .v{font-family:var(--display);font-weight:800;font-size:30px;font-variant-numeric:tabular-nums}.speedo .u{font-size:10px;font-weight:800;letter-spacing:.25em;opacity:.85}.boost{margin-top:8px;width:110px;height:6px;border-radius:6px;background:#ffffff40;overflow:hidden}.boost i{display:block;height:100%;background:#7fd0f0;border-radius:6px}.float-pts{position:absolute;font-family:var(--display);font-weight:800;color:var(--gold-2);font-size:22px;text-shadow:0 2px 10px rgba(0,0,0,.35);white-space:nowrap;transform:translate(-50%,-50%);transition:transform .65s var(--ease),opacity .65s var(--ease);z-index:5}.callout{position:absolute;left:50%;top:30%;transform:translate(-50%,-50%);font-family:var(--display);font-weight:800;font-size:clamp(24px,4vw,36px);color:var(--cream);text-shadow:0 3px 18px rgba(0,0,0,.35);animation:callout .9s var(--ease) forwards;white-space:nowrap}@keyframes callout{0%{opacity:0;transform:translate(-50%,-30%) scale(.8)}20%{opacity:1;transform:translate(-50%,-50%) scale(1.05)}70%{opacity:1}to{opacity:0;transform:translate(-50%,-80%) scale(1)}}.tutorial{position:absolute;left:50%;bottom:calc(12% + var(--safe-b));transform:translate(-50%);display:flex;gap:14px;animation:rise .6s var(--ease) both}.tutorial .step{background:var(--paper);border-radius:var(--radius);padding:14px 18px;text-align:center;box-shadow:var(--shadow);min-width:110px}.tutorial .step b{display:block;font-family:var(--display);font-size:22px}.tutorial .step span{font-size:12px;font-weight:700;color:var(--ink-2)}.tutorial.out{animation:fadeOut .5s var(--ease) forwards}.pause-veil{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#141e1a73;color:var(--cream);text-align:center;pointer-events:auto!important}.pause-veil *{pointer-events:auto!important}.pause-veil h2{font-family:var(--display);font-size:44px;margin:0 0 18px}.touch-hint{position:absolute;bottom:calc(18px + var(--safe-b));left:0;right:0;display:flex;justify-content:space-between;padding:0 24px;color:#ffffffb3;font-weight:800;font-size:12px;letter-spacing:.2em}.results{display:grid;place-items:center;padding:20px;background:#141e1a59}.panel{background:var(--paper);border-radius:26px;box-shadow:var(--shadow-lg);padding:30px 30px 26px;width:min(460px,100%);animation:pop .55s var(--ease) both;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.panel h2{font-family:var(--display);font-weight:800;font-size:32px;margin:0 0 4px;text-align:center;letter-spacing:-.01em}.panel .sub{text-align:center;color:var(--ink-3);font-weight:700;font-size:12px;letter-spacing:.22em;margin-bottom:18px}.stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}.stat{background:var(--cream-2);border-radius:var(--radius-sm);padding:10px 14px;animation:rise .5s var(--ease) both}.stat .k{font-size:10px;letter-spacing:.2em;font-weight:800;color:var(--ink-3)}.stat .v{font-family:var(--display);font-weight:700;font-size:22px;font-variant-numeric:tabular-nums}.convert{text-align:center;padding:14px 0 8px;border-top:1px dashed rgba(31,42,36,.18)}.convert .pts{font-family:var(--display);font-weight:800;font-size:36px;font-variant-numeric:tabular-nums}.convert .arrow{font-size:14px;color:var(--ink-3);margin:2px 0;font-weight:800;letter-spacing:.2em}.convert .cash{font-family:var(--display);font-weight:800;font-size:30px;color:var(--forest);font-variant-numeric:tabular-nums;opacity:0;transition:opacity .4s,transform .4s var(--spring);transform:scale(.8)}.convert .cash.on{opacity:1;transform:none}.balance-row{display:flex;justify-content:space-between;align-items:center;background:var(--ink);color:var(--cream);padding:12px 18px;border-radius:14px;margin:12px 0 18px}.balance-row .k{font-size:11px;letter-spacing:.22em;font-weight:800;opacity:.8}.balance-row .v{font-family:var(--display);font-weight:800;font-size:26px;font-variant-numeric:tabular-nums}.balance-row.glow{animation:glow 1.2s var(--ease)}@keyframes glow{0%{box-shadow:0 0 #f2c86ae6}to{box-shadow:0 0 0 18px #f2c86a00}}.hint-line{text-align:center;font-weight:700;font-size:13px;color:var(--ink-2);margin:-6px 0 14px;min-height:18px}.actions{display:flex;flex-direction:column;gap:10px}.actions .row{display:flex;gap:10px}.actions .row .btn{flex:1}.paradise{text-align:center;font-family:var(--display);font-weight:800;font-size:20px;color:var(--forest);margin-bottom:14px;animation:rise .7s var(--ease) both}.topbar{position:absolute;top:calc(12px + var(--safe-t));left:12px;right:12px;display:flex;gap:10px;align-items:center;pointer-events:none}.topbar>*{pointer-events:auto}.topbar .spacer{flex:1;pointer-events:none}.cash-chip{background:var(--ink);color:var(--cream)}.cash-chip .v{font-family:var(--display);font-size:18px;font-variant-numeric:tabular-nums}.cash-chip .k{font-size:10px;letter-spacing:.2em;opacity:.75}.land-chip .dot{width:10px;height:10px;border-radius:50%}.seg{display:inline-flex;background:var(--paper);border-radius:999px;box-shadow:var(--shadow);padding:4px;gap:2px}.seg button{height:32px;padding:0 12px;border-radius:999px;font-weight:800;font-size:11px;letter-spacing:.08em;color:var(--ink-2);transition:background .2s,color .2s}.seg button[aria-pressed=true]{background:var(--ink);color:var(--cream)}.market{pointer-events:none}.market>*{pointer-events:auto}.market .veil{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#141e1a40,#141e1a00 30%,#141e1a00 50%,#141e1a8c);pointer-events:none}.dest{position:absolute;left:0;right:0;bottom:calc(18px + var(--safe-b));display:flex;flex-direction:column;align-items:center;gap:16px;padding:0 16px}.dest-main{display:flex;align-items:center;gap:14px;width:min(760px,100%)}.dest-card{flex:1;background:var(--paper);border-radius:26px;box-shadow:var(--shadow-lg);padding:22px 26px;display:grid;grid-template-columns:1fr auto;gap:14px 24px;align-items:center;animation:rise .5s var(--ease) both}.dest-card .tier{font-size:10px;font-weight:800;letter-spacing:.3em;color:var(--ink-3)}.dest-card h2{font-family:var(--display);font-weight:800;font-size:clamp(28px,4.4vw,42px);margin:2px 0;letter-spacing:-.02em;line-height:1.05}.dest-card .tag{font-weight:800;color:var(--forest);font-size:14px}.dest-card .mood{color:var(--ink-2);font-size:14px;line-height:1.5;margin-top:6px;max-width:420px}.feats{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.feats span{font-size:11px;font-weight:800;padding:5px 10px;border-radius:999px;background:var(--cream-2);color:var(--ink-2)}.price-col{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:8px}.price{font-family:var(--display);font-weight:800;font-size:32px;font-variant-numeric:tabular-nums}.price.owned{color:var(--forest);font-size:22px;letter-spacing:.08em}.need{font-size:12px;font-weight:800;color:var(--clay);letter-spacing:.06em}.progress{width:170px;height:6px;border-radius:6px;background:var(--cream-2);overflow:hidden}.progress i{display:block;height:100%;background:var(--gold);border-radius:6px}.arrow-btn{width:54px;height:54px;border-radius:50%;background:var(--paper);box-shadow:var(--shadow);font-size:22px;font-weight:800;flex:none;transition:transform .18s var(--spring)}.arrow-btn:hover{transform:scale(1.08)}.arrow-btn:active{transform:scale(.92)}.strip{display:flex;gap:8px;background:#141e1a59;padding:6px;border-radius:999px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);max-width:100%;overflow-x:auto;scrollbar-width:none}.strip button{height:36px;padding:0 14px;border-radius:999px;color:var(--cream);font-weight:800;font-size:12px;white-space:nowrap;display:flex;align-items:center;gap:6px;transition:background .2s}.strip button[aria-current=true]{background:var(--cream);color:var(--ink)}.strip .st{font-size:10px;opacity:.8}.purchase-glow{animation:buyglow .9s var(--ease)}@keyframes buyglow{0%{box-shadow:0 0 #f2c86a,var(--shadow-lg)}to{box-shadow:0 0 0 40px #f2c86a00,var(--shadow-lg)}}.reveal{display:grid;place-items:center;pointer-events:none!important}.reveal h1{font-family:var(--display);font-weight:800;color:var(--cream);font-size:clamp(42px,9vw,104px);text-align:center;line-height:.95;margin:0;text-shadow:0 6px 40px rgba(0,0,0,.35);letter-spacing:-.02em}.reveal h1 span{display:block;animation:revealIn 1.4s var(--ease) both}.reveal h1 span:nth-child(2){animation-delay:.45s;color:var(--gold-2);font-style:italic}.reveal .where{text-align:center;color:var(--cream);font-weight:800;letter-spacing:.35em;font-size:12px;margin-top:20px;animation:rise 1s .9s var(--ease) both}@keyframes revealIn{0%{opacity:0;letter-spacing:.2em;filter:blur(8px)}to{opacity:1;letter-spacing:-.02em;filter:none}}.farm-ui{pointer-events:none}.farm-ui>*{pointer-events:auto}.dock{position:absolute;left:50%;bottom:calc(12px + var(--safe-b));transform:translate(-50%);width:min(980px,calc(100% - 24px));background:var(--paper);border-radius:24px;box-shadow:var(--shadow-lg);padding:10px;display:flex;flex-direction:column;gap:8px;transition:transform .35s var(--ease)}.dock.collapsed .tray{display:none}.cats{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}.cats::-webkit-scrollbar,.tray::-webkit-scrollbar,.strip::-webkit-scrollbar{display:none}.cats button{flex:none;height:38px;padding:0 12px;border-radius:12px;font-weight:800;font-size:12px;letter-spacing:.06em;color:var(--ink-2);display:flex;align-items:center;gap:6px;transition:background .2s,color .2s}.cats button:hover{background:var(--cream-2)}.cats button[aria-pressed=true]{background:var(--ink);color:var(--cream)}.tray{display:flex;gap:8px;overflow-x:auto;padding:2px;scroll-snap-type:x proximity;animation:rise .3s var(--ease) both}.item{flex:none;width:92px;height:86px;border-radius:16px;background:var(--cream-2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;transition:transform .18s var(--spring),background .2s,box-shadow .2s;scroll-snap-align:start}.item:hover{transform:translateY(-3px);background:#fff;box-shadow:var(--shadow)}.item:active{transform:scale(.95)}.item[aria-pressed=true]{background:var(--forest);color:var(--cream);box-shadow:0 0 0 3px var(--gold-2)}.item .e{font-size:30px;line-height:1}.item .n{font-size:11px;font-weight:800;text-align:center;padding:0 4px;line-height:1.15}.dock-head{display:flex;gap:8px;align-items:center}.dock-head .cats{flex:1;min-width:0}.undo-btn{flex:none;height:38px;padding:0 14px;border-radius:12px;font-weight:800;font-size:12px;letter-spacing:.06em;background:var(--cream-2);color:var(--ink);transition:background .2s,transform .15s var(--spring)}.undo-btn:hover{background:#fff}.undo-btn:active{transform:scale(.94)}.undo-btn[disabled]{opacity:.4;cursor:default}.tray-wrap{position:relative}.tray-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:40px;height:40px;border-radius:50%;background:var(--ink);color:var(--cream);font-size:24px;font-weight:800;line-height:1;box-shadow:var(--shadow);display:grid;place-items:center}.tray-arrow.left{left:-6px}.tray-arrow.right{right:-6px}.tray-arrow[hidden]{display:none}.tray{cursor:grab}.place-hint{position:absolute;left:50%;transform:translate(-50%);bottom:calc(150px + var(--safe-b));display:flex;gap:8px;align-items:center;background:var(--ink);color:var(--cream);padding:8px 8px 8px 16px;border-radius:999px;box-shadow:var(--shadow);font-size:13px;font-weight:700;animation:rise .3s var(--ease) both;white-space:nowrap}.place-hint .why{color:#ffb4a6}.place-hint .btn{min-height:36px;padding:0 14px;font-size:12px}.selbar{position:absolute;left:50%;transform:translate(-50%);bottom:calc(150px + var(--safe-b));background:var(--paper);border-radius:22px;box-shadow:var(--shadow-lg);padding:8px;display:flex;gap:4px;animation:rise .3s var(--ease) both;max-width:calc(100% - 24px);overflow-x:auto}.selbar .ttl{display:flex;align-items:center;padding:0 12px 0 8px;font-weight:800;font-size:13px;white-space:nowrap}.tool{min-width:60px;height:58px;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:10px;font-weight:800;letter-spacing:.08em;color:var(--ink-2);transition:background .2s,transform .15s var(--spring)}.tool .e{font-size:20px}.tool:hover{background:var(--cream-2)}.tool:active{transform:scale(.92)}.tool.danger{color:var(--danger)}.swatches{position:absolute;left:50%;transform:translate(-50%);bottom:calc(222px + var(--safe-b));background:var(--paper);border-radius:20px;box-shadow:var(--shadow-lg);padding:12px;animation:rise .25s var(--ease) both;max-width:calc(100% - 24px)}.swatches .slots{display:flex;gap:4px;margin-bottom:10px;flex-wrap:wrap}.swatches .slots button{height:30px;padding:0 12px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.08em;background:var(--cream-2)}.swatches .slots button[aria-pressed=true]{background:var(--ink);color:var(--cream)}.swatches .grid{display:grid;grid-template-columns:repeat(8,32px);gap:6px}.swatches .grid button{width:32px;height:32px;border-radius:50%;box-shadow:inset 0 0 0 2px #00000014;transition:transform .15s var(--spring)}.swatches .grid button:hover{transform:scale(1.15)}.swatches .grid button[aria-pressed=true]{box-shadow:0 0 0 3px var(--ink)}.free-banner{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(520px,calc(100% - 32px));text-align:center;background:var(--paper);border-radius:26px;box-shadow:var(--shadow-lg);padding:30px;animation:pop .6s var(--ease) both}.free-banner h3{font-family:var(--display);font-weight:800;font-size:28px;line-height:1.15;margin:0 0 12px}.free-banner p{color:var(--ink-2);margin:0 0 20px;line-height:1.6}.free-banner .keys{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-bottom:20px;font-size:12px;font-weight:700;color:var(--ink-2)}.free-banner .keys span{background:var(--cream-2);padding:6px 10px;border-radius:10px}.place-pop{position:absolute;width:10px;height:10px;border-radius:50%;pointer-events:none!important;transform:translate(-50%,-50%);box-shadow:0 0 #ffffffe6;animation:placepop .6s var(--ease) forwards}@keyframes placepop{to{box-shadow:0 0 0 36px #fff0}}.toast-area{position:absolute;top:calc(70px + var(--safe-t));left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none!important;z-index:20}.toast{background:var(--ink);color:var(--cream);padding:10px 16px;border-radius:16px;box-shadow:var(--shadow-lg);display:flex;gap:12px;align-items:center;animation:toast 4s var(--ease) forwards}.toast .e{font-size:24px}.toast b{display:block;font-family:var(--display);font-size:16px}.toast small{font-size:12px;opacity:.8}.toast .k{font-size:9px;letter-spacing:.3em;color:var(--gold-2);font-weight:800}@keyframes toast{0%{opacity:0;transform:translateY(-14px)}10%,85%{opacity:1;transform:none}to{opacity:0;transform:translateY(-10px)}}.mini-toast{background:var(--paper);color:var(--ink);padding:8px 14px;border-radius:999px;font-weight:800;font-size:13px;box-shadow:var(--shadow);animation:toast 2.2s var(--ease) forwards}.photo-bar{position:absolute;left:50%;bottom:calc(18px + var(--safe-b));transform:translate(-50%);display:flex;gap:8px;align-items:center;opacity:.35;transition:opacity .3s}.photo-bar:hover,.photo-bar:focus-within{opacity:1}.photo-label{position:absolute;top:calc(18px + var(--safe-t));left:50%;transform:translate(-50%);color:var(--cream);font-weight:800;letter-spacing:.35em;font-size:11px;opacity:.6;text-shadow:0 2px 10px rgba(0,0,0,.4);pointer-events:none!important}.letterbox:before,.letterbox:after{content:"";position:absolute;left:0;right:0;height:7vh;background:#0d120f;pointer-events:none;animation:lb .6s var(--ease) both}.letterbox:before{top:0}.letterbox:after{bottom:0}@keyframes lb{0%{height:0}}.modal-back{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f16128c;display:grid;place-items:center;padding:20px;animation:fadeIn .25s both;z-index:30;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{background:var(--cream);border-radius:26px;box-shadow:var(--shadow-lg);padding:26px;width:min(440px,100%);animation:pop .4s var(--ease) both;max-height:calc(100% - 20px);overflow:auto}.modal h2{font-family:var(--display);font-weight:800;font-size:28px;margin:0 0 6px}.modal p{color:var(--ink-2);line-height:1.55}.modal .row{display:flex;gap:10px;margin-top:18px}.modal .row .btn{flex:1}.setting{display:grid;grid-template-columns:110px 1fr 40px;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid rgba(31,42,36,.08);font-weight:700;font-size:14px}.setting output{font-variant-numeric:tabular-nums;color:var(--ink-3);font-size:12px;text-align:right}input[type=range]{width:100%;accent-color:var(--forest);height:28px}.toggle{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid rgba(31,42,36,.08);font-weight:700;font-size:14px}.toggle input{width:22px;height:22px;accent-color:var(--forest)}.danger-zone{margin-top:18px;padding:16px;border-radius:16px;background:#f6e6df}.danger-zone p{margin:0 0 12px;font-size:13px}.btn.danger{background:var(--danger);color:#fff}.session-note{font-size:12px;color:var(--ink-3);margin-top:14px;line-height:1.5}.ach-list{display:grid;gap:6px;margin-top:10px}.ach-list div{display:flex;gap:10px;align-items:center;font-size:13px;padding:6px 10px;border-radius:10px;background:var(--cream-2);opacity:.45}.ach-list div.on{opacity:1;background:#e6efd9}.webgl-error{display:grid;place-items:center;text-align:center;color:var(--cream);background:#1f2a24;padding:30px}.webgl-error h1{font-family:var(--display)}.fade-veil{position:absolute;top:0;right:0;bottom:0;left:0;background:#0d120f;opacity:0;pointer-events:none!important;transition:opacity .45s var(--ease);z-index:40}.fade-veil.on{opacity:1}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media(max-width:720px){.btn{min-height:50px;padding:0 20px;font-size:14px}.topbar{gap:6px;flex-wrap:wrap}.topbar .hide-sm{display:none!important}.chip{height:38px;padding:0 12px}.seg button{padding:0 9px}.dest-card{grid-template-columns:1fr;padding:18px;gap:10px}.dest-card .mood{display:none}.price-col{align-items:stretch;text-align:left;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:center}.price-col .btn,.progress{width:100%}.arrow-btn{width:44px;height:44px;position:absolute;top:-56px}.arrow-btn.prev{left:16px}.arrow-btn.next{right:16px}.dest-main{position:relative}.dock{width:100%;left:0;transform:none;bottom:0;border-radius:22px 22px 0 0;padding:8px 8px calc(8px + var(--safe-b))}.item{width:78px;height:74px}.item .e{font-size:26px}.place-hint,.selbar{bottom:calc(146px + var(--safe-b))}.place-hint{font-size:12px;white-space:normal;max-width:calc(100% - 24px)}.swatches{bottom:calc(226px + var(--safe-b))}.swatches .grid{grid-template-columns:repeat(8,30px)}.combo .mult{font-size:34px}.speedo .v{font-size:24px}.tutorial .step{min-width:90px;padding:10px 12px}.panel{padding:22px 18px 18px}}@media(hover:hover){.touch-only{display:none!important}}@media(hover:none){.mouse-only{display:none!important}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important}}.reduced-motion *,.reduced-motion *:before,.reduced-motion *:after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important}
