:root{--bg: #0b0908;--bg-2: #14100d;--bg-3: #1d1713;--line: #2c241e;--text: #e8e0d4;--text-dim: #9a8d7e;--text-faint: #5f564c;--fire: #e2581b;--fire-hi: #ff8a3d;--ember: #b85c1d;--ok: #7da87b;--rar-comune: #6f6358;--rar-rara: #6e93a8;--rar-epica: #9a6cb8;--rar-legg: #e07b28;--rar-mistica: #cfc6b5;--serif: Georgia, "Times New Roman", "Palatino Linotype", serif;--sans: system-ui, -apple-system, sans-serif}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--serif);font-size:17px;line-height:1.45;overscroll-behavior:none;-webkit-user-select:none;user-select:none}button{font-family:var(--serif);color:inherit;background:none;border:none;cursor:pointer}input{font-family:var(--serif)}.app{display:flex;flex-direction:column;height:100%}.screen{flex:1;overflow-y:auto;padding:14px 16px calc(86px + env(safe-area-inset-bottom))}.h-title{font-size:26px;letter-spacing:.04em;font-weight:400;margin:10px 0 2px}.h-sub{color:var(--text-dim);font-size:14.5px;font-style:italic;margin-bottom:16px}.section-label{font-family:var(--sans);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--text-faint);margin:22px 0 10px}.banner{min-height:44px;display:flex;align-items:center;justify-content:center;padding:8px 18px;padding-top:calc(8px + env(safe-area-inset-top));background:linear-gradient(180deg,#181210,#100c0a);border-bottom:1px solid var(--line);text-align:center;font-style:italic;font-size:14.5px;color:var(--text-dim)}.banner .flame{color:var(--fire);margin-right:8px;font-style:normal}.banner-text{animation:bannerIn .8s ease}@keyframes bannerIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1}}.nav{position:fixed;bottom:0;left:0;right:0;z-index:30;display:flex;border-top:1px solid var(--line);background:#0b0908f5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding-bottom:env(safe-area-inset-bottom)}.nav button{flex:1;padding:11px 0 9px;text-align:center;color:var(--text-faint);font-family:var(--sans);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase}.nav button .ico{display:block;font-size:19px;margin-bottom:3px;font-family:var(--serif)}.nav button.active{color:var(--fire-hi)}.geo-warn{border:1px solid var(--line);border-radius:10px;padding:14px 16px;color:var(--text-dim);font-size:15px;background:var(--bg-2);margin-bottom:14px}.point{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:12px;background:var(--bg-2);padding:14px 16px;margin-bottom:10px;width:100%;text-align:left}.point .dot{width:11px;height:11px;border-radius:50%;flex:none;background:var(--text-faint)}.point.available .dot{background:var(--fire);box-shadow:0 0 10px 2px #e2581b8c;animation:pulse 2.2s infinite}.point.testimony .dot{background:var(--rar-mistica);box-shadow:0 0 10px 2px #cfc6b573;animation:pulse 1.6s infinite}.point.altar .dot{background:var(--rar-legg);box-shadow:0 0 8px 2px #e07b2880}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.35)}}.point .p-name{font-size:17px}.point .p-state{font-size:13px;color:var(--text-dim);font-style:italic}.point .p-dist{margin-left:auto;font-family:var(--sans);font-size:13px;color:var(--text-dim);white-space:nowrap}.point.available .p-dist{color:var(--fire-hi)}.point.testimony{border-color:#4a443a}.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.card{position:relative;border-radius:10px;overflow:hidden;aspect-ratio:10 / 14;border:1.5px solid var(--rar-comune);background:var(--bg-3);width:100%}.card.r-rara{border-color:var(--rar-rara)}.card.r-epica{border-color:var(--rar-epica)}.card.r-leggendaria{border-color:var(--rar-legg);box-shadow:0 0 12px #e07b2840}.card.r-mistica{border-color:var(--rar-mistica);box-shadow:0 0 12px #cfc6b54d}.card.locked{opacity:.32;filter:grayscale(.8)}.card svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.card .c-name{position:absolute;left:0;right:0;bottom:0;padding:18px 8px 7px;font-size:12.5px;line-height:1.2;text-align:center;background:linear-gradient(180deg,transparent,rgba(5,4,3,.92) 55%)}.card .c-qty{position:absolute;top:6px;right:6px;z-index:2;font-family:var(--sans);font-size:11px;font-weight:600;background:#050403d9;border:1px solid var(--line);border-radius:20px;padding:2px 7px}.card .c-mark{position:absolute;top:6px;left:6px;z-index:2;color:var(--fire-hi);font-size:14px;text-shadow:0 0 6px rgba(226,88,27,.8)}.card.selected{outline:2.5px solid var(--fire-hi);outline-offset:2px}.card-detail{display:flex;flex-direction:column;align-items:center;gap:14px;padding:8px 0}.card-detail .card{width:min(64vw,250px)}.card-detail .verso{font-style:italic;color:var(--text-dim);text-align:center;padding:0 18px}.rarity-tag{font-family:var(--sans);font-size:11px;letter-spacing:.2em;text-transform:uppercase}.btn{display:block;width:100%;text-align:center;border:1px solid var(--line);border-radius:12px;background:var(--bg-3);color:var(--text);font-size:17px;letter-spacing:.06em;padding:15px}.btn:disabled{opacity:.38}.btn-fire{background:linear-gradient(180deg,#c4581f,#9a3c11);border-color:#d96a28;color:#fff7ef;text-shadow:0 1px 2px rgba(60,20,0,.5)}.btn-ghost{background:none;border-color:var(--line);color:var(--text-dim)}.btn-row{display:flex;gap:10px}.btn-row .btn{flex:1}.sheet-back{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#040302c7;display:flex;align-items:flex-end;animation:fadeIn .2s ease}.sheet{background:var(--bg-2);border-top:1px solid var(--line);border-radius:18px 18px 0 0;width:100%;max-height:88vh;overflow-y:auto;padding:18px 18px calc(24px + env(safe-area-inset-bottom));animation:sheetUp .28s cubic-bezier(.2,.9,.3,1)}.sheet .grip{width:38px;height:4px;border-radius:4px;background:var(--line);margin:0 auto 16px}@keyframes sheetUp{0%{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#040302d9;display:flex;align-items:center;justify-content:center;padding:26px;animation:fadeIn .2s ease}.modal{background:var(--bg-2);border:1px solid var(--line);border-radius:16px;padding:24px 20px;width:100%;max-width:380px;text-align:center}.modal h3{font-weight:400;font-size:21px;margin-bottom:10px}.modal p{color:var(--text-dim);font-size:15px;margin-bottom:18px}.reveal-grid{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;padding:10px 0}.reveal-grid .card{width:30%;animation:cardReveal .7s ease backwards}.reveal-grid .card:nth-child(2){animation-delay:.15s}.reveal-grid .card:nth-child(3){animation-delay:.3s}.reveal-grid .card:nth-child(4){animation-delay:.45s}.reveal-grid .card:nth-child(5){animation-delay:.6s}@keyframes cardReveal{0%{transform:translateY(18px) scale(.92);opacity:0;filter:brightness(2.2)}to{transform:none;opacity:1;filter:none}}.trade-code{font-family:var(--sans);font-size:64px;font-weight:200;letter-spacing:.18em;text-align:center;color:var(--fire-hi);margin:18px 0 6px;text-shadow:0 0 24px rgba(226,88,27,.4)}.code-input{display:block;width:100%;text-align:center;font-family:var(--sans);font-size:42px;letter-spacing:.3em;font-weight:200;background:var(--bg-3);border:1px solid var(--line);border-radius:12px;color:var(--text);padding:14px 0 14px .3em;outline:none}.code-input:focus{border-color:var(--ember)}.countdown{font-family:var(--sans);font-size:14px;color:var(--text-dim);text-align:center}.countdown.warn{color:var(--fire-hi)}.fire-gauge{height:10px;border-radius:6px;background:var(--bg-3);border:1px solid var(--line);overflow:hidden}.fire-gauge>div{height:100%;border-radius:6px;background:linear-gradient(90deg,#7a3210,var(--fire),var(--fire-hi));box-shadow:0 0 10px #e2581b80;transition:width .8s ease}.tier-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}.tier-row .t-flame{font-size:20px;opacity:.25}.tier-row.reached .t-flame{opacity:1;text-shadow:0 0 10px rgba(226,88,27,.7)}.tier-row .t-info{flex:1}.tier-row .t-req{font-family:var(--sans);font-size:12px;color:var(--text-faint)}.panel{border:1px solid var(--line);border-radius:12px;background:var(--bg-2);padding:16px;margin-bottom:12px}.panel h4{font-weight:400;font-size:18px;margin-bottom:4px}.panel .dim{color:var(--text-dim);font-size:14px}.monument-name{font-size:19px;padding:8px 0;border-bottom:1px solid var(--line);text-align:center;letter-spacing:.05em}.onboard{height:100%;display:flex;flex-direction:column;justify-content:center;padding:32px 28px calc(32px + env(safe-area-inset-bottom));text-align:center;gap:14px}.onboard .logo{font-size:34px;letter-spacing:.06em}.onboard .motto{color:var(--text-dim);font-style:italic;margin-bottom:20px}.nick-box{font-size:24px;padding:18px 10px;border:1px solid var(--line);border-radius:12px;background:var(--bg-2);letter-spacing:.04em}.nick-input{width:100%;text-align:center;font-size:22px;padding:16px 10px;background:var(--bg-2);border:1px solid var(--line);border-radius:12px;color:var(--text);outline:none}.toasts{position:fixed;top:calc(54px + env(safe-area-inset-top));left:0;right:0;z-index:80;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}.toast{background:#140e0bf5;border:1px solid var(--line);border-radius:10px;padding:10px 18px;font-size:14.5px;max-width:86vw;text-align:center;animation:toastIn .25s ease}.toast-error{border-color:#7a2e10;color:#f0b9a0}@keyframes toastIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1}}.qty-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 2px;border-bottom:1px solid var(--line)}.qty-bar .q-name{flex:1;font-size:15.5px}.qty-ctl{display:flex;align-items:center;gap:14px;font-family:var(--sans)}.qty-ctl button{width:34px;height:34px;border:1px solid var(--line);border-radius:9px;background:var(--bg-3);font-size:18px;line-height:1}.qty-ctl .q-n{min-width:22px;text-align:center;font-size:15px}.empty{text-align:center;color:var(--text-faint);font-style:italic;padding:40px 20px}.center{text-align:center}.mt{margin-top:16px}.spin{display:inline-block;animation:spin 1.2s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.sigil-code{font-family:var(--sans);font-size:14.5px;letter-spacing:.04em;text-align:center;border:1px dashed var(--line);border-radius:8px;padding:12px 8px;margin:12px 0;word-break:break-all;user-select:all;-webkit-user-select:all;color:var(--text)}
