@import url("tokens.css");
.special-card{margin-top:5px;font-size:11px;color:#355748;line-height:1.6;max-width:210px}.special-card strong{font-weight:900;color:var(--ability,#e67739)}.special-card small{display:block;font-size:9px;opacity:.75}.special-card .skill-icon{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:6px;background:var(--ability);color:#102d25;font-weight:900;margin-right:5px}.roster-button{border-bottom:3px solid var(--ability)}.equal-note{max-width:240px;line-height:1.5}.special-btn{--ability:#ffac64;position:relative;isolation:isolate;overflow:hidden;border:2px solid color-mix(in srgb,var(--ability),#204834 35%);background:#1a3f36;color:#d9e3d2;border-radius:15px;min-width:68px;width:70px;height:88px;padding:8px 4px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;touch-action:none;user-select:none;box-shadow:0 4px 0 #122e26;font-family:inherit}.special-btn:before{content:'';position:absolute;inset:auto 0 0;height:calc(var(--charge,0)*1%);background:linear-gradient(0deg,var(--ability),color-mix(in srgb,var(--ability),transparent 65%));opacity:.55;z-index:-1;transition:height .2s}.special-btn.ready{color:#fff;border-color:var(--ability);box-shadow:0 0 15px color-mix(in srgb,var(--ability),transparent 50%),0 4px 0 #163a2c}.special-btn.active{transform:translateY(3px);box-shadow:none}.special-btn .special-icon{font-size:22px;line-height:1;font-weight:900;color:var(--ability)}.special-btn b{font-size:12px}.special-btn small{font-size:8px}.special-btn:focus-visible{outline:3px solid #f6e680;outline-offset:3px}.match-sound{flex:none;position:absolute;right:62px;top:10px;width:30px;height:30px;border:0;background:#e7ebd9;color:#214838;border-radius:8px;font-size:20px}.match-header{position:relative;padding-right:102px}.match-header>#fullscreen-btn{position:absolute;right:13px;top:8px}.cutin{position:absolute;left:0;right:0;top:25%;height:40%;z-index:8;pointer-events:none;display:flex;align-items:center;justify-content:center;gap:24px;overflow:hidden;background:linear-gradient(100deg,#071e27f5 0%,#102c36f5 64%,color-mix(in srgb,var(--ability),transparent 30%));border-top:3px solid var(--ability);border-bottom:3px solid var(--ability);box-shadow:0 10px 32px #071d27aa;animation:cut-in .16s ease-out}.cutin.hidden{display:none}.cutin:before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(-14deg,transparent 0 22px,#ffffff10 23px 25px,transparent 26px 45px);animation:cut-speed .3s linear infinite}.cutin canvas{position:relative;width:180px;height:180px;filter:drop-shadow(5px 0 0 var(--ability));transform:rotate(-6deg);align-self:flex-end}.cutin-copy{position:relative;min-width:0}.cutin-copy>small{font-weight:900;font-size:12px;color:var(--ability);letter-spacing:4px}.cutin-copy>span{display:block;font-size:17px;font-weight:800;color:white;margin:8px 0 3px}.cutin-copy>strong{display:block;font-size:clamp(23px,53.76px,55px);font-weight:950;color:#fffad9;letter-spacing:-2px;text-shadow:3px 3px 0 var(--ability),5px 5px 0 #10232b}.cutin-copy>i{display:block;margin-top:8px;color:var(--ability);font-size:11px;font-style:normal;letter-spacing:2px}.sound-note{font-size:9px;color:#7e8c78;margin-top:7px}.skill-link{color:#305744;text-decoration:underline;font-weight:700}.controls .control-group{gap:12px;width:47%;justify-content:center}.controls{gap:8px}.control-divider{max-width:28px}.control-info{width:40px;flex-shrink:0}.action-btn,.move-pad{flex-shrink:0}.control-info small{font-size:7px}.sound-on .sound-slash{display:none}
.match-header{padding-left:102px}.match-header>#pause-btn{position:absolute;left:17px;top:9px;margin:0}.match-header>.game-icon:first-child{margin-right:0}
@keyframes cut-in{from{transform:translateX(-7%);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes cut-speed{to{background-position:120px 0}}




@media(prefers-reduced-motion:reduce){.cutin,.cutin:before{animation:none}.special-btn:before{transition:none}}


*{box-sizing:border-box}body{margin:0;background:#102e2a;color:#f3f6df;font:14px system-ui,'Malgun Gothic',sans-serif}main{max-width:1180px;padding:25px;margin:auto}header{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}header small{color:#cce789;letter-spacing:2px;font-size:10px}h1{font-size:30px;letter-spacing:-1px;margin:10px 0}p{color:#afc7b9;line-height:1.6}a{color:#e8f795;text-decoration:none;font-weight:800}button{font:inherit;border:1px solid #6f8b70;border-radius:9px;background:#244a3d;color:#f8f8e6;padding:10px 14px;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #f6dd72;outline-offset:3px}button:disabled{opacity:.5}.music-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:20px}.music-controls span{font-size:11px;color:#afc9af}.collection{display:grid;grid-template-columns:repeat(8,1fr);gap:9px}.student-card{padding:8px 5px 12px;min-width:0;position:relative;border:1px solid #4b6e58;background:linear-gradient(#294b3d,#1b3c32);text-align:center;border-bottom:4px solid var(--ability);border-radius:11px}.student-card[aria-pressed=true]{border-color:var(--ability);background:linear-gradient(#466449,#264837);box-shadow:0 0 0 2px color-mix(in srgb,var(--ability),transparent 50%)}.student-card canvas{width:100%;height:auto;display:block}.student-card b{display:block;font-size:16px}.student-card span{display:block;font-size:9px;color:var(--ability);margin-top:5px}.demo{margin-top:23px;border:1px solid #5c795d;border-radius:15px;overflow:hidden;background:#173e32}.demo-heading{padding:20px 23px;display:flex;justify-content:space-between;align-items:center;gap:15px}.demo-heading small{color:#e0ef9b;letter-spacing:2px;font-size:9px}h2{font-size:26px;margin:6px 0}.demo-heading p{margin:0;font-size:12px}.demo-actions{display:flex;gap:6px}#demo-special{background:#e3f18a;color:#1b3d2d;font-weight:900;border:0}.playback{display:flex;align-items:center;gap:15px;padding:0 23px 16px;font-size:11px}.playback button{font-size:10px;padding:6px 9px}.playback span{color:#c3d7b4}label{display:inline-flex;align-items:center;gap:4px}.demo-stage{position:relative}.demo-stage>canvas{width:100%;display:block;background:#477151}.hidden{display:none!important}footer{font-size:11px;color:#9eb59f;text-align:center;padding:25px 5px}.cutin{top:26%;height:36%}

/* Hallmark · macrostructure: arcade playfield + training console · theme: studied-DNA (Soccer Bros)
 * tone: lively arcade · anchor hue: cyan · uses established tokens and real articulated student rigs
 * pre-emit critique: P5 H5 E4 S5 R4 V4 · scope: match chrome, cut-ins, skills route */

*,*:before,*:after{box-sizing:border-box}
html,body{overflow-x:clip;min-width:0}
.title-motion{display:block;margin:8px auto 0;min-height:44px;padding:7px 12px;font:700 10px var(--font-display);background:var(--color-paper);color:var(--color-ink);border:3px solid var(--color-outline);border-radius:0;box-shadow:3px 3px var(--color-outline);white-space:nowrap;cursor:pointer}
.title-motion:hover{background:var(--color-paper-2)}.title-motion:active{transform:translate(2px,2px);box-shadow:1px 1px var(--color-outline)}.title-motion:focus-visible{outline:3px solid var(--color-focus);outline-offset:4px}.title-motion[aria-pressed=true]{color:var(--color-accent)}
.hero-copy .menu-extra{padding:8px}
.mode-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:min(450px,95%);margin:18px auto 0;align-items:center}
.mode-choices button,.mode-choices a{display:flex;align-items:center;justify-content:center;min-height:46px;padding:8px;font:700 13px var(--font-display);background:var(--color-button);color:var(--color-button-ink);border:3px solid var(--color-outline);border-radius:0;box-shadow:3px 3px var(--color-outline);white-space:nowrap;cursor:pointer}
.mode-choices button:hover,.mode-choices a:hover{background:var(--color-accent)}.mode-choices button:active,.mode-choices a:active{transform:translate(2px,2px);box-shadow:1px 1px var(--color-outline)}
.score-player{max-width:125px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cpu-info{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;width:42%;min-height:100px;border:3px solid var(--color-outline);background:var(--color-paper-2);padding:12px;color:var(--color-ink)}.cpu-info>b{font-size:23px;color:var(--color-cyan)}.cpu-info>strong{font-size:17px;line-height:1.6;overflow-wrap:anywhere;text-align:center}.cpu-info>small{font-size:10px;color:var(--color-ink-2)}.game.cpu-match .control-group[data-player="1"],.game.cpu-match .control-divider{display:none}
.game{background:var(--color-paper);font-family:var(--font-body)}
.match-header{height:82px;flex-basis:82px;gap:16px;background:var(--color-paper);border-bottom:4px solid var(--color-outline);box-shadow:0 4px var(--color-cyan);z-index:3}
.score-team{background:var(--color-paper-2);border:3px solid var(--color-outline);min-width:150px;padding:7px 12px;gap:12px;height:58px}
.score-player{font-size:13px;font-family:var(--font-display);color:var(--color-ink);text-shadow:2px 2px var(--color-outline)}
.score-left{border-bottom-color:var(--color-coral)}.score-right{border-bottom-color:var(--color-p2)}
.score-team b{font-size:34px;line-height:1;color:var(--color-ink)}.team-dot{width:8px;height:8px;border-radius:0}
.match-clock{min-width:154px}.match-clock strong{font-family:var(--font-display);font-size:32px;letter-spacing:1px;color:var(--color-accent);line-height:1.1}
.match-clock>span{font-size:8px;color:var(--color-ink-2);line-height:1.5;letter-spacing:0}.match-clock.urgent strong{color:var(--color-error)}
.game-icon,.match-sound{width:44px;height:44px;flex-basis:44px;border:3px solid var(--color-outline);background:var(--color-button);color:var(--color-button-ink);border-radius:0;box-shadow:3px 3px var(--color-outline)}
.match-header>#pause-btn{top:16px;left:16px}.match-header>#fullscreen-btn{top:16px;right:16px}.match-sound{top:16px;right:68px;font-size:22px}
.arena{background:var(--color-paper-2)}.field-label{color:var(--color-ink-2);text-shadow:1px 1px var(--color-outline);font-family:var(--font-display);opacity:.65}
.controls{background:var(--color-paper);border-top:4px solid var(--color-outline);box-shadow:0 -3px var(--color-cyan);flex-basis:164px;padding:12px;gap:12px}
.control-coral{--team:var(--color-coral)}.control-blue{--team:var(--color-p2)}
.controls .control-group{gap:12px;width:47%;justify-content:center}.control-info{width:46px}.control-info b{font-size:22px}.control-info span{font-size:12px;color:var(--color-ink)}.control-info small{font-size:7px;color:var(--color-ink-2)}
.move-pad{width:108px;height:108px;border:4px solid var(--color-outline);border-radius:0;background:var(--color-paper-2);box-shadow:4px 4px var(--color-outline);filter:none}
.move-pad.active{border-color:var(--team);filter:none}.pad-arrow{display:block;color:var(--color-ink-2);font-size:15px}.pad-stick{width:42px;height:42px;left:calc(50% - 21px);top:calc(50% - 21px);background:var(--color-ink);border:3px solid var(--color-outline);border-radius:0;box-shadow:3px 3px var(--color-outline)}
.action-btn{width:94px;height:94px;border:4px solid var(--color-outline);border-radius:0;background:var(--team);color:var(--color-button-ink);box-shadow:4px 4px var(--color-outline);gap:3px}
.action-btn .action-icon{background:none;font-size:27px!important;filter:none;width:auto;height:auto}.action-btn b{font-size:17px}.action-btn small{font-size:7px;opacity:1}
.action-btn.has-ball{background:var(--color-accent);border-color:var(--color-outline);color:var(--color-button-ink);box-shadow:4px 4px var(--color-outline)}.action-btn.active{transform:translate(3px,3px);box-shadow:1px 1px var(--color-outline)}
.special-btn{border:3px solid var(--color-outline);border-radius:0;background:var(--color-paper-2);color:var(--color-ink);box-shadow:4px 4px var(--color-outline);width:78px;min-width:78px;height:94px;gap:5px}
.special-btn:before{height:100%;background:var(--ability);transform:scaleY(calc(var(--charge,0)/100));transform-origin:bottom;opacity:.35;transition:transform 150ms linear}
.special-btn.ready{border-color:var(--color-accent);color:var(--color-ink);box-shadow:4px 4px var(--color-outline)}.special-btn.active{transform:translate(3px,3px);box-shadow:1px 1px var(--color-outline)}.special-btn .special-icon{font-size:24px}.special-btn b{font-size:12px}.special-btn small{font-size:8px}.control-divider{color:var(--color-ink-2);font-size:7px}
.cutin{background:var(--color-paper);border-top:5px solid var(--ability);border-bottom:5px solid var(--ability);box-shadow:0 7px var(--color-outline);font-family:var(--font-display);gap:24px}
.cutin:before{background:repeating-linear-gradient(-15deg,transparent 0 25px,var(--color-rule) 26px 28px,transparent 29px 55px);opacity:.35}
.cutin canvas{transform:none;filter:none;border-right:4px solid var(--ability)}.cutin-copy>strong{font-family:var(--font-display);font-weight:700;letter-spacing:0;font-size:clamp(25px,51.2px,52px);color:var(--color-ink);text-shadow:3px 3px var(--color-outline)}.cutin-copy>span{color:var(--color-ink);font-size:16px}.cutin-copy>small{font-size:10px;letter-spacing:2px}.cutin-copy>i{display:none}
.count-number{font-family:var(--font-display);font-size:110px;color:var(--color-accent);text-shadow:4px 4px var(--color-outline),-3px -3px var(--color-outline)}.count-caption{font-family:var(--font-display);font-size:16px;text-shadow:2px 2px var(--color-outline)}
.goal-banner{font-family:var(--font-display);color:var(--color-accent);font-size:70px;transform:none;text-shadow:4px 4px var(--color-outline),-3px -3px var(--color-outline)}.goal-player{border:3px solid var(--color-outline);border-radius:0;background:var(--color-paper);color:var(--color-ink);font-size:15px}
.result-score{border-radius:0;border:3px solid var(--color-outline);background:var(--color-paper);color:var(--color-ink)}.result-score strong{font-family:var(--font-display);color:var(--color-accent)}.result-stats{font-family:var(--font-body)}
.result-score>div{min-width:0;flex:1}.result-score>div>span{font-size:11px;overflow-wrap:anywhere;color:var(--color-ink);line-height:1.6}
.game button:focus-visible,.skills-page button:focus-visible,.skills-page a:focus-visible,.skills-page input:focus-visible{outline:3px solid var(--color-focus);outline-offset:4px}
.game-icon:hover,.match-sound:hover{background:var(--color-accent)}.game-icon:active,.match-sound:active{transform:translate(2px,2px);box-shadow:1px 1px var(--color-outline)}
.skills-page{margin:0;isolation:isolate;background:var(--color-paper) url('assets/menu-stadium.png?v=4.4.0') center/cover fixed no-repeat;color:var(--color-ink);font-family:var(--font-body);font-size:13px}
.skills-page:before{content:'';position:fixed;inset:0;background:var(--color-shade);z-index:-1;pointer-events:none}
.skills-page main{width:100%;max-width:1320px;margin:auto;padding:16px 24px;min-width:0}
.skills-page header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 12px;min-height:54px}
.skills-page header small,.skills-page .demo-heading small{color:var(--color-cyan);font-size:9px;letter-spacing:1px;text-shadow:2px 2px var(--color-outline)}
.skills-page h1,.skills-page h2{font-family:var(--font-display);font-style:normal;font-weight:700;min-width:0;overflow-wrap:anywhere;color:var(--color-ink);text-shadow:2px 2px var(--color-outline),-2px -2px var(--color-outline);letter-spacing:0;margin:5px 0;font-size:28px}
.skills-page header p{display:none}.skills-page p{color:var(--color-ink-2);text-shadow:1px 1px var(--color-outline);line-height:1.7}
.skills-page button,.skills-page header a{font:700 12px var(--font-display);color:var(--color-button-ink);background:var(--color-button);border:3px solid var(--color-outline);border-radius:0;padding:8px 12px;min-height:44px;white-space:nowrap;box-shadow:3px 3px var(--color-outline);text-decoration:none;cursor:pointer;transition:background var(--dur-fast)}
.skills-page button:hover,.skills-page header a:hover{background:var(--color-accent)}.skills-page button:active,.skills-page header a:active{transform:translate(2px,2px);box-shadow:1px 1px var(--color-outline)}
.skills-page button:disabled{background:var(--color-disabled);color:var(--color-disabled-ink);opacity:.65;cursor:not-allowed;transform:none}
.skills-page .music-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0 16px}.skills-page .music-controls span{font-size:9px;color:var(--color-ink-2);text-shadow:1px 1px var(--color-outline)}
.skills-page .collection{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:12px;max-width:1000px;margin:0 auto 12px}
.skills-page .student-card{padding:2px 3px 7px;border:3px solid transparent;min-height:0;border-radius:0;background:none;box-shadow:none;min-width:0;color:var(--color-ink);text-shadow:2px 2px var(--color-outline)}
.skills-page .student-card[aria-pressed=true]{border-color:var(--color-cyan);background:var(--color-selected);box-shadow:3px 3px var(--color-outline)}.skills-page .student-card:hover{background:var(--color-selected)}
.skills-page .student-card canvas{aspect-ratio:1;width:100%;height:auto;max-height:102px;object-fit:contain;display:block}.skills-page .student-card b{font-size:13px}.skills-page .student-card span{display:block;font-size:8px;color:var(--color-ink-2);margin-top:6px;white-space:nowrap}
.skills-page .demo{margin:8px 0 0;border:4px solid var(--color-outline);border-radius:0;background:var(--color-paper);box-shadow:5px 5px var(--color-outline);overflow:hidden}
.skills-page .demo-heading{padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:16px}.skills-page .demo-heading h2{font-size:24px;margin:5px 0}.skills-page .demo-heading p{font-size:10px;margin:0;max-width:58ch}.skills-page .demo-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.skills-page #demo-special{background:var(--color-accent);color:var(--color-button-ink);border:3px solid var(--color-outline);font-weight:700}.skills-page #demo-special:hover{background:var(--color-cyan)}
.skills-page .playback{padding:0 16px 12px;display:flex;align-items:center;gap:16px;font-size:10px;flex-wrap:wrap}.skills-page .playback button{font-size:10px;padding:8px 10px;min-height:44px}.skills-page .playback label{display:inline-flex;align-items:center;gap:5px;min-height:44px;white-space:nowrap;cursor:pointer}.skills-page input[type=checkbox]{accent-color:var(--color-accent);width:18px;height:18px}.skills-page .playback span{font-size:9px;color:var(--color-ink-2)}
.skills-page .demo-stage{height:clamp(280px,352px,520px);border-top:3px solid var(--color-outline);position:relative;background:var(--color-paper-2)}.skills-page .demo-stage>canvas{width:100%;height:100%;object-fit:contain;background:var(--color-paper-2);display:block}.skills-page .cutin{top:25%;height:44%;gap:12px}.skills-page .cutin canvas{width:140px;height:140px}.skills-page .cutin-copy>strong{font-size:32px}
.skills-page footer{font-size:9px;color:var(--color-ink-2);text-shadow:1px 1px var(--color-outline);padding:16px 0 8px;text-align:center;line-height:1.8}





@media(prefers-reduced-motion:reduce){.skills-page *, .game *{animation:none!important;transition:none!important}}

