@font-face{font-family:Silkscreen;src:url('fonts/silkscreen.ttf') format('truetype');font-weight:400;font-display:swap}
:root{--paper:#f4f6f8;--surface:#ffffff;--ink:#182e39;--muted:#53616a;--line:#a8b3ac;--accent:#305cde;--pixel:Silkscreen,'Courier New',monospace;--space:8px;--focus:#305cde;color:var(--ink);background:var(--paper);font-family:var(--pixel);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit;color:inherit;border-radius:0;appearance:none;-webkit-appearance:none}button{cursor:pointer}button,input,select,summary,a{touch-action:manipulation}button{min-height:44px;border:2px solid var(--line);background:var(--surface);padding:10px 12px}button:disabled{opacity:.5;cursor:default}input,select,textarea{min-height:48px;border:1px solid #75847c;background:var(--surface);padding:10px 12px;font-size:16px;max-width:100%}input{width:100%;min-width:0}a{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid var(--focus);outline-offset:3px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--pixel);font-weight:400}h1{font-size:24px;line-height:1.4}h2{font-size:20px;line-height:1.5}h3{font-size:16px;line-height:1.5}p{line-height:1.5}label{display:block;font-size:14px;font-weight:400;margin-bottom:8px}[hidden]{display:none!important}.page{max-width:640px;margin:auto;padding:16px 20px 24px}body[data-view=case] .page{max-width:960px}header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:12px}.brand{display:flex;align-items:center;gap:8px;text-decoration:none}.brand canvas{width:64px;height:64px;image-rendering:pixelated}.wordmark{font:20px/1.1 var(--pixel)}time{font-size:14px;color:var(--muted);text-align:right}.views{display:flex;gap:8px;border-bottom:2px solid var(--line);padding-bottom:8px}.views button{flex:1;min-width:0;border:0;background:none;font-size:15px}.views [aria-current=page]{background:var(--ink);color:var(--surface)}#case-count{font:inherit;font-size:12px;margin-left:5px}main:focus,#case-title:focus,#result-heading:focus{outline:none}.round-navigation{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding-top:12px}.round-navigation>button,.round-navigation summary{font-size:14px}.round-navigation [aria-pressed=true]{border-color:var(--ink);background:var(--surface)}.round-navigation #help-button{margin-left:auto}.text-button{border:0;background:none;text-decoration:underline;text-underline-offset:4px;padding:10px 6px;font-size:14px}.primary{border:2px solid var(--ink);background:var(--ink);color:var(--surface);font-weight:400}.secondary{border:1px solid var(--ink);background:var(--surface)}summary{cursor:pointer;min-height:44px;display:flex;align-items:center;gap:8px;font-size:14px}summary:before{flex:none;content:'+';font:20px var(--pixel)}details[open]>summary:before{flex:none;content:'−'}#practice-menu{position:relative}.practice-panel{position:absolute;z-index:2;top:48px;left:0;width:230px;background:var(--surface);border:1px solid var(--ink);padding:16px;box-shadow:4px 4px 0 #d4d9cc}.practice-panel select{width:100%}.practice-panel p{font-size:14px;color:var(--muted);margin-top:10px}.hero{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:152px;padding:12px 0}.hero>div:first-child{min-width:0}.eyebrow{display:block;font-size:12px;letter-spacing:.5px;font-weight:400;color:var(--muted);margin-bottom:8px}.hero h1{font-size:24px;line-height:1.35}.hero p:last-child{font-size:14px;margin-top:8px;max-width:290px}.jersey{width:128px;flex:0 0 128px;position:relative}.jersey canvas{width:128px;height:128px;image-rendering:pixelated;display:block}.jersey small{display:block;text-align:center;font-size:12px}.game{border-top:2px solid var(--ink);padding:16px 0 0}.scoreboard{display:flex;justify-content:space-between;gap:16px;margin-bottom:20px}.scoreboard .eyebrow{margin-bottom:4px}.scoreboard strong{font-size:24px;line-height:1.4;font-variant-numeric:tabular-nums}.scoreboard p>span:not(.eyebrow){font-size:14px;color:var(--muted)}.score{text-align:right}.input-row{display:flex;gap:8px}.input-row input{flex:1}.hint{font-size:14px;color:var(--muted);margin-top:8px}#message{font-size:14px;min-height:21px;margin:12px 0;color:var(--muted)}#message.error{color:#982c1e}#retry{margin-bottom:16px}#lineup{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:0}.slot{display:flex;gap:12px;align-items:center;min-height:52px;padding:12px 0;border-bottom:1px solid #d3d9d1}.position{width:20px;flex:none;font-size:14px;color:var(--muted)}.placeholder{color:var(--muted);font-size:14px}.player-info{min-width:0;flex:1}.player-info b{font-size:16px;display:block;overflow-wrap:anywhere}.player-info small{display:block;font-size:14px;line-height:1.5;color:var(--muted);margin-top:3px}.points{display:grid;place-items:center;width:44px;min-width:44px;height:44px;padding:4px;font-size:15px;font-weight:400;color:#ffffff;background:var(--tier);border:1px solid var(--tier)}.t1{--tier:#596168;--wash:#eceff1}.t2{--tier:#028a0f;--wash:#e6f1e9}.t3{--tier:#305cde;--wash:#e1eaf3}.t4{--tier:#8a00c4;--wash:#eee5f2}.t5{--tier:#d3af37;--wash:#fff1bd}.round-actions{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px;margin-top:12px}#result{padding:16px;background:var(--surface);border-left:4px solid var(--accent);margin-bottom:16px}#result-copy{font-size:17px;margin:8px 0 16px}#share-text{width:100%;min-height:112px;margin-top:12px}.testing{border-top:1px solid var(--line);margin-top:24px;padding-top:8px}.testing p{font-size:14px;color:var(--muted);margin-bottom:12px}.test-note{font-size:14px;color:var(--muted);margin-top:16px}footer{margin-top:32px;padding-top:16px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}.notice{padding:12px;background:#edf2f8;font-size:14px;margin-top:12px}.notice button{font-size:14px}dialog{border-radius:0;width:min(560px,calc(100% - 32px));max-height:85dvh;border:2px solid var(--ink);background:var(--surface);color:var(--ink);padding:20px;overflow:auto}dialog::backdrop{background:#182e3980}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}dialog p{margin-bottom:16px;font-size:15px}dialog .test-note{margin-bottom:0}.confirm-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px;flex-wrap:wrap}.rarity-key{list-style:none;margin:16px 0;padding:0;display:grid;gap:8px}.rarity-key li{display:flex;align-items:center;gap:12px;font-size:16px}.rarity-key b{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--tier);color:#ffffff;background:var(--tier)}#choices{display:grid;gap:8px;max-height:48dvh;overflow:auto;padding:4px}#choices button{text-align:left;min-height:64px}.choice-name{font-weight:400;display:block}.choice-detail{display:block;font-size:14px;color:var(--muted);line-height:1.5;margin-top:4px}#choice-count{font-size:14px;color:var(--muted);margin:12px 0}#trophy-case{padding-top:24px}.case-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.case-heading h1{font-size:24px}.case-heading>span{font-size:12px;color:var(--muted);white-space:nowrap}#case-note{font-size:14px;color:var(--muted);margin:8px 0 20px}.case-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.case-search{grid-column:1/-1}.case-filters>div:last-child{grid-column:1/-1}.case-filters select{width:100%;font-size:14px;padding-left:8px;padding-right:28px}#case-results{font-size:14px;color:var(--muted);margin:20px 0}#case-empty{padding:32px 16px;background:var(--surface);font-size:16px;text-align:center}.case-tier+.case-tier{margin-top:28px}.case-tier-heading{display:flex;align-items:center;gap:10px;margin-bottom:12px}.tier-number{font:16px var(--pixel);width:32px;height:32px;display:grid;place-items:center;background:var(--tier);color:#ffffff;border:1px solid var(--tier)}.tier-count{margin-left:auto;font:14px var(--pixel);color:var(--muted)}.trophy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.trophy-card{min-width:0;background:var(--surface);padding:12px 4px 16px;text-align:center;border:3px solid var(--tier,#a8b3ac);display:flex;flex-direction:column;align-items:center}.jersey-toggle{padding:0;border:0;background:none;min-width:128px;max-width:100%;display:flex;flex-direction:column;align-items:center}.jersey-toggle:disabled{opacity:1;cursor:default}.jersey-toggle:not(:disabled):hover{background:var(--wash,#e7ece8)}.trophy-jersey{display:block;width:128px;height:128px;image-rendering:pixelated}.switch-label{font:14px/1.5 var(--pixel);min-height:44px;display:flex;align-items:center;text-decoration:underline;text-underline-offset:3px}.trophy-name{font:16px/1.5 var(--pixel);overflow-wrap:anywhere;max-width:100%;margin-top:8px}.trophy-league{font-size:14px;color:var(--muted);margin-top:5px}.trophy-team{font-size:14px;line-height:1.5;margin-top:8px;overflow-wrap:anywhere;max-width:100%}.team-position{font-size:12px;color:var(--muted);margin-top:5px}.case-more{margin-top:12px;width:100%;background:var(--surface)}.collection-help{margin-top:24px;border-top:1px solid var(--line)}.collection-help p{font-size:14px;color:var(--muted);margin:12px 0}.skip-link{position:fixed;left:16px;top:-100px;z-index:10;background:var(--ink);color:var(--surface);padding:12px}.skip-link:focus{top:10px}
@media(min-width:680px){.page{padding-top:24px}.case-filters{grid-template-columns:2fr 1fr 1fr 1fr}.case-search,.case-filters>div:last-child{grid-column:auto}.trophy-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:360px){.page{padding-inline:12px}.brand{gap:4px}.brand canvas{width:48px;height:48px}.wordmark{font-size:16px}time{font-size:12px}.hero h1{font-size:20px}.hero p:last-child{font-size:14px}.round-navigation{gap:4px}.round-navigation button{padding-inline:8px}.case-filters{gap:8px}.case-filters label{font-size:14px}.case-filters select{font-size:14px}.case-heading h1{font-size:20px}.trophy-grid{gap:8px}.trophy-name{font-size:16px}.trophy-card{padding-inline:2px}}
@media(prefers-reduced-motion:no-preference){button:active:not(:disabled){transform:translateY(1px)}}

/* Native controls keep keyboard support, with square surfaces and a pixel arrow. */
select{padding-right:32px;background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 17px) 50%,calc(100% - 11px) 50%;background-size:6px 6px;background-repeat:no-repeat}option,optgroup{font-family:var(--pixel)}input::placeholder,textarea::placeholder{font-family:var(--pixel);opacity:1;color:var(--muted)}strong,b{font-weight:400}.dialog-heading{flex-wrap:wrap}.confirm-actions button{flex:1}button,summary{border-radius:0}

.t0{--tier:#6d7477;--wash:#edf0ef}.points.t0{font-size:16px}

/* Title layers retain their shared canvas and exact pixel alignment. */
header .brand{display:grid;grid-template-columns:max-content;gap:0;flex:none}header .brand canvas{width:0;min-width:100%;height:auto;aspect-ratio:127/64}header .brand .wordmark{font:20px/1.3 var(--pixel);white-space:nowrap}

.hero .jersey{width:160px;flex:0 0 160px}.hero .jersey canvas{width:160px;height:160px}

/* Fit each card to its contents instead of stretching it to the longest name. */
.trophy-grid{align-items:start}
#case-tiers .trophy-card{padding-bottom:8px}
.jersey-toggle{width:100%;min-width:0;flex-shrink:0}

/* The short instruction sits above the art; no footer controls or counters. */
.jersey-toggle{position:relative;padding-top:26px}
.switch-hint{position:absolute;inset:0 0 auto;font:11px/1.15 var(--pixel);color:var(--muted);max-width:100%;text-align:center}

/* Reserve exactly two name lines, even for short names. */
.trophy-name{display:grid;width:100%;grid-template-rows:24px 24px;line-height:24px}
.trophy-name>span{display:block;min-width:0;white-space:nowrap;line-height:24px}

/* Compact trophy composition: hide the shared canvas's transparent top/bottom. */
#case-tiers .trophy-card{padding:6px 4px 8px}
#case-tiers .jersey-toggle{padding-top:15px}
#case-tiers .switch-hint{font-size:clamp(9px,2.8vw,11px);line-height:13px;white-space:nowrap}
.trophy-art{display:block;flex:none}
#case-tiers .trophy-art{width:128px;height:104px;overflow:hidden}
#case-tiers .trophy-jersey{transform:translateY(-12px)}
#case-tiers .trophy-name{margin-top:2px;grid-template-rows:17px 17px;line-height:17px}
#case-tiers .trophy-name>span{line-height:17px}
#case-tiers .trophy-team{margin-top:4px;line-height:18px}
