*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Arial,Helvetica,sans-serif}button,a,input,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;border:1px solid #32477d;border-radius:10px;background:#19336d;color:#fff;padding:13px 20px;min-height:48px;font-weight:700}button.secondary{background:#fff;color:#173263}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #dba74e;outline-offset:3px}a{color:inherit;text-decoration:none}label{display:grid;gap:8px}input,select{width:100%;padding:12px;border:1px solid #bac3d8;border-radius:8px;background:#fff;color:#14244b;min-height:48px}h1,h2,p{margin-top:0}[hidden]{display:none!important}
.fam-host{background:#f5f4f1;color:#17213a}.console-header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 3vw;background:white;border-bottom:1px solid #dde0e8}.fam-host main{width:min(1500px,96%);margin:24px auto}.console-toolbar,.action-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}#notice{color:#aa2929;min-height:20px}.console-card{padding:28px;background:#fff;border:1px solid #dde0e8;border-radius:18px;margin-bottom:18px}.console-card h1{font-size:clamp(24px,2.4vw,38px);line-height:1.2}.eyebrow{font-size:13px;letter-spacing:.13em;color:#697595;font-weight:bold}.roster-preview,.host-teams,.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.roster-preview{margin:24px 0}.roster-preview p{margin-bottom:9px}.score-strip{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:22px}.score-strip>div{display:grid;grid-template-columns:1fr auto;gap:4px 18px;align-items:center;border:1px solid #d5dcef;border-radius:14px;padding:15px 22px;background:#fff}.score-strip span{font-weight:700;font-size:clamp(16px,1.9vw,25px)}.score-strip strong{font:700 clamp(30px,3vw,44px)/1 monospace}.strikes{grid-column:1/-1;display:flex;gap:12px;line-height:1}.strikes b{font-size:26px;color:#d9deea}.strikes b.miss{color:#d52e41}.answer-controls{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:22px 0}.answer-controls button{text-align:left}.console-pot{font-size:22px}.console-pot strong{font:700 36px monospace}.team-console{border:1px solid #dce1ed;border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:8px}.team-console h2{margin:0;font-size:21px}.team-console p{min-height:18px;margin:0;font-size:14px;color:#63708d}.host-teams{margin-bottom:20px}.shortcuts{font-size:13px;color:#68748a;line-height:1.8;padding:14px}.final-inputs{display:grid;gap:20px;margin:20px 0}.final-inputs label{font-weight:700}.final-inputs small{font-weight:400;color:#6b7590}.other-answer{display:flex;gap:10px}.other-answer input{flex:1;min-width:0}.fam-host .timer{font:700 60px monospace;color:#19336d}.timer.expired{color:#ff4949!important}.fam-host .answer-row{background:#172c59;color:#f8d17d;font-size:16px;min-height:58px}.fam-host .final-column h2{color:#17213a}.fam-host .final-board{margin:20px 0}
.fam-screen{background:#071331;color:#f9d890;overflow:hidden;height:100dvh;background-image:radial-gradient(ellipse at 50% 0,#203e82 0,transparent 65%)}#stage{height:100%;padding:2.5vh 3.5vw;display:flex;flex-direction:column;justify-content:center;gap:0}.fam-screen .score-strip{flex:none;margin-bottom:2vh;gap:3vw}.fam-screen .score-strip>div{background:#0b193b;border:2px solid #c49c4f;border-radius:14px;padding:1.1vh 1.8vw;box-shadow:0 0 0 3px #13274f,0 0 24px #101f45}.fam-screen .score-strip span{font-size:clamp(17px,2.25vw,35px);letter-spacing:.025em}.fam-screen .score-strip strong{font-size:clamp(34px,4vw,66px);color:#ffe9b9}.fam-screen .strikes b{font-size:3vw;color:#40506c}.fam-screen .strikes b.miss{color:#ff4551;text-shadow:0 0 14px #e72040}.intro-title{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;text-align:center;animation:arrive .6s ease-out}.intro-title p{font-size:clamp(22px,2.8vw,48px);letter-spacing:.15em;color:#c6d7fa;margin-bottom:3vh}.fam-logo{font-family:Georgia,serif;font-style:italic;font-weight:700;font-size:clamp(90px,13vw,230px);color:#ffe6a8;line-height:1.1;text-shadow:0 5px #6c481e,0 0 60px #c49b5040;margin:0 0 5vh}.team-name{font-size:clamp(55px,7vw,120px);line-height:1.08;max-width:1100px;margin:3vh 0 5vh;text-wrap:balance}.intro-rosters{height:100%;display:grid;grid-template-columns:1fr 1fr;gap:4vw;align-content:center;animation:arrive .5s ease-out}.intro-rosters>div{min-width:0;text-align:center}.intro-rosters h2{font-size:clamp(25px,3vw,48px);line-height:1.1;margin-bottom:4vh;min-height:2.2em;text-wrap:balance}.intro-photos{display:flex;gap:2vw;justify-content:center}.portrait{overflow:hidden;position:relative;border:2px solid #d4ab61;border-radius:18px;background:#112751;width:100%;max-width:26vw;aspect-ratio:1;flex:1;box-shadow:0 10px 40px #0005}.portrait img{width:100%;height:100%;object-fit:cover;display:block}.portrait-caption{position:absolute;bottom:0;left:0;right:0;padding:3.4vh 10px 1.5vh;background:linear-gradient(transparent,#041027ee);font-size:clamp(17px,2.1vw,36px);font-weight:700;color:white;text-align:center}.portrait-caption span{display:block;font-size:.55em;letter-spacing:.12em;text-transform:uppercase;color:#f4cf81;margin-top:5px}.intro-rosters.complete .intro-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.intro-rosters.complete .portrait{max-width:initial;min-width:0}.intro-rosters.complete h2{margin-bottom:2vh}.intro-rosters.complete .portrait-caption{font-size:clamp(12px,1.3vw,24px);padding:25px 4px 7px}.duel-stage{flex:1;min-height:0;text-align:center;display:flex;flex-direction:column;justify-content:center}.round-title{font-size:clamp(16px,1.8vw,32px);letter-spacing:.13em;margin:0 0 1.8vh;color:#a8bff0;font-weight:700}.duel-stage h1{font-size:clamp(28px,3.2vw,60px);margin-bottom:2.5vh}.duel-pair{display:flex;justify-content:center;align-items:center;gap:3vw}.duel-person{display:flex;flex-direction:column;align-items:center;gap:1vh;width:29vw}.duel-person .portrait{max-width:28vw;max-height:49vh;flex:none;width:min(28vw,49vh)}.duel-person>strong{font-size:clamp(18px,2.2vw,36px);min-height:1.2em}.duel-person.winner .portrait{border:4px solid #71ef9b;box-shadow:0 0 40px #41be5860}.duel-person.winner>strong{color:#91ffb4}.versus{font-size:4vw;font-weight:700;color:#5f7aac}.stage-hint{margin:1vh 0 0;color:#dce8ff;font-size:clamp(18px,2vw,32px)}.board-stage{flex:1;min-height:0;display:flex;flex-direction:column;text-align:center}.board-stage h1{font-size:clamp(22px,2.35vw,42px);line-height:1.15;margin-bottom:2vh;text-wrap:balance}.answer-board{max-width:1240px;width:100%;margin:auto;display:grid;gap:1vh;border:2px solid #d0a251;border-radius:16px;padding:1.5vh 1vw;background:#060f26;box-shadow:0 0 0 5px #142344}.answer-row{display:grid;grid-template-columns:clamp(30px,4vw,70px) 1fr clamp(45px,5vw,95px);align-items:center;gap:1vw;border:1px solid #607099;background:#112348;border-radius:5px;min-height:7vh;padding:.6vh 1vw;font:700 clamp(19px,2.45vw,40px)/1.1 monospace;letter-spacing:.02em;text-align:left;color:#38598d}.answer-row.revealed{color:#ffdc88;background:#152b53;animation:answer .25s ease-out}.answer-row strong{text-align:right;color:#ffdf9a}.answer-number{text-align:center;border-right:1px solid #566a91;color:#efd093}.pot-display{display:flex;justify-content:center;align-items:center;gap:24px;margin:2vh 0 0;font-size:clamp(20px,2.4vw,44px);min-height:6vh}.pot-display strong{font:700 clamp(35px,4.5vw,80px)/1 monospace}.final-player{display:flex;justify-content:center;align-items:center;gap:5vw}.final-person{text-align:center}.final-person .portrait{max-width:34vw;max-height:62vh;flex:none;width:min(34vw,62vh)}.final-person h1{font-size:4vw}.final-person p{font-size:2vw}.fam-screen .timer{font:700 clamp(90px,14vw,240px)/1 monospace;color:#ffdf9a;text-shadow:0 0 30px #bc813f40}.final-stage{text-align:center}.final-stage h1{font-size:clamp(25px,3vw,50px);margin-bottom:3vh}.final-board{display:grid;grid-template-columns:1fr 1fr;gap:2vw}.final-column{min-width:0;display:grid;gap:1vh}.final-column h2{font-size:clamp(22px,2.7vw,40px);margin-bottom:1vh}.final-board .answer-row{font-size:clamp(16px,1.7vw,30px);min-height:7.5vh;grid-template-columns:2.8vw 1fr 3.8vw}.final-total{font:700 clamp(60px,8vw,130px)/1 monospace;margin-top:4vh;color:#ffdc88}.final-total span{font-size:.4em;color:#96aed7}.screen-tools{position:fixed;bottom:8px;right:12px;display:flex;gap:8px;opacity:.2;transition:opacity .2s}.screen-tools:hover,.screen-tools:focus-within{opacity:1}.screen-tools button{padding:6px 10px;min-height:32px;font-size:11px;background:#122a57;color:#9bb6df}.fam-screen #notice{position:fixed;bottom:0;left:18px;font-size:13px;color:#ffa9a9}.stage-message{text-align:center;font-size:32px}.fam-screen .complete .portrait img{object-position:center}.fam-screen .portrait img:not([src]){visibility:hidden}
@keyframes arrive{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}@keyframes answer{from{opacity:.3;transform:scale(.985)}to{opacity:1;transform:none}}
@media(max-width:700px){.fam-screen .fam-logo{font-size:clamp(40px,16vw,64px);max-width:100%}.fam-screen .team-name{font-size:clamp(30px,9vw,52px)}.fam-screen .intro-title{min-width:0}.fam-screen .score-strip{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.fam-screen .score-strip>div{min-width:0}.fam-screen .score-strip span{overflow-wrap:anywhere}.console-header{padding:14px;flex-wrap:wrap;font-size:13px}.fam-host main{width:94%;margin:16px auto}.console-toolbar button{flex:1;padding:10px;font-size:12px}.console-card{padding:18px}.roster-preview,.host-teams,.field-grid,.answer-controls{grid-template-columns:1fr}.score-strip{gap:10px}.score-strip>div{padding:12px;gap:8px}.score-strip span{font-size:14px}.score-strip strong{font-size:30px}.fam-host .final-board{grid-template-columns:1fr}.fam-host .final-board .answer-row{grid-template-columns:24px 1fr 40px;font-size:14px}.other-answer{flex-direction:column}.fam-screen .portrait-caption{font-size:15px}.fam-screen .intro-rosters h2{font-size:24px}.fam-screen .answer-row{font-size:16px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

textarea{font:inherit;color:#14244b;background:#fff;border:1px solid #bac3d8;border-radius:12px;max-width:100%;min-width:0;width:100%;padding:16px;resize:vertical;min-height:280px;font-size:24px;line-height:1.65}textarea:focus-visible{outline:3px solid #dba74e;outline-offset:3px}.final-capture-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:28px;margin:24px 0}.final-capture-grid label{font-weight:700;margin-bottom:10px}.final-question-list{padding-left:24px;font-size:18px;line-height:1.5}.final-question-list li{margin-bottom:14px}.note-help{font-size:13px;line-height:1.5;color:#68748a;margin:10px 0}.transcript-answer{font-size:21px;font-weight:700;color:#19336d;padding:10px 12px;background:#f3f5fa;border-radius:8px;overflow-wrap:anywhere}.final-board.first-only{grid-template-columns:minmax(0,1fr);max-width:850px;margin:0 auto}.final-live-board{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:3vw;align-items:center}.final-live-board .final-board{width:100%}.final-live-board .timer{font-size:clamp(60px,10vw,170px)}.fam-screen .final-board .answer-row>span:nth-child(2){overflow-wrap:anywhere;min-width:0}.fam-screen .final-board.first-only .answer-row{font-size:clamp(18px,2.3vw,36px);grid-template-columns:4vw minmax(0,1fr) 6vw}.fam-screen .final-stage .final-total{margin-top:2.5vh}
@media(max-width:700px){.final-capture-grid{grid-template-columns:minmax(0,1fr);gap:16px}.final-question-list{font-size:16px}textarea{font-size:21px;min-height:260px}.final-inputs label{min-width:0}.final-inputs select{min-width:0}.final-live-board{grid-template-columns:minmax(0,1fr)}.final-live-board .timer{font-size:70px}.transcript-answer{font-size:18px}}
.previous-answer{display:block;font-size:14px;line-height:1.4;color:#63708d;margin-top:6px}
