/* Shared motion language: occasional entrances and short press feedback. */
.qura-title-row{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.qura-glyph{display:grid;grid-template-columns:repeat(3,12px);gap:9px;padding:22px;border:1px solid var(--line);border-radius:22px;background:var(--card);transform:rotate(-8deg)}.qura-glyph i{width:12px;height:12px;border-radius:4px;background:var(--accent2)}.qura-glyph i:nth-child(2n){background:var(--accent-ink)}.qura-glyph i:nth-child(5){opacity:0}.play-settings{display:grid;gap:12px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.play-settings .hint{font-size:14px}.qura-dashboard{margin-top:24px}.result-summary{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:16px 18px;border-radius:12px;background:var(--ink);color:var(--bg)}.result-summary b{font-size:22px}.result-summary span{font-size:14px}.winner-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.winner-tile{position:relative;display:grid;gap:12px;padding:24px;border:1px solid var(--line);border-radius:16px;background:var(--card);min-width:0;overflow:hidden}.winner-tile:first-child{background:var(--ink);color:var(--bg)}.winner-rank{font:700 14px Plex;color:var(--accent-ink)}.winner-tile:first-child .winner-rank{color:#ff916d}.winner-tile h3{font-size:clamp(22px,3vw,32px);overflow-wrap:anywhere;line-height:1.5}.history-section{margin-top:28px}.history-item{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:16px;background:var(--card);border:1px solid var(--line);border-radius:12px}.history-item .hint{font-size:13px}.history-item h3{font-size:16px}.history-item .actions{gap:6px}.history-section summary{font-size:20px;font-weight:600}.qura-file{margin-top:12px}.round{border-inline-start:2px solid var(--line);padding-inline-start:16px}.round>h3{font-size:22px;margin:8px 0}.round:last-child{border-inline-start-color:var(--accent2)}.match .btn{box-shadow:none}.match .winner{border-color:var(--ok);box-shadow:0 0 0 1px var(--ok-border)}
.stage-dialog{width:min(1100px,calc(100vw - 32px));max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);padding:clamp(18px,4vw,44px);background:var(--ink);color:var(--bg);border:1px solid rgba(236,230,218,.25);border-radius:20px;overflow:auto;overscroll-behavior:contain}.stage-dialog::backdrop{background:rgba(23,18,14,.65)}.stage-dialog h2{font-size:clamp(28px,7vw,54px);margin:16px 0 26px}.stage-dialog .stage-top{display:flex;justify-content:space-between;gap:12px;align-items:center}.stage-dialog .btn{background:var(--card);color:var(--ink)}.stage-dialog .winner-grid{gap:18px}.stage-dialog .winner-tile{color:var(--ink);background:var(--card)}.stage-dialog .winner-rank{color:#a8310d}.stage-dialog .winner-tile:first-child{background:#f3b59d}.stage-dialog .method{color:#bfb4a6;margin-top:24px}.stage-dialog .result-card,.stage-dialog .list li{color:var(--ink)}.stage-dialog .winner-tile h3{font-size:clamp(22px,5vw,38px)}.suite-nav a{transition:background 160ms var(--ease-out),border-color 160ms var(--ease-out),transform 160ms var(--ease-out)}
@media(hover:hover) and (pointer:fine){.suite-nav a:hover{transform:translateY(-2px)}.play-page .btn:hover,.prompt-editor .btn:hover{border-color:var(--accent-ink)}}
@media(max-width:720px){.winner-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.winner-tile{padding:18px}.winner-tile:first-child{grid-column:1/-1}.qura-glyph{padding:15px;gap:6px}.round{padding-inline-start:10px}.stage-dialog .winner-grid{grid-template-columns:1fr}.stage-dialog .winner-tile:first-child{grid-column:auto}}
@media(max-width:360px){.winner-grid{grid-template-columns:1fr}.winner-tile:first-child{grid-column:auto}}
@media(prefers-reduced-motion:reduce){.qura-glyph{transform:none}.suite-nav a:hover{transform:none}.stage-dialog *{animation:none!important;transition:none!important}}
@media print{.history-section,.stage-dialog,.qura-dashboard{display:none!important}.winner-grid{grid-template-columns:repeat(3,1fr)}.winner-tile:first-child{color:black;background:white}.winner-tile{break-inside:avoid}}
.input-keyboard .app .btn{transition-duration:0ms}
.input-keyboard .app .btn:active{transform:none}
.input-keyboard .app .seg label:active{transform:none}
/* Keyboard navigation changes state immediately, including step indicators. */
.input-keyboard .app *, .input-keyboard .app *::before, .input-keyboard .app *::after { transition: none !important; animation: none !important; }
