:root{--green:#41ff72;--dim:#1c8d3e;--black:#010603;--panel:#031109}.shell{min-height:100svh;background:radial-gradient(circle at 50% 35%,#092316 0,#020a05 45%,#000 100%);padding:24px;display:grid;place-items:center;overflow:hidden;position:relative}.shell:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse,transparent 52%,rgba(0,0,0,.78) 100%);z-index:5}.scanlines{position:fixed;inset:0;pointer-events:none;z-index:1000;background:repeating-linear-gradient(to bottom,rgba(0,0,0,.24) 0,rgba(0,0,0,.24) 1px,transparent 1px,transparent 4px);mix-blend-mode:normal}.console{width:min(100%,610px);position:relative;z-index:2;filter:drop-shadow(0 0 18px rgba(65,255,114,.11))}header{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:1px solid rgba(65,255,114,.5);padding-bottom:13px;margin-bottom:12px}h1{font-size:clamp(28px,6vw,42px);line-height:.8;margin:0;letter-spacing:-.08em;text-shadow:0 0 9px rgba(65,255,114,.65)}h1 span{opacity:.38}header p{font-size:10px;letter-spacing:.2em;margin:9px 0 0;opacity:.66}.config{background:rgba(65,255,114,.04);border:1px solid rgba(65,255,114,.55);padding:8px 13px;font-size:9px;line-height:1.5;letter-spacing:.12em;cursor:pointer}.config:hover,.new:hover{background:rgba(65,255,114,.13)}.status{border:1px solid rgba(65,255,114,.33);background:rgba(0,0,0,.68);display:flex;align-items:center;gap:10px;padding:10px 12px;font-size:10px;letter-spacing:.06em;margin-bottom:14px}.status b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status>span:last-child{margin-left:auto;opacity:.7}.lamp{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 8px var(--green);flex:0 0 auto}.lamp.busy{background:#ff9d20;box-shadow:0 0 8px #ff9d20;animation:blink .7s steps(2) infinite}@keyframes blink{50%{opacity:.25}}.board-frame{padding:7px;border:1px solid rgba(65,255,114,.7);background:#010402;box-shadow:0 0 24px rgba(65,255,114,.12),inset 0 0 18px #000}.board{display:grid;grid-template-columns:repeat(8,1fr);aspect-ratio:1;border:1px solid var(--green)}.square{position:relative;border:0;padding:0;display:grid;place-items:center;cursor:pointer;min-width:0}.square.dark{background:#010503}.square.light{background:#0c2817}.square.last{box-shadow:inset 0 0 0 100px rgba(65,255,114,.14)}.square.selected{outline:3px solid var(--green);outline-offset:-4px;z-index:2}.piece{font-family:Georgia,"Times New Roman",serif;font-size:clamp(31px,8vw,54px);line-height:1;transform:translateY(-2px);text-shadow:0 0 6px rgba(65,255,114,.7);z-index:1}.piece.white{color:#6aff91}.piece.black{color:#248b42;text-shadow:0 0 4px rgba(65,255,114,.35)}.target,.capture{position:absolute;width:11px;height:11px;border-radius:50%;background:var(--green);opacity:.58}.capture{width:70%;height:70%;background:rgba(65,255,114,.12);border:2px solid var(--green)}.square small{position:absolute;left:3px;bottom:2px;font-size:7px;opacity:.42}.readout,footer{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.08em;margin:11px 1px;color:#2fc45b}.new{width:100%;border:1px solid rgba(65,255,114,.68);background:rgba(65,255,114,.06);padding:12px;margin-top:2px;font-size:13px;font-weight:700;letter-spacing:.12em;cursor:pointer}footer{border-top:1px solid rgba(65,255,114,.22);padding-top:10px;font-size:8px;opacity:.55}.modal{position:fixed;inset:0;z-index:20;background:rgba(0,5,2,.88);display:grid;place-items:center;padding:20px}.panel{width:min(100%,520px);background:#031109;border:1px solid var(--green);box-shadow:0 0 40px rgba(65,255,114,.16);padding:30px;position:relative}.close{position:absolute;right:12px;top:8px;border:0;background:none;font-size:28px;cursor:pointer}.eyebrow{font-size:10px;letter-spacing:.2em;opacity:.55;margin:0 0 30px}.panel h2{font-size:13px;letter-spacing:.1em;margin:24px 0 12px}.level{display:flex;justify-content:space-between;align-items:center;font-size:9px}.level strong{font-size:15px}input[type=range]{width:100%;accent-color:var(--green);margin:15px 0}.sides{display:grid;grid-template-columns:1fr 1fr}.sides button,.initialize{border:1px solid rgba(65,255,114,.4);background:#010603;padding:12px;font-size:10px;cursor:pointer}.sides .active{color:#010603;background:var(--green)}.hint{font-size:9px;line-height:1.7;opacity:.55;margin:22px 0}.initialize{width:100%;border-color:var(--green);font-weight:bold;letter-spacing:.1em}.initialize:hover{background:rgba(65,255,114,.12)}@media(max-width:600px){.shell{padding:14px}.panel{padding:24px 18px}.piece{font-size:11.2vw}footer span:nth-child(2){display:none}}@media(max-height:780px) and (min-width:600px){.console{width:min(76vh,590px)}header{margin-bottom:8px}.status{margin-bottom:9px;padding:7px 10px}.new{padding:8px}footer{display:none}}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#010603;color:#41ff72}body{font-family:"Courier New",monospace}button,input,select,textarea{font:inherit;color:inherit}button{-webkit-appearance:none;appearance:none;-webkit-text-fill-color:currentColor}button:disabled{-webkit-text-fill-color:currentColor}.hidden{display:none!important}
.board{grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(8,minmax(0,1fr));width:100%;aspect-ratio:1/1}.square{width:100%;height:100%;min-width:0;min-height:0;overflow:hidden}.piece{display:block;max-width:100%;max-height:100%;pointer-events:none}.target,.capture,.square small{pointer-events:none}
.square.dark{background:#010503!important}.square.light{background:#0c2817!important}.square.last{box-shadow:inset 0 0 0 2px rgba(65,255,114,.3)}.square.selected{box-shadow:inset 0 0 0 3px var(--green);outline:0}.capture{width:72%;height:72%;background:transparent;border:2px dashed rgba(65,255,114,.8)}
.shell.verdict-pause .board-frame{pointer-events:none}.shell.verdict-pause .board-frame[data-verdict="win"]{border-color:#8dffa8;animation:verdictWin 2.6s steps(2,end) both}.shell.verdict-pause .board-frame[data-verdict="loss"]{border-color:#ff7951;animation:verdictLoss 2.6s steps(2,end) both}.shell.verdict-pause .board-frame[data-verdict="draw"]{border-color:#d8c866;animation:verdictDraw 2.6s steps(2,end) both}.shell.verdict-pause .board-frame[data-verdict="win"] .square.last{box-shadow:inset 0 0 0 3px #78ff99,inset 0 0 18px rgba(65,255,114,.35)}.shell.verdict-pause .board-frame[data-verdict="loss"] .square.last{box-shadow:inset 0 0 0 3px #ff7951,inset 0 0 18px rgba(255,78,40,.3)}.shell.verdict-pause .board-frame[data-verdict="draw"] .square.last{box-shadow:inset 0 0 0 3px #d8c866,inset 0 0 18px rgba(216,200,102,.28)}@keyframes verdictWin{0%,100%{box-shadow:0 0 8px rgba(65,255,114,.16),inset 0 0 18px #000}16%,48%,80%{box-shadow:0 0 34px rgba(65,255,114,.78),0 0 8px #41ff72,inset 0 0 24px rgba(65,255,114,.13)}32%,64%,92%{box-shadow:0 0 12px rgba(65,255,114,.22),inset 0 0 18px #000}}@keyframes verdictLoss{0%,100%{box-shadow:0 0 8px rgba(255,93,53,.12),inset 0 0 18px #000}16%,48%,80%{box-shadow:0 0 34px rgba(255,79,43,.7),0 0 8px #ff6038,inset 0 0 24px rgba(120,18,6,.2)}32%,64%,92%{box-shadow:0 0 12px rgba(255,93,53,.2),inset 0 0 18px #000}}@keyframes verdictDraw{0%,100%{box-shadow:0 0 8px rgba(216,200,102,.12),inset 0 0 18px #000}16%,48%,80%{box-shadow:0 0 30px rgba(216,200,102,.62),0 0 7px #d8c866,inset 0 0 22px rgba(216,200,102,.1)}32%,64%,92%{box-shadow:0 0 11px rgba(216,200,102,.2),inset 0 0 18px #000}}@media(prefers-reduced-motion:reduce){.shell.verdict-pause .board-frame[data-verdict]{animation:none}.shell.verdict-pause .board-frame[data-verdict="win"]{box-shadow:0 0 18px rgba(65,255,114,.5)}.shell.verdict-pause .board-frame[data-verdict="loss"]{box-shadow:0 0 18px rgba(255,79,43,.5)}.shell.verdict-pause .board-frame[data-verdict="draw"]{box-shadow:0 0 18px rgba(216,200,102,.45)}}
.config{background:#0c321b;border:2px solid var(--green);color:#8affaa;font-size:11px;font-weight:800;line-height:1.55;letter-spacing:.08em;text-shadow:0 0 5px rgba(65,255,114,.7);min-width:78px}.config:hover,.config:focus-visible{background:var(--green);color:#010603;text-shadow:none;outline:2px solid #a4ffba;outline-offset:3px}.panel{background:#061b0e;border:2px solid var(--green);color:#78ff99}.panel .eyebrow{font-size:12px;font-weight:700;opacity:.85}.panel h2{font-size:15px;color:#a0ffb7;margin-top:28px}.level{font-size:11px;color:#76ed92}.level strong{font-size:18px;color:#b3ffc5}.sides button,.initialize{font-size:12px;font-weight:800;line-height:1.35;border-width:2px;color:#8affaa}.hint{font-size:11px;line-height:1.7;opacity:.82;color:#72e88d}.close{color:#9affb2;font-weight:bold}.outcome-panel{text-align:center;max-width:430px}.outcome-icon{font-size:28px;text-shadow:0 0 12px var(--green);margin:8px 0 4px}.outcome-panel h2{font-size:28px;letter-spacing:.08em;margin:12px 0 8px;color:#b5ffc6;text-shadow:0 0 9px rgba(65,255,114,.5)}.outcome-panel #outcomeDetail{font-size:12px;line-height:1.6;letter-spacing:.08em;margin:0 0 25px;color:#72ed8f}.outcome-panel .initialize{background:var(--green);color:#010603;font-size:14px;padding:14px}.review{margin-top:10px;border:0;background:transparent;color:#73e98e;font-size:10px;text-decoration:underline;cursor:pointer;padding:8px}.review:hover{color:#b2ffc4}
.game-log{margin-top:11px;border:1px solid rgba(65,255,114,.38);background:rgba(0,0,0,.62)}.log-head{display:flex;justify-content:space-between;border-bottom:1px solid rgba(65,255,114,.25)}.log-head button{border:0;background:transparent;padding:9px 11px;font-size:10px;font-weight:800;letter-spacing:.1em;cursor:pointer;color:#73ea8e}.log-head button:first-child{text-align:left;flex:1}.log-head #undo{border-left:1px solid rgba(65,255,114,.25);color:#8affaa}.log-head #undo:disabled{opacity:.25;cursor:not-allowed}.log-head button:not(:disabled):hover{background:rgba(65,255,114,.1)}.log-body{max-height:118px;overflow:auto;padding:7px 10px;transition:max-height .2s,padding .2s}.log-body.collapsed{max-height:0;padding-top:0;padding-bottom:0;overflow:hidden}.log-row{display:grid;grid-template-columns:34px 1fr 1fr;gap:8px;min-height:23px;align-items:center;font-size:10px;border-bottom:1px dotted rgba(65,255,114,.12)}.log-row b{color:#277d3c}.log-row span{color:#72e98c}.log-row i{opacity:.38;font-style:normal;animation:blink 1s steps(2) infinite}.empty-log{font-size:9px;letter-spacing:.09em;opacity:.45;margin:7px 0}@media(max-width:600px){.log-body{max-height:92px}.log-row{font-size:9px;grid-template-columns:28px 1fr 1fr}}
@media(min-width:920px){.console{width:min(100%,880px);display:grid;grid-template-columns:minmax(0,610px) 240px;grid-template-rows:auto auto auto auto auto auto;column-gap:18px;align-items:start}.console>header{grid-column:1/3;grid-row:1}.console>.status{grid-column:1/3;grid-row:2}.console>.board-frame{grid-column:1;grid-row:3}.console>.readout{grid-column:1;grid-row:4}.console>.new{grid-column:1;grid-row:5}.console>.game-log{grid-column:2;grid-row:3/6;margin-top:0;align-self:stretch;min-height:100%;display:flex;flex-direction:column;border-color:rgba(65,255,114,.58);box-shadow:0 0 18px rgba(65,255,114,.07)}.console>.game-log .log-body{max-height:none;flex:1;min-height:0}.console>.game-log .log-body.collapsed{flex:0;min-height:0}.console>footer{grid-column:1/3;grid-row:6}.log-row{grid-template-columns:30px 1fr;gap:4px;padding:5px 0}.log-row span:last-child{grid-column:2}.log-head{flex-direction:column}.log-head #undo{border-left:0;border-top:1px solid rgba(65,255,114,.25);text-align:left}}
.sound-row{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:22px 0 4px;padding:12px;border:1px solid rgba(65,255,114,.45);background:#031008}.sound-row div{display:flex;flex-direction:column;gap:3px}.sound-row strong{font-size:12px;color:#a2ffb8}.sound-row small{font-size:9px;color:#5edb7b}.sound-row button{border:1px solid rgba(65,255,114,.5);background:#010603;color:#62d77d;padding:9px;font-size:10px;font-weight:800;cursor:pointer;white-space:nowrap}.sound-row button.active{background:rgba(65,255,114,.16);border-color:var(--green);color:#a7ffbb}.promotion-panel{text-align:center;max-width:480px}.promotion-panel h2{margin:8px 0 22px}.promotion-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.promotion-grid button{min-width:0;border:1px solid rgba(65,255,114,.5);background:#020904;color:#75ed90;padding:12px 4px 9px;cursor:pointer}.promotion-grid button:hover,.promotion-grid button:focus-visible{border-color:#aaffbd;background:rgba(65,255,114,.14);outline:2px solid var(--green);outline-offset:2px}.promotion-grid span{display:block;font-family:Georgia,"Times New Roman",serif;font-size:43px;line-height:1;color:#69ff8d;text-shadow:0 0 7px rgba(65,255,114,.55)}.promotion-grid small{display:block;margin-top:8px;font-size:9px;font-weight:800;letter-spacing:.06em}.promotion-panel .review{margin-top:18px}@media(max-width:420px){.promotion-grid{grid-template-columns:repeat(2,1fr)}.promotion-grid span{font-size:38px}}
.cinematic-row{margin-top:8px}.cinematic-row small{max-width:275px;line-height:1.45}.cinematic-row button{min-width:82px}@media(max-width:480px){.cinematic-row{align-items:flex-start;flex-direction:column}.cinematic-row button{width:100%}}
.personality-card{margin:13px 0 4px;padding:11px 12px;border-left:3px solid var(--green);background:#020c06;display:grid;grid-template-columns:1fr auto;gap:3px 12px;text-align:left}.personality-card span{font-size:9px;color:#57c873}.personality-card strong{font-size:13px;letter-spacing:.1em;color:#adffc0}.personality-card p{grid-column:1/3;margin:4px 0 0;font-size:10px;line-height:1.5;color:#6fe68a}.session-panel{margin:22px 0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid rgba(65,255,114,.4);background:#020c06}.session-panel>div:first-child{display:flex;flex-direction:column;gap:4px}.session-panel strong{font-size:11px;color:#a5ffba}.session-panel small{font-size:8px;color:#55c772}.session-actions{display:grid;gap:5px}.session-actions button{border:1px solid rgba(65,255,114,.55);background:#061b0e;color:#91ffaa;padding:6px 8px;font-size:9px;font-weight:bold;cursor:pointer}.session-actions button:disabled{opacity:.28;cursor:not-allowed}.analysis-readout{flex-basis:100%;display:grid;grid-template-columns:105px 1fr;gap:8px;border-top:1px dotted rgba(65,255,114,.28);padding-top:8px;margin-top:2px;font-size:9px;min-width:0}.analysis-readout span{color:#378c50}.analysis-readout b{color:#8bffa5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status{flex-wrap:wrap}.resign{width:100%;border:1px solid rgba(65,255,114,.28);border-top:0;background:#020a05;color:#52b96b;padding:8px;font-size:9px;font-weight:700;letter-spacing:.1em;cursor:pointer}.resign:hover{color:#a1ffb6;background:rgba(65,255,114,.08)}.resign-panel{text-align:center;max-width:430px}.resign-panel>p:not(.eyebrow){font-size:11px;color:#70df89;margin-bottom:22px}.resign-panel>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}.resign-panel button{border:1px solid rgba(65,255,114,.55);background:#020b05;color:#82f49b;padding:11px;font-size:10px;font-weight:bold;cursor:pointer}.resign-panel #confirmResign{border-color:#ff9d62;color:#ffb183}.resign-panel #confirmResign:hover{background:rgba(255,120,60,.12)}@media(max-width:480px){.session-panel{align-items:stretch;flex-direction:column}.session-actions{grid-template-columns:1fr 1fr}.analysis-readout{grid-template-columns:1fr}.analysis-readout span{display:none}}
@media(min-width:920px){.console>.resign{grid-column:1;grid-row:6}.console>footer{grid-row:7}.console>.game-log{grid-row:3/7}}
.analysis-readout{min-height:18px;height:18px;align-items:center}.analysis-readout.hidden{display:grid!important;visibility:hidden}.status{min-height:58px;align-content:center}
.startup{position:fixed;inset:0;z-index:100;background:#010603;display:grid;place-items:center;padding:22px;transition:opacity .45s,visibility .45s}.startup.dismissed{opacity:0;visibility:hidden;pointer-events:none}.splash-screen,.onboarding{width:min(100%,540px);text-align:center}.splash-screen{animation:screenIn .5s ease-out}.splash-screen.departing{animation:screenOut .42s ease-in forwards}@keyframes screenIn{from{opacity:0;transform:scale(.97);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}@keyframes screenOut{to{opacity:0;transform:scale(1.025);filter:blur(3px)}}.splash-mark{width:72px;height:72px;margin:0 auto 22px;border:2px solid var(--green);display:grid;place-items:center;transform:rotate(45deg);box-shadow:0 0 24px rgba(65,255,114,.18),inset 0 0 14px rgba(65,255,114,.1)}.splash-mark span{transform:rotate(-45deg);font-size:21px;font-weight:900;letter-spacing:-.1em;text-shadow:0 0 8px var(--green)}.boot-code{font-size:9px;letter-spacing:.24em;color:#348e4c}.splash-screen h1{font-size:clamp(35px,10vw,64px);letter-spacing:-.07em;line-height:.9;margin:18px 0 8px;text-shadow:0 0 15px rgba(65,255,114,.55)}.splash-sub{font-size:11px;letter-spacing:.22em;color:#73e78d}.boot-lines{display:grid;gap:7px;text-align:left;width:min(100%,330px);margin:36px auto 18px;font-size:9px;color:#4cb968}.boot-progress{width:min(100%,330px);height:3px;margin:auto;background:#092012;overflow:hidden}.boot-progress i{display:block;height:100%;background:var(--green);box-shadow:0 0 7px var(--green);animation:boot 1.65s ease-in-out forwards}@keyframes boot{from{width:0}to{width:100%}}.booting{font-size:9px;letter-spacing:.1em;margin-top:12px;animation:blink .7s steps(2) infinite}.onboarding{border:2px solid var(--green);background:#04160b;padding:clamp(22px,5vw,38px);box-shadow:0 0 45px rgba(65,255,114,.13);animation:screenIn .45s ease-out}.onboarding .eyebrow{font-size:10px;letter-spacing:.17em;color:#55bd70;margin:0 0 25px}.onboarding h2{font-size:14px;letter-spacing:.12em;margin:24px 0 13px;color:#a6ffba}.onboard-level{border-left:3px solid var(--green);background:#020b05;padding:11px 13px;text-align:left;display:flex;flex-direction:column;gap:4px}.onboard-level strong{font-size:13px;color:#a5ffba}.onboard-level span{font-size:10px;line-height:1.5;color:#5fd57b}.onboarding input{margin:17px 0 5px}.onboard-sides{display:grid;grid-template-columns:1fr 1fr;gap:8px}.onboard-sides button{border:1px solid rgba(65,255,114,.45);background:#020a05;color:#68d783;padding:13px 7px;font-size:12px;font-weight:900;cursor:pointer}.onboard-sides button span{display:block;font-size:8px;font-weight:normal;margin-top:4px;opacity:.75}.onboard-sides button.active{border-color:var(--green);background:rgba(65,255,114,.17);color:#b2ffc3;box-shadow:inset 0 0 0 1px var(--green)}.begin-match{width:100%;margin-top:26px;border:0;background:var(--green);color:#010603;padding:14px;font-size:13px;font-weight:900;letter-spacing:.1em;cursor:pointer}.begin-match:hover{background:#a3ffb8}.resume-start{margin-top:13px;border:0;background:transparent;color:#67dd82;text-decoration:underline;font-size:10px;cursor:pointer}.console header h1{letter-spacing:-.07em;font-size:clamp(25px,5.5vw,39px)}@media(max-width:430px){.startup{padding:13px}.onboarding{padding:22px 16px}.onboard-sides{grid-template-columns:1fr}.splash-mark{width:58px;height:58px}}
.game-log{min-width:0;max-width:100%;overflow:hidden}.log-body{min-width:0;overscroll-behavior:contain;scrollbar-gutter:stable}.log-row,.log-row span{min-width:0}.log-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(min-width:920px){.console>.game-log{min-height:0;height:100%;max-height:100%;overflow:hidden;contain:size layout paint}.console>.game-log .log-body{min-height:0;height:0;max-height:none;overflow-y:auto;overflow-x:hidden}.console>.game-log .log-body.collapsed{height:0;flex:0}}
.log-body{scrollbar-width:thin;scrollbar-color:#41ff72 #031109}.log-body::-webkit-scrollbar{width:8px}.log-body::-webkit-scrollbar-track{background:#031109;border-left:1px solid rgba(65,255,114,.16)}.log-body::-webkit-scrollbar-thumb{background:#27964a;border:1px solid #41ff72;border-radius:0;box-shadow:0 0 5px rgba(65,255,114,.45)}.log-body::-webkit-scrollbar-thumb:hover{background:#41ff72}
.site-links{display:flex;gap:12px}.site-links a{color:inherit;text-decoration:none}.site-links a:hover{color:#a8ffbb;text-decoration:underline}@media(max-width:520px){footer{flex-wrap:wrap;gap:7px}.site-links{width:100%;justify-content:space-between}}
.panel>.hint{display:none}
.session-panel{flex-wrap:wrap}.session-panel>div:first-child{flex:1 1 220px}.session-panel .hint{margin:4px 0;font-size:10px;line-height:1.5;color:#81e49a;opacity:1}.session-actions{flex:0 0 auto}#resumeStatus{font-size:11px;line-height:1.5;color:#ffb183}#resumeStatus:empty{display:none}
@media(max-width:480px){.session-panel>div:first-child{flex:0 0 auto}}

.cinematic-preview-panel{margin:8px 0 4px;padding:11px 12px;border:1px dashed rgba(65,255,114,.38);background:#010804;display:grid;gap:10px}.cinematic-preview-panel>div:first-child{display:flex;flex-direction:column;gap:3px}.cinematic-preview-panel strong{font-size:11px;color:#9dffb3}.cinematic-preview-panel small{font-size:8px;color:#4ebd69}.cinematic-preview-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.cinematic-preview-actions button{border:1px solid rgba(65,255,114,.48);background:#031109;color:#77ec90;padding:8px 5px;font-size:9px;font-weight:800;letter-spacing:.06em;cursor:pointer}.cinematic-preview-actions button:hover,.cinematic-preview-actions button:focus-visible{background:rgba(65,255,114,.15);border-color:#7dff9a;color:#b7ffc7;outline:1px solid #41ff72;outline-offset:2px}

/* Cinematic roadmap phase 4: carry the verdict into a restrained incident archive. */
.outcome.handoff{animation:archiveBackdrop .48s steps(4) both}.outcome.handoff .outcome-panel{animation:archivePrint .62s cubic-bezier(.18,.78,.25,1) both}.incident-archive{display:grid;grid-template-columns:1fr auto;gap:4px 12px;margin:-10px 0 12px;padding:10px 11px;border:1px solid rgba(65,255,114,.34);background:#010804;text-align:left}.incident-archive span{font-size:7px;letter-spacing:.14em;color:#438f56}.incident-archive strong{font-size:9px;letter-spacing:.08em;color:#9affb0}.incident-archive small{grid-column:1/3;font-size:8px;color:#5ecb76}.outcome[data-outcome="loss"] .outcome-panel{border-color:#9e4e38}.outcome[data-outcome="loss"] .incident-archive{border-color:rgba(255,121,81,.38)}.outcome[data-outcome="loss"] .incident-archive strong,.outcome[data-outcome="loss"] .incident-archive small{color:#d88468}.outcome[data-outcome="loss"] .outcome-icon{color:#d56a4c;text-shadow:0 0 10px rgba(255,93,53,.45)}.outcome[data-outcome="draw"] .outcome-panel{border-color:#9d9450}.outcome[data-outcome="draw"] .incident-archive{border-color:rgba(216,200,102,.38)}.outcome[data-outcome="draw"] .incident-archive strong,.outcome[data-outcome="draw"] .incident-archive small{color:#cfc36d}.report-secondary{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:7px}.report-secondary .review{margin-top:0;border:1px solid rgba(65,255,114,.2);text-decoration:none}.report-secondary .review:hover{background:rgba(65,255,114,.08)}@keyframes archiveBackdrop{0%{opacity:0}30%{opacity:.45}45%{opacity:.18}100%{opacity:1}}@keyframes archivePrint{0%{opacity:0;transform:translateY(8px);filter:brightness(2)}35%{opacity:.4;transform:translateY(-2px)}55%{opacity:.18;transform:translateY(1px)}100%{opacity:1;transform:none;filter:none}}@media(max-width:440px){.incident-archive{margin-top:-4px}.report-secondary{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.outcome.handoff,.outcome.handoff .outcome-panel{animation:none}}
.match-hud{display:grid;grid-template-columns:1fr 1fr;border:1px solid rgba(65,255,114,.38);border-top:0;background:#020a05;min-height:47px}.hud-side{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 9px;min-width:0}.hud-side+ .hud-side{border-left:1px solid rgba(65,255,114,.25)}.hud-side>div{display:flex;flex-direction:column;gap:3px;min-width:0}.hud-side strong{font-size:8px;letter-spacing:.12em;color:#55bd70}.captured-list{display:flex;align-items:center;min-height:16px;font-size:7px;color:#397e4c;white-space:nowrap;overflow:hidden}.captured-list i{font-family:Georgia,"Times New Roman",serif;font-style:normal;font-size:17px;line-height:.8;color:#59d877;margin-right:-2px;text-shadow:0 0 3px rgba(65,255,114,.35)}.hud-side time{font-size:17px;font-weight:900;letter-spacing:.05em;color:#60d87c;font-variant-numeric:tabular-nums;white-space:nowrap}.hud-side.active time{color:#b2ffc4;text-shadow:0 0 7px rgba(65,255,114,.55)}.hud-side time.danger{color:#ff9d62;animation:blink .8s steps(2) infinite}.clock-config{margin-top:24px}.clock-config h2{margin-top:0}.clock-config>p{font-size:8px;color:#4dbb68;margin:7px 0 0}.clock-choices{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.clock-choices button{border:1px solid rgba(65,255,114,.42);background:#020905;color:#64d67f;padding:9px 4px;font-size:9px;font-weight:800;cursor:pointer}.clock-choices button.active{background:var(--green);border-color:var(--green);color:#010603}.onboard-clock h2{margin-top:20px}.onboard-clock .clock-choices button{padding:10px 3px}.post-report{border:1px solid rgba(65,255,114,.4);background:#020a05;padding:11px;margin:0 0 17px;text-align:left}.post-report h3{font-size:9px;letter-spacing:.15em;color:#88f7a1;margin:0 0 10px}.report-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(65,255,114,.17)}.report-grid span{display:flex;flex-direction:column;gap:4px;background:#031109;padding:7px;font-size:7px;color:#3e9a56}.report-grid strong{font-size:9px;color:#8df5a5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.outcome-panel{max-height:calc(100svh - 36px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#41ff72 #031109}.modal>.panel{max-height:calc(100svh - 40px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#41ff72 #031109}
@media(max-width:440px){.match-hud{grid-template-columns:1fr}.hud-side+ .hud-side{border-left:0;border-top:1px solid rgba(65,255,114,.2)}.hud-side{min-height:34px;padding:5px 8px}.hud-side>div{flex-direction:row;align-items:center;gap:7px}.captured-list i{font-size:15px}.clock-choices{grid-template-columns:repeat(2,1fr)}.report-grid strong{font-size:8px}.outcome-panel h2{font-size:23px;margin-top:7px}.outcome-panel #outcomeDetail{margin-bottom:13px}}
@media(min-width:920px){.console{grid-template-rows:auto auto auto auto auto auto auto auto}.console>.match-hud{grid-column:1;grid-row:4}.console>.readout{grid-column:1;grid-row:5}.console>.new{grid-column:1;grid-row:6}.console>.resign{grid-column:1;grid-row:7}.console>footer{grid-column:1/3;grid-row:8}.console>.game-log{grid-column:2;grid-row:3/8}}
.outcome-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.outcome-actions .initialize{min-width:0}.export-pgn{border:1px solid var(--green);background:#061b0e;color:#8dffa7;padding:11px 6px;font-size:10px;font-weight:900;letter-spacing:.06em;cursor:pointer}.export-pgn:hover{background:rgba(65,255,114,.15)}.career-panel{margin:18px 0;border:1px solid rgba(65,255,114,.42);background:#020c06;text-align:left}.career-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px}.career-head>div{display:flex;flex-direction:column;gap:3px}.career-head strong{font-size:11px;color:#a5ffba}.career-head small{font-size:7px;color:#4fb968}.career-head button{border:1px solid rgba(65,255,114,.45);background:#061b0e;color:#80ef99;padding:7px;font-size:8px;font-weight:800;cursor:pointer}.career-body{border-top:1px solid rgba(65,255,114,.28);padding:10px;max-height:330px;overflow:auto;scrollbar-width:thin;scrollbar-color:#41ff72 #031109}.career-body.collapsed{display:none}.career-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:rgba(65,255,114,.17)}.career-stats span{display:flex;flex-direction:column;gap:4px;background:#031109;padding:7px 4px;font-size:6px;color:#428f57;text-align:center}.career-stats strong{font-size:10px;color:#91f7a8}.recent-matches h3{font-size:8px;letter-spacing:.12em;color:#69db84;margin:12px 0 6px}.match-record{display:grid;grid-template-columns:39px 1fr auto 32px;align-items:center;gap:5px;min-height:29px;border-top:1px dotted rgba(65,255,114,.2);font-size:7px}.match-record>b{font-size:7px;color:#8df3a4}.match-record>b.loss{color:#ff9d62}.match-record>b.draw{color:#d5cd70}.match-record>span{color:#60ce79;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.match-record>time{color:#3c9253;white-space:nowrap}.match-record>button{border:1px solid rgba(65,255,114,.4);background:#020a05;color:#84ec9b;padding:4px 2px;font-size:7px;cursor:pointer}.empty-career{font-size:8px;color:#438e57;margin:8px 0}.career-body::-webkit-scrollbar{width:7px}.career-body::-webkit-scrollbar-track{background:#031109}.career-body::-webkit-scrollbar-thumb{background:#27964a;border:1px solid #41ff72}
@media(max-width:440px){.career-stats{grid-template-columns:repeat(3,1fr)}.match-record{grid-template-columns:36px 1fr 30px}.match-record>time{display:none}.outcome-actions{grid-template-columns:1fr}.career-head button{max-width:115px}}

/* The verdict leaves a faint trace in the report instead of cutting to a generic modal. */
.cinematic-preview-actions{grid-template-columns:repeat(2,1fr)}.cinematic-preview-actions button:last-child{grid-column:1/3}.outcome-panel{position:relative;isolation:isolate}.outcome-panel>*{position:relative;z-index:1}.outcome-panel:before{content:"";position:absolute;z-index:0;inset:0;pointer-events:none;opacity:.24;background:repeating-linear-gradient(0deg,transparent 0 5px,rgba(65,255,114,.025) 5px 6px),radial-gradient(circle at 78% 14%,rgba(65,255,114,.13),transparent 34%)}.outcome[data-outcome="loss"] .outcome-panel:before{background:repeating-linear-gradient(0deg,transparent 0 5px,rgba(255,105,68,.025) 5px 6px),radial-gradient(circle at 20% 12%,rgba(142,36,20,.18),transparent 38%)}.outcome[data-outcome="draw"] .outcome-panel:before,.outcome[data-ending="time"] .outcome-panel:before{background:repeating-linear-gradient(0deg,transparent 0 5px,rgba(216,200,102,.025) 5px 6px),radial-gradient(circle at 50% 8%,rgba(170,148,52,.14),transparent 36%)}.outcome[data-ending="time"] .incident-archive{border-color:rgba(216,200,102,.48)}.outcome[data-ending="time"] .incident-archive strong,.outcome[data-ending="time"] .incident-archive small{color:#d8c866}
@media(max-width:440px){.cinematic-preview-actions button{font-size:8px;padding-inline:3px}}@media(max-height:520px) and (orientation:landscape){.outcome-panel{max-width:min(92vw,720px);display:grid;grid-template-columns:1fr 1fr;gap:7px 12px}.outcome-panel>.eyebrow,.outcome-panel>.incident-archive,.outcome-panel>.outcome-icon,.outcome-panel>h2,.outcome-panel>#outcomeDetail{grid-column:1}.outcome-panel>.post-report,.outcome-panel>.outcome-actions,.outcome-panel>.report-secondary{grid-column:2}.outcome-panel>.post-report{grid-row:1/6;margin:0}.outcome-panel>.outcome-actions{grid-row:6}.outcome-panel>.report-secondary{grid-row:7}}
.online-archive{margin-top:14px;border-top:1px solid rgba(65,255,114,.24);padding-top:12px}.online-archive>button{width:100%;border:1px solid rgba(65,255,114,.5);background:#020a05;color:#84ee9d;padding:10px;font-size:9px;font-weight:900;letter-spacing:.07em;cursor:pointer}.online-archive>button:hover{background:rgba(65,255,114,.12)}.online-history{margin-top:8px;border:1px solid rgba(65,255,114,.28);background:#020a05;padding:8px;max-height:220px;overflow:auto;scrollbar-width:thin;scrollbar-color:#41ff72 #031109}.online-history h3{font-size:8px;letter-spacing:.13em;color:#73e98e;margin:2px 0 7px}.archive-state{font-size:8px;color:#4faa67;line-height:1.5;margin:3px}.archive-state.alert{color:#ff9d62}.online-record{display:grid;grid-template-columns:36px 1fr auto 31px;align-items:center;gap:5px;padding:6px 0;border-top:1px dotted rgba(65,255,114,.2);font-size:7px}.online-record>b{color:#8df3a4}.online-record>b.loss{color:#ff9d62}.online-record>b.draw{color:#d5cd70}.online-record>span{color:#68d681;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.online-record small{display:block;color:#377f4b;margin-top:3px;overflow:hidden;text-overflow:ellipsis}.online-record>time{color:#3c9253;white-space:nowrap}.online-record>button{border:1px solid rgba(65,255,114,.4);background:#020a05;color:#84ec9b;padding:4px 2px;font-size:7px;cursor:pointer}.online-history::-webkit-scrollbar{width:7px}.online-history::-webkit-scrollbar-track{background:#031109}.online-history::-webkit-scrollbar-thumb{background:#27964a;border:1px solid #41ff72}@media(max-width:440px){.online-record{grid-template-columns:34px 1fr 30px}.online-record>time{display:none}}
.onboarding{max-height:calc(100svh - 28px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#41ff72 #031109}.mode-switch{display:grid;grid-template-columns:1fr 1fr;margin:-7px 0 23px;border:1px solid rgba(65,255,114,.55)}.mode-switch button{border:0;background:#010603;color:#5dcf79;padding:11px;font-size:11px;font-weight:900;letter-spacing:.12em;cursor:pointer}.mode-switch button+button{border-left:1px solid rgba(65,255,114,.4)}.mode-switch button.active{background:var(--green);color:#010603}.online-copy{font-size:10px;line-height:1.55;color:#61d57d;margin:-2px 0 18px}.online-secondary{width:100%;border:1px solid var(--green);background:#061b0e;color:#91ffaa;padding:12px;font-size:11px;font-weight:900;letter-spacing:.09em;cursor:pointer}.online-secondary:hover{background:rgba(65,255,114,.15)}.online-secondary:disabled,.begin-match:disabled{opacity:.4;cursor:wait}.join-divider{display:flex;align-items:center;gap:10px;margin:22px 0 14px;font-size:8px;color:#4ca765;letter-spacing:.1em}.join-divider:before,.join-divider:after{content:"";height:1px;background:rgba(65,255,114,.26);flex:1}.join-code{display:flex;flex-direction:column;text-align:left;gap:7px;font-size:9px;color:#6cda85;letter-spacing:.12em;margin-bottom:8px}.join-code input{width:100%;border:1px solid rgba(65,255,114,.6);background:#010603;color:#adffc0;padding:12px;text-align:center;font:900 20px/1 "Courier New",monospace;letter-spacing:.28em;text-transform:uppercase;outline:0}.join-code input:focus{border-color:var(--green);box-shadow:0 0 0 2px rgba(65,255,114,.2)}.online-error{border:1px solid rgba(65,255,114,.35);padding:9px;margin:13px 0 0;font-size:9px;color:#82e99a;line-height:1.45}.online-error.alert{border-color:#ff9d62;color:#ffb183}.online-lobby{text-align:center;padding:13px 0}.online-lobby .eyebrow{margin-bottom:24px}.room-label{display:block;font-size:9px;letter-spacing:.18em;color:#55bc70}.room-code{display:block;font-size:clamp(38px,11vw,58px);letter-spacing:.14em;color:#b4ffc5;text-shadow:0 0 12px rgba(65,255,114,.5);margin:12px 0}.online-lobby>p:not(.eyebrow){font-size:9px;color:#58c773;animation:blink 1.1s steps(2) infinite;margin:18px 0}.online-lobby>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}.online-lobby button{border:1px solid rgba(65,255,114,.55);background:#031109;color:#89f4a1;padding:11px 6px;font-size:9px;font-weight:900;cursor:pointer}.online-lobby button:hover{background:rgba(65,255,114,.12)}.online-lobby .cancel-online{margin-top:18px;border:0;text-decoration:underline;color:#4da965;background:transparent}.online-link{width:100%;display:flex;justify-content:space-between;align-items:center;border-top:1px dotted rgba(65,255,114,.28);padding-top:8px;font-size:8px;color:#55bd70}.online-link>span:last-child{display:flex;align-items:center;gap:6px}.online-link i{width:6px;height:6px;border-radius:50%;background:#6c3b28;box-shadow:0 0 5px #d16e42}.online-link i.connected{background:var(--green);box-shadow:0 0 6px var(--green)}.online-link b{font-size:8px;color:#76df8e}.status:has(.online-link:not(.hidden)) .analysis-readout{display:none!important}@media(max-width:430px){.mode-switch{margin-top:0}.online-setup h2{font-size:12px}.join-code input{font-size:18px}.online-link{gap:8px}.online-link b{font-size:7px}}
.online-link i.grace{background:#ff9d20;box-shadow:0 0 7px #ff9d20;animation:blink .8s steps(2) infinite}.online-link i.grace+ b{color:#ffc078}
.containment-sequence{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:20px;background:rgba(0,3,1,.94);color:var(--green)}.sequence-frame{width:min(100%,620px);border:1px solid rgba(65,255,114,.72);background:#010603;padding:clamp(20px,5vw,38px);box-shadow:0 0 45px rgba(65,255,114,.15),inset 0 0 28px rgba(65,255,114,.05);text-align:center}.sequence-code{display:block;text-align:left;font-size:8px;letter-spacing:.2em;color:#398d50}.sequence-scan{height:84px;margin:22px 0;position:relative;overflow:hidden;border-top:1px solid rgba(65,255,114,.25);border-bottom:1px solid rgba(65,255,114,.25);background:repeating-linear-gradient(0deg,rgba(65,255,114,.035) 0,rgba(65,255,114,.035) 1px,transparent 1px,transparent 5px)}.sequence-scan:before,.sequence-scan:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0,rgba(65,255,114,.16) 50%,transparent 100%);transform:translateX(-100%);animation:containmentSweep .8s linear infinite}.sequence-scan:after{animation-delay:.4s;opacity:.35}.sequence-scan i{position:absolute;left:50%;top:50%;width:58px;height:58px;border:1px solid rgba(65,255,114,.65);transform:translate(-50%,-50%) rotate(45deg);box-shadow:0 0 12px rgba(65,255,114,.25)}.sequence-frame strong{display:block;font-size:clamp(14px,4vw,20px);letter-spacing:.1em;text-shadow:0 0 8px rgba(65,255,114,.55)}.sequence-frame small{display:block;margin-top:10px;font-size:8px;letter-spacing:.14em;color:#3f9d58}.sequence-frame button{margin-top:25px;border:1px solid rgba(65,255,114,.48);background:#020a05;color:#67d982;padding:9px 13px;font-size:9px;font-weight:800;cursor:pointer}.containment-sequence[data-outcome="loss"] .sequence-frame{border-color:#ff7f50;box-shadow:0 0 45px rgba(255,90,45,.14)}.containment-sequence[data-outcome="loss"] .sequence-frame strong{color:#ffad83;text-shadow:0 0 8px rgba(255,90,45,.5)}.containment-sequence[data-outcome="draw"] .sequence-frame strong{color:#d5cd70}.shell.sequence-active .console{pointer-events:none;user-select:none;filter:brightness(.45) blur(1px)}@keyframes containmentSweep{to{transform:translateX(100%)}}@media(prefers-reduced-motion:reduce){.sequence-scan:before,.sequence-scan:after{animation:none;transform:none}.shell.sequence-active .console{filter:brightness(.55)}}
.breach-stage{display:none;position:relative;height:min(43vw,250px);min-height:190px;margin:12px -12px 17px;overflow:hidden;background:radial-gradient(circle at 50% 50%,rgba(125,18,8,.26),transparent 23%),repeating-linear-gradient(0deg,rgba(255,110,70,.035) 0,rgba(255,110,70,.035) 1px,transparent 1px,transparent 5px);border-top:1px solid rgba(255,112,75,.24);border-bottom:1px solid rgba(255,112,75,.24)}.breach-noise{display:none;position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(117deg,transparent 0 17px,rgba(255,91,50,.035) 18px 19px);mix-blend-mode:screen}.breach-core{position:absolute;left:50%;top:50%;width:84px;height:84px;transform:translate(-50%,-50%) scale(0);border:2px solid #ff7951;border-radius:44% 56% 47% 53%/55% 38% 62% 45%;background:radial-gradient(circle at 42% 38%,#ffbf86 0 4%,#8e1e0d 7%,#190503 35%,#010100 68%);box-shadow:0 0 10px #ff6038,0 0 38px rgba(255,61,24,.52),inset 0 0 17px #000;z-index:3}.breach-core:before{content:"";position:absolute;inset:17px;border:1px solid rgba(255,164,112,.75);border-radius:50%;box-shadow:inset 0 0 13px #ff4e27;animation:breachIris .34s steps(2) infinite}.breach-core i{position:absolute;left:50%;top:50%;width:6px;height:6px;border-radius:50%;background:#ffbf7a;box-shadow:0 0 9px #ff5f35}.breach-core i:nth-child(1){transform:translate(-24px,-19px)}.breach-core i:nth-child(2){transform:translate(22px,-8px)}.breach-core i:nth-child(3){transform:translate(-4px,24px)}.tendril{--r:0deg;--len:205px;--d:0s;position:absolute;left:50%;top:50%;width:var(--len);height:14px;z-index:2;transform-origin:0 50%;transform:rotate(var(--r)) scaleX(0);border-radius:60% 100% 70% 55%;background:linear-gradient(0deg,#170301,#6f170a 34%,#c84220 54%,#4c0e06 73%,#100201);box-shadow:0 0 8px rgba(255,72,35,.65);opacity:0}.tendril:before{content:"";position:absolute;left:18%;right:13%;top:3px;height:2px;background:repeating-linear-gradient(90deg,transparent 0 11px,rgba(255,180,120,.7) 12px 15px,transparent 16px 22px);opacity:.6}.tendril:after{content:"";position:absolute;right:-8px;top:-5px;width:24px;height:24px;border-radius:70% 45% 65% 35%;background:#821c0d;box-shadow:inset 4px 2px 4px #d6502c}.t1{--r:-168deg;--len:260px;--d:0s}.t2{--r:-126deg;--len:230px;--d:.11s}.t3{--r:-78deg;--len:225px;--d:.22s}.t4{--r:-28deg;--len:265px;--d:.05s}.t5{--r:20deg;--len:245px;--d:.26s}.t6{--r:67deg;--len:225px;--d:.16s}.t7{--r:116deg;--len:235px;--d:.31s}.t8{--r:157deg;--len:255px;--d:.2s}.breach-flash{position:absolute;inset:0;background:#ffd4ba;opacity:0;z-index:5;pointer-events:none}.containment-sequence[data-outcome="loss"]{animation:lossBackdrop 4.3s linear both}.containment-sequence[data-outcome="loss"] .breach-noise,.containment-sequence[data-outcome="loss"] .breach-stage{display:block}.containment-sequence[data-outcome="loss"] .sequence-scan{display:none}.containment-sequence[data-outcome="loss"] .sequence-frame{animation:terminalImpact 4.3s linear both}.containment-sequence[data-outcome="loss"] .breach-core{animation:breachOpen 4.3s cubic-bezier(.2,.7,.2,1) both}.containment-sequence[data-outcome="loss"] .tendril{animation:tendrilStrike 2.25s cubic-bezier(.18,.8,.26,1) calc(.82s + var(--d)) both}.containment-sequence[data-outcome="loss"] .breach-flash{animation:breachFlash 4.3s steps(2) both}.containment-sequence[data-outcome="loss"] [data-sequence-status]{animation:failureText 4.3s steps(2) both}.containment-sequence[data-outcome="loss"] .sequence-substatus:after{content:" // SIGNAL LOST";color:#bd492c}.containment-sequence[data-outcome="loss"] .sequence-code{color:#cf5f3e;animation:failureText .18s steps(2) 1.2s 8}.containment-sequence[data-outcome="loss"] #skipSequence{border-color:rgba(255,116,75,.5);color:#e78466}.containment-sequence[data-outcome="loss"] .breach-noise{animation:noisePulse .12s steps(2) infinite}@keyframes breachOpen{0%,12%{transform:translate(-50%,-50%) scale(0) rotate(-18deg);opacity:0}25%{transform:translate(-50%,-50%) scale(.34) rotate(8deg);opacity:1}42%{transform:translate(-50%,-50%) scale(1.04) rotate(-4deg)}70%,100%{transform:translate(-50%,-50%) scale(1.2) rotate(2deg)}}@keyframes breachIris{50%{transform:scale(.86);filter:brightness(1.6)}}@keyframes tendrilStrike{0%{transform:rotate(var(--r)) scaleX(0);opacity:0}12%{opacity:1}58%{transform:rotate(calc(var(--r) + 5deg)) scaleX(1.08);opacity:1}76%{transform:rotate(calc(var(--r) - 3deg)) scaleX(.94)}100%{transform:rotate(var(--r)) scaleX(1);opacity:1}}@keyframes breachFlash{0%,31%,36%,57%,61%,100%{opacity:0}32%{opacity:.72}58%{opacity:.38}}@keyframes terminalImpact{0%,29%,34%,56%,100%{transform:none}30%{transform:translate(5px,-2px) skewX(-1deg)}31%{transform:translate(-6px,3px)}32%{transform:translate(3px,1px)}57%{transform:translate(-3px,2px)}}@keyframes failureText{0%,56%{opacity:.22}58%,61%{opacity:1}63%{opacity:.32}66%,100%{opacity:1}}@keyframes lossBackdrop{0%{background-color:rgba(0,3,1,.94)}32%{background-color:rgba(26,2,0,.97)}100%{background-color:rgba(3,0,0,.98)}}@keyframes noisePulse{50%{transform:translate(2px,-1px);opacity:.45}}@media(max-width:480px){.breach-stage{height:210px;margin-left:-6px;margin-right:-6px}.tendril{--len:180px}.sequence-frame{padding-left:16px;padding-right:16px}}@media(prefers-reduced-motion:reduce){.containment-sequence[data-outcome="loss"],.containment-sequence[data-outcome="loss"] .sequence-frame,.containment-sequence[data-outcome="loss"] .breach-core,.containment-sequence[data-outcome="loss"] .tendril,.containment-sequence[data-outcome="loss"] .breach-flash,.containment-sequence[data-outcome="loss"] [data-sequence-status],.containment-sequence[data-outcome="loss"] .sequence-code,.containment-sequence[data-outcome="loss"] .breach-noise{animation:none}.containment-sequence[data-outcome="loss"] .breach-core{transform:translate(-50%,-50%) scale(.9);opacity:1}.containment-sequence[data-outcome="loss"] .tendril{transform:rotate(var(--r)) scaleX(.82);opacity:.65}}
.purge-stage{display:none;position:relative;height:min(43vw,250px);min-height:190px;margin:12px -12px 17px;overflow:hidden;border-top:1px solid rgba(65,255,114,.3);border-bottom:1px solid rgba(65,255,114,.3);background:radial-gradient(circle at 50% 50%,rgba(65,255,114,.13),transparent 31%),#010704}.purge-grid{position:absolute;inset:0;background:linear-gradient(rgba(65,255,114,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(65,255,114,.08) 1px,transparent 1px);background-size:24px 24px;transform:perspective(240px) rotateX(55deg) scale(1.35);transform-origin:center bottom;opacity:.38}.purge-target{position:absolute;left:50%;top:50%;width:112px;height:112px;transform:translate(-50%,-50%);border:1px solid rgba(65,255,114,.72);border-radius:50%;box-shadow:0 0 17px rgba(65,255,114,.27),inset 0 0 17px rgba(65,255,114,.12)}.purge-target:before,.purge-target:after,.purge-target i{content:"";position:absolute;inset:12px;border:1px dashed rgba(65,255,114,.42);border-radius:50%}.purge-target:after{inset:28px;border-style:solid}.purge-target i:nth-child(1){inset:-14px;border-style:solid;border-color:transparent var(--green);opacity:.5}.purge-target i:nth-child(2){inset:38px;background:#ff6339;border:0;box-shadow:0 0 18px #ff4e27,0 0 40px rgba(255,79,40,.6)}.purge-target i:nth-child(3){inset:50%;width:4px;height:4px;margin:-2px;border:0;background:#fff;box-shadow:0 0 7px #fff}.purge-target b{position:absolute;left:50%;top:-18px;width:1px;height:148px;background:rgba(65,255,114,.33);transform:translateX(-50%);box-shadow:0 0 5px var(--green)}.purge-target b:after{content:"";position:absolute;left:-74px;top:74px;width:148px;height:1px;background:rgba(65,255,114,.33);box-shadow:0 0 5px var(--green)}.lock-beam{position:absolute;z-index:3;background:linear-gradient(90deg,transparent,var(--green),#c2ffcf);height:2px;width:48%;filter:drop-shadow(0 0 5px var(--green));opacity:0}.lb1{left:0;top:50%;transform-origin:right}.lb2{right:0;top:50%;transform:rotate(180deg);transform-origin:left}.lb3{left:50%;top:0;transform:rotate(90deg);transform-origin:left}.lb4{left:50%;bottom:0;transform:rotate(-90deg);transform-origin:left}.purge-seal{position:absolute;left:50%;top:50%;z-index:6;width:94px;height:94px;display:grid;place-items:center;transform:translate(-50%,-50%) scale(0) rotate(-45deg);border:2px solid var(--green);background:#020a05;color:#b6ffc6;font-size:25px;font-weight:900;letter-spacing:-.1em;box-shadow:0 0 24px rgba(65,255,114,.55),inset 0 0 17px rgba(65,255,114,.16)}.purge-seal strong{position:absolute;top:105px;font:900 8px/1 "Courier New",monospace;letter-spacing:.2em;color:#8affaa;text-shadow:0 0 6px var(--green)}.purge-flash{position:absolute;inset:0;z-index:5;background:#c6ffd3;opacity:0}.containment-sequence[data-outcome="win"]{animation:winBackdrop 3.6s linear both}.containment-sequence[data-outcome="win"] .sequence-scan{display:none}.containment-sequence[data-outcome="win"] .purge-stage{display:block}.containment-sequence[data-outcome="win"] .purge-grid{animation:gridSweep 3.6s ease-out both}.containment-sequence[data-outcome="win"] .purge-target{animation:targetLock 2.4s ease-in-out both}.containment-sequence[data-outcome="win"] .purge-target:before{animation:ringSpin 1s linear infinite}.containment-sequence[data-outcome="win"] .purge-target i:nth-child(1){animation:ringSpin .72s linear infinite reverse}.containment-sequence[data-outcome="win"] .purge-target i:nth-child(2){animation:threatCollapse 2.25s cubic-bezier(.7,0,.9,.4) both}.containment-sequence[data-outcome="win"] .lock-beam{animation:beamLock .7s ease-out 1.2s both}.containment-sequence[data-outcome="win"] .purge-seal{animation:sealDrop 1s cubic-bezier(.2,.85,.35,1.25) 2.05s both}.containment-sequence[data-outcome="win"] .purge-flash{animation:purgeFlash 3.6s steps(2) both}.containment-sequence[data-outcome="win"] [data-sequence-status]{animation:secureText 3.6s steps(2) both}.containment-sequence[data-outcome="win"] .sequence-substatus:after{content:" // DEFENSE GRID NOMINAL";color:#79ef94}@keyframes targetLock{0%{transform:translate(-50%,-50%) scale(1.55);opacity:0}20%{opacity:1}65%{transform:translate(-50%,-50%) scale(1)}88%,100%{transform:translate(-50%,-50%) scale(.12);opacity:0}}@keyframes ringSpin{to{transform:rotate(360deg)}}@keyframes threatCollapse{0%,42%{transform:scale(1)}75%{transform:scale(.45);background:#ffb16f}100%{transform:scale(0);box-shadow:0 0 4px #fff}}@keyframes sealDrop{0%{transform:translate(-50%,-50%) scale(0) rotate(-45deg);opacity:0}60%{transform:translate(-50%,-50%) scale(1.08) rotate(2deg);opacity:1}100%{transform:translate(-50%,-50%) scale(1) rotate(0);opacity:1}}@keyframes purgeFlash{0%,54%,59%,100%{opacity:0}55%{opacity:.8}}@keyframes secureText{0%,72%{opacity:.15}75%,100%{opacity:1}}@keyframes gridSweep{0%{opacity:.08;background-position:0 120px}100%{opacity:.5;background-position:0 0}}@keyframes winBackdrop{0%{background-color:rgba(0,3,1,.94)}55%{background-color:rgba(0,16,6,.98)}100%{background-color:rgba(0,6,2,.98)}}@media(max-width:480px){.purge-stage{height:210px;margin-left:-6px;margin-right:-6px}}@media(prefers-reduced-motion:reduce){.containment-sequence[data-outcome="win"],.containment-sequence[data-outcome="win"] .purge-grid,.containment-sequence[data-outcome="win"] .purge-target,.containment-sequence[data-outcome="win"] .purge-target:before,.containment-sequence[data-outcome="win"] .purge-target i,.containment-sequence[data-outcome="win"] .lock-beam,.containment-sequence[data-outcome="win"] .purge-seal,.containment-sequence[data-outcome="win"] .purge-flash,.containment-sequence[data-outcome="win"] [data-sequence-status]{animation:none}.containment-sequence[data-outcome="win"] .purge-target{opacity:0}.containment-sequence[data-outcome="win"] .purge-seal{transform:translate(-50%,-50%) scale(1);opacity:1}.containment-sequence[data-outcome="win"] .lock-beam{opacity:.6}}
.lock-beam{--r:0deg;transform:rotate(var(--r)) scaleX(0)}.lb2{--r:180deg}.lb3{--r:90deg}.lb4{--r:-90deg}@keyframes beamLock{0%{opacity:0;transform:rotate(var(--r)) scaleX(0)}35%{opacity:1}100%{opacity:.8;transform:rotate(var(--r)) scaleX(1)}}
.lb2{--r:0deg}
.draw-stage{display:none;position:relative;height:min(43vw,250px);min-height:190px;margin:12px -12px 17px;overflow:hidden;border-top:1px solid rgba(216,200,102,.38);border-bottom:1px solid rgba(216,200,102,.38);background:radial-gradient(ellipse at center,rgba(216,200,102,.11),transparent 55%),#050703;color:#d8c866}.draw-grid{position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(216,200,102,.035) 0,rgba(216,200,102,.035) 1px,transparent 1px,transparent 7px),linear-gradient(90deg,transparent 49.8%,rgba(216,200,102,.18) 50%,transparent 50.2%)}.draw-node{position:absolute;top:50%;width:64px;height:64px;display:grid;place-items:center;transform:translateY(-50%);border:1px solid #d8c866;background:#080a04;color:#f1e8a2;font-size:26px;font-weight:900;box-shadow:0 0 18px rgba(216,200,102,.23),inset 0 0 12px rgba(216,200,102,.08);z-index:3}.node-left{left:13%}.node-right{right:13%}.draw-node:before,.draw-node:after{content:"";position:absolute;width:22px;height:1px;background:#d8c866;box-shadow:0 0 5px #d8c866}.node-left:before{left:70px}.node-left:after{left:93px;width:38px;opacity:.45}.node-right:before{right:70px}.node-right:after{right:93px;width:38px;opacity:.45}.balance-field{position:absolute;left:50%;top:50%;width:92px;height:128px;transform:translate(-50%,-50%);display:grid;place-items:center;border-left:1px solid rgba(216,200,102,.65);border-right:1px solid rgba(216,200,102,.65);z-index:4}.balance-field:before,.balance-field:after{content:"";position:absolute;left:-15px;right:-15px;height:1px;background:#d8c866;box-shadow:0 0 6px #d8c866}.balance-field:before{top:0}.balance-field:after{bottom:0}.balance-field i{position:absolute;left:9px;right:9px;height:1px;background:linear-gradient(90deg,transparent,#d8c866,transparent);opacity:.5}.balance-field i:nth-child(1){top:22px}.balance-field i:nth-child(2){top:48px}.balance-field i:nth-child(3){bottom:48px}.balance-field i:nth-child(4){bottom:22px}.balance-field b{width:52px;height:52px;display:grid;place-items:center;border:1px solid #d8c866;border-radius:50%;font-size:27px;font-weight:normal;color:#f0e69b;text-shadow:0 0 8px #d8c866;box-shadow:0 0 16px rgba(216,200,102,.24),inset 0 0 12px rgba(216,200,102,.1)}.draw-axis{position:absolute;left:calc(13% + 32px);right:calc(13% + 32px);top:50%;height:1px;background:linear-gradient(90deg,#d8c866,transparent 38%,transparent 62%,#d8c866);box-shadow:0 0 6px rgba(216,200,102,.7)}.draw-stage>em{position:absolute;left:0;right:0;bottom:8px;text-align:center;font-style:normal;font-size:8px;font-weight:800;letter-spacing:.11em;color:#bcae58}.containment-sequence[data-outcome="draw"]{animation:drawBackdrop 3.2s linear both}.containment-sequence[data-outcome="draw"] .sequence-scan{display:none}.containment-sequence[data-outcome="draw"] .draw-stage{display:block}.containment-sequence[data-outcome="draw"] .sequence-frame{border-color:#b9aa55;box-shadow:0 0 36px rgba(216,200,102,.12),inset 0 0 25px rgba(216,200,102,.04)}.containment-sequence[data-outcome="draw"] .draw-node{animation:nodeApproach 1.3s cubic-bezier(.2,.8,.3,1) both}.containment-sequence[data-outcome="draw"] .node-right{animation-name:nodeApproachRight}.containment-sequence[data-outcome="draw"] .balance-field{animation:fieldLock 1s steps(4) 1.05s both}.containment-sequence[data-outcome="draw"] .balance-field i{animation:balancePulse .8s ease-in-out 1.5s infinite alternate}.containment-sequence[data-outcome="draw"] .draw-axis{animation:axisLock 1.6s ease-out .45s both}.containment-sequence[data-outcome="draw"] .draw-stage>em{animation:drawReasonIn .6s steps(3) 2s both}.containment-sequence[data-outcome="draw"] [data-sequence-status]{color:#e5d776;text-shadow:0 0 8px rgba(216,200,102,.42);animation:secureText 3.2s steps(2) both}.containment-sequence[data-outcome="draw"] .sequence-substatus:after{content:" // QUARANTINE MAINTAINED";color:#b6a752}.containment-sequence[data-outcome="draw"] #skipSequence{border-color:rgba(216,200,102,.48);color:#d8c866}@keyframes nodeApproach{0%{transform:translate(-90px,-50%);opacity:0}65%{opacity:1}100%{transform:translate(0,-50%)}}@keyframes nodeApproachRight{0%{transform:translate(90px,-50%);opacity:0}65%{opacity:1}100%{transform:translate(0,-50%)}}@keyframes fieldLock{0%{opacity:0;transform:translate(-50%,-50%) scaleY(.15)}100%{opacity:1;transform:translate(-50%,-50%) scaleY(1)}}@keyframes balancePulse{to{opacity:1;filter:brightness(1.5)}}@keyframes axisLock{0%{transform:scaleX(0);opacity:0}100%{transform:scaleX(1);opacity:1}}@keyframes drawReasonIn{0%{opacity:0}100%{opacity:1}}@keyframes drawBackdrop{0%{background-color:rgba(0,3,1,.94)}55%,100%{background-color:rgba(8,9,2,.98)}}@media(max-width:480px){.draw-stage{height:210px;margin-left:-6px;margin-right:-6px}.draw-node{width:50px;height:50px;font-size:21px}.node-left{left:7%}.node-right{right:7%}.draw-axis{left:calc(7% + 25px);right:calc(7% + 25px)}.node-left:before{left:55px}.node-left:after{left:73px;width:24px}.node-right:before{right:55px}.node-right:after{right:73px;width:24px}.balance-field{width:72px;height:112px}.draw-stage>em{font-size:7px}}@media(prefers-reduced-motion:reduce){.containment-sequence[data-outcome="draw"],.containment-sequence[data-outcome="draw"] .draw-node,.containment-sequence[data-outcome="draw"] .balance-field,.containment-sequence[data-outcome="draw"] .balance-field i,.containment-sequence[data-outcome="draw"] .draw-axis,.containment-sequence[data-outcome="draw"] .draw-stage>em,.containment-sequence[data-outcome="draw"] [data-sequence-status]{animation:none}.containment-sequence[data-outcome="draw"] .draw-node,.containment-sequence[data-outcome="draw"] .balance-field,.containment-sequence[data-outcome="draw"] .draw-axis,.containment-sequence[data-outcome="draw"] .draw-stage>em{opacity:1}}
.sequence-vignette{position:absolute;inset:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse at center,transparent 38%,rgba(0,0,0,.72) 100%),repeating-linear-gradient(0deg,rgba(255,255,255,.018) 0,rgba(255,255,255,.018) 1px,transparent 1px,transparent 4px);animation:sequenceFlicker .16s steps(2) infinite}.sequence-frame{position:relative;z-index:1}.sequence-substatus{min-height:1em}.sequence-progress{display:block;position:relative;width:min(100%,360px);height:3px;margin:15px auto 0;overflow:hidden;background:rgba(65,255,114,.1);border:1px solid rgba(65,255,114,.18)}.sequence-progress i{display:block;width:100%;height:100%;transform-origin:left;background:var(--green);box-shadow:0 0 8px var(--green)}.containment-sequence[data-outcome="win"] .sequence-progress i{animation:sequenceProgress 3.6s linear both}.containment-sequence[data-outcome="loss"] .sequence-progress{border-color:rgba(255,121,81,.22);background:rgba(255,121,81,.08)}.containment-sequence[data-outcome="loss"] .sequence-progress i{background:#ff7951;box-shadow:0 0 8px #ff6038;animation:sequenceProgress 4.3s linear both}.containment-sequence[data-outcome="draw"] .sequence-progress{border-color:rgba(216,200,102,.24);background:rgba(216,200,102,.08)}.containment-sequence[data-outcome="draw"] .sequence-progress i{background:#d8c866;box-shadow:0 0 8px #d8c866;animation:sequenceProgress 3.2s linear both}.containment-sequence[data-outcome="win"] .sequence-vignette{animation:sequenceFlicker .22s steps(2) infinite,secureBloom 3.6s ease-out both}.containment-sequence[data-outcome="loss"] .sequence-vignette{animation:sequenceFlicker .08s steps(2) infinite,breachVignette 4.3s linear both}.containment-sequence[data-outcome="draw"] .sequence-vignette{animation:sequenceFlicker .3s steps(2) infinite,equilibriumVignette 3.2s linear both}@keyframes sequenceProgress{from{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes sequenceFlicker{50%{opacity:.88}}@keyframes secureBloom{60%,100%{box-shadow:inset 0 0 120px rgba(65,255,114,.07)}}@keyframes breachVignette{32%,58%{box-shadow:inset 0 0 150px rgba(255,60,30,.16)}100%{box-shadow:inset 0 0 180px rgba(80,0,0,.18)}}@keyframes equilibriumVignette{60%,100%{box-shadow:inset 0 0 130px rgba(216,200,102,.07)}}@media(max-width:480px){.sequence-progress{width:88%;margin-top:12px}.sequence-substatus{font-size:7px}}@media(prefers-reduced-motion:reduce){.sequence-vignette,.sequence-progress i,.containment-sequence[data-outcome="win"] .sequence-vignette,.containment-sequence[data-outcome="loss"] .sequence-vignette,.containment-sequence[data-outcome="draw"] .sequence-vignette{animation:none}.sequence-progress i{transform:scaleX(1)}}
.shell.sequence-active .console{filter:none!important}.shell.final-position .console{filter:none!important;opacity:1!important;transform:none!important;visibility:visible!important;will-change:auto!important}

/* Desktop cockpit: keep the complete timed-game surface inside short laptop viewports. */
@media(min-width:920px) and (max-height:900px){.shell{padding:8px;min-height:100svh}.console{--board-size:clamp(430px,calc(100svh - 215px),610px);width:min(100%,calc(var(--board-size) + 258px));grid-template-columns:minmax(0,var(--board-size)) 240px}header{padding-bottom:6px;margin-bottom:6px}header h1,.console header h1{font-size:30px}header p{font-size:8px;margin-top:5px}.config{min-width:68px;padding:5px 9px;font-size:9px}.status{min-height:29px;margin-bottom:6px;padding:5px 9px;font-size:9px}.analysis-readout{padding-top:5px}.board-frame{padding:5px}.piece{font-size:clamp(28px,calc(var(--board-size) / 11.3),54px)}.match-hud{min-height:38px}.hud-side{padding:4px 7px}.hud-side>div{gap:1px}.captured-list{min-height:13px}.captured-list i{font-size:14px}.hud-side time{font-size:14px}.readout{margin:5px 1px;font-size:8px}.new{padding:7px;font-size:10px}.resign{padding:5px;font-size:8px}footer{display:none}.console>.game-log{grid-row:3/7}}
.new{min-height:42px;color:#8affaa;-webkit-text-fill-color:#8affaa;text-shadow:0 0 5px rgba(65,255,114,.42);line-height:1.25;white-space:normal}
.shell.sequence-paused .containment-sequence,.shell.sequence-paused .containment-sequence *{animation-play-state:paused!important}
.config-note{margin:-18px 0 20px;font-size:10px;line-height:1.6;color:#89e9a2}
.storage-notice{display:block;margin:12px 0;font-size:11px;line-height:1.6;color:#ffd39a;opacity:1;overflow-wrap:anywhere}.storage-notice:empty{display:none}
