*{box-sizing:border-box}:root{font-family:Geist,Segoe UI,sans-serif;color:#211939;background:#fffaf1;color-scheme:light}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(ellipse at 18% 3%,#eee3ff,transparent 54%)}main{max-width:1160px;margin:auto;padding:28px clamp(16px,4vw,42px) 48px}.masthead,.stage-header,.inline,.play-meta,.reward,.campus{display:flex;gap:14px;align-items:center}.masthead,.stage-header,.play-meta,.reward{justify-content:space-between}.masthead{border-bottom:1px solid #ded3ef;padding-bottom:18px}.brand{display:flex;align-items:center;gap:8px;font-weight:900;letter-spacing:.06em}.brand img{object-fit:contain}.event{color:#574b70;letter-spacing:.15em;font-size:.76rem}.hero{padding:35px 0 29px;display:flex;justify-content:space-between;align-items:center}h1,h2,p{margin-top:0}h1{font-size:clamp(2.6rem,7vw,6.2rem);line-height:.98;letter-spacing:-.06em;margin-bottom:12px;overflow-wrap:anywhere}h1 em{font-style:normal;color:#4b2cb9}p{color:#534863;line-height:1.5}.hero p{margin-bottom:0}.hero-art{display:flex;align-items:center;gap:clamp(8px,2vw,25px);font-size:clamp(2rem,6vw,5rem);color:#4b2cb9;padding-right:4%}.hero-art span{color:#4b2cb9;font-size:2em;line-height:1}.cards,.operator{display:grid;gap:16px}.cards{grid-template-columns:repeat(3,minmax(0,1fr))}.target{--accent: #cdec70;--art: #d9f486;--ink: #365712}.quiz{--accent: #ffbd86;--art: #ffd0a7;--ink: #8e3d12}.typing{--accent: #cfb7ff;--art: #e4d3ff;--ink: #4b2cb9}.card,.stage,.operator section{background:#fff;border:1px solid #e2d8ef;border-radius:22px;box-shadow:0 8px 26px #49316d12}.card{overflow:hidden;display:flex;flex-direction:column}.card-art{height:120px;display:grid;place-items:center;background:repeating-linear-gradient(-35deg,#17122516 0 2px,transparent 2px 14px),var(--art);color:#211632}.card-art span{font-size:5rem;line-height:1;transform:rotate(-10deg)}.card-body{padding:18px;display:flex;flex-direction:column;flex:1}.card-meta{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:.8rem;color:#534863}kbd{display:inline-block;border:1px solid currentColor;border-radius:6px;padding:3px 7px;font:700 .85em Consolas,monospace}.card h2{margin:13px 0 6px;font-size:clamp(1.25rem,2.5vw,1.75rem)}.card p{flex:1}button,input,select{font:inherit;min-height:44px;border-radius:10px;padding:10px 13px}button{font-weight:800;border:1px solid transparent;background:var(--accent, #cdec70);color:#201530;cursor:pointer}button:hover:not(:disabled){filter:brightness(.94)}button:disabled{opacity:.52;cursor:default}button span{float:right}.secondary{background:#f0e9fd;color:#3c2863;border-color:#ab96cd}input,select{background:#fffdf9;color:inherit;border:1px solid #9383aa;min-width:0}input{width:100%}:focus-visible{outline:2px solid #5030bb;outline-offset:3px}.operator{grid-template-columns:1fr 1fr;margin-top:18px}.operator section{padding:18px}.operator h2,.operator label{font-size:1.05rem;font-weight:800;margin:0 0 8px}.operator select{margin-left:10px}.operator ul,.operator ol{margin-bottom:0}.operator ul{list-style:none;padding-left:0}.operator li{padding:4px 0;overflow-wrap:anywhere}.operator li strong{float:right;color:#4b2cb9}.stage{margin:24px auto 0;max-width:900px;padding:clamp(18px,4vw,45px)}.stage h1{font-size:clamp(2rem,5vw,4rem)}.stage-header{margin-bottom:20px;flex-wrap:wrap}.play-meta{font-size:1.15rem;font-weight:700;margin-bottom:12px}.play-meta strong{color:var(--ink)}.game-board:focus{outline:none}.track{position:relative;height:75px;background:#eee7fa;border:2px solid #a491c3;border-radius:16px;margin:18px 10px 22px}.zone,.marker{position:absolute;top:0;bottom:0}.zone{background:repeating-linear-gradient(45deg,#dafa73 0,#dafa73 8px,#b5df52 8px,#b5df52 16px);border-inline:2px solid white}.marker{left:0;width:8px;border:2px solid #211632;border-radius:5px;background:#fff;transform:translate(-50%)}.play-button{width:100%;font-size:1.2rem}.clue{display:grid;place-items:center;padding:24px 10px;min-height:155px;background:#fff0dd;border-radius:16px;font-size:clamp(2rem,9vw,5rem)}.options{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}.feedback{min-height:1.5em;margin:12px 0 0;font-weight:800}progress{width:100%;accent-color:var(--ink)}.passage{background:#f6f0ff;padding:16px;border-radius:12px;font:clamp(1.1rem,2.8vw,1.5rem)/1.8 Consolas,monospace}.word{display:inline-block;white-space:pre}.active-word{background:#e1d4fb}.correct{color:#32621b}.wrong{color:#a31e48;text-decoration:underline}.result h1{color:var(--ink);font-size:clamp(3.5rem,10vw,7rem)}.result h1 small{font-size:.45em}.result-game{font-weight:800}.reward{background:#f0e9ff;padding:16px;border-radius:14px;margin:12px 0 20px;flex-wrap:wrap}.reward h2,.reward p{margin-bottom:0}form label{display:block;margin-bottom:8px}.inline{align-items:stretch}.inline button{flex-shrink:0}.actions,.campus{margin-top:18px;flex-wrap:wrap}.campus img{width:90px;height:90px}a{color:#4b2cb9}.error{color:#a31e48}@media(max-width:720px){.cards,.operator{grid-template-columns:1fr}.hero-art{display:none}.card-art{height:80px}.card-art span{font-size:3.5rem}.options{grid-template-columns:1fr}}.feedback-hit{color:#32621b}.feedback-miss{color:#a31e48}.feedback span,.countdown-beat{display:inline-block}@media(prefers-reduced-motion:no-preference){.card{transition:transform .16s ease,box-shadow .16s ease}.card:focus-within{transform:translateY(-4px);box-shadow:0 14px 28px #49316d22}button{transition:transform .1s ease,filter .14s ease}button:active:not(:disabled){transform:scale(.97)}.countdown-beat,.feedback-hit{animation:arcade-pop .28s ease-out both}.feedback-miss{animation:arcade-nudge .22s ease-out both}.result h1{animation:arcade-pop .34s ease-out both;transform-origin:left center}.result .reward{animation:arcade-reveal .28s ease-out both}}@media(hover:hover)and (prefers-reduced-motion:no-preference){.card:hover{transform:translateY(-4px);box-shadow:0 14px 28px #49316d22}}@keyframes arcade-pop{0%{transform:scale(.88)}60%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes arcade-nudge{30%{transform:translate(-4px)}65%{transform:translate(3px)}}@keyframes arcade-reveal{0%{opacity:.55;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
