:root{--bg:#0f1a2b;--bg-2:#16243a;--paper:#f7f0dd;--paper-2:#efe4c8;--ink:#1d1a14;--muted:#6b655a;--orange:#ff7a00;--orange-2:#e66b00;--burgundy:#6b1f2a;--green:#2e9e5b;--red:#d0342c;--yellow:#f2c330;--blue:#1e4ea1;--radius:14px;--shadow:0 10px 30px #00000059;color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(1200px 600px at 20% -10%, #1f3556 0%, transparent 60%), radial-gradient(900px 500px at 110% 110%, #4a1a26 0%, transparent 60%), var(--bg);min-height:100vh;color:var(--paper);margin:0;padding:16px}#app{max-width:760px;margin:0 auto}.hidden{display:none!important}.hud{background:#ffffff0f;border:1px solid #ffffff1a;border-radius:999px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;padding:8px 16px;font-size:14px;display:flex}.hud-stage{color:var(--orange);font-weight:700}.hud-stat b{color:#fff}.panel{background:var(--paper);color:var(--ink);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px;animation:.35s ease-out rise}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}h1{letter-spacing:-1px;color:var(--burgundy);margin:0;font-size:44px}h2{margin:0 0 10px;font-size:24px}h3{margin:10px 0}.subtitle{color:var(--orange-2);margin:0 0 12px;font-size:22px;font-weight:800}.lead{font-size:17px;line-height:1.5}.muted{color:var(--muted)}.small{font-size:13px}.title-panel{text-align:center}.title-art{margin-bottom:8px;font-size:44px}.stage-list{text-align:left;margin:8px auto 16px;padding-left:20px;line-height:1.8;display:table}.title-panel .btn.big{margin:8px auto 0;display:block}.btn{font:inherit;border:2px solid var(--ink);color:var(--ink);cursor:pointer;box-shadow:0 3px 0 var(--ink);background:#fff;border-radius:10px;padding:10px 16px;font-weight:700;transition:transform 80ms,box-shadow 80ms}.btn:hover{transform:translateY(-1px)}.btn:active{box-shadow:0 1px 0 var(--ink);transform:translateY(2px)}.btn.primary{background:var(--orange);color:#fff;border-color:var(--orange-2);box-shadow:0 3px 0 var(--orange-2)}.btn.good{background:var(--green);color:#fff;border-color:#1f7a44;box-shadow:0 3px #1f7a44}.btn.danger{background:var(--red);color:#fff;border-color:#9a241e;box-shadow:0 3px #9a241e}.btn.big{margin-top:8px;padding:14px 24px;font-size:20px}.btn.option{text-align:left;background:#fff;width:100%;margin:8px 0;display:block}.btn.option:hover{background:#fff5e8}.btn-row{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:16px;display:flex}.status-row{justify-content:space-between;gap:12px;margin:10px 0;font-size:15px;display:flex}.cal-grid{grid-template-columns:repeat(6,1fr);gap:8px;margin-top:8px;display:grid}@media (width<=480px){.cal-grid{grid-template-columns:repeat(5,1fr)}}.cal-cell{font:inherit;background:var(--paper-2);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;border:2px solid #cfc4a6;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:62px;padding:8px 4px;transition:background .1s;display:flex}.cal-date{font-size:14px;font-weight:800}.cal-label{color:var(--muted);font-size:11px}.cal-cell.slot{border-color:var(--green);background:#c8f2d6;animation:.5s infinite alternate pulse}.cal-cell.slot .cal-label{color:#1f7a44;font-weight:800}.cal-cell.decoy{border-color:var(--yellow);background:#fff0b3}.cal-cell.decoy .cal-label{color:#8a6d00;font-weight:800}.cal-cell.taken{border-color:var(--red);background:#f8c9c6}.cal-cell.mine{background:var(--orange);border-color:var(--orange-2);color:#fff}.cal-cell.mine .cal-label{color:#fff;font-weight:800}@keyframes pulse{0%{transform:scale(1)}to{transform:scale(1.06)}}.txt-slot{color:#1f7a44}.txt-decoy{color:#8a6d00}.timer-track{background:#d9cfb3;border-radius:99px;height:8px;margin-bottom:14px;overflow:hidden}.timer-bar{background:var(--orange);width:100%;height:100%}.card-holder{place-items:center;min-height:220px;display:grid}.doc-card{border:2px solid var(--ink);border-radius:var(--radius);text-align:center;width:100%;max-width:420px;box-shadow:6px 6px 0 var(--burgundy);background:#fff;padding:22px;transition:transform .5s,opacity .5s}.doc-card.pop{animation:.25s ease-out pop}@keyframes pop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.doc-card.swipe-right{opacity:0;transform:translate(140%)rotate(12deg)}.doc-card.swipe-left{opacity:0;transform:translate(-140%)rotate(-12deg)}.doc-emoji{margin-bottom:10px;font-size:64px;line-height:1}.doc-title{margin-bottom:6px;font-size:20px;font-weight:800}.doc-desc{color:var(--muted)}.officer{flex-direction:column;align-items:center;margin:8px 0 16px;display:flex}.officer-face{font-size:72px;line-height:1;transition:transform .2s}.officer-name{margin-top:6px;font-weight:800}.q-box{border-radius:var(--radius);background:#fff;border:2px dashed #cfc4a6;padding:16px}.question{font-size:20px}.reaction{background:#f1ede2;border-radius:10px;margin-bottom:8px;padding:14px;font-size:20px;font-weight:700}.reaction.good{color:#1f7a44;background:#dff5e6}.reaction.bad{color:#9a241e;background:#fbe0de}.meter{background:#d9cfb3;border-radius:99px;height:14px;margin:4px 0 14px;overflow:hidden}.meter-fill{height:100%;transition:width .4s}.meter-fill.anx{background:var(--orange)}.meter-fill.anx.hot{background:var(--red);animation:.4s infinite alternate pulse}.tracker{background:#fff;border:2px solid #cfc4a6;border-radius:10px;margin-bottom:12px;overflow:hidden}.tracker-head{background:var(--blue);color:#fff;letter-spacing:.5px;padding:6px 10px;font-size:12px;font-weight:700}.tracker-status{padding:14px 12px;font-family:Courier New,monospace;font-weight:700}.actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.actions .btn.option{margin:0}@media (width<=480px){.actions{grid-template-columns:1fr}}.wait-log{margin-top:14px;font-size:14px;line-height:1.6}.log-line:first-child{font-weight:700}.stamp{letter-spacing:3px;opacity:.9;border:5px double;border-radius:8px;flex-direction:column;align-items:center;margin:10px 0;padding:10px 20px;font-family:Courier New,monospace;font-size:34px;font-weight:900;animation:.5s cubic-bezier(.2,1.4,.4,1) both stamp;display:inline-flex;transform:rotate(-8deg)}.stamp small{letter-spacing:2px;font-size:12px}.stamp.green{color:var(--green)}.stamp.red{color:var(--red)}@keyframes stamp{0%{opacity:0;transform:rotate(-8deg)scale(2.5)}to{opacity:.9;transform:rotate(-8deg)scale(1)}}.passport{background:var(--burgundy);color:#f2d9a0;border-radius:var(--radius);text-align:center;padding:24px}.passport .stamp.green{background:#ffffffeb}.result-line{margin:10px 0 0;font-size:18px;font-weight:700}.refusal{background:#fff;border:1px solid #bbb;padding:20px;font-family:Georgia,Times New Roman,serif}.refusal-head{text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin-top:6px;font-size:12px;font-weight:700}.reasons{margin:8px 0;padding:0;list-style:none}.reasons li{border-bottom:1px dotted #ccc;padding:6px 0;line-height:1.4}.tick{font-family:monospace;font-weight:900}.details{margin-top:16px}.details summary{cursor:pointer;font-weight:700}.breakdown{border-collapse:collapse;width:100%;margin-top:8px;font-size:15px}.breakdown td{border-bottom:1px solid #d9cfb3;padding:6px 4px}.breakdown .num{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}.breakdown .total td{border-top:2px solid var(--ink);font-weight:900}.overlay{z-index:10;background:#0a0f19bf;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.overlay .panel{width:100%;max-width:520px}.toast{background:var(--ink);color:#fff;opacity:0;pointer-events:none;text-align:center;z-index:20;border-radius:10px;max-width:90vw;padding:10px 16px;font-weight:700;transition:opacity .2s,transform .2s;position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px)}.toast.show{opacity:1;transform:translate(-50%)}.toast.good{background:var(--green)}.toast.bad{background:var(--red)}.confetti{pointer-events:none;z-index:5;position:fixed;inset:0;overflow:hidden}.confetti i{width:10px;height:14px;animation:linear forwards fall;position:absolute;top:-10px}@keyframes fall{to{transform:translateY(110vh)rotate(720deg)}}body.is-3d{padding:0;overflow:hidden}.app-3d{max-width:none;margin:0;position:fixed;inset:0}.app-3d canvas{width:100%;height:100%;display:block}#ui{pointer-events:none;position:fixed;inset:0}#ui>*{pointer-events:auto}.hud3d{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a0f19b3;justify-content:center;gap:22px;min-width:320px;margin:0;position:fixed;top:12px;left:50%;transform:translate(-50%)}.objective{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;text-align:center;background:#0a0f19b3;border-radius:10px;max-width:92vw;padding:8px 14px;font-size:14px;font-weight:700;position:fixed;top:60px;left:50%;transform:translate(-50%)}.prompt{background:var(--orange);color:#fff;cursor:pointer;box-shadow:0 4px 0 var(--orange-2);white-space:nowrap;text-overflow:ellipsis;border-radius:12px;max-width:92vw;padding:12px 18px;font-weight:800;animation:.2s ease-out rise;position:fixed;bottom:70px;left:50%;overflow:hidden;transform:translate(-50%)}.controls-hint{color:#ffffffd9;text-shadow:0 1px 2px #0009;font-size:13px;position:fixed;top:100px;left:50%;transform:translate(-50%)}.overlay3d{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:5;background:#0a0f1980;padding:16px;position:fixed;inset:0;overflow-y:auto}.overlay3d .stage{max-width:760px;margin:56px auto 40px}.joystick{touch-action:none;z-index:4;background:#ffffff26;border:2px solid #ffffff73;border-radius:50%;width:120px;height:120px;display:none;position:fixed;bottom:24px;left:24px}.joystick .knob{background:#ffffffb3;border-radius:50%;width:50px;height:50px;position:absolute;top:33px;left:33px}@media (pointer:coarse){.joystick{display:block}.controls-hint{display:none}.prompt{bottom:160px}body.is-3d .toast{bottom:220px}}
