@layer tokens{@font-face{font-family:"Noto Serif JP";src:url(/tower-of-verses/fonts/NotoSerifJP-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:"Noto Serif JP";src:url(/tower-of-verses/fonts/NotoSerifJP-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:"Noto Serif JP";src:url(/tower-of-verses/fonts/NotoSerifJP-Black.ttf) format("truetype");font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:Yuji Syuku;src:url(/tower-of-verses/fonts/YujiSyuku-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}}@layer reset,tokens,base,utilities,components,screens;@layer tokens{:root{--color-legend: #D4AF37;--color-rare: #A78BFA;--color-uncommon: #22D3EE;--color-common: #9CA3AF;--color-emperor: #D4AF37;--color-kugyou: #8b5e34;--color-shodaibu: #6B7280;--color-jige: #a855f7;--color-bouzu: #8B5CF6;--color-hakase: #0ea5e9;--color-curse: #dc5240;--color-kizoku: var(--color-shodaibu);--color-bushi: var(--color-jige);--color-hp: #EF4444;--color-block: #3B82F6;--color-energy: #F59E0B;--color-tanzaku: #10B981;--color-correct: #2f7d31;--color-correct-bg: #dbf3dd;--color-correct-text: #1f6f2d;--color-wrong: #b73d30;--color-wrong-bg: #fde0dc;--color-wrong-text: #a01f16;--bg-primary: #1a1a2e;--bg-secondary: #16213e;--bg-card: #0f3460;--text-primary: #e0e0e0;--text-secondary: #b0b0b0;--text-muted: rgba(255, 255, 255, .72);--surface-1: rgba(255, 255, 255, .08);--surface-2: rgba(255, 255, 255, .12);--border-soft: rgba(255, 255, 255, .2);--border-strong: rgba(255, 255, 255, .35);--overlay-dim: rgba(8, 10, 14, .72);--text-on-solid: #fff;--text-on-warm: #f7efe4;--btn-primary-start: #991b1b;--btn-primary-end: #7f1d1d;--btn-primary-border: rgba(248, 113, 113, .55);--btn-danger-start: #b45309;--btn-danger-end: #7c2d12;--btn-danger-border: rgba(251, 146, 60, .65);--font-jp: "Noto Serif JP", serif;--font-ui: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", "BIZ UDPMincho", "MS PMincho", serif;--font-brush: "Yuji Syuku", "Noto Serif JP", serif;--font-body: var(--font-ui);--font-title: var(--font-ui);--font-accent: var(--font-brush);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 16px;--radius-full: 999px;--text-xs: .75rem;--text-2xs: .6875rem;--text-3xs: .625rem;--text-4xs: .5625rem;--text-5xs: .5rem;--text-6xs: .4375rem;--text-sm: .85rem;--text-base: 1rem;--text-lg: 1.2rem;--text-xl: 1.5rem;--text-2xl: 2rem;--leading-solid: 1;--leading-tight: 1.2;--leading-snug: 1.3;--leading-normal: 1.5;--leading-relaxed: 1.6;--icon-xs: .875rem;--icon-sm: 1rem;--icon-md: 1.2rem;--icon-lg: 1.5rem;--icon-xl: 2rem;--icon-2xl: 3rem;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--weight-extrabold: 800;--weight-black: 900;--color-gold: #facc15;--color-gold-light: #fde68a;--color-gold-pale: #fef3c7;--color-hp-light: #fca5a5;--color-block-light: #93c5fd;--color-block-pale: #bfdbfe;--color-success: #22c55e;--color-success-light: #86efac;--color-rare-light: #e9d5ff;--color-slate: #94a3b8;--color-slate-light: #cbd5e1;--color-slate-lighter: #e2e8f0;--surface-3: rgba(255, 255, 255, .16);--border-medium: rgba(255, 255, 255, .28);--card-rarity-fill-common: var(--surface-3);--card-rarity-fill-uncommon: var(--surface-3);--card-rarity-fill-rare: rgba(250, 204, 21, .2);--card-rarity-fill-legend: rgba(212, 175, 55, .28);--card-rarity-fill-curse: rgba(220, 82, 64, .32);--overlay-light: rgba(0, 0, 0, .3);--overlay-medium: rgba(0, 0, 0, .55);--overlay-heavy: rgba(2, 6, 23, .85);--overlay-deep: rgba(15, 23, 42, .92);--glow-gold-soft: rgba(253, 230, 138, .2);--glow-gold: rgba(253, 230, 138, .45);--glow-gold-strong: rgba(253, 230, 138, .65);--parchment-bg: #fffaf0;--parchment-bg-deep: #f8f4ea;--parchment-surface: #f6efde;--parchment-text: #2a2114;--parchment-text-mid: #5b4a2f;--parchment-text-muted: #6b5a3a;--parchment-border: #8f7855;--parchment-border-light: #b49b74;--parchment-accent: #dcc9a2;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .15);--shadow-md: 0 4px 12px rgba(0, 0, 0, .2);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .3);--transition-fast: .15s ease;--transition-normal: .3s ease;--card-width-desktop: 240px;--card-width-tablet: 200px;--card-width-phone: 150px;--z-battle-turn-indicator: 85;--z-battle-intro: 90;--z-battle-overlay: 95;--z-battle-top-notice: 97;--z-overlay-low: 100;--z-pile-viewer: 200;--z-floating-number: 300;--z-quiz-overlay: 999;--z-modal-overlay: 1100;--z-modal-overlay-strong: 1200;--z-modal-overlay-top: 1201;--z-toast: 2000}}@layer reset{*{margin:0;padding:0;box-sizing:border-box}}@layer base{body{font-family:var(--font-body);background:var(--bg-primary);color:var(--text-primary);min-height:100vh;min-height:100dvh;overflow-x:hidden}button,input,select,textarea{font:inherit;color:inherit}}@layer base{#root{min-height:100vh;min-height:100dvh}}@layer utilities{@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}}@layer utilities{:focus-visible{outline:2px solid var(--color-energy);outline-offset:2px}}@layer utilities{@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}}@layer utilities{.typo-body{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-normal)}.typo-title{font-family:var(--font-title)}.typo-accent{font-family:var(--font-accent)}.typo-h1{font-family:var(--font-title);font-size:var(--text-2xl);font-weight:var(--weight-bold);letter-spacing:.08em;line-height:var(--leading-tight)}.typo-h2{font-family:var(--font-title);font-size:var(--text-xl);font-weight:var(--weight-bold);letter-spacing:.06em;line-height:var(--leading-snug)}.typo-h3{font-family:var(--font-title);font-size:var(--text-lg);font-weight:var(--weight-bold);letter-spacing:.04em;line-height:var(--leading-snug)}.typo-caption{font-size:var(--text-xs);line-height:var(--leading-normal)}.typo-small{font-size:var(--text-sm);line-height:var(--leading-normal)}}@layer components{.ui-overlay{position:fixed;inset:0;display:flex;justify-content:center;align-items:flex-start;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));overflow:auto;overscroll-behavior:contain;background:var(--overlay-dim)}.ui-modal{width:min(92vw,560px);max-width:100%;border-radius:var(--radius-lg);padding:14px;margin-block:auto}.ui-choice-list{display:grid;gap:8px}.ui-choice-item{border-radius:var(--radius-md);text-align:left}.key-hint{display:inline-block;font-size:var(--text-xs);opacity:.72;font-weight:var(--weight-medium)}.ui-modal p.modal-shortcuts-line{font-size:var(--text-2xs);line-height:1.4;color:var(--text-secondary)}}@layer components{.btn,button[class$=-btn],button[class*="-btn "]{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:var(--radius-md);padding:8px 14px;font-weight:var(--weight-bold);font-size:var(--text-base);font-family:inherit;cursor:pointer;border:1px solid var(--border-strong);transition:transform var(--transition-fast),box-shadow var(--transition-fast),filter var(--transition-fast);color:var(--text-primary);background:var(--surface-1)}.btn:hover:not(:disabled),button[class$=-btn]:hover:not(:disabled),button[class*="-btn "]:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.1);box-shadow:var(--shadow-md)}.btn:active:not(:disabled),button[class$=-btn]:active:not(:disabled),button[class*="-btn "]:active:not(:disabled){transform:translateY(0);filter:brightness(.95)}.btn:disabled,button[class$=-btn]:disabled,button[class*="-btn "]:disabled{opacity:.5;cursor:not-allowed;filter:grayscale(.4)}.btn-primary{background:linear-gradient(180deg,var(--btn-primary-start),var(--btn-primary-end));color:var(--text-on-solid);border-color:var(--btn-primary-border)}.btn-secondary{background:var(--surface-2);color:var(--text-on-warm);border-color:var(--border-soft)}.btn-danger{background:linear-gradient(180deg,var(--btn-danger-start),var(--btn-danger-end));color:var(--text-on-solid);border-color:var(--btn-danger-border)}.btn-lg{padding:12px 20px;font-size:var(--text-lg);border-radius:var(--radius-lg)}}@layer components{[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:var(--bg-secondary);color:var(--text-primary);padding:6px 10px;border-radius:var(--radius-sm);font-size:var(--text-sm);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--transition-fast);z-index:var(--z-modal-overlay);border:1px solid var(--border-strong);box-shadow:var(--shadow-md)}[data-tooltip]:hover:after,[data-tooltip]:focus-visible:after{opacity:1}@media(prefers-reduced-motion:reduce){[data-tooltip]:after{transition:none}}}@layer screens{.screen-transition{transition:opacity var(--transition-fast),transform var(--transition-fast);opacity:1}.screen-transition--exit{opacity:0;transform:translateY(8px)}.screen-transition--enter{animation:screen-enter var(--transition-normal) forwards}@keyframes screen-enter{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.screen-transition{transition:none}.screen-transition--enter{animation:none;opacity:1;transform:none}}}@layer screens{.toast-container{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:var(--z-toast);display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}.toast{pointer-events:auto;padding:10px 18px;border-radius:var(--radius-md);font-weight:var(--weight-bold);font-size:.9rem;cursor:pointer;animation:fade-in-up var(--transition-normal);box-shadow:0 4px 16px var(--overlay-light)}.toast--info{--_toast-bg: rgba(30, 58, 95, .92);--_toast-border: rgba(59, 130, 246, .5);background:var(--_toast-bg);border:1px solid var(--_toast-border);color:var(--color-block-light)}.toast--error{--_toast-bg: rgba(95, 30, 30, .92);--_toast-border: rgba(239, 68, 68, .5);background:var(--_toast-bg);border:1px solid var(--_toast-border);color:var(--color-hp-light)}.toast--success{--_toast-bg: rgba(30, 80, 50, .92);--_toast-border: rgba(34, 197, 94, .5);background:var(--_toast-bg);border:1px solid var(--_toast-border);color:var(--color-success-light)}}@layer screens{.keyboard-help-overlay{z-index:var(--z-modal-overlay-strong)}.keyboard-help-modal{width:min(94vw,860px);border:1px solid var(--border-soft);background:var(--surface-1);color:var(--text-on-warm)}.keyboard-help-title{margin:0}.keyboard-help-subtitle{margin:6px 0 0;font-size:var(--text-sm);opacity:.82}.keyboard-help-sections{margin-top:12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.keyboard-help-section{border:1px solid var(--border-medium);border-radius:var(--radius-md);background:var(--surface-2);padding:10px}.keyboard-help-section.is-current{border-color:var(--color-gold);box-shadow:0 0 0 1px var(--glow-gold-soft)}.keyboard-help-section h3{margin:0 0 6px;font-size:var(--text-sm)}.keyboard-help-section ul{margin:0;padding:0;list-style:none;display:grid;gap:5px}.keyboard-help-section li{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.keyboard-help-key{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-gold-light);min-width:5.5em}.keyboard-help-label{font-size:var(--text-sm);opacity:.94}.keyboard-help-close{margin-top:14px}@media(max-width:768px){.keyboard-help-sections{grid-template-columns:1fr}}}
