*,::before,::after{box-sizing:border-box;padding:0;margin:0}
:root{--bg:#0a0a0f;--bg-card:#13131a;--bg-card-2:#1c1c27;--bg-sticky:#0a0a0feb;--border:#ffffff12;--border-hover:#ffffff2e;--text-primary:#f0f0f8;--text-secondary:#d4d4fa;--text-muted:#b2b2fc;--accent:#00e5ff;--accent-glow:#00e5ff2e;--accent-dark:#00b8cc;--buy-bg:#0d3d2e;--buy-color:#3dff9a;--buy-hover:#0a4d38;--sell-bg:#3d0d1a;--sell-color:#ff5c7a;--sell-hover:#4d0a20;--badge-bg:#00e5ff1f;--shadow:0 8px 32px #0009;--shadow-card:0 2px 16px #00000080;--timer-bg:#1c1c27;--modal-bg:#13131a;--receipt-bg:#0f0f1a;--scrollbar:#2a2a40;--gradient-header:linear-gradient(135deg,#0a0a0f 0%,#0d0d1a 50%,#0a0f1a 100%);--btn-start:linear-gradient(135deg,#00e5ff,#00b8cc);--btn-start-text:#0a0a0f;--btn-clear:#1c1c27;--btn-clear-hover:#252535}
[data-theme="light"]{--bg:#f4f4f8;--bg-card:#fff;--bg-card-2:#f0f0f8;--bg-sticky:#f4f4f8f2;--border:#00000014;--border-hover:#0000002e;--text-primary:#0d0d1a;--text-secondary:#2e2e41;--text-muted:#555566;--accent:#07c;--accent-glow:#0077cc1f;--accent-dark:#005fa3;--buy-bg:#e6faf0;--buy-color:#0a7a3c;--buy-hover:#d0f0e0;--sell-bg:#fde8ed;--sell-color:#c0002e;--sell-hover:#fad0da;--badge-bg:#0077cc1a;--shadow:0 8px 32px #0000001f;--shadow-card:0 2px 12px #00000014;--timer-bg:#e8e8f4;--modal-bg:#fff;--receipt-bg:#f8f8fc;--scrollbar:#ccd;--gradient-header:linear-gradient(135deg,#e8e8f8 0%,#f0f0ff 50%,#e8f0ff 100%);--btn-start:linear-gradient(135deg,#07c,#005fa3);--btn-start-text:#fff;--btn-clear:#e8e8f4;--btn-clear-hover:#d8d8ec}
html{font-size:62.5%;scroll-behavior:smooth}
body{font-family:'DM Sans',sans-serif;background-color:var(--bg);color:var(--text-primary);min-height:100vh;transition:background-color 0.3s,color .3s;overflow-x:hidden}
::-webkit-scrollbar{width:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--scrollbar);border-radius:3px}
.theme-toggle{position:fixed;top:1.5rem;right:1.5rem;z-index:9999;background:var(--bg-card-2);border:1px solid var(--border);color:var(--text-secondary);width:4.4rem;height:4.4rem;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.8rem;transition:all .2s;box-shadow:var(--shadow-card)}
.theme-toggle:hover{border-color:var(--border-hover);color:var(--text-primary);transform:scale(1.08)}
header{background:var(--gradient-header);padding:5rem 2rem 4rem;text-align:center;position:relative;border-bottom:1px solid var(--border);overflow:hidden}
header::before{content:'';position:absolute;top:-80px;left:50%;transform:translateX(-50%);width:600px;height:600px;background:radial-gradient(circle,var(--accent-glow) 0%,transparent 65%);pointer-events:none}
.header-inner{max-width:700px;margin:0 auto;position:relative;z-index:1}
.header-avatar{width:10rem;height:10rem;border-radius:50%;border:2px solid var(--accent);box-shadow:0 0 24px var(--accent-glow),0 4px 16px #0006;margin-bottom:2rem;object-fit:cover;display:block;margin-left:auto;margin-right:auto}
header h1{font-family:'Syne',sans-serif;font-size:clamp(2.6rem,5vw,4.4rem);font-weight:800;line-height:1.1;letter-spacing:-.02em;margin-bottom:1.2rem;color:var(--text-primary)}
.header-fortune{font-size:clamp(1.4rem,2.5vw,1.8rem);color:var(--text-secondary);line-height:1.6;max-width:520px;margin:0 auto}
.header-fortune strong{color:var(--accent);font-weight:500}
.timer-panel{background:var(--bg-card);border-bottom:1px solid var(--border);padding:1.8rem 2rem;display:flex;align-items:center;justify-content:center;gap:2rem;flex-wrap:wrap}
.timer-label{font-size:1.3rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-weight:500}
.timer-controls{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;justify-content:center}
.timer-input-wrap{display:flex;align-items:center;gap:.8rem;background:var(--timer-bg);border:1px solid var(--border);border-radius:10px;padding:.6rem 1.2rem}
.timer-input-wrap span{font-size:1.3rem;color:var(--text-muted)}
#timeInput{background:transparent;border:none;outline:none;width:4.5rem;font-size:1.7rem;font-family:'DM Sans',sans-serif;font-weight:500;color:var(--text-primary);text-align:center}
#timeInput::-webkit-inner-spin-button,#timeInput::-webkit-outer-spin-button{-webkit-appearance:none}
.btn-start{background:var(--btn-start);color:var(--btn-start-text);border:none;border-radius:10px;padding:1rem 2.2rem;font-family:'DM Sans',sans-serif;font-size:1.5rem;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}
.btn-start:hover:not(:disabled){opacity:.88;transform:translateY(-1px)}
.btn-start:disabled{opacity:.45;cursor:not-allowed;transform:none}
.btn-clear{background:var(--btn-clear);color:var(--text-secondary);border:1px solid var(--border);border-radius:10px;padding:1rem 2rem;font-family:'DM Sans',sans-serif;font-size:1.5rem;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}
.btn-clear:hover{background:var(--btn-clear-hover);color:var(--text-primary)}
#timerDisplay{font-family:'Syne',sans-serif;font-size:2.6rem;font-weight:700;color:var(--accent);min-width:6rem;text-align:center;letter-spacing:.03em}
.scoreboard{position:sticky;top:0;z-index:100;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);background:var(--bg-sticky);border-bottom:1px solid var(--border);padding:1.2rem 2rem;display:flex;align-items:center;justify-content:center;gap:3rem;flex-wrap:wrap;box-shadow:0 4px 20px #0000004d}
.score-item{display:flex;flex-direction:column;align-items:center;gap:.2rem}
.score-label{font-size:1.1rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-weight:500}
.score-value{font-family:'Syne',sans-serif;font-size:clamp(1.8rem,3vw,2.4rem);font-weight:700;color:var(--text-primary);white-space:nowrap}
.score-value.remaining{color:var(--accent)}
.score-value.spent{color:var(--sell-color)}
.score-divider{width:1px;height:3.2rem;background:var(--border)}
.items-section{max-width:1400px;margin:0 auto;padding:3rem 2rem 2rem}
.section-title{font-family:'Syne',sans-serif;font-size:1.3rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.12em;margin-bottom:2.4rem}
.items-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:2rem}
.item-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;transition:border-color 0.2s,box-shadow 0.2s,transform .2s;box-shadow:var(--shadow-card)}
.item-card:hover{border-color:var(--border-hover);box-shadow:0 8px 32px #00000059;transform:translateY(-2px)}
.item-card.has-items{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 8px 32px var(--accent-glow)}
.item-img-wrap{position:relative;overflow:hidden;aspect-ratio:1 / 1;background:var(--bg-card-2)}
.item-img-wrap img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}
.item-card:hover .item-img-wrap img{transform:scale(1.04)}
.item-amount-badge{position:absolute;top:1rem;right:1rem;background:var(--accent);color:#0a0a0f;font-family:'Syne',sans-serif;font-weight:700;font-size:1.4rem;width:3.2rem;height:3.2rem;border-radius:50%;display:flex;align-items:center;justify-content:center;opacity:0;transform:scale(0.6);transition:opacity 0.2s,transform .2s}
.item-card.has-items .item-amount-badge{opacity:1;transform:scale(1)}
.item-body{padding:1.4rem 1.6rem;flex:1;display:flex;flex-direction:column;gap:.6rem}
.item-name{font-size:1.5rem;font-weight:500;color:var(--text-primary);line-height:1.3}
.item-price{font-size:1.3rem;color:var(--text-muted);font-weight:400}
.item-price strong{color:var(--text-secondary);font-weight:500}
.item-actions{display:flex;align-items:center;gap:1rem;margin-top:.8rem}
.btn-buy,.btn-sell{flex:1;padding:1rem 0;border:none;border-radius:10px;font-family:'DM Sans',sans-serif;font-size:1.4rem;font-weight:500;cursor:pointer;transition:all .18s;letter-spacing:.01em}
.btn-buy{background:var(--buy-bg);color:var(--buy-color)}
.btn-buy:hover:not(:disabled){background:var(--buy-hover);transform:translateY(-1px)}
.btn-sell{background:var(--sell-bg);color:var(--sell-color)}
.btn-sell:hover:not(:disabled){background:var(--sell-hover);transform:translateY(-1px)}
.btn-sell:disabled,.btn-buy:disabled{opacity:.35;cursor:not-allowed;transform:none}
.item-count{font-family:'Syne',sans-serif;font-size:1.8rem;font-weight:700;color:var(--text-secondary);min-width:2.4rem;text-align:center}
.toast{position:fixed;bottom:3rem;left:50%;transform:translateX(-50%) translateY(10px);background:var(--sell-bg);color:var(--sell-color);border:1px solid var(--sell-color);padding:1.2rem 2.4rem;border-radius:40px;font-size:1.5rem;font-weight:500;opacity:0;transition:opacity 0.3s,transform .3s;pointer-events:none;z-index:9000;white-space:nowrap}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.receipt-section{max-width:800px;margin:4rem auto 0;padding:0 2rem}
.receipt-box{background:var(--receipt-bg);border:1px solid var(--border);border-radius:16px;overflow:hidden}
.receipt-header{padding:1.8rem 2.4rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.receipt-title{font-family:'Syne',sans-serif;font-size:1.8rem;font-weight:700;color:var(--text-primary)}
.receipt-body{padding:1.6rem 2.4rem;min-height:6rem}
.receipt-empty{color:var(--text-muted);font-size:1.4rem;text-align:center;padding:2rem 0}
.receipt-row{display:flex;justify-content:space-between;align-items:center;padding:.9rem 0;border-bottom:1px solid var(--border);font-size:1.4rem;gap:1rem}
.receipt-row:last-child{border-bottom:none}
.receipt-row-name{color:var(--text-secondary);flex:1}
.receipt-row-qty{color:var(--text-muted);font-size:1.2rem;padding:.2rem .8rem;background:var(--badge-bg);border-radius:20px;white-space:nowrap}
.receipt-row-price{color:var(--text-primary);font-weight:500;white-space:nowrap}
.receipt-total-row{display:flex;justify-content:space-between;align-items:center;padding:1.6rem 2.4rem;border-top:1px solid var(--border);background:var(--bg-card)}
.receipt-total-label{font-family:'Syne',sans-serif;font-size:1.6rem;font-weight:700;color:var(--text-secondary)}
.receipt-total-value{font-family:'Syne',sans-serif;font-size:2rem;font-weight:700;color:var(--sell-color)}
.print-wrap{text-align:center;padding:2rem;max-width:800px;margin:0 auto}
.btn-print{background:var(--bg-card-2);color:var(--text-secondary);border:1px solid var(--border);border-radius:10px;padding:1.1rem 2.8rem;font-family:'DM Sans',sans-serif;font-size:1.4rem;font-weight:500;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:.8rem}
.btn-print:hover{border-color:var(--border-hover);color:var(--text-primary);background:var(--bg-card)}
footer{margin-top:6rem;border-top:1px solid var(--border);padding:3rem 2rem;text-align:center}
.footer-desc{font-size:1.4rem;color:var(--text-secondary);max-width:680px;margin:0 auto 1.6rem;line-height:1.7}
.footer-disclaimer{font-size:1.2rem;color:var(--text-muted);max-width:600px;margin:0 auto 1.6rem;line-height:1.6;padding:1.2rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-card)}
.footer-links{font-size:1.3rem}
.footer-links a{color:var(--text-muted);text-decoration:none;transition:color .2s;margin:0 .8rem}
.footer-links a:hover{color:var(--accent)}
.faq-section{max-width:720px;margin:5rem auto 0;padding:0 2rem}
.faq-section h2{font-family:'Syne',sans-serif;font-size:2.2rem;font-weight:700;color:var(--text-primary);margin-bottom:2rem}
.faq-item{border:1px solid var(--border);border-radius:12px;margin-bottom:1rem;overflow:hidden;background:var(--bg-card)}
.faq-question{width:100%;background:none;border:none;text-align:left;padding:1.6rem 2rem;font-family:'DM Sans',sans-serif;font-size:1.5rem;font-weight:500;color:var(--text-primary);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;transition:background .2s}
.faq-question:hover{background:var(--bg-card-2)}
.faq-question .faq-icon{color:var(--text-muted);font-size:1.8rem;transition:transform .3s;flex-shrink:0}
.faq-item.open .faq-icon{transform:rotate(45deg)}
.faq-answer{max-height:0;overflow:hidden;transition:max-height .35s ease,padding .3s;padding:0 2rem;font-size:1.4rem;color:var(--text-secondary);line-height:1.7}
.faq-item.open .faq-answer{max-height:200px;padding:0 2rem 1.6rem}
.modal-overlay{display:none;position:fixed;inset:0;z-index:10000;background:#000000b3;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);align-items:center;justify-content:center;padding:2rem}
.modal-overlay.active{display:flex}
.modal-box{background:var(--modal-bg);border:1px solid var(--border);border-radius:20px;padding:3.2rem 3rem;max-width:440px;width:100%;text-align:center;box-shadow:0 24px 60px #0009;animation:modal-in .3s cubic-bezier(0.34,1.56,0.64,1)}
@keyframes modal-in {
from{opacity:0;transform:scale(0.88) translateY(20px)}
to{opacity:1;transform:scale(1) translateY(0)}
}
.modal-emoji{font-size:4rem;margin-bottom:1.2rem}
.modal-box h2{font-family:'Syne',sans-serif;font-size:2.4rem;font-weight:800;color:var(--text-primary);margin-bottom:.8rem}
.modal-box p{font-size:1.5rem;color:var(--text-secondary);margin-bottom:2.4rem}
.modal-spent{font-size:2.2rem;font-family:'Syne',sans-serif;font-weight:700;color:var(--sell-color);display:block;margin-bottom:2rem}
.modal-actions{display:flex;gap:1.2rem;justify-content:center;flex-wrap:wrap}
.btn-play-again{background:var(--btn-start);color:var(--btn-start-text);border:none;border-radius:12px;padding:1.2rem 2.8rem;font-family:'DM Sans',sans-serif;font-size:1.5rem;font-weight:500;cursor:pointer;transition:opacity 0.2s,transform .2s}
.btn-play-again:hover{opacity:.88;transform:translateY(-1px)}
.btn-modal-close{background:var(--btn-clear);color:var(--text-secondary);border:1px solid var(--border);border-radius:12px;padding:1.2rem 2.4rem;font-family:'DM Sans',sans-serif;font-size:1.5rem;font-weight:500;cursor:pointer;transition:background .2s}
.btn-modal-close:hover{background:var(--btn-clear-hover)}
@media (max-width: 640px) {
.theme-toggle{top:0.5rem;right:0.5rem;}
.items-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1.2rem}
.item-name{font-size:1.3rem}
.item-price{font-size:1.2rem}
.btn-buy,.btn-sell{font-size:1.3rem;padding:.9rem 0}
.item-count{font-size:1.6rem}
.scoreboard{gap:1.4rem;padding:1rem 1.6rem}
.score-value{font-size:1.8rem}
.score-divider{display:none}
.receipt-body{padding:1.2rem 1.6rem}
.receipt-header{padding:1.4rem 1.6rem}
.receipt-total-row{padding:1.2rem 1.6rem}
.receipt-row{font-size:1.2rem}
.timer-panel{gap:1.2rem;padding:1.4rem 1.6rem}
#timerDisplay{font-size:2.2rem}
.modal-box{padding:2.4rem 2rem}
.modal-box h2{font-size:2rem}
.modal-spent{font-size:1.8rem}
}
@media (max-width: 380px) {
.items-grid{grid-template-columns:1fr 1fr}
.item-actions{gap:.6rem}
}
@media print {
header,.timer-panel,.scoreboard,.items-section,.print-wrap,.faq-section,footer,.modal-overlay,.theme-toggle,.toast{display:none!important}
.receipt-section{display:block!important;margin:0;padding:0}
.receipt-box{border:none;box-shadow:none}
}