:root{--font-display:"Cinzel", "Noto Serif JP", serif;--font-serif-jp:"Noto Serif JP", serif;--font-ui:"M PLUS Rounded 1c", system-ui, sans-serif;--parchment-light:#f4e8c8;--parchment-mid:#e4cf9c;--parchment-dark:#c7aa72;--ink-dark:#2c1d11;--ink-muted:#5c432c;--brass-bright:#f0c969;--brass-mid:#b8842c;--brass-dark:#694513;--stone-light:#4a4540;--stone-mid:#2f2b27;--stone-dark:#1c1917;--stone-text:#f3ead8;--spring-ease:cubic-bezier(.34, 1.56, .64, 1)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}html,body,#app{width:100%;height:100%;font-family:var(--font-ui);color:var(--stone-text);touch-action:none;background:#14110f;margin:0;padding:0;overflow:hidden}.game-shell{width:100%;height:100%;position:relative;overflow:hidden}.webgl-stage{z-index:1;position:absolute;inset:0}.overlay-canvas{z-index:2;pointer-events:none;position:absolute;inset:0}.hud-layer{z-index:10;pointer-events:none;position:absolute;inset:0}.hud-interactive{pointer-events:auto}.frame-parchment{background:radial-gradient(circle at 20% 20%, #fffcf073, transparent 60%), radial-gradient(circle at 80% 85%, #a1793a40, transparent 55%), linear-gradient(170deg, var(--parchment-light) 0%, var(--parchment-mid) 55%, var(--parchment-dark) 100%);color:var(--ink-dark);border:3px solid var(--brass-dark);box-shadow:inset 0 2px 0 #fffae8bf, inset 0 -3px 8px #69451359, 0 12px 32px #000000a6, 0 0 0 2px var(--brass-mid);border-radius:14px;position:relative}.frame-stone{background:linear-gradient(180deg, #ffffff0f 0%, transparent 45%), linear-gradient(165deg, var(--stone-light) 0%, var(--stone-mid) 45%, var(--stone-dark) 100%);color:var(--stone-text);border:2px solid var(--brass-mid);border-radius:12px;box-shadow:inset 0 1px #fff4d638,inset 0 -3px 6px #000000a6,0 8px 20px #0009}.frame-brass{color:#231407;background:linear-gradient(165deg,#fbe192 0%,#c89132 45%,#7c5215 100%);border:2px solid #4a2e09;border-radius:10px;box-shadow:inset 0 2px #ffffeba6,inset 0 -2px 4px #4a2e098c,0 4px 10px #00000073}.btn-tactile{font-family:var(--font-ui);cursor:pointer;touch-action:manipulation;transition:transform .18s var(--spring-ease), filter .15s ease, box-shadow .15s ease;border:none;justify-content:center;align-items:center;gap:6px;font-weight:800;display:inline-flex}.btn-tactile:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-2px)scale(1.03)}.btn-tactile:active:not(:disabled){transform:translateY(2px)scale(.95)}.btn-tactile:disabled{opacity:.48;cursor:not-allowed}.btn-brass{color:#241405;background:linear-gradient(#f8da82 0%,#cf9533 55%,#9c6817 100%);border:2px solid #59380a;border-radius:10px;padding:8px 14px;box-shadow:inset 0 1px #fffce0bf,0 4px #4d3008,0 6px 14px #00000073}.btn-stone{color:#f4ebd9;background:linear-gradient(#4b453f 0%,#2c2724 100%);border:2px solid #8c6b3b;border-radius:10px;padding:7px 12px;box-shadow:inset 0 1px #fff0d22e,0 3px #171412,0 5px 12px #00000073}.top-hud{top:max(10px, env(safe-area-inset-top));flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px;display:flex;position:absolute;left:12px;right:12px}.hud-pill{align-items:center;gap:10px;padding:6px 12px;font-size:13px;display:flex}.xp-track{background:#171411;border:1px solid #8b6a38;border-radius:999px;width:140px;height:10px;overflow:hidden;box-shadow:inset 0 2px 4px #000000b3}.xp-fill{background:linear-gradient(90deg,#38bdf8,#818cf8);height:100%;transition:width .16s}.action-dock{flex-wrap:wrap;gap:6px;display:flex}.party-medals{left:14px;bottom:max(14px, env(safe-area-inset-bottom));align-items:flex-end;gap:8px;display:flex;position:absolute}.medal-btn{color:#f8eedc;cursor:pointer;width:68px;transition:transform .2s var(--spring-ease), border-color .15s ease;background:linear-gradient(175deg,#4a433d 0%,#24201c 100%);border:2px solid #8f6c38;border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:6px 5px;display:flex;position:relative;box-shadow:0 6px 14px #0000008c}.medal-btn.is-leader{border-color:#fbbf24;transform:translateY(-6px)scale(1.06);box-shadow:0 0 18px #fbbf2473,0 8px 16px #000000a6}.medal-avatar{color:#fff;border:2px solid #d4a656;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:14px;font-weight:800;display:flex}.medal-hp-bar{background:#141110;border-radius:99px;width:100%;height:6px;overflow:hidden}.medal-hp-fill{background:linear-gradient(90deg,#16a34a,#4ade80);height:100%;transition:width .12s linear}.dishes-strip{flex-direction:column;gap:5px;display:flex;position:absolute;top:72px;left:14px}.modal-backdrop{z-index:40;pointer-events:auto;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0e0b09b8;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-panel{pointer-events:auto;width:min(920px,100%);max-height:90vh;animation:modalPop .26s var(--spring-ease);flex-direction:column;display:flex;overflow:hidden}@keyframes modalPop{0%{opacity:0;transform:scale(.92)translateY(12px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-header{border-bottom:2px solid #69451359;justify-content:space-between;align-items:center;padding:12px 18px;display:flex}.modal-title{font-family:var(--font-serif-jp);letter-spacing:.04em;margin:0;font-size:19px;font-weight:900}.modal-body{touch-action:pan-y;padding:14px 18px;overflow-y:auto}.tarot-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;display:grid}.tarot-card{color:var(--ink-dark);cursor:pointer;touch-action:manipulation;text-align:left;transition:transform .22s var(--spring-ease), box-shadow .2s ease;background:radial-gradient(circle at 50% 15%,#fffae08c,#0000 65%),linear-gradient(170deg,#f8efd4 0%,#dfc48b 100%);border:3px solid #6b4613;border-radius:16px;flex-direction:column;gap:8px;padding:14px;display:flex;box-shadow:inset 0 0 0 2px #d4a65699,0 10px 24px #00000080}.tarot-card:hover{transform:translateY(-6px)scale(1.02);box-shadow:inset 0 0 0 2px #f59e0b,0 16px 32px #f59e0b59}.diorama-board-wrap{perspective:680px;padding:12px 0}.diorama-board{touch-action:none;background:linear-gradient(90deg,#69451324 1px,#0000 1px) 0 0/32px 32px,linear-gradient(#69451324 1px,#0000 1px) 0 0/32px 32px,radial-gradient(circle,#d8c28e 0%,#b5955a 100%);border:3px solid #59380a;border-radius:14px;width:100%;height:240px;position:relative;overflow:hidden;transform:rotateX(18deg);box-shadow:0 14px 24px #00000061,inset 0 0 22px #45270947}.diorama-token{color:#fff;cursor:grab;border:3px solid #fbbf24;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:56px;height:56px;font-size:11px;font-weight:800;transition:box-shadow .15s;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 6px 12px #00000073}.diorama-token:active{cursor:grabbing;box-shadow:0 12px 22px #fbbf248c}.toast-stack{flex-direction:column;gap:6px;max-width:300px;display:flex;position:absolute;top:72px;right:14px}.toast-item{animation:modalPop .2s var(--spring-ease);border-radius:10px;padding:7px 12px;font-size:12px;font-weight:700}.joystick-base{pointer-events:none;z-index:20;background:radial-gradient(circle,#f0c96924,#1c191773);border:2px solid #f0c969a6;border-radius:50%;width:104px;height:104px;position:fixed;transform:translate(-50%,-50%)}.joystick-knob{background:radial-gradient(circle at 35% 35%,#fef08a,#b8842c);border:2px solid #4a2e09;border-radius:50%;width:44px;height:44px;position:absolute;top:50%;left:50%;box-shadow:0 4px 10px #00000080}.badge-tag{color:var(--ink-dark);background:#69451329;border:1px solid #69451366;border-radius:6px;padding:2px 7px;font-size:11px;font-weight:800;display:inline-block}.passive-pill{color:var(--ink-dark);background:#fff8e0a6;border:1px solid #9c7a44;border-radius:8px;padding:4px 8px;font-size:11px;transition:all .18s}.passive-pill.is-lit{background:linear-gradient(90deg,#fef08a,#fde047);border-color:#d97706;font-weight:800;box-shadow:0 0 10px #f59e0b8c}@media (width<=700px){.xp-track{width:90px}.medal-btn{width:56px;padding:5px 4px}}
