:root{--paper:#f3ebd3;--panel:#e3ddbd;--ink:#202d2b;--muted:#78836b;--green:#406348;--blue:#3c79a5;--red:#c25749;--gold:#e9bb59;--border:#c7c9a6}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font:12px/1.5 Courier New,monospace}button,input,summary{font:inherit}button{cursor:pointer;color:inherit;border:0;background:none;transition:background .12s}button:focus-visible,summary:focus-visible{outline:3px solid var(--red);outline-offset:3px}button:hover{background:#e3ddbd}button:disabled{opacity:.4;cursor:default}button[aria-pressed=true]{color:var(--green)}.page{max-width:1600px;margin:0 auto;padding:0 42px}.masthead{display:flex;justify-content:space-between;align-items:center;padding:29px 0 25px;border-bottom:2px solid var(--ink)}.edition{font-size:10px;letter-spacing:2px;font-weight:700;color:var(--green)}h1{font-family:Impact,Arial Narrow,sans-serif;letter-spacing:-1.8px;font-size:51px;line-height:1;margin:8px 0 0;font-weight:900}h1 em{font-style:normal;color:var(--green)}.title-dot{color:var(--red)}.mast-note{display:flex;align-items:center;gap:16px;font-weight:700;font-size:10px;letter-spacing:1px;line-height:1.8}.mast-note span:not(.tiny-field){font-weight:400;letter-spacing:0;color:#52604e}.tiny-field{font-size:39px;color:var(--green);line-height:1}.scoreboard{display:grid;grid-template-columns:1fr 200px 1fr;align-items:center;padding:21px 24px;border-bottom:2px solid var(--ink);gap:15px}.club{display:flex;align-items:center;gap:17px}.club h2{font-family:Georgia,serif;font-weight:700;font-size:23px;line-height:1.2;margin:5px 0 4px;letter-spacing:-.7px}.club-tag{font-size:9px;letter-spacing:.7px;color:#52604e}.ember{text-align:right;justify-content:flex-end}.crest{width:46px;height:54px;border:2px solid var(--ink);clip-path:polygon(0 0,100% 0,100% 80%,50% 100%,0 80%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;line-height:1;box-shadow:inset 0 0 0 3px var(--paper);flex-shrink:0}.crest span{font:700 25px Georgia,serif}.crest small{font-size:20px;margin-top:-3px}.harbor-crest{background:var(--blue);color:var(--gold)}.ember-crest{background:var(--red);color:var(--paper)}.team-legend{display:flex;gap:5px;align-items:center;font-size:8px;color:#52604e;letter-spacing:1px}.ember .team-legend{justify-content:flex-end}.team-legend i{width:6px;height:6px;background:var(--blue)}.ember .team-legend i{background:var(--red)}.score-core{text-align:center}.score-numbers{font-size:45px;font-weight:700;line-height:1;letter-spacing:6px;display:flex;justify-content:center;gap:13px}.score-dash{font-size:30px;color:#a1aa8b;line-height:40px}.clock-line{display:flex;align-items:center;justify-content:center;gap:8px;font-size:9px;margin-top:8px;white-space:nowrap}.clock-line b{font-size:12px}.live-dot{display:inline-block;width:6px;height:6px;background:#537950;flex-shrink:0;box-shadow:0 0 0 2px #53795020}.clock-line #half{color:#52604e;font-size:9px}.experience{display:grid;grid-template-columns:minmax(0,1fr) 265px;border-bottom:2px solid var(--ink)}.viewer{min-width:0;border-right:2px solid var(--ink)}.scene-wrap{position:relative;height:720px;overflow:hidden;background:#e3ddbd}.scene-wrap:after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 55px #8c654b12}#scene{position:absolute;inset:0;overflow:hidden;display:flex;align-items:center;justify-content:center}canvas{display:block;image-rendering:pixelated;flex-shrink:0}.view-stamp{position:absolute;top:22px;left:23px;display:flex;gap:8px;align-items:center;font-size:9px;font-weight:700;letter-spacing:.6px;color:#34423b;background:#f3ebd3e8;padding:6px 8px;pointer-events:none}.stamp-slash{opacity:.35}#condition-label{font-weight:400}.scene-caption{position:absolute;bottom:19px;left:23px;right:22px;display:flex;justify-content:space-between;align-items:end;pointer-events:none;color:#34423b}.scene-caption>span:first-child{font:italic 13px Georgia,serif;background:#f3ebd3da;padding:3px 7px}.compass{font-size:13px;text-align:center;line-height:1.1;background:var(--paper);padding:6px}.camera-bar{border-top:2px solid var(--ink);display:flex;align-items:center;gap:14px;padding:10px 16px;min-height:65px}.control-label{font-size:9px;font-weight:700;letter-spacing:1px;white-space:nowrap;color:#52604e}.camera-options{display:flex;align-items:center;gap:3px;flex:1}.camera{font-size:9px;font-weight:700;white-space:nowrap;min-height:44px;padding:0 10px;border:2px solid transparent}.camera span{font-size:8px;color:var(--muted);margin-right:4px}.camera.active{border-color:var(--ink);background:var(--green);color:var(--paper);box-shadow:2px 2px 0 var(--ink)}.camera.active span{color:#c7c9a6}.rotate-controls{display:flex;gap:3px}.rotate-controls button{font-size:25px;line-height:1;width:36px;min-height:44px;border:1px solid var(--border)}.environment-bar{border-top:1px solid var(--border);min-height:52px;padding:0 15px;display:flex;align-items:center;justify-content:space-between;gap:5px}.environment-buttons{display:flex;gap:9px}.environment-buttons button{display:flex;align-items:center;gap:6px;font-size:16px;min-height:44px;white-space:nowrap;padding:0 5px}.environment-buttons button span{font-size:9px;font-weight:700;letter-spacing:.4px}.environment-buttons button[aria-pressed=true]{background:#e3ddbd}.local-note{font-size:7px;color:#78836b;letter-spacing:.4px}.sidebar{padding:22px 22px 0;background:#e3ddbd30}.sidebar-heading{display:flex;align-items:center;gap:7px;border-bottom:1px solid var(--border);padding-bottom:16px}.sidebar-heading h3{margin:0;font-size:10px;letter-spacing:1px}.local-badge{margin-left:auto;font-size:8px;color:#78836b;border:1px solid var(--border);padding:1px 4px}.eyebrow{font-size:8px;font-weight:700;letter-spacing:1.2px;color:#78836b;margin:0 0 10px}.commentary{padding-top:22px}#headline{font:20px/1.3 Georgia,serif;margin:0 0 19px;min-height:52px}.event-feed{min-height:151px;max-height:180px;overflow:hidden;display:flex;flex-direction:column;gap:10px}.event{display:grid;grid-template-columns:33px 1fr;gap:8px;font-size:10px;line-height:1.4}.event time{color:#78836b;font-size:9px}.event.goal{font-weight:700;color:var(--red)}.event:first-child span{color:var(--ink)}details>summary{list-style:none;cursor:pointer}details>summary::-webkit-details-marker{display:none}.stats-details{border-top:1px solid var(--border);margin-top:22px}.stats-details summary{display:flex;justify-content:space-between;font-size:9px;font-weight:700;letter-spacing:.7px;min-height:48px;align-items:center}.stats-details summary span{font-size:15px;color:var(--muted)}.stat-head,.stat-row{display:grid;grid-template-columns:45px 1fr 45px;align-items:center;text-align:center}.stat-head b:first-child{color:var(--blue)}.stat-head b:last-child{color:var(--red)}.stat-head{font-size:9px;padding:3px 0 9px}.stat-row{font-size:10px;margin:9px 0}.stat-row span{font-size:8px;color:#52604e}.possession-track{height:5px;background:var(--red);margin:0 8px}.possession-track i{display:block;height:100%;width:50%;background:var(--blue);border-right:3px solid var(--paper)}.spectator-note{border-top:1px solid var(--border);display:flex;gap:12px;align-items:flex-start;margin-top:20px;padding:16px 0}.spectator-note>span{font-size:22px;color:#9f813c}.spectator-note p{font-size:9px;color:#52604e;margin:0;line-height:1.8}.drawing{border-bottom:1px solid var(--border)}.drawing summary{display:flex;align-items:center;justify-content:space-between;min-height:58px;font-size:9px;letter-spacing:.8px;font-weight:700}.drawing-summary{font:italic 12px Georgia,serif;color:#78836b;letter-spacing:0}.drawing-summary b{font:20px monospace;color:var(--green);margin-left:20px}.drawing-content{padding:0 0 23px;max-width:850px}.drawing-content>p{font-size:11px;color:#52604e}.drawing-toggles{display:flex;gap:20px;margin:20px 0}.drawing-toggles label{font-size:9px;display:flex;align-items:center;gap:6px;min-height:44px;cursor:pointer}.drawing-toggles input{accent-color:var(--green);width:15px;height:15px}.swatches{display:grid;grid-template-columns:repeat(32,1fr);gap:3px;max-width:620px}.swatches i{aspect-ratio:1;border:1px solid #202d2b20}.technical-note{font-size:9px!important}footer{font-size:8px;font-weight:700;letter-spacing:.7px;color:#78836b;display:flex;justify-content:space-between;padding:19px 0 25px}footer b{font-weight:400}footer i{font-style:normal;padding:0 12px;color:#9f813c}#loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--panel);font-size:12px;gap:12px;z-index:5}.loading-ball{animation:spin 1.5s linear infinite;font-size:20px;color:var(--green)}@keyframes spin{to{transform:rotate(360deg)}}#final-panel{padding:18px 0;border-top:1px solid var(--border);margin-top:16px}#final-result{font:26px Georgia,serif;margin:0}#final-caption,#key-events{font-size:10px;color:#52604e}#replay{width:100%;min-height:44px;margin-top:14px;background:var(--green);color:var(--paper);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);font-size:9px;font-weight:700}#replay:hover{background:#537950}[hidden]{display:none!important}@media (min-width:1400px){.experience{grid-template-columns:minmax(0,1fr) 290px}.sidebar{padding:25px 25px 0}.camera{font-size:10px}.camera-bar{gap:20px}.camera-options{gap:8px}}@media (max-width:1100px){.page{padding:0 24px}.mast-note{display:none}.camera-bar{gap:6px;padding:8px}.control-label{display:none}.camera{padding:0 6px;font-size:8px}.camera span,.local-note{display:none}.environment-buttons{gap:8px}.sidebar{padding:20px 17px 0}.club-tag{font-size:8px}.club h2{font-size:20px}.scoreboard{padding:20px 12px}.experience{grid-template-columns:minmax(0,1fr) 230px}.scoreboard{grid-template-columns:1fr 150px 1fr}.scene-wrap{height:600px}}@media (max-width:760px){.page{padding:0 16px}.masthead{padding:19px 0 17px}.edition{font-size:8px;letter-spacing:1.5px}h1{font-size:38px;letter-spacing:-1.3px}.scoreboard{grid-template-columns:1fr 94px 1fr;padding:16px 0;gap:6px}.club{gap:7px}.crest{width:30px;height:37px}.crest span{font-size:19px}.crest small{font-size:13px}.club-tag{display:none}.club h2{font-size:16px;letter-spacing:-.3px;margin:0 0 6px}.team-legend{font-size:7px}.score-numbers{font-size:32px;gap:5px;letter-spacing:0}.score-dash{font-size:22px;line-height:29px}.clock-line{gap:5px;flex-wrap:wrap;margin-top:4px;font-size:8px}.clock-line b{font-size:10px}.clock-line #half{font-size:7px}.experience{display:flex;flex-direction:column}.viewer{border-right:0}.scene-wrap{height:440px}.view-stamp{left:12px;top:12px;font-size:8px;gap:6px}.scene-caption{bottom:13px;left:12px;right:12px}.scene-caption>span:first-child{font-size:11px}.camera-bar{flex-wrap:wrap;padding:10px 0;gap:8px;justify-content:space-between}.camera-options{flex:1;display:grid;grid-template-columns:repeat(3,1fr);gap:3px}.camera{font-size:8px;padding:0 4px}.camera span{display:none}.rotate-controls{width:100%;justify-content:center;gap:8px}.rotate-controls button{width:64px}.rotate-controls:before{content:"TURN THE ISLAND";font-size:8px;align-self:center;color:#78836b;margin-right:auto;letter-spacing:1px}.environment-bar{padding:0;justify-content:center}.environment-buttons{width:100%;justify-content:space-between;gap:0}.environment-buttons button{min-width:44px;font-size:15px;gap:4px}.environment-buttons button span{font-size:8px}.sidebar{padding:18px 0 0;border-top:2px solid var(--ink)}.commentary{padding-top:16px}#headline{min-height:0;font-size:21px;margin-bottom:15px}.event-feed{min-height:0;max-height:110px;gap:8px}.event{font-size:10px}.stats-details{margin-top:16px}.stats{padding:0 12px 8px}.stat-row{margin:11px 0}.spectator-note{margin-top:9px}.drawing summary{font-size:8px}.drawing-summary{font-size:10px;max-width:170px;text-align:right;line-height:1.4}.drawing-summary b{margin-left:5px}.drawing-toggles{flex-wrap:wrap;gap:5px 18px;margin:10px 0}.swatches{grid-template-columns:repeat(16,1fr)}footer{gap:12px;font-size:7px;flex-direction:column;padding:16px 0}.spectator-note p br:last-child{display:none}}@media (max-width:400px){h1{font-size:32px}.club h2{font-size:13px}.scene-wrap{height:396px}.crest{width:26px;height:32px}.club{gap:5px}.scoreboard{grid-template-columns:1fr 84px 1fr}.view-stamp,.environment-buttons button span{font-size:7px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto}.loading-ball{animation:none}}.knobs{position:fixed;top:0;right:0;bottom:0;width:min(560px,100vw);background:var(--paper);border-left:2px solid var(--ink);box-shadow:-4px 0 0 var(--ink);overflow-y:auto;padding:18px 22px 40px;z-index:20}.knobs-header{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid var(--ink);padding-bottom:12px}.knobs-header h3{font:700 24px Georgia,serif;margin:2px 0 0}.knobs-close{font-size:18px;min-width:44px;min-height:44px;border:2px solid var(--ink)}.knobs-intro{font-size:10px;color:#52604e;margin:12px 0}.knobs-pending{font-size:10px;font-weight:700;color:var(--red);margin-bottom:8px}.knobs-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0}.knobs-actions button,.knobs-import{font-size:9px;font-weight:700;letter-spacing:.5px;min-height:44px;padding:0 12px;border:2px solid var(--ink);background:var(--paper);display:inline-flex;align-items:center;cursor:pointer}.knobs-actions button.primary{background:var(--green);color:var(--paper);box-shadow:2px 2px 0 var(--ink)}.knobs-actions.secondary button,.knobs-import{border-width:1px;border-color:var(--border)}.knobs-import input{display:none}.knobs-n{font-size:10px;display:inline-flex;align-items:center;gap:4px}.knobs-n input{width:56px;min-height:44px;border:1px solid var(--border);background:var(--paper);font:inherit;padding:0 6px}.knobs-results{margin:10px 0 6px}.knobs-progress,.knobs-score{font-size:10px}.knobs-score b{font-size:16px;color:var(--green)}.knobs-table{width:100%;border-collapse:collapse;font-size:10px;margin-top:6px}.knobs-table th{text-align:left;font-size:8px;letter-spacing:.6px;color:#78836b;border-bottom:1px solid var(--ink);padding:4px 3px}.knobs-table td{padding:4px 3px;border-bottom:1px dotted var(--border)}.knobs-table td:nth-child(3),.knobs-table td:nth-child(4){text-align:right;white-space:nowrap}.knobs-table tr.ok td:first-child{color:var(--green);font-weight:700}.knobs-table tr.off td:first-child{color:var(--red);font-weight:700}.knobs-table tr.info{color:#78836b}.knob-group{border-top:1px solid var(--ink);margin-top:10px}.knob-group summary{min-height:48px;display:flex;flex-direction:column;justify-content:center;font-size:10px;font-weight:700;letter-spacing:.8px}.knob-group summary span{font-weight:400;letter-spacing:0;font-size:9px;color:#78836b}.knob{padding:8px 0 10px;border-bottom:1px dotted var(--border)}.knob-head{display:flex;align-items:center;gap:8px}.knob-head label{flex:1;font-size:10px;font-weight:700}.knob-value{font-size:10px;font-variant-numeric:tabular-nums;color:var(--green);min-width:70px;text-align:right}.knob-reset{min-width:32px;min-height:32px;border:1px solid var(--border);font-size:14px}.knob input[type=range]{width:100%;accent-color:var(--green);min-height:32px}.knob-help{font-size:9px;color:#78836b;margin:0}@media (max-width:760px){.knobs{padding:14px 14px 40px;box-shadow:none;border-left:0}}.rule-notice{position:absolute;z-index:3;top:57px;left:12px;right:12px;margin:auto;width:fit-content;max-width:calc(100% - 24px);padding:8px 12px;background:var(--paper);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);font-size:11px;font-weight:700;text-align:center;pointer-events:none}.rule-notice.yellow{border-left:12px solid var(--gold)}.rule-notice.red{border-left:12px solid var(--red)}#added-time{background:var(--green);color:var(--paper);padding:1px 4px}.event.yellow span:before,.event.red span:before{content:"";display:inline-block;width:7px;height:10px;margin-right:5px;background:var(--gold)}.event.red span:before{background:var(--red)}.tea-views{display:flex;gap:5px;align-items:center;padding:8px 12px;border-top:1px solid var(--border);flex-wrap:wrap}.tea-views span{font-size:8px;margin-right:auto;letter-spacing:1px}.tea-views button{font-size:9px;min-height:44px;padding:0 10px;border:1px solid var(--border)}.tea-views button[aria-pressed=true]{background:var(--green);color:var(--paper)}@media (max-width:760px){.tea-views{padding:6px 0}.tea-views span{width:100%}.tea-views button{flex:1;padding:0 5px}}
