*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f5f0e8;--white: #ffffff;--black: #111111;--border: 3px solid #111;--shadow: 4px 4px 0 #111;--shadow-sm: 2px 2px 0 #111;--shadow-lg: 6px 6px 0 #111;--radius: 2px;--wheat: #E6B800;--ore: #7B8B9A;--tools: #C0640A;--potions: #9B30D0;--cloth: #2E8B57;--coin: #E6B800;--green: #06D6A0;--red: #EF476F;--purple: #9B30D0;font-family:Space Grotesk,system-ui,sans-serif;font-size:16px;line-height:1.4}body{background:var(--bg);color:var(--black);min-height:100dvh}button{font-family:inherit;font-weight:700;font-size:.875rem;line-height:1;border:var(--border);background:var(--white);box-shadow:var(--shadow-sm);cursor:pointer;padding:.4rem .75rem;border-radius:var(--radius);transition:box-shadow 60ms ease,transform 60ms ease;white-space:nowrap}button:hover{background:var(--bg)}button:active{box-shadow:none;transform:translate(2px,2px)}button:disabled{opacity:.4;cursor:not-allowed;box-shadow:none;transform:none}.top-bar{position:sticky;top:0;z-index:100;background:var(--black);color:var(--white);border-bottom:var(--border);padding:.6rem 1rem;display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;align-items:center;justify-content:space-between}.top-bar-title{display:flex;align-items:center;gap:.75rem}.game-title{font-size:1.25rem;font-weight:700;letter-spacing:-.5px;color:var(--coin)}.tick-badge{font-size:.7rem;font-weight:800;font-family:monospace;background:#1a1a1a;color:#fff;border:2px solid #555;box-shadow:2px 2px #000;padding:.2rem .5rem;border-radius:2px}.top-bar-stats{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center}.stat-block{display:flex;flex-direction:column;align-items:flex-end}.stat-label{font-size:.65rem;font-weight:500;color:#aaa;text-transform:uppercase;letter-spacing:.05em}.stat-value{font-size:1.3rem;font-weight:700;line-height:1.1}.coin-value{color:var(--coin)}.progress-wrap{display:flex;flex-direction:column;gap:2px;min-width:100px}.progress-label{font-size:.65rem;color:#aaa;font-weight:700}.progress-bar{height:10px;background:#333;border:2px solid #555;border-radius:2px;overflow:hidden}.progress-fill{height:100%;background:var(--coin)}.btn-reset{background:#333;color:var(--white);border-color:#666;box-shadow:none}.btn-reset:hover{background:#444}.near-pill{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .55rem;border:3px solid #000;box-shadow:3px 3px #000;background:#00ec97;color:#000;font-size:.7rem;font-weight:800;font-family:var(--font);letter-spacing:.03em;white-space:nowrap}.near-pill-icon{font-size:.85rem;line-height:1}.near-pill-id{font-family:monospace;letter-spacing:.04em}.near-pill-signout{all:unset;cursor:pointer;font-size:.65rem;font-weight:900;color:#000;padding:0 .1rem;opacity:.6;transition:opacity .15s}.near-pill-signout:hover{opacity:1}.near-signin-btn{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .6rem;border:3px solid #000;box-shadow:3px 3px #000;background:#fff;color:#000;font-size:.7rem;font-weight:800;font-family:var(--font);cursor:pointer;transition:box-shadow .1s,transform .1s}.near-signin-btn:hover{box-shadow:1px 1px #000;transform:translate(2px,2px)}.near-signin-btn:active{box-shadow:none;transform:translate(3px,3px)}#headlessui-portal-root{position:relative;z-index:999999}#privy-dialog{position:fixed!important;top:0!important;right:0!important;bottom:0!important;left:0!important;z-index:999999!important}#privy-dialog-backdrop{position:fixed!important;top:0!important;right:0!important;bottom:0!important;left:0!important;z-index:1!important}#privy-dialog>div:not(#privy-dialog-backdrop),#privy-modal-content,[id^=headlessui-dialog-panel]{position:relative;z-index:2!important}.brain-badge{display:inline-flex;align-items:center;gap:.3rem;font-size:.7rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase;padding:.2rem .55rem;border:2px solid #000;box-shadow:2px 2px #fff;white-space:nowrap;cursor:default}.brain-near-ai{background:#00e676;color:#000}.brain-stub{background:#e2e8f0;color:#000}.offline-save-pill{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .55rem;background:#38bdf8;color:#000;border:2px solid #000;box-shadow:2px 2px #fff;font-size:.7rem;font-weight:800;letter-spacing:.02em;white-space:nowrap;cursor:default}.top-bar .near-pill,.top-bar .near-signin-btn{border:2px solid #000;box-shadow:2px 2px #fff}.top-bar .near-signin-btn:hover{box-shadow:1px 1px #fff;transform:translate(1px,1px)}.game-layout{display:grid;grid-template-columns:380px 1fr;gap:1rem;padding:1rem;max-width:1200px;margin:0 auto;align-items:start}@media(max-width:720px){.game-layout{grid-template-columns:1fr;padding:.5rem;gap:.75rem}}.map-col{display:flex;flex-direction:column;gap:.75rem}.town-map-wrap{border:var(--border);box-shadow:var(--shadow);background:var(--white);overflow:hidden;border-radius:var(--radius)}.town-map{width:100%;display:block}.price-overview{border:var(--border);box-shadow:var(--shadow);background:var(--white);padding:.75rem}.price-overview-title{font-size:.85rem;font-weight:700;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.05em}.price-row{display:flex;align-items:center;gap:.4rem;padding:.25rem 0;border-bottom:1px solid #e8dfc8;font-size:.875rem}.price-row:last-child{border-bottom:none}.price-name{flex:1;font-weight:500}.price-num{font-weight:700;min-width:36px;text-align:right}.price-stock{min-width:40px;text-align:right}.good-dot{display:inline-block;width:10px;height:10px;border-radius:50%;border:1.5px solid #111;flex-shrink:0}.good-dot-sm{display:inline-block;width:7px;height:7px;border-radius:50%;border:1.5px solid #111;flex-shrink:0}.trend{font-size:.75rem;font-weight:700}.trend-up{color:var(--red)}.trend-down{color:var(--green)}.trend-flat{color:#aaa}.dimmed{color:#999;font-size:.8rem}.sparkline-wrap{border:var(--border);box-shadow:var(--shadow-sm);background:var(--white);padding:.5rem .75rem;display:flex;align-items:center;gap:.5rem}.sparkline-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.mini-sparkline{flex:1;display:block;height:40px}.panel-col{display:flex;flex-direction:column}.location-panel{display:flex;flex-direction:column;gap:.75rem}.location-title{font-size:1.5rem;font-weight:700;letter-spacing:-.5px;border-bottom:var(--border);padding-bottom:.4rem;margin-bottom:.25rem}.market-info{border:var(--border);box-shadow:var(--shadow);background:var(--white);padding:1rem;display:flex;flex-direction:column;gap:.75rem}.market-info p{font-size:.95rem;line-height:1.6}.market-prices{display:flex;flex-direction:column;gap:.3rem}.market-price-row{display:flex;gap:.75rem;font-size:.9rem;padding:.2rem 0;border-bottom:1px solid #e8dfc8}.market-price-row:last-child{border:none}.market-price-row span:first-child{flex:1;font-weight:600}.tick-info{font-size:.75rem;color:#999;font-weight:700}.empty-loc{border:var(--border);box-shadow:var(--shadow-sm);background:var(--white);padding:1.5rem;text-align:center;color:#999}.npc-card{border:var(--border);box-shadow:var(--shadow);background:var(--white);padding:.75rem;display:flex;flex-direction:column;gap:.5rem}.npc-header{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.npc-name{font-size:1.15rem;font-weight:700}.npc-role{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;background:var(--black);color:var(--white);padding:.15rem .4rem;border-radius:2px}.npc-coins{margin-left:auto;font-weight:700;color:var(--coin);font-size:.9rem}.npc-personality{font-size:.82rem;color:#555;font-style:italic;line-height:1.4}.npc-stock-chips{display:flex;flex-wrap:wrap;gap:.35rem}.trade-list{display:flex;flex-direction:column;font-size:.85rem}.trade-head,.trade-row{display:grid;grid-template-columns:1.1fr .6fr .8fr 64px auto auto;gap:.35rem;align-items:center}.trade-head{font-weight:700;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;padding:.3rem;border-bottom:2px solid var(--black);background:var(--bg)}.trade-row{padding:.35rem .3rem;border-bottom:1px solid #e8dfc8}.trade-row:last-child{border-bottom:none}.trade-good{display:flex;align-items:center;gap:.3rem;font-weight:600}.trade-meta{display:flex;align-items:center;justify-content:flex-end;gap:.3rem}.trade-mobile-label{display:none}.num{text-align:right;font-weight:700;font-variant-numeric:tabular-nums}.row-ok{background:#d4f5e9!important}.row-err{background:#fde8ef!important}.qty-input{width:52px;font-family:inherit;font-weight:700;font-size:.85rem;border:var(--border);background:var(--bg);padding:.2rem .3rem;border-radius:var(--radius);text-align:center;-moz-appearance:textfield}.qty-input::-webkit-inner-spin-button,.qty-input::-webkit-outer-spin-button{-webkit-appearance:none}.btn-buy{background:#cff4e4;border-color:var(--black)}.btn-buy:hover:not(:disabled){background:#a8edcf}.btn-sell{background:#fde8ef;border-color:var(--black)}.btn-sell:hover:not(:disabled){background:#fcc8d8}.trade-flash{font-size:.8rem;font-weight:700;padding:.3rem .6rem;border:2px solid var(--black);border-radius:var(--radius);text-align:center}.trade-flash.ok{background:#d4f5e9}.trade-flash.err{background:#fde8ef}.player-inv{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;padding-top:.4rem;border-top:2px dashed #ccc;font-size:.8rem}.inv-label{font-weight:700;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.inv-item{display:flex;align-items:center;gap:.2rem;border:2px solid currentColor;padding:.1rem .35rem;border-radius:2px;font-weight:700}.npc-coins-hint{font-size:.75rem;color:#555;padding:.2rem 0}.splash{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;min-height:100dvh;padding:2rem;text-align:center}.splash-title{font-size:2rem;font-weight:700;color:var(--black)}.error-splash{background:#fde8ef}.error-msg{font-weight:700;color:var(--red)}.spinner{width:36px;height:36px;border:4px solid #ccc;border-top-color:var(--black);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.win-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#111;display:flex;align-items:center;justify-content:center;z-index:999;padding:1rem}.win-card{background:var(--coin);border:var(--border);box-shadow:var(--shadow-lg);padding:2rem 2.5rem;max-width:400px;width:100%;display:flex;flex-direction:column;align-items:center;gap:.75rem;text-align:center;border-radius:var(--radius)}.win-emoji{font-size:3rem}.win-title{font-size:2.5rem;font-weight:700;letter-spacing:-1px}.win-sub{font-size:1rem}.win-chart{width:100%;border:var(--border);background:var(--white);display:block}.btn-play-again{font-size:1.1rem;padding:.6rem 1.5rem;background:var(--black);color:var(--coin);border-color:var(--black);box-shadow:var(--shadow);margin-top:.5rem}.btn-play-again:hover{background:#333}.btn-play-again:active{box-shadow:var(--shadow-sm);transform:translate(2px,2px)}@media(max-width:600px){.trade-head{display:none}.trade-row{grid-template-columns:1fr 1fr;border:var(--border);box-shadow:var(--shadow-sm);padding:.55rem;margin-bottom:.5rem;gap:.45rem}.trade-row:last-child{border-bottom:var(--border)}.trade-good{grid-column:1 / -1;font-size:1rem}.trade-qty{grid-column:1 / -1}.trade-meta{justify-content:space-between}.trade-mobile-label{display:inline;font-size:.7rem;font-weight:700;text-transform:uppercase;color:#666}.trade-row .btn-buy,.trade-row .btn-sell{min-height:40px}.trade-row .btn-buy{grid-column:1;grid-row:4}.trade-row .btn-sell{grid-column:2;grid-row:4}}@media(max-width:480px){.top-bar{gap:.4rem .75rem;padding:.5rem .75rem}.game-title,.stat-value{font-size:1rem}.progress-wrap{min-width:80px}.npc-name{font-size:1rem}.location-title{font-size:1.2rem}.qty-input{min-height:36px}}.btn-haggle-toggle{display:flex;align-items:center;gap:.3rem;margin-top:.5rem;font-size:.8rem;font-weight:700;padding:.3rem .75rem;background:var(--white);border:var(--border);box-shadow:var(--shadow-sm);cursor:pointer;transition:none;width:100%;justify-content:center}.btn-haggle-toggle:hover{background:#f0e8d0}.btn-haggle-toggle:active{box-shadow:none;transform:translate(2px,2px)}.btn-haggle-toggle.active{background:var(--coin);box-shadow:none;transform:translate(2px,2px)}.haggle-section{margin-top:.5rem;border-top:2px dashed var(--black);padding-top:.6rem}.haggle-title{font-weight:700;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;margin-bottom:.5rem;color:var(--black)}.haggle-chat-input-row{display:flex;gap:.4rem;align-items:center;margin-bottom:.5rem}.haggle-chat-input{flex:1;font-family:inherit;font-size:.82rem;padding:.3rem .55rem;border:var(--border);box-shadow:var(--shadow-sm);background:var(--bg);min-height:32px;border-radius:var(--radius)}.haggle-chat-input:focus{outline:2px solid var(--black);outline-offset:1px}.btn-chat-send{font-size:.8rem;font-weight:700;padding:.3rem .85rem;background:var(--coin);color:var(--black);border:var(--border);box-shadow:var(--shadow-sm);cursor:pointer;min-height:32px;border-radius:var(--radius);white-space:nowrap}.btn-chat-send:hover:not(:disabled){filter:brightness(1.05)}.btn-chat-send:active:not(:disabled){box-shadow:none;transform:translate(2px,2px)}.btn-chat-send:disabled{opacity:.5;cursor:not-allowed}.haggle-form{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin-bottom:.5rem}.haggle-select{font-family:inherit;font-weight:700;font-size:.8rem;border:var(--border);background:var(--bg);padding:.25rem .4rem;border-radius:var(--radius);cursor:pointer;min-height:32px}.haggle-select:focus{outline:2px solid var(--black);outline-offset:1px}.haggle-price-wrap{display:flex;align-items:center;gap:.2rem}.haggle-price-label{font-weight:700;font-size:.8rem;color:#555}.haggle-price-input{width:60px!important}.haggle-market-hint{font-size:.75rem;color:#555}.btn-haggle{font-size:.8rem;font-weight:700;padding:.3rem .75rem;background:var(--black);color:var(--white);border:var(--border);box-shadow:var(--shadow-sm);cursor:pointer;min-height:32px;border-radius:var(--radius)}.btn-haggle:hover:not(:disabled){background:#333}.btn-haggle:active:not(:disabled){box-shadow:none;transform:translate(2px,2px)}.btn-haggle:disabled{opacity:.5;cursor:not-allowed}.haggle-chat{display:flex;flex-direction:column;gap:.4rem;max-height:220px;overflow-y:auto;padding:.4rem;border:var(--border);background:var(--white);box-shadow:var(--shadow-sm);border-radius:var(--radius);scroll-behavior:smooth}.bubble-wrap{display:flex}.bubble-wrap.player{justify-content:flex-end}.bubble-wrap.npc{justify-content:flex-start}.bubble{max-width:82%;padding:.4rem .6rem;border:2px solid var(--black);font-size:.82rem;line-height:1.4;border-radius:2px;display:flex;flex-direction:column;gap:.3rem}.bubble-player{background:var(--coin);box-shadow:2px 2px 0 var(--black);border-radius:2px 2px 0}.bubble-npc{background:#f4f0e8;box-shadow:-2px 2px 0 var(--black);border-radius:2px 2px 2px 0}.btn-accept-counter{font-family:inherit;font-size:.75rem;font-weight:700;padding:.25rem .6rem;background:var(--black);color:var(--coin);border:2px solid var(--black);box-shadow:2px 2px #555;cursor:pointer;border-radius:var(--radius);align-self:flex-start;margin-top:.2rem}.btn-accept-counter:hover:not(:disabled){background:#333}.btn-accept-counter:active:not(:disabled){box-shadow:none;transform:translate(1px,1px)}.btn-accept-counter:disabled{opacity:.5;cursor:not-allowed}.counter-done-label{font-size:.72rem;font-weight:700;color:#2a7a2a;margin-top:.2rem}@media(max-width:600px){.haggle-form{gap:.3rem}.haggle-select{font-size:.75rem}.haggle-chat{max-height:160px}.bubble{font-size:.78rem;max-width:90%}}.leaderboard{border:var(--border);box-shadow:var(--shadow-sm);background:var(--white);padding:.6rem .75rem}.leaderboard-title{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin:0 0 .4rem}.leaderboard-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:2px}.leaderboard-row{display:flex;align-items:center;gap:.4rem;font-size:.72rem;font-weight:600;padding:.2rem .3rem;border:1.5px solid transparent}.leaderboard-row.rank-1{background:#fff9db;border-color:var(--coin)}.leaderboard-row.rank-2{background:#f0f0f0}.leaderboard-row.rank-3{background:#fff2e8}.lb-rank{width:1.4rem;color:#888;font-size:.65rem}.lb-id{flex:1;font-family:monospace;letter-spacing:-.02em}.lb-worth{font-weight:800;color:var(--black)}.leaderboard-tag{display:inline-block;margin-top:6px;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;background:var(--coin);color:#000;padding:.15rem .45rem;border:2px solid #000;box-shadow:2px 2px #000}.leaderboard-offline-note{font-size:.72rem;font-weight:600;color:#444;margin:8px 0 0;line-height:1.35}.leaderboard-offline-hint{font-size:.72rem;font-weight:600;color:#555;margin:4px 0 6px}.tt-signin-root{--ink: #0b0a0f;--paper: #f4efe6;--mut: #a39eae;--y: #f2b705;--font: "Space Grotesk", "Segoe UI", system-ui, sans-serif;font-family:var(--font);color:var(--paper);box-sizing:border-box}.tt-signin-root *,.tt-signin-root *:before,.tt-signin-root *:after{box-sizing:border-box}.tt-signin-veil{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9998;background:radial-gradient(ellipse at center,#0b0a0f66,#0b0a0fe0 80%);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);pointer-events:auto}.tt-signin-scene{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:grid;place-items:center;padding:20px;pointer-events:none}.tt-signin-wrap{position:relative;width:min(440px,92vw);pointer-events:auto}.tt-signin-deco{position:absolute;width:54px;height:54px;border:1px solid rgba(255,255,255,.2);background:#ffffff12;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);pointer-events:none;z-index:2}.tt-signin-deco.tl{left:-22px;top:-22px;clip-path:polygon(0 0,100% 0,100% 100%,32% 100%,0 68%)}.tt-signin-deco.br{right:-22px;bottom:-22px;width:60px;height:60px;clip-path:polygon(0 32%,32% 0,100% 0,100% 100%,0 100%)}.tt-signin-close{position:absolute;top:14px;right:18px;width:32px;height:32px;border-radius:50%;border:1px solid rgba(255,255,255,.22);background:#ffffff14;color:var(--paper);font-size:15px;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;transition:background .15s,transform .1s}.tt-signin-close:hover{background:#fff3;transform:scale(1.05)}.tt-signin-close:active{transform:scale(.95)}.tt-signin-glass{--c1: 30px;--c2: 38px;position:relative;width:100%;padding:1px;background:linear-gradient(135deg,#fff6,#ffffff14 45%,#f2b70559);clip-path:polygon(var(--c1) 0,100% 0,100% calc(100% - var(--c2)),calc(100% - var(--c2)) 100%,0 100%,0 var(--c1));box-shadow:0 12px 40px #0009,0 0 35px #f2b70526;transition:height .5s cubic-bezier(.2,.8,.2,1),opacity .3s}.tt-signin-glass-in{position:relative;width:100%;height:100%;min-height:250px;background:#121118e0;backdrop-filter:blur(20px) saturate(1.2);-webkit-backdrop-filter:blur(20px) saturate(1.2);clip-path:polygon(calc(var(--c1) - 1px) 0,100% 0,100% calc(100% - var(--c2) + 1px),calc(100% - var(--c2) + 1px) 100%,0 100%,0 calc(var(--c1) - 1px));overflow:hidden}.tt-signin-step{position:absolute;left:0;right:0;top:0;padding:34px 32px 30px;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .26s,transform .26s,visibility 0s .26s;pointer-events:none}.tt-signin-step.on{opacity:1;visibility:visible;transform:none;transition:opacity .38s,transform .38s;pointer-events:auto}.tt-signin-step h2{margin:0 0 6px;font-size:28px;line-height:1.15;letter-spacing:-.02em;font-weight:700;color:var(--paper)}.tt-signin-step h2 span{color:var(--y)}.tt-signin-sub{margin:0 0 20px;color:var(--mut);font-size:14px;line-height:1.4}.tt-signin-label{display:block;margin:0 0 7px;font-size:12px;font-weight:500;color:#d8d3e0}.tt-signin-field{position:relative;margin-bottom:16px}.tt-signin-field svg{position:absolute;left:14px;top:50%;width:17px;height:17px;transform:translateY(-50%);stroke:#8d8798;fill:none;stroke-width:1.8;pointer-events:none}.tt-signin-field input{width:100%;height:46px;padding:0 14px 0 42px;font:inherit;font-size:15px;color:var(--paper);background:#ffffff0d;border:1px solid rgba(255,255,255,.16);border-radius:8px;outline:none;transition:border-color .2s,box-shadow .2s}.tt-signin-field input:focus{border-color:var(--y);box-shadow:0 0 0 3px #f2b70538}.tt-signin-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:48px;font:inherit;font-weight:700;font-size:15px;color:#111;border:0;border-radius:8px;cursor:pointer;background:linear-gradient(#ffe56a,#f2b705);box-shadow:0 0 24px #f2b70552,0 2px #0006;transition:transform .1s,filter .2s,box-shadow .2s}.tt-signin-btn:hover:not(:disabled){filter:brightness(1.06);box-shadow:0 0 30px #f2b70573,0 2px #0006}.tt-signin-btn:active:not(:disabled){transform:translateY(2px) scale(.99);box-shadow:0 0 14px #f2b7054d}.tt-signin-btn:disabled{opacity:.65;cursor:not-allowed;filter:grayscale(.2)}.tt-signin-or{margin:18px 0 12px;text-align:center;font-size:11px;letter-spacing:.14em;color:#7f7a8a;font-weight:600}.tt-signin-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.tt-signin-row.single{grid-template-columns:minmax(0,1fr)}.tt-signin-ghost{height:44px;font:inherit;font-size:14px;font-weight:500;color:var(--paper);background:#ffffff0d;border:1px solid rgba(255,255,255,.14);border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:background .2s,border-color .2s,transform .1s}.tt-signin-ghost:hover:not(:disabled){background:#ffffff1a;border-color:#ffffff47}.tt-signin-ghost:active:not(:disabled){transform:translateY(1px)}.tt-signin-ghost:disabled{opacity:.6;cursor:not-allowed}.tt-signin-foot{margin:18px 0 0;text-align:center;font-size:13px;color:var(--mut);line-height:1.4}.tt-signin-foot a{color:var(--y);cursor:pointer;text-decoration:none;font-weight:500}.tt-signin-foot a:hover{text-decoration:underline}.tt-signin-cooldown{color:var(--mut)}.tt-signin-code{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:4px 0 20px}.tt-signin-code input{width:100%;min-width:0;height:52px;text-align:center;font:inherit;font-size:22px;font-weight:700;color:var(--paper);background:#ffffff0d;border:1px solid rgba(255,255,255,.16);border-radius:8px;outline:none;padding:0;transition:border-color .2s,transform .2s,background .2s}.tt-signin-code input:focus{border-color:var(--y);box-shadow:0 0 0 2px #f2b70533}.tt-signin-code input.fill{border-color:var(--y);background:#f2b7051a;transform:translateY(-2px)}.tt-signin-pill{display:inline-flex;align-items:center;gap:8px;margin:4px 0 20px;padding:9px 15px;font-family:ui-monospace,Consolas,monospace;font-size:14px;color:#111;background:#c8f2dc;border:2px solid #111;border-radius:999px;box-shadow:3px 3px 0 var(--y);font-weight:600}.tt-signin-pill i{width:9px;height:9px;border-radius:50%;background:#06d6a0;border:2px solid #111;display:inline-block}.tt-signin-chip{position:absolute;left:50%;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;opacity:0;transform:scale(.6);transition:opacity .3s,transform .3s;pointer-events:none;z-index:6}.tt-signin-chip.on{opacity:1;transform:scale(1)}.tt-signin-chip:before{content:"";position:absolute;top:-26px;right:-26px;bottom:-26px;left:-26px;border-radius:50%;background:radial-gradient(circle,rgba(242,183,5,.55),transparent 65%);animation:signin-glow 1.1s ease-in-out infinite}.tt-signin-chip i{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:16px;border:1.5px solid rgba(255,255,255,.45);background:linear-gradient(135deg,#ffffff29,#ffffff05);display:block}.tt-signin-chip i:after{content:"";position:absolute;left:9px;right:9px;top:50%;height:1.5px;background:#fff9;transform:rotate(-45deg)}@keyframes signin-glow{0%,to{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1.1)}}.tt-signin-error{margin:0 0 14px;padding:8px 12px;font-size:13px;line-height:1.35;color:#ffb4b4;background:#e6323224;border:1px solid rgba(230,50,50,.35);border-radius:6px;text-align:left}.tt-signin-fallback{margin-top:12px;text-align:center}.tt-signin-fallback button{background:none;border:none;color:#a39eae;font-size:12px;text-decoration:underline;cursor:pointer;padding:4px}.tt-signin-fallback button:hover{color:var(--paper)}@media(max-width:420px){.tt-signin-step{padding:28px 20px 24px}.tt-signin-code{gap:5px;margin:4px 0 18px}.tt-signin-code input{height:46px;font-size:19px}.tt-signin-step h2{font-size:24px}}@media(prefers-reduced-motion:reduce){.tt-signin-root *{transition-duration:.01s!important;animation-duration:.01s!important}.tt-signin-chip:before{animation:none!important}}.landing-page{--ink: #0e0c12;--paper: #f4efe6;--muted: #a9a3b3;--wheat: #f2b705;--ore: #9aa7b4;--tools: #e8782a;--potions: #a35cff;--cloth: #2fbf86;--font: "Space Grotesk", system-ui, sans-serif;background:var(--ink);color:var(--paper);font-family:var(--font);line-height:1.5;min-height:100vh;min-height:100svh;position:relative;overflow-x:hidden}.landing-hero{position:relative;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;touch-action:pan-y}#landing-rings{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.landing-hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(to top,#0e0c12f0,#0e0c128c 38%,#0e0c1200 65%)}.landing-bar{position:absolute;top:0;left:0;right:0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:max(20px,env(safe-area-inset-top)) clamp(20px,5vw,56px) 0}.landing-bar-title{font-weight:700;letter-spacing:-.01em;font-size:1.2rem;color:var(--paper)}.landing-bar-actions{display:flex;align-items:center;gap:16px}.landing-bar a{color:var(--paper);text-decoration:none;opacity:.85;font-size:.95rem;font-weight:600;transition:opacity .15s}.landing-bar a:hover{opacity:1}.landing-bar .near-pill{border:2px solid #000;box-shadow:3px 3px 0 var(--paper)}.landing-bar .near-signin-btn{background:var(--paper);color:#000;border:2px solid #000;box-shadow:3px 3px 0 var(--paper)}.landing-bar .near-signin-btn:hover{box-shadow:1px 1px 0 var(--paper);transform:translate(2px,2px)}.landing-bar .near-signin-btn:active{box-shadow:none;transform:translate(3px,3px)}.landing-copy{position:relative;z-index:5;padding:0 clamp(20px,5vw,56px) 28px}.landing-copy h1{margin:0 0 18px;font-weight:700;font-size:clamp(2.3rem,6.8vw,5.8rem);line-height:1.02;letter-spacing:-.035em;max-width:12em;color:var(--paper)}.landing-copy p{margin:0 0 28px;max-width:34em;color:var(--muted);font-size:clamp(1rem,1.5vw,1.2rem);line-height:1.45}button.landing-enter{font-family:inherit;font-weight:700;font-size:1.05rem;cursor:pointer;color:#111;background:var(--wheat);border:3px solid #111;padding:.85em 1.6em;box-shadow:5px 5px 0 var(--paper);transition:transform .08s,box-shadow .08s;display:inline-block;border-radius:2px}button.landing-enter:hover{transform:translate(-1px,-1px);box-shadow:6px 6px 0 var(--paper)}button.landing-enter:active{transform:translate(4px,4px);box-shadow:1px 1px 0 var(--paper)}button.landing-enter:focus-visible{outline:3px solid var(--paper);outline-offset:3px}.landing-ticker{position:relative;z-index:5;display:flex;gap:clamp(14px,3vw,36px);flex-wrap:wrap;padding:14px clamp(20px,5vw,56px) max(14px,env(safe-area-inset-bottom));border-top:1px solid rgba(244,239,230,.2);font-size:.9rem;font-variant-numeric:tabular-nums;background:#0e0c12d9}.landing-tk{display:flex;align-items:center;gap:8px;white-space:nowrap}.landing-tk i{width:10px;height:10px;border-radius:50%;background:var(--c);display:inline-block}.landing-tk em{font-style:normal;color:var(--muted)}.landing-up{color:var(--cloth);font-weight:700}.landing-down{color:var(--tools);font-weight:700}.landing-flat{color:var(--muted)}.landing-how{padding:14vh clamp(20px,5vw,56px) 10vh;background:var(--ink);position:relative;z-index:2}.landing-how h2{margin:0 0 6vh;font-weight:600;font-size:clamp(1.2rem,2vw,1.5rem);color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.landing-row{display:grid;grid-template-columns:1fr;gap:8px;padding:28px 0 28px 22px;border-left:6px solid var(--c);margin-bottom:22px}.landing-row strong{font-weight:700;font-size:clamp(1.5rem,3.4vw,2.6rem);letter-spacing:-.02em;line-height:1.15;color:var(--paper)}.landing-row span{color:var(--muted);max-width:36em;font-size:1.05rem;line-height:1.5}@media(min-width:860px){.landing-row{grid-template-columns:1.2fr 1fr;gap:48px;align-items:end}}.landing-footer{padding:0 clamp(20px,5vw,56px) 40px;color:var(--muted);font-size:.9rem;background:var(--ink)}@media(prefers-reduced-motion:reduce){.landing-page{scroll-behavior:auto}button.landing-enter{transition:none}}
