@font-face{font-family:Inter;src:url('assets/interface.ttf') format('truetype');font-weight:400;font-display:swap}@font-face{font-family:Inter;src:url('assets/interface-semibold.ttf') format('truetype');font-weight:500 800;font-display:swap}*{box-sizing:border-box}html{color-scheme:dark;--bg:#0a1118;--panel:#101c27;--text:#edf3f4;--muted:#8b9fac;--line:#2b3d4a;--blue:#8bcce0;--amber:#e7a15e;--mono:ui-monospace,SFMono-Regular,Consolas,monospace;scrollbar-gutter:stable}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,Arial,sans-serif;font-size:14px;line-height:1.5;background-image:radial-gradient(ellipse at 75% 0%,#19303d65,transparent 50%)}body:before{content:'';position:fixed;inset:0;background-image:linear-gradient(#7894a106 1px,transparent 1px),linear-gradient(90deg,#7894a106 1px,transparent 1px);background-size:56px 56px;pointer-events:none;z-index:-1}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer;color:inherit;border:0;background:none}button:disabled{cursor:default}button,a,input,select,summary{outline-offset:5px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--amber)}a{color:var(--blue);text-decoration:none}button{transition:background .18s,border-color .18s,color .18s}button:hover:not(:disabled){color:white}h1,h2,h3,p{margin:0}h1{font-size:clamp(42px,5.4vw,76px);font-weight:650;line-height:1.02;letter-spacing:-.055em}h1 span{color:var(--amber)}.header{height:86px;border-bottom:1px solid var(--line);max-width:1440px;margin:auto;padding:0 48px;display:flex;align-items:center;gap:30px}.brand{display:flex;align-items:center;gap:12px;color:var(--text);font-size:18px;letter-spacing:.14em;line-height:1.1;white-space:nowrap}.brand b{color:var(--amber);font-weight:500}.brand small{display:block;font:9px var(--mono);letter-spacing:.39em;color:var(--muted);margin-top:8px}.brand-mark{font-size:42px;color:var(--amber);line-height:1}.header nav{display:flex;align-items:center;gap:8px;margin:auto}.header nav button{position:relative;padding:13px 18px;font-size:12px;color:var(--muted)}.header nav button.active{color:var(--text)}.header nav button.active:after{content:'';height:2px;width:20px;background:var(--amber);position:absolute;bottom:0;left:calc(50% - 10px)}.header nav span{font:9px var(--mono);background:#263845;padding:3px 5px;margin-left:6px;border-radius:2px}.sound{font:10px var(--mono);color:var(--muted);border:1px solid var(--line);padding:8px 10px;white-space:nowrap}.sound[aria-pressed=true]{color:var(--blue)}main{max-width:1240px;margin:auto;padding:0 40px}.eyebrow{font:10px var(--mono);letter-spacing:.15em;color:var(--blue);display:block}.status-dot{display:inline-block;width:5px;height:5px;background:#9acbb5;border-radius:50%;box-shadow:0 0 10px #80ffb544;margin-right:7px;vertical-align:2px}.home-hero{display:grid;grid-template-columns:1fr 1fr;align-items:center;min-height:420px;gap:30px}.hero-copy{padding:45px 0 35px;z-index:1}.hero-copy h1{margin:22px 0}.intro{font-size:15px;color:#a6b9c4;line-height:1.7}.hero-meta{display:flex;align-items:center;gap:18px;margin-top:30px;font:9px var(--mono);color:var(--muted);letter-spacing:.08em}.hero-meta b{font-size:15px;font-weight:500;color:var(--text);margin-right:5px}.hero-meta i{height:14px;width:1px;background:var(--line)}.hero-art{height:390px;position:relative}.gate{position:absolute;inset:5px 50% auto auto;transform:translateX(50%);width:370px;aspect-ratio:1;filter:drop-shadow(0 0 25px #3375a122)}.gate-ring{border-radius:50%;position:absolute;inset:0;border:15px solid #38444b;box-shadow:0 0 0 2px #62717a,inset 0 0 0 3px #1b2730,inset 0 0 0 5px #5c6d77,0 0 0 5px #15232c,inset 0 0 20px #000}.gate-ring:before{content:'';position:absolute;inset:15px;border:1px solid #8e9ca2;border-radius:50%}.gate-glyphs{position:absolute;inset:-8px;border:1px solid #a3b1b349;border-radius:50%}.gate-glyphs i{position:absolute;top:0;left:calc(50% - 6px);font:12px var(--mono);width:12px;color:#9aa6a9;transform-origin:6px 176px;transform:rotate(calc(var(--i)*9.23deg));height:14px;text-align:center}.event-horizon{position:absolute;inset:29px;border-radius:50%;border:2px solid #4e9db6;box-shadow:inset 0 0 35px #70c8ed50,0 0 15px #4e9fc54f;background:repeating-radial-gradient(ellipse at 36% 40%,transparent 0 10px,#75d7ee10 12px,transparent 19px),radial-gradient(ellipse at 40% 35%,#5c9cbd,#28627c 30%,#102f47 70%,#15324d)}.chevron{position:absolute;left:calc(50% - 15px);top:-22px;width:30px;height:40px;clip-path:polygon(0 0,100% 0,75% 68%,50% 100%,25% 68%);background:linear-gradient(90deg,#895428,#ffc486 50%,#895428);transform-origin:15px 192px;transform:rotate(var(--a));box-shadow:0 0 15px orange}.featured-card{position:absolute;width:190px;bottom:40px;background:#14232e;border:1px solid #6b8897;box-shadow:0 15px 40px #0008;overflow:hidden}.featured-card .portrait{height:170px}.featured-card>div:not(.portrait){padding:11px 12px}.featured-card small{font:8px var(--mono);color:var(--amber);letter-spacing:.12em}.featured-card strong{display:block;font-size:16px;margin-top:3px;line-height:1.2}.featured-stat{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:9px 12px;font:8px var(--mono);color:var(--muted)}.featured-stat b{font:18px var(--mono);color:var(--text)}.featured-card.left{left:0;transform:rotate(-9deg);bottom:47px}.featured-card.right{right:0;transform:rotate(9deg);bottom:47px}.featured-card.centre{width:205px;left:calc(50% - 102px);bottom:23px;z-index:1;border-color:#d9b48a}.featured-card.centre .portrait{height:186px}.portrait{position:relative;overflow:hidden;background:#162633}.portrait img{display:block;width:100%;height:100%;object-fit:cover}.art-coordinate{font:8px var(--mono);color:#7993a3;letter-spacing:.19em;position:absolute;bottom:0;right:0}.panel{border:1px solid var(--line);background:linear-gradient(130deg,#14212d,#0e1923);position:relative}.panel:before{content:'';position:absolute;top:-1px;left:30px;width:70px;height:2px;background:var(--amber)}.setup{padding:25px 28px;margin-bottom:25px}.section-top{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:20px}.section-top h2{font-size:21px;font-weight:550;letter-spacing:-.02em;margin-top:7px}.subtle{color:var(--muted);font-size:11px}.factions{display:grid;grid-template-columns:repeat(8,1fr);gap:8px}.faction{color:#8194a2;position:relative;display:flex;flex-direction:column;align-items:center;gap:7px;border:1px solid #2c3b48;padding:10px 5px 12px;background:#0c151e}.faction svg{height:42px;width:42px}.faction>span{font-size:10px}.faction i{height:2px;position:absolute;bottom:0;width:20px;background:transparent}.faction:hover{background:#1b2934;border-color:#5c7280}.faction.selected{color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,#0c151e);border-color:var(--accent)}.faction.selected i{background:var(--accent)}.mission-row{display:flex;gap:22px;align-items:center;margin-top:23px;padding-top:20px;border-top:1px solid var(--line)}.mode-list{display:grid;grid-template-columns:repeat(3,1fr);flex:1;gap:12px}.mode{display:flex;text-align:left;align-items:center;gap:10px;padding:10px 6px;border-bottom:1px solid var(--line);color:var(--muted);position:relative}.mode.selected{color:var(--text);border-color:var(--amber)}.mode-index{font:12px var(--mono);color:#637c8d}.mode.selected .mode-index{color:var(--amber)}.mode strong{display:block;font-size:11px;font-weight:500}.mode small{display:block;font:9px var(--mono);margin-top:4px;color:var(--muted)}.launch{width:216px;text-align:center;flex-shrink:0}.primary{min-height:42px;padding:10px 20px;background:var(--amber);border:1px solid var(--amber);color:#14202a!important;font-weight:650;font-size:12px;display:inline-flex;align-items:center;justify-content:center;gap:20px;white-space:nowrap;letter-spacing:.01em}.primary:hover:not(:disabled){background:#f4b576;border-color:#f4b576}.primary:disabled{background:#20303c;border-color:#344753;color:#99b0bf!important}.primary span{font-size:17px;line-height:1}.launch .primary{width:100%}.launch small{font:8px var(--mono);color:var(--muted);display:block;margin-top:9px}.text-button{font-size:11px;color:var(--muted);padding:6px}.launch .text-button{font-size:10px;padding:7px 8px 0}.secondary{border:1px solid #587184;background:#172530;min-height:42px;padding:10px 20px;font-size:12px}.secondary:hover{background:#243847}footer{max-width:1160px;margin:0 auto;padding:18px 0 23px;border-top:1px solid var(--line);display:flex;gap:20px;align-items:center;color:#69808f;font:8px var(--mono);letter-spacing:.08em}footer span:nth-child(2){margin-left:auto}footer button{color:var(--muted);font:9px var(--mono);padding:3px}dialog{background:#101e29;border:1px solid #4a6374;color:var(--text);width:min(560px,calc(100% - 30px));padding:34px;max-height:90dvh;box-shadow:0 20px 90px #0009}dialog::backdrop{background:#03090ed9;backdrop-filter:blur(5px)}.close{position:absolute;right:12px;top:8px;font-size:27px;color:#91a5b2;z-index:2;background:#101e29bd;width:32px;line-height:32px}dialog h2{font-size:26px;letter-spacing:-.03em;margin:10px 0 18px}dialog p{color:#a6bac7;line-height:1.7;margin:12px 0;font-size:12px}dialog .eyebrow{font-size:9px;color:var(--amber)}.dialog-actions{display:flex;gap:12px;margin-top:24px}.rules{padding-left:20px;margin:15px 0}.rules li{margin:14px 0;color:#a6bac7;font-size:12px;line-height:1.7}.rules b{color:var(--text)}details{margin:20px 0;font-size:12px}summary{cursor:pointer;color:var(--blue)}.battle{max-width:880px;margin:auto;padding-top:18px}.battle-top{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font:10px var(--mono)}.back{font:10px var(--mono);color:var(--blue);padding:6px 0}.battle-top .text-button{font:10px var(--mono)}.scoreboard{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);margin:10px 0 18px;padding-bottom:15px}.score-side{display:flex;align-items:center;gap:12px;width:35%}.score-emblem{color:var(--blue);width:40px;height:40px}.score-emblem svg{width:100%}.enemy .score-emblem{color:var(--amber)}.score-side small{font:9px var(--mono);letter-spacing:.06em;color:var(--muted);display:block}.score-side strong{font:26px var(--mono);display:block;margin-top:3px;line-height:1.1}.score-side strong span{font:9px var(--mono);color:var(--muted)}.enemy{justify-content:flex-end;text-align:right}.round-count{text-align:center;position:relative}.round-count small{display:block;font:8px var(--mono);color:var(--muted);letter-spacing:.17em}.round-count strong{font:21px var(--mono)}.round-count strong span{font-size:11px;color:var(--muted)}.round-count em{display:block;position:absolute;font:7px var(--mono);white-space:nowrap;left:50%;transform:translateX(-50%);color:var(--amber)}.duel{display:grid;grid-template-columns:minmax(0,1fr) 72px minmax(0,1fr);align-items:stretch;max-width:760px;margin:auto}.battle-card{border:1px solid #49606f;background:#111e29;position:relative;min-width:0;box-shadow:0 8px 20px #0002}.battle-card.winning{border-color:var(--amber);box-shadow:0 0 0 1px #e7a15e55,0 0 30px #e7a15e10}.card-strip{height:25px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;font:8px var(--mono);color:var(--accent,var(--muted));background:#101a23;letter-spacing:.08em}.card-strip span+span{color:#718997}.battle-card .portrait{height:clamp(130px,25vh,200px)}.identity{display:flex;align-items:center;gap:9px;padding:12px 13px;border-top:2px solid var(--accent);min-height:66px}.faction-icon{color:var(--accent);width:32px;height:32px;flex-shrink:0}.faction-icon svg{width:100%;height:100%}.identity h2{font-size:19px;font-weight:550;line-height:1.13;letter-spacing:-.03em}.identity p{font-size:9px;color:var(--muted);margin-top:5px;line-height:1.2}.stats{padding:0 9px 9px}.stat{display:flex;align-items:center;gap:9px;height:35px;width:100%;border:1px solid transparent;border-top-color:#293b49;text-align:left;padding:0 9px;font-size:11px}.stat-index{font:8px var(--mono);color:#5d788b}.stat-label{flex:1}.stat strong{font:15px var(--mono);font-weight:500;min-width:28px;text-align:right}.stat-meter{width:40px;height:3px;background:#283b48}.stat-meter i{display:block;height:3px;background:#637f91}.stats button:hover{background:#25404f;border-color:#45677c;color:white}.stat.chosen{background:#354335;border-color:#96af79;color:#e3eddb}.stat.chosen .stat-meter i{background:var(--amber)}.versus{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px}.versus span{font:11px var(--mono);color:#698493;letter-spacing:.1em}.versus i{height:45px;width:1px;background:var(--line)}.card-back{background:repeating-linear-gradient(45deg,#10202c 0px,#10202c 10px,#12232f 10px,#12232f 11px);border-color:#30495b;display:flex;flex-direction:column}.back-design{flex:1;display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative;padding:28px 10px;overflow:hidden}.back-design .gate{position:relative;inset:auto;transform:none;width:200px;max-width:90%;margin-bottom:25px;filter:none}.gate.small .gate-ring{border-width:10px}.gate.small .event-horizon{inset:17px;background:radial-gradient(ellipse,#16415a,#0d2235)}.gate.small .gate-glyphs{display:none}.gate.small .chevron{top:-16px;width:18px;height:25px;left:calc(50% - 9px);transform-origin:9px 106px}.gate.small .gate-ring:before{inset:9px}.back-design>strong{font-size:18px;letter-spacing:.15em;font-weight:450}.back-design strong b{color:var(--amber);font-weight:450}.back-design>span{font:8px var(--mono);letter-spacing:.35em;color:var(--muted);margin-top:6px}.back-divider{height:1px;width:80px;background:#4a6375;margin:25px 0}.back-design>small{font:8px var(--mono);letter-spacing:.13em;color:#87a6ba}.back-design>p{font:8px var(--mono);color:#59778c;margin-top:8px}.round-control{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:18px auto 0;max-width:760px;min-height:52px}.round-control .primary{width:180px;flex-shrink:0;height:42px}.round-message strong{display:block;font-size:14px;font-weight:550}.round-message span{display:block;font-size:11px;color:var(--muted);margin-top:4px}.round-message small{font-size:9px;color:var(--muted)}.battle-bottom{max-width:760px;margin:17px auto 22px;padding-top:10px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font:8px var(--mono);color:#6f8899}.battle-active footer{max-width:760px;padding-top:13px;padding-bottom:13px}.result{min-height:650px;display:grid;grid-template-columns:1.1fr 1fr;gap:60px;align-items:center;max-width:950px;margin:auto}.result h1{font-size:clamp(44px,5.4vw,70px);margin:20px 0}.result-copy>p:not(.eyebrow){font-size:13px;color:var(--muted);max-width:360px}.result-score{display:flex;gap:30px;align-items:center;margin:30px 0 18px}.result-score small{font:8px var(--mono);color:var(--muted);display:block;letter-spacing:.1em}.result-score strong{font:48px var(--mono);color:var(--amber);line-height:1.25}.result-score>span{font:30px var(--mono);color:#547084}.result-actions{display:flex;gap:12px;margin-top:30px}.result-portrait{border:1px solid var(--accent);background:#12222e}.result-portrait .portrait{height:330px}.result-portrait>div:not(.portrait){padding:22px}.result-portrait svg{width:40px;height:40px;float:right;color:var(--accent)}.result-portrait h2{font-size:23px}.result-portrait p{font:10px var(--mono);color:var(--accent);margin-top:8px}.deck{padding:45px 0}.deck-heading{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:30px}.deck-heading h1{font-size:49px;margin-top:18px}.deck-heading>p{color:var(--muted);font-size:13px;text-align:right}.deck-tools{display:flex;gap:12px;align-items:center;margin-bottom:25px}.search{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:#11202b;padding:9px 13px;width:300px;max-width:100%}.search>span{font-size:21px;color:var(--blue);line-height:1}.search input{width:100%;background:none;color:var(--text);border:0;font-size:12px;min-width:0}.search input:focus-visible{outline-offset:4px}.deck-tools select{background:#11202b;border:1px solid var(--line);color:#a3bac9;padding:12px 30px 12px 12px;font-size:11px;min-width:0}.deck-tools>span{font:9px var(--mono);color:var(--muted);margin-left:auto;white-space:nowrap}.card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.archive-card{padding:0;background:#111e29;border:1px solid var(--line);text-align:left;overflow:hidden}.archive-card:hover{border-color:var(--accent);background:#192c39}.archive-card .portrait{height:160px}.archive-identity{padding:13px 13px 15px;border-top:2px solid var(--accent)}.archive-identity h2{font-size:16px;line-height:1.2;font-weight:550;letter-spacing:-.025em}.archive-identity p{font-size:9px;line-height:1.4;color:var(--muted);margin-top:6px;min-height:13px}.archive-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;border-top:1px solid var(--line);padding:11px 13px}.archive-stats span{font:7px var(--mono);color:#7c96a8}.archive-stats b{font:17px var(--mono);display:block;margin-top:6px;color:var(--text)}.empty{grid-column:1/-1;padding:50px 0;color:var(--muted)}.character-dialog{padding:0 0 24px;overflow:auto}.character-dialog #dialog-body>p,.character-dialog h2,.detail-stats,.source-link{margin-left:28px;margin-right:28px}.detail-photo .portrait{height:250px}.character-dialog #dialog-body>.eyebrow{margin-top:24px}.character-dialog h2{margin-top:8px;margin-bottom:4px}.character-dialog .detail-title{margin-top:0;color:var(--blue)}.detail-stats{display:grid;grid-template-columns:1fr 1fr;gap:14px 24px;margin-top:22px}.detail-stats>div{display:flex;justify-content:space-between;position:relative;padding-bottom:10px;font-size:11px;color:#a6bac7}.detail-stats b{font:14px var(--mono);color:var(--text)}.detail-stats i{position:absolute;bottom:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--blue) var(--value),#293f4e var(--value))}.source-link{display:block;font:9px var(--mono);margin-top:24px}
@media(min-width:1400px){.home-hero{min-height:460px}.hero-art{height:420px}.featured-card{bottom:50px}.featured-card.centre{bottom:33px}.gate{top:15px}}
@media(max-width:1050px){.header{padding:0 30px}.header nav button{padding:12px}main{padding:0 30px}.home-hero{min-height:390px;gap:18px}.hero-art{height:350px}.hero-art .gate{width:320px}.hero-art .gate-glyphs i{transform-origin:6px 151px}.hero-art .chevron{transform-origin:15px 167px}.featured-card{width:155px;bottom:40px}.featured-card .portrait{height:145px}.featured-card.centre{width:175px;left:calc(50% - 87px);bottom:23px}.featured-card.centre .portrait{height:162px}.featured-card strong{font-size:14px}.setup{padding:22px}.mission-row{gap:16px}.mode-list{gap:8px}.mode strong{font-size:10px}.mode small{font-size:8px}.mode-index{display:none}.launch{width:180px}.card-grid{gap:15px}.archive-card .portrait{height:135px}footer{margin:0 30px}.hero-meta{gap:12px}}
@media(max-width:760px){.header{height:72px;padding:0 20px;gap:10px}.brand{font-size:14px;gap:8px}.brand-mark{font-size:32px}.brand small{font-size:7px;letter-spacing:.3em;margin-top:6px}.header nav{gap:0;margin-left:auto;margin-right:0}.header nav button{font-size:10px;padding:12px 9px}.header nav span{display:none}.sound{font-size:8px;padding:7px}.home-hero{grid-template-columns:1fr;gap:0;min-height:0;position:relative;padding-top:26px}.hero-copy{padding:0;max-width:430px}.hero-copy h1{font-size:55px;margin:19px 0}.intro{font-size:13px}.hero-meta{margin-top:18px}.hero-art{height:330px;width:400px;max-width:100%;margin:12px auto 23px}.hero-art .gate{width:310px}.hero-art .gate-glyphs i{transform-origin:6px 146px}.hero-art .chevron{transform-origin:15px 162px}.hero-art .featured-card{width:155px;bottom:34px}.hero-art .featured-card.centre{width:175px;left:calc(50% - 87px);bottom:15px}.hero-art .featured-card .portrait{height:145px}.hero-art .featured-card.centre .portrait{height:162px}.hero-copy .eyebrow{font-size:8px}.section-top{align-items:start}.section-top .subtle{max-width:120px;text-align:right;font-size:9px}.section-top h2{font-size:18px}.section-top .eyebrow{font-size:8px}.factions{grid-template-columns:repeat(4,1fr)}.faction svg{width:34px;height:34px}.faction{padding:8px 5px 10px}.faction>span{font-size:9px}.mission-row{flex-direction:column;gap:16px;margin-top:18px;padding-top:13px}.mode-list{width:100%;gap:9px}.mode{padding:9px 2px}.mode strong{font-size:10px;line-height:1.35}.mode small{font-size:8px;line-height:1.5}.launch{width:100%}.launch .primary{width:100%}.setup{padding:18px}.launch small{font-size:9px}footer{margin:0 20px;gap:12px;font-size:7px}footer span:nth-child(2){letter-spacing:0}.result{min-height:0;gap:28px;padding:35px 0;grid-template-columns:1fr 1fr}.result h1{font-size:38px}.result-portrait .portrait{height:230px}.result-actions{flex-direction:column}.result-score{gap:20px}.result-score strong{font-size:37px}.result-portrait>div:not(.portrait){padding:16px}.result-portrait svg{float:none;width:30px}.result-portrait h2{font-size:19px}.result-portrait p{font-size:9px}.deck-heading h1{font-size:38px}.deck-heading>p{font-size:11px}.deck-tools{flex-wrap:wrap;gap:10px}.search{width:100%}.deck-tools select{flex:1}.deck-tools>span{font-size:8px}.card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.archive-card .portrait{height:120px}.archive-identity{padding:10px}.archive-identity h2{font-size:13px}.archive-identity p{font-size:8px;min-height:23px}.archive-stats{padding:10px;gap:4px}.archive-stats span{font-size:6px}.archive-stats b{font-size:15px}.battle{padding-top:10px}.battle .duel{grid-template-columns:minmax(0,1fr) 35px minmax(0,1fr)}.battle-card .portrait{height:clamp(130px,22vh,180px)}.identity{padding:10px;gap:6px;min-height:62px}.identity h2{font-size:16px}.identity p{font-size:8px}.faction-icon{width:25px;height:25px}.stat-meter{display:none}.stat{height:34px;padding:0 6px;gap:7px}.stat-label{font-size:10px}.card-strip{font-size:7px;padding:0 9px}.back-design .gate{width:160px}.back-design .gate.small .chevron{transform-origin:9px 86px}.back-design>strong{font-size:13px}.back-design>p{font-size:7px}.score-side small{font-size:8px}.score-side strong{font-size:23px}.score-side strong span{font-size:8px}.score-emblem{width:30px;height:30px}.score-side{gap:7px}.scoreboard{margin-bottom:14px;padding-bottom:10px}.round-control{margin-top:13px;gap:12px}.round-message strong{font-size:13px}.round-message span{font-size:10px}.round-control .primary{width:150px}.battle-bottom{font-size:7px}.battle-active footer{margin:0;padding-left:0;padding-right:0}}
@media(max-width:520px){html{scrollbar-gutter:auto}.header{height:62px;padding:0 14px;gap:6px}.brand{font-size:12px;gap:6px;letter-spacing:.1em}.brand-mark{font-size:27px}.brand small{font-size:6px;letter-spacing:.24em}.header nav button{font-size:9px;padding:11px 7px}.header nav button#rules{font-size:0;width:24px}.header nav button#rules:before{content:'?';font:11px var(--mono);border:1px solid #506673;border-radius:50%;width:15px;height:15px;display:block}.sound{font-size:7px;padding:6px;letter-spacing:-.02em}main{padding:0 16px}.home-hero{padding-top:26px}.hero-copy h1{font-size:52px}.hero-meta{font-size:8px;gap:12px}.hero-meta b{font-size:14px}.hero-art{height:300px;width:340px;margin-top:8px}.hero-art .gate{width:280px}.hero-art .gate-glyphs i{transform-origin:6px 131px}.hero-art .chevron{transform-origin:15px 147px}.hero-art .featured-card{width:130px;bottom:30px}.hero-art .featured-card .portrait{height:126px}.hero-art .featured-card.centre{width:150px;left:calc(50% - 75px);bottom:13px}.hero-art .featured-card.centre .portrait{height:145px}.featured-card>div:not(.portrait){padding:10px}.featured-card strong{font-size:12px}.featured-card small{font-size:7px}.featured-stat{font-size:7px;padding:7px 10px}.featured-stat b{font-size:16px}.setup{padding:16px;margin-bottom:20px}.section-top{gap:10px;margin-bottom:15px}.section-top .subtle{font-size:8px;max-width:100px}.factions{gap:7px}.faction>span{font-size:8px}.mission-row{gap:13px}.mode strong{font-size:9px}.mode small{font-size:7px}.mode-list{gap:10px}footer{margin:0 16px;letter-spacing:.02em;font-size:6px;gap:10px}footer button{font-size:8px}.battle-active main{padding:0 12px}.battle-active .header{height:54px}.battle-top{font-size:8px}.battle-top .text-button,.battle-top .back{font-size:8px}.battle-top>span{font-size:7px}.scoreboard{padding:8px 0 10px;margin-top:2px;margin-bottom:11px;min-height:62px}.score-side{width:38%;gap:5px}.score-side small{font-size:6px;letter-spacing:0}.score-side strong{font-size:21px}.score-side strong span{font-size:7px}.score-emblem{width:24px;height:24px}.round-count small{font-size:7px}.round-count strong{font-size:18px}.round-count strong span{font-size:9px}.round-count em{font-size:6px;bottom:-10px}.battle .duel{grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr)}.versus span{font-size:8px}.versus i{height:30px}.battle-card .portrait{height:clamp(113px,21dvh,158px)}.card-strip{height:20px;padding:0 7px;font-size:6px;letter-spacing:.02em}.identity{padding:8px 7px;min-height:59px;gap:0}.identity .faction-icon{display:none}.identity h2{font-size:15px;letter-spacing:-.025em}.identity p{font-size:7px;line-height:1.3;margin-top:4px}.stats{padding:0 5px 5px}.stat{height:31px;gap:5px;padding:0 5px}.stat-label{font-size:9px}.stat-index{font-size:6px}.stat strong{font-size:13px;min-width:22px}.back-design{padding:12px 5px}.back-design .gate{width:125px;margin-bottom:20px}.back-design .gate.small .chevron{transform-origin:9px 68.5px;width:14px;height:21px;left:calc(50% - 7px);top:-13px}.back-design .gate.small .gate-ring{border-width:8px}.back-design .gate.small .event-horizon{inset:13px}.back-design .gate.small .gate-ring:before{inset:7px}.back-design>strong{font-size:10px;letter-spacing:.09em}.back-design>span{font-size:6px;letter-spacing:.25em}.back-divider{margin:18px 0}.back-design>small{font-size:6px}.back-design>p{font-size:6px;max-width:100px;text-align:center;line-height:1.5}.round-control{display:grid;grid-template-columns:1fr;gap:10px;margin-top:12px;min-height:0}.round-message{text-align:center;min-height:35px}.round-message strong{font-size:12px}.round-message span{font-size:9px;margin-top:3px}.round-message small{font-size:7px}.round-control .primary{width:100%;height:38px;min-height:38px;font-size:11px;gap:25px}.battle-bottom{margin:10px 0 12px;padding-top:8px;font-size:6px}.battle-active footer{padding:10px 0;margin:0 12px;font-size:6px}.deck{padding-top:28px}.deck-heading{align-items:start}.deck-heading h1{font-size:34px}.deck-heading>p{display:none}.deck .eyebrow{font-size:8px}.deck-tools select{font-size:10px;padding:10px 20px 10px 8px;max-width:calc(50% - 5px)}.deck-tools>span{width:100%;margin-left:0}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.archive-card .portrait{height:115px}.archive-identity h2{font-size:13px}.archive-identity p{font-size:7px}.archive-stats span{font-size:6px}.archive-stats b{font-size:14px}.archive-card .card-strip{height:22px}.result{grid-template-columns:1fr;gap:30px;padding:35px 4px}.result h1{font-size:52px}.result-actions{flex-direction:row;gap:10px}.result-actions button{flex:1;padding:10px 14px}.result-portrait{max-width:340px}.result-portrait .portrait{height:230px}.result-portrait svg{float:right}.result-score{margin:22px 0 15px}.result-score strong{font-size:44px}dialog{padding:27px 23px}dialog h2{font-size:24px}.dialog-actions{gap:8px}.dialog-actions button{padding:10px 14px}.detail-photo .portrait{height:210px}.character-dialog #dialog-body>p,.character-dialog h2,.detail-stats,.source-link{margin-left:22px;margin-right:22px}}
@media(max-height:650px) and (max-width:520px){.battle-active .header{height:49px}.battle{padding-top:5px}.scoreboard{min-height:49px;padding:5px 0 7px;margin-bottom:8px}.battle-card .portrait{height:105px}.identity{min-height:52px;padding:6px 7px}.identity h2{font-size:13px}.identity p{font-size:6px}.stat{height:27px}.round-control{gap:7px;margin-top:9px}.round-message{min-height:31px}.round-message strong{font-size:11px}.round-message span{font-size:8px}.round-control .primary{height:35px;min-height:35px}.battle-bottom{margin:8px 0;padding-top:6px}.battle-active footer{padding:8px 0}.back-design .gate{width:110px}.back-design .gate.small .chevron{transform-origin:9px 61px}.back-design>strong{font-size:9px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
/* Stargate visual pass: engraved naquadah frames, gate glyphs and chevron hardware. */
@font-face{font-family:Stargate;src:url('assets/stargate.ttf') format('truetype');font-display:swap}@font-face{font-family:GateGlyphs;src:url('assets/gate-glyphs.ttf') format('truetype');font-display:swap}@font-face{font-family:Ancient;src:url('assets/ancient.ttf') format('truetype');font-display:swap}
.brand>span:last-child{font-family:Stargate,Georgia,serif;font-size:23px;letter-spacing:.06em}.brand small{font-family:var(--mono)}.brand-mark{width:38px;height:42px;display:block}.brand-mark svg{height:100%;width:100%}.brand b{font-family:Inter,Arial,sans-serif;font-size:.72em;letter-spacing:.06em}.gate-glyphs i{font-family:GateGlyphs;font-size:16px;font-style:normal;color:#a0b5ba;top:-1px;text-shadow:0 1px 1px #000}.gate-ring{background:repeating-conic-gradient(from 0deg,#21303a 0deg 1deg,#536069 1deg 1.5deg,#2e3e49 1.5deg 9deg)}.gate-ring:after{content:'';position:absolute;inset:20px;border:2px dashed #9cb0b43d;border-radius:50%;pointer-events:none}.event-horizon{background:repeating-radial-gradient(ellipse at 36% 40%,transparent 0 10px,#75d7ee15 12px,transparent 19px),radial-gradient(ellipse at 40% 35%,#5c9cbd,#28627c 30%,#102f47 70%,#15324d)}
.battle-card,.archive-card,.featured-card{background:linear-gradient(110deg,#263844,#172936 35%,#111e29 70%);border-color:#6d818b;box-shadow:inset 0 0 0 2px #07141b,0 8px 24px #0004}.battle-card:before,.archive-card:before{content:'';position:absolute;inset:2px;border:1px solid #a7bdc025;pointer-events:none;z-index:2}.archive-card{position:relative}.card-strip{background:linear-gradient(#56656c,#283b47 25%,#182c39 70%,#617078);border-bottom:1px solid #a8c2c058;color:var(--accent,var(--blue));text-shadow:0 1px 1px #000;font-size:8px;letter-spacing:.12em}.card-strip span+span{color:#a5b6ba}.portrait{background:linear-gradient(105deg,#687378 0%,#23333c 4%,#637278 5%,#253e4c 8%,#162632 50%,#3b535f 92%,#859399 96%,#293943 97%,#66737a);box-shadow:inset 0 2px 0 #aec3c355,inset 0 -2px 0 #06121c}.portrait img{position:absolute;inset:7px 14px;width:calc(100% - 28px);height:calc(100% - 14px);border:1px solid #a4b5b555;box-shadow:0 0 0 2px #09151c;object-fit:cover}.sg-frame{position:absolute;inset:0;pointer-events:none}.frame-glyphs{position:absolute;top:14px;bottom:12px;width:12px;font:10px GateGlyphs;line-height:1.45;writing-mode:vertical-rl;letter-spacing:5px;color:#bccdceaa;overflow:hidden;text-shadow:1px 1px #06151c}.frame-glyphs.left{left:1px}.frame-glyphs.right{right:1px;transform:rotate(180deg)}.frame-chevron{position:absolute;width:28px;height:15px;background:linear-gradient(90deg,#8e532d,#f3b779 45%,#bf7e49 70%,#5a351d);clip-path:polygon(0 0,100% 0,82% 65%,50% 100%,18% 65%);z-index:1;filter:drop-shadow(0 2px 2px #000)}.frame-chevron:after{content:'';position:absolute;inset:2px 7px 4px;background:#ffd3a0;clip-path:polygon(0 0,100% 0,50% 100%)}.frame-chevron.top{top:0;left:calc(50% - 14px)}.frame-chevron.bottom-left{bottom:0;left:4px;transform:rotate(180deg);width:20px;height:10px}.frame-chevron.bottom-right{bottom:0;right:4px;transform:rotate(180deg);width:20px;height:10px}.frame-node{position:absolute;width:3px;height:3px;background:#cad3d2;border:1px solid #314551;box-shadow:0 0 0 1px #889b9e;top:50%}.frame-node.left{left:5px}.frame-node.right{right:5px}.identity{background:linear-gradient(100deg,#223846,#172c39 50%,#243b47);border-top:1px solid #8dabb277;border-bottom:1px solid #040e16;position:relative;box-shadow:inset 0 2px 0 #98b4bd25,inset 0 -1px 0 #6181904d}.identity:after{content:'';position:absolute;bottom:0;left:12px;width:40px;height:2px;background:var(--accent);box-shadow:0 0 6px color-mix(in srgb,var(--accent) 40%,transparent)}.identity h2,.featured-card strong,.archive-identity h2{font-family:Stargate,Georgia,serif;font-weight:400;letter-spacing:.015em}.identity h2{font-size:20px}.featured-card strong{font-size:18px}.stats{padding-top:6px;background:repeating-linear-gradient(0deg,#0b1d2800 0px,#0b1d2800 5px,#91bbcc04 5px,#91bbcc04 6px)}.stat{border-top-color:#49637177;background:linear-gradient(90deg,#1b344126,transparent)}.stat strong{color:#c3edff;text-shadow:0 0 9px #75cef626}.stat-index{color:#789cae}.stat-meter{height:4px;background:#0b1922;border:1px solid #476271;width:44px}.stat-meter i{height:2px;background:var(--accent,var(--blue))}.stat.chosen{background:linear-gradient(90deg,#e7a15e26,#c19d7040);border-color:#d6a05f;color:#ffe0b9;box-shadow:inset 3px 0 #e7a15e}.stat.chosen strong{color:#ffe0b9;text-shadow:0 0 8px #ffb34a44}.battle-card.winning{border-color:#edb16b;box-shadow:0 0 0 1px #e7a15e66,0 0 25px #e7a15e20,inset 0 0 0 2px #07141b}.back-design{background:repeating-linear-gradient(45deg,#78b1c206 0px,#78b1c206 1px,transparent 1px,transparent 6px),radial-gradient(ellipse at 50% 35%,#2b607a33,transparent 65%)}.back-design:before{content:'';position:absolute;inset:10px;border:1px solid #829aa377;box-shadow:inset 0 0 0 3px #0b1b25,0 0 0 2px #344e5d;clip-path:polygon(12px 0,calc(100% - 12px) 0,100% 12px,100% calc(100% - 12px),calc(100% - 12px) 100%,12px 100%,0 calc(100% - 12px),0 12px);pointer-events:none}.back-design>strong{font-family:Stargate,Georgia,serif;font-size:24px;letter-spacing:.035em}.back-design>strong b{font-family:Inter,Arial,sans-serif;font-size:.65em}.back-design>span{color:#b9cfda}.archive-identity{background:linear-gradient(100deg,#213745,#162936);border-top:1px solid #768d94;box-shadow:inset 0 2px #a7bdc022}.archive-identity h2{font-size:19px}.archive-stats{background:#091b2670;border-top:1px solid #456272}.faction{background:linear-gradient(#1a2c38,#0e1c27);border:1px solid #4c6472;box-shadow:inset 0 0 0 3px #0d1b2580}.faction svg{filter:drop-shadow(0 1px 1px #000)}.result-portrait .portrait img,.detail-photo .portrait img{inset:9px 16px;width:calc(100% - 32px);height:calc(100% - 18px)}
@media(max-width:1050px){.brand>span:last-child{font-size:20px}.featured-card strong{font-size:16px}.archive-identity h2{font-size:16px}}
@media(max-width:760px){.brand>span:last-child{font-size:17px}.brand-mark{width:28px;height:33px}.identity h2{font-size:17px}.archive-identity h2{font-size:15px}.back-design>strong{font-size:19px}}
@media(max-width:520px){.brand>span:last-child{font-size:15px}.brand-mark{width:24px;height:29px}.brand small{font-size:6px}.header nav{flex-shrink:0}.header nav button{white-space:nowrap}.featured-card strong{font-size:14px}.identity h2{font-size:15px;line-height:1.13}.identity p{font-size:7px}.identity .faction-icon{display:block;width:18px;height:22px;margin-right:5px}.identity{gap:0}.archive-identity h2{font-size:15px}.portrait img{inset:6px 11px;width:calc(100% - 22px);height:calc(100% - 12px)}.frame-glyphs{font-size:8px;letter-spacing:3px;width:9px;top:12px}.frame-glyphs.left{left:0}.frame-glyphs.right{right:0}.frame-chevron.top{width:23px;height:12px;left:calc(50% - 11.5px)}.frame-node.left{left:3px}.frame-node.right{right:3px}.back-design>strong{font-size:14px;letter-spacing:.015em}.archive-card .portrait{height:120px}.stats{padding-top:4px}.identity{min-height:60px}.battle-card .stat{height:30px}}
@media(max-height:650px) and (max-width:520px){.identity{min-height:52px}.identity h2{font-size:13px}.identity .faction-icon{width:15px;height:20px;margin-right:4px}.battle-card .stat{height:26px}.stats{padding-top:4px}.back-design>strong{font-size:11px}.header nav button{padding-left:5px;padding-right:5px}.brand>span:last-child{font-size:14px}.brand-mark{width:21px}}
.identity h2,.featured-card strong,.archive-identity h2{text-transform:uppercase}.identity h2{font-size:18px}.featured-card strong{font-size:16px}.archive-identity h2{font-size:17px}
@media(max-width:1050px){.featured-card strong{font-size:14px}.archive-identity h2{font-size:15px}}
@media(max-width:760px){.identity h2{font-size:16px}.archive-identity h2{font-size:14px}}
@media(max-width:520px){.identity h2{font-family:Inter,Arial,sans-serif;font-size:14px;text-transform:none;letter-spacing:-.025em}.archive-identity h2{font-size:13px}.featured-card strong{font-size:12px}}
@media(max-height:650px) and (max-width:520px){.identity h2{font-size:12px}}
/* The unrevealed card uses Paul's SGC reference as an unchanged local image. */
.sgc-gate-art{width:100%;height:235px;margin-bottom:24px;overflow:hidden;border-top:1px solid #6f879466;border-bottom:1px solid #6f879466;background:#050a0d;box-shadow:0 0 0 3px #07131b,0 0 0 4px #4d626f44;flex-shrink:0}.sgc-gate-art img{display:block;height:100%;width:100%;object-fit:cover;object-position:50% 50%}.back-design{padding-left:18px;padding-right:18px}
@media(max-width:760px){.sgc-gate-art{height:200px;margin-bottom:22px}.back-design{padding-left:14px;padding-right:14px}}
@media(max-width:520px){.sgc-gate-art{height:165px;margin-bottom:19px}.back-design{padding-left:10px;padding-right:10px}}
@media(max-height:650px) and (max-width:520px){.sgc-gate-art{height:135px;margin-bottom:16px}.back-design{padding-left:9px;padding-right:9px}.back-divider{margin:15px 0}}
/* Dialling uses the real DHD supplied by Paul; the centre is the focus of the control. */
.launch .dhd-button{width:100%;display:flex;align-items:center;flex-direction:column;gap:9px;padding:0 0 3px;color:var(--text);border:0;background:transparent}.dhd-art{position:relative;display:block;width:132px;height:112px;overflow:hidden;border-radius:50%;border:2px solid #8b9da3;box-shadow:0 0 0 3px #07121a,0 0 0 4px #52626e,0 8px 18px #0008;background:#28353a}.dhd-art img{display:block;position:absolute;width:210%;height:auto;max-width:none;left:-52%;top:-29%;pointer-events:none}.dhd-centre{position:absolute;left:36%;top:30%;width:30%;height:37%;border-radius:50%;box-shadow:0 0 16px #fa3b173d;pointer-events:none}.dhd-button:hover .dhd-centre{box-shadow:0 0 24px 5px #ff502177,inset 0 0 14px #ffc87244}.dhd-button:hover .dhd-art{border-color:#dcab79;box-shadow:0 0 0 3px #07121a,0 0 0 4px #c89762,0 8px 18px #0008}.dhd-label{font-family:Stargate,Georgia,serif;text-transform:uppercase;font-size:15px;letter-spacing:.025em;color:#e4b381}.dhd-label i{font:14px Inter,Arial,sans-serif;margin-left:8px;color:var(--amber);font-style:normal}.launch .text-button{padding-top:4px}
@media(max-width:760px){.mission-row{display:grid;grid-template-columns:1fr 155px;align-items:center}.mode-list{grid-template-columns:1fr;gap:2px}.mode{padding:8px 6px}.mode strong{font-size:11px}.mode small{font-size:8px}.launch{width:155px}.dhd-art{width:115px;height:98px}.dhd-label{font-size:13px}.launch small{font-size:7px;line-height:1.6}.launch .text-button{font-size:9px}}
@media(max-width:520px){.mission-row{grid-template-columns:minmax(0,1fr) 128px;gap:12px}.mode-list{gap:1px}.mode strong{font-size:10px}.mode small{font-size:7px}.launch{width:128px}.dhd-art{width:102px;height:87px}.dhd-label{font-size:12px;letter-spacing:0}.dhd-label i{font-size:11px;margin-left:4px}.launch small{font-size:6px}.launch .text-button{font-size:8px}}
