/* Ink & Chalk theatre: readable calls, one 7.2-second sequence, no flashing. */
.game-theatre{position:absolute;inset:0;z-index:5;isolation:isolate;overflow:hidden;background:#10110f;color:#fff6df;container-type:inline-size;--moment-accent:#edc36d}
.game-theatre[hidden]{display:none!important}.moment-room,.moment-art{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.moment-room{background:radial-gradient(ellipse at 50% 100%,#99723955,transparent 65%),linear-gradient(145deg,#171a16,#050706 70%)}
.moment-room:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 3px,#ffffff04 3px 4px);opacity:.5}
.moment-light{position:absolute;top:-80%;width:46%;height:200%;background:linear-gradient(180deg,#f8d78930,transparent 74%);filter:blur(20px);transform-origin:50% 0;animation:moment-light 7.2s ease-out both}
.light-left{left:0;transform:rotate(-28deg);--beam:28deg}.light-right{right:0;transform:rotate(28deg);--beam:-28deg}
.moment-track{position:absolute;inset:60% -40% -80%;background:repeating-linear-gradient(90deg,transparent 0 9.8%,#dbd7a233 9.8% 10%),repeating-linear-gradient(0deg,transparent 0 32px,#dcd6af35 32px 34px);transform:perspective(300px) rotateX(58deg);animation:moment-track 7.2s ease-out both}
.moment-stripes{position:absolute;inset:0;background:linear-gradient(120deg,transparent 29%,#c1a57212 29% 30%,transparent 30% 68%,#c1a57212 68% 69%,transparent 69%);animation:moment-wipe 1s ease-out both}
.moment-top{position:absolute;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 18px;border-bottom:1px solid #e4c37b40;font-size:9px;letter-spacing:.13em;color:#d0bea0;z-index:2}
.moment-top b{display:block;color:#fff1d0;font-size:12px;letter-spacing:.25em;margin-top:3px}
.moment-top .moment-close{min-height:44px;font-size:11px;color:#e5d9c2;border:1px solid #b59c6755;border-radius:0;padding:8px 10px;background:#10110faa;letter-spacing:0}
.moment-copy{position:absolute;inset:28% 7% auto;text-align:center;z-index:2;animation:moment-title-in .7s .22s cubic-bezier(.2,.8,.2,1) both}
.moment-team{font-size:clamp(11px,2.2vw,17px);font-weight:750;letter-spacing:.24em;text-transform:uppercase;margin:0 0 14px;color:var(--moment-accent)}
.moment-heading{font-family:Impact,'Arial Narrow',system-ui,sans-serif;font-weight:950;font-size:clamp(34px,8.2vw,82px);font-size:clamp(40px,14cqw,145px);line-height:.96;letter-spacing:-.035em;text-transform:uppercase;margin:0;text-shadow:0 2px 0 #806840,0 8px 28px #000b}
.moment-heading span{display:block}.moment-heading span+span{color:var(--moment-accent)}
.moment-caption{font-size:clamp(12px,2vw,16px);color:#ddd3bf;margin:18px auto 0;max-width:34ch;line-height:1.5}
.moment-bottom{position:absolute;inset:auto 18px 18px;display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:9px;letter-spacing:.18em;color:#d2c2a6;z-index:2}
.moment-tag{border-left:3px solid var(--moment-accent);padding:5px 9px;color:#fff0cd;font-weight:850}
.moment-progress{position:absolute;inset:auto 0 0;height:3px;background:var(--moment-accent);transform-origin:left;animation:moment-countdown 7.2s linear both}
.moment-ball,.moment-flag,.moment-goal,.moment-routes{position:absolute;display:none}
.moment-ball{width:23%;height:auto;left:8%;top:64%;filter:drop-shadow(0 15px 16px #0008);transform:rotate(-24deg)}
.moment-flag{width:45%;height:auto;left:2%;top:42%;filter:drop-shadow(0 14px 18px #0007)}
.moment-goal{width:65%;height:80%;left:17.5%;top:14%;opacity:.65;filter:drop-shadow(0 0 12px #ffe19133)}
.moment-routes{width:100%;height:64%;left:0;top:32%;fill:none;stroke:#eec769;stroke-width:4;opacity:.8}.moment-routes .route-a,.moment-routes .route-b{stroke-dasharray:600;animation:moment-route 1.2s ease-out both}.moment-routes .route-b{stroke:#93bac1;animation-delay:.2s}.moment-routes circle{stroke:#ffda4a;stroke-width:2}.moment-routes .route-hit{stroke:#ffda4a;stroke-width:9;animation:moment-title-in .4s .85s both}
.moment-confetti{position:absolute;inset:0;display:none}.moment-confetti i{position:absolute;left:calc(3% + var(--i)*4.4%);top:-10%;width:5px;height:14px;background:#edd094;opacity:0;animation:moment-confetti var(--fall) var(--delay) ease-out both}.moment-confetti i:nth-child(3n){background:#fff5da;width:3px;height:9px}.moment-confetti i:nth-child(2n){background:#897348}
[data-moment="touchdown"] .moment-ball{display:block;animation:moment-touchdown-ball 1.6s cubic-bezier(.18,.7,.3,1) both}
[data-moment="touchdown"] .moment-copy{top:30%}[data-moment="touchdown"] .moment-heading{font-size:clamp(40px,15cqw,160px)}
[data-moment="touchdown"] .moment-confetti{display:block}
[data-moment="flag"],[data-moment="passInterference"]{--moment-accent:#ffcf35}
[data-moment="flag"] .moment-room,[data-moment="passInterference"] .moment-room{background:radial-gradient(ellipse at 15% 90%,#b9872066,transparent 60%),linear-gradient(145deg,#222114,#070907 70%)}
[data-moment="flag"] .moment-flag{display:block;animation:moment-flag-toss 1.15s cubic-bezier(.2,.7,.25,1) both}
[data-moment="flag"] .moment-copy{left:35%;right:6%;top:31%}[data-moment="flag"] .moment-heading{font-size:clamp(36px,10cqw,92px)}
[data-moment="passInterference"] .moment-routes{display:block;opacity:.4}[data-moment="passInterference"] .moment-flag{display:block;width:23%;left:68%;top:58%;animation:moment-flag-toss 1.2s both}[data-moment="passInterference"] .moment-copy{top:29%}[data-moment="passInterference"] .moment-heading{font-size:clamp(34px,12.5cqw,128px)}
[data-moment="extraPoint"] .moment-goal,[data-moment="fieldGoal"] .moment-goal{display:block;animation:moment-goal-in .9s both}
[data-moment="extraPoint"] .moment-ball,[data-moment="fieldGoal"] .moment-ball{display:block;left:38%;top:70%;animation:moment-kick 1.8s .1s cubic-bezier(.16,.65,.2,1) both}
[data-moment="extraPoint"] .moment-copy,[data-moment="fieldGoal"] .moment-copy{top:32%;animation-delay:1.2s}[data-moment="extraPoint"] .moment-heading,[data-moment="fieldGoal"] .moment-heading{font-size:clamp(38px,12.5cqw,132px)}
.moment-controls{border-block:1px solid #62563c;padding:8px 0 18px;margin:12px 0 20px}.moment-controls h2{margin:8px 0}.moment-controls p{font-size:12px;color:#c2b9a7}.moment-controls .control-grid{gap:8px}.moment-controls .control-grid button{min-height:70px;text-align:left;font-size:16px}.moment-controls .control-grid button[data-action="flag"],.moment-controls .control-grid button[data-action="passInterference"]{background:#ecc344;color:#17130b;border-color:#ffdf71}.moment-controls .control-grid button[data-action="touchdown"]{background:#ceb888;color:#111}.moment-controls .control-grid button b{font-size:11px;margin-top:4px}.moment-controls a{font-size:12px}.moment-controls [data-action="clear"]{width:100%;margin-top:8px}
.moment-preview main{max-width:1100px}.moment-preview .preview-intro{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:6px 0 22px}.preview-intro h1{margin:4px 0 0;font-size:clamp(32px,5vw,60px)}.preview-intro p{max-width:32ch;font-size:13px;color:#c3baa7}.moment-preview .field{height:clamp(365px,54vw,590px)}.preview-actions{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.preview-actions button{font-size:13px;flex:1 1 140px}.preview-actions button[aria-pressed="true"]{background:var(--gold);color:#111}.preview-team{display:flex;align-items:center;gap:10px;font-size:13px}.preview-team select{min-height:44px;padding:8px;background:#211e17;color:#fff1d0;border:1px solid #726345}.preview-note{color:#c3baa7;font-size:12px}
@media(min-width:900px){.viewer main{max-width:1100px}.viewer .field{height:590px}.viewer .scoreboard{padding:8px 10%}.viewer .scoreboard b{font-size:58px}}
@media(max-width:480px){.moment-top{padding:8px 12px;font-size:8px}.moment-top b{font-size:10px}.moment-top .moment-close{font-size:10px;padding:6px}.moment-team{font-size:11px;margin-bottom:12px}.moment-caption{font-size:12px;margin-top:14px}.moment-bottom{left:12px;right:12px;font-size:8px;letter-spacing:.09em}.moment-copy{left:6%;right:6%}[data-moment="flag"] .moment-copy{left:8%;right:8%;top:26%}[data-moment="flag"] .moment-flag{width:42%;top:53%;left:3%}[data-moment="flag"] .moment-heading{font-size:40px}[data-moment="flag"] .moment-caption{margin-left:35%;font-size:11px}[data-moment="passInterference"] .moment-heading{font-size:clamp(32px,12.4cqw,48px)}.moment-preview .preview-intro{display:block}.moment-preview .preview-intro p{max-width:none}}
@keyframes moment-title-in{from{opacity:0;transform:translateY(24px) scale(.94);filter:blur(5px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}
@keyframes moment-light{from{opacity:0;transform:rotate(calc(var(--beam)*-1))}30%{opacity:1}to{opacity:.7;transform:rotate(var(--beam))}}
@keyframes moment-track{from{opacity:0;background-position:0 120px;transform:perspective(300px) rotateX(58deg) translateY(25px)}to{opacity:.8;background-position:0 0;transform:perspective(300px) rotateX(58deg) translateY(0)}}
@keyframes moment-wipe{from{transform:translateX(-70%);opacity:0}to{transform:translateX(0);opacity:1}}
@keyframes moment-touchdown-ball{0%{opacity:0;transform:translate(-220%,-170%) rotate(-300deg) scale(.3)}70%{opacity:1;transform:translate(12%,-10%) rotate(-15deg) scale(1.08)}100%{opacity:1;transform:translate(0,0) rotate(-24deg) scale(1)}}
@keyframes moment-flag-toss{0%{opacity:0;transform:translate(-160%,-180%) rotate(-130deg) scale(.3)}70%{opacity:1;transform:translate(5%,-9%) rotate(8deg)}100%{opacity:1;transform:translate(0,0) rotate(-7deg)}}
@keyframes moment-goal-in{from{opacity:0;transform:scale(1.4) translateY(20%)}to{opacity:.65;transform:scale(1) translateY(0)}}
@keyframes moment-kick{0%{opacity:1;transform:translateY(150%) rotate(-30deg) scale(1.5)}65%{opacity:1;transform:translateY(-205%) rotate(190deg) scale(.3)}100%{opacity:0;transform:translateY(-350%) rotate(340deg) scale(.07)}}
@keyframes moment-route{from{stroke-dashoffset:600}to{stroke-dashoffset:0}}
@keyframes moment-confetti{0%{opacity:0;transform:translateY(0) rotate(0)}10%{opacity:1}100%{opacity:0;transform:translate(var(--drift),620px) rotate(530deg)}}
@keyframes moment-countdown{from{transform:scaleX(1)}to{transform:scaleX(0)}}
@media(prefers-reduced-motion:reduce){.game-theatre *{animation:none!important;transition:none!important;filter:none!important}.moment-light,.moment-confetti,.moment-progress{display:none!important}.moment-copy{opacity:1;transform:none}.moment-ball{opacity:1!important}[data-moment="extraPoint"] .moment-ball,[data-moment="fieldGoal"] .moment-ball{left:43%;top:17%;width:13%;transform:rotate(-24deg)}.moment-goal{opacity:.4}}
