@import url("tokens.css");
/* 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}}


/* Hallmark · macrostructure: school cup console · theme: studied-DNA · pre-emit critique: P5 H4 E4 S5 R4 V4 */
.hidden{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.school-page main{max-width:1120px}.school-page h1{font-size:28px}.school-page h2{font-size:22px}.school-page h3{font-size:16px;margin:0 0 12px;color:var(--color-cyan)}
.school-search,.school-team,.cup-setup,.school-records,#active-cup{margin:18px 0 24px;padding:18px;background:var(--color-paper);border:3px solid var(--color-outline);box-shadow:4px 4px var(--color-outline)}
.school-page input,.school-page select{font:400 12px var(--font-body);color:var(--color-button-ink);background:var(--color-button);border:3px solid var(--color-outline);border-radius:0;min-height:44px;padding:8px;min-width:0;outline-offset:3px}
#school-form{display:grid;grid-template-columns:minmax(0,1fr) 110px 80px;gap:8px;margin-top:14px;align-items:center}#school-status,#cup-error,.local-note,.cup-rule{font-size:10px;line-height:1.8;min-height:18px;color:var(--color-ink-2)}
#school-results{display:grid;gap:8px}.school-page .school-result{display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;font-size:12px}.school-result small{font-size:9px}
.school-team>small,.cup-heading small,.cup-next>small{color:var(--color-cyan);font-size:9px;letter-spacing:1px}.school-team>p{font-size:10px}.school-totals{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:18px 0}.school-totals>div{border-top:2px solid var(--color-rule);padding:10px 0}.school-totals strong{display:block;color:var(--color-accent);font-size:30px}.school-totals span{font-size:10px;display:block;margin-top:8px}
.cup-format{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.school-page .cup-format [aria-pressed=true]{background:var(--color-accent)}#format-note{font-size:11px;line-height:1.8}.school-page #create-cup{margin-top:4px;font-size:14px;background:var(--color-accent)}
.cup-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}.cup-heading label{font-size:9px;display:flex;align-items:center;gap:8px}.cup-heading select{max-width:260px;font-size:10px}.cup-next{text-align:center;padding:20px 12px;border-top:3px solid var(--color-cyan);border-bottom:3px solid var(--color-cyan);margin:16px 0 12px}.next-line{display:grid;grid-template-columns:minmax(0,1fr) 50px minmax(0,1fr);gap:12px;align-items:center;margin-bottom:20px}.next-line strong{font-size:21px;overflow-wrap:anywhere;line-height:1.6}.next-line b{color:var(--color-accent);font-size:27px}.school-page .next-match{background:var(--color-accent);min-height:54px;font-size:17px}
.cup-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 20px;margin-top:26px}.group-table{min-width:0}.group-table table{border-collapse:collapse;width:100%;table-layout:fixed;font-size:11px}.group-table th,.group-table td{padding:12px 4px;text-align:center;border-bottom:1px solid var(--color-rule)}.group-table th:first-child,.group-table td:first-child{width:60%;text-align:left}.team-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.our-team{background:var(--color-selected);color:var(--color-accent)}
.cup-bracket{display:grid;grid-template-columns:repeat(var(--round-count,4),minmax(0,1fr));gap:16px;margin-top:30px}.bracket-round{min-width:0;display:flex;flex-direction:column;gap:12px}.round-fixtures{flex:1;display:flex;flex-direction:column;justify-content:space-around;gap:10px}.fixture{border:2px solid var(--color-outline);background:var(--color-paper-2);padding:8px;margin-bottom:10px}.fixture>div{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:9px;line-height:1.8;min-height:30px}.fixture span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fixture b{font-size:14px;flex:none}.fixture small{font-size:8px;line-height:1.8;color:var(--color-ink-2)}.fixture .winner{color:var(--color-accent)}.fixture.our-team{border-color:var(--color-cyan)}
.record-line{display:grid;grid-template-columns:minmax(0,1fr) 100px 50px;gap:12px;padding:14px 0;border-bottom:1px solid var(--color-rule);font-size:11px;align-items:center}.record-line b{color:var(--color-accent);text-align:center}.record-line span:last-child{text-align:right}.record-line span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cup-heading label{white-space:nowrap}



