small{font-size:.75rem}
:root{--night:#0b1025;--panel:#141b38;--violet:#9b7bff;--cyan:#76e5df;--paper:#eef0ff;--muted:#929bbd;--line:rgba(198,207,255,.18);--danger:#ff7f8d;font:16px/1.45 Inter,ui-sans-serif,system-ui,sans-serif;color:var(--paper);background:var(--night);color-scheme:dark}
*{box-sizing:border-box}
body{margin:0;min-width:300px;min-height:100vh;background:radial-gradient(circle at 80% 0%,rgba(155,123,255,.18),transparent 35rem),var(--night)}
button,a,input{font:inherit}
button{color:inherit;cursor:pointer}
.skip{position:fixed;top:-5rem;left:1rem;z-index:30;background:#fff;color:#000;padding:.7rem}
.skip:focus{top:1rem}
:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}
header{height:82px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:12px clamp(15px,4vw,60px);position:sticky;top:0;background:rgba(11,16,37,.88);backdrop-filter:blur(18px);z-index:10}
.brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none;font-weight:750}
.brand small{display:block;color:var(--muted);font-size:0.75rem;text-transform:uppercase;letter-spacing:.15em}
.moon{width:46px;height:46px;border:1px solid var(--violet);border-radius:50%;display:grid;place-items:center;color:var(--cyan);box-shadow:inset -12px 0 0 rgba(155,123,255,.22)}
nav{display:flex;gap:8px}
nav button{width:auto;min-width:44px;height:44px;border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:0 15px}
main{width:min(1550px,100%);margin:auto}
.home{padding:clamp(48px,8vw,120px) clamp(18px,6vw,90px)}
.night{text-transform:uppercase;letter-spacing:.22em;font-size:0.75rem;color:var(--cyan)}
.home h1{font:400 clamp(3.2rem,8vw,8rem)/.9 ui-serif,Georgia,serif;letter-spacing:-.05em;margin:22px 0}
.home h1 em{font-style:normal;color:var(--violet)}
.home>p{max-width:60ch;color:#b6bdd8;font-size:1.12rem}
.modes{display:grid;grid-template-columns:1.3fr 1fr;gap:13px;max-width:950px;margin:42px 0 25px}
.modes button{min-height:190px;border:1px solid var(--line);border-radius:4px 28px 4px 28px;background:linear-gradient(145deg,var(--panel),#10162f);padding:23px;text-align:left;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end}
.modes button:first-child{background:linear-gradient(145deg,#6147be,#30256c)}
.modes span{margin-bottom:auto;font-size:0.75rem;text-transform:uppercase;letter-spacing:.14em}
.modes b{font:500 1.65rem ui-serif,Georgia}
.modes small{color:#c0c6e2;margin-top:6px}
.archive-bar{display:flex;flex-wrap:wrap;align-items:end;gap:8px;max-width:950px;margin-top:18px;padding:12px;border:1px solid var(--line);background:var(--panel)}
.archive-bar label{display:grid;gap:4px;flex:1;color:#c2c9e3;font-size:0.75rem;text-transform:uppercase;letter-spacing:.1em}
.archive-bar input{min-height:44px;border:1px solid var(--violet);background:#0b1025;color:var(--paper);padding:0 11px;color-scheme:dark}
.archive-bar button{min-height:44px;border:0;background:var(--cyan);color:#07151a;font-weight:850;padding:0 17px}
.archive-bar small{flex-basis:auto;width:100%;min-width:0;align-self:stretch;color:#9da8cd;font-size:0.75rem;overflow-wrap:anywhere}
.career-strip{display:grid;grid-template-columns:repeat(3,1fr);max-width:950px;margin-top:16px;border:1px solid var(--line);background:#10162f}
.career-strip div{padding:12px;border-right:1px solid var(--line)}
.career-strip div:last-child{border:0}
.career-strip b,.career-strip span{display:block}
.career-strip b{font:500 1.5rem ui-serif,Georgia;color:var(--violet)}
.career-strip span{font-size:0.75rem;text-transform:uppercase;color:#c0c7e1}
.badge-case{max-width:950px;padding:12px 0;border-bottom:1px solid var(--line)}
.badge-case summary{cursor:pointer;color:var(--cyan);font-size:0.75rem;text-transform:uppercase;letter-spacing:.12em}
.badge-case ul{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;padding:0;list-style:none}
.badge-case li{border:1px solid var(--line);padding:9px;opacity:.42;background:#10162f}
.badge-case li.earned{opacity:1;border-color:var(--violet);background:#2a2159}
.badge-case b,.badge-case span{display:block}
.badge-case span{font-size:0.75rem;color:#c4cae2}
.local-ledger{max-width:950px;margin-top:14px;border:1px solid var(--line);background:#10162f;padding:14px}
.local-ledger>div{display:grid;gap:3px}.local-ledger>div>span,.local-ledger summary{color:var(--cyan);font-size:0.75rem;text-transform:uppercase;letter-spacing:.12em}.local-ledger ul,.local-ledger ol{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:7px}.local-ledger li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;border-top:1px solid var(--line);padding-top:9px;min-width:0}.local-ledger li div,.local-ledger li b,.local-ledger li span{min-width:0}.local-ledger li b,.local-ledger li span{display:block;overflow-wrap:anywhere}.local-ledger li span{font-size:0.75rem;color:#aeb7d7}.local-ledger button,.dialog-actions button,#history-play{min-height:44px;border:1px solid var(--cyan);background:transparent;color:var(--paper);padding:0 12px}.local-ledger [data-discard-draft]{border-color:var(--danger)}
.legend{display:flex;flex-wrap:wrap;gap:9px}
.legend span{border:1px solid var(--line);padding:7px 10px;font-size:0.75rem;color:var(--muted)}
.legend i{display:inline-block;width:9px;height:9px;background:var(--violet);margin-right:5px}
.legend .rough{background:var(--danger)}
.legend .narrow{background:var(--cyan)}
.legend .slope{background:#efcc74}
.shift-head{display:grid;grid-template-columns:170px 1fr auto;gap:20px;align-items:end;padding:27px clamp(14px,3vw,46px) 20px}
.shift-head>button{border:0;background:transparent;text-align:left}
.shift-head span{font-size:0.75rem;text-transform:uppercase;letter-spacing:.14em;color:var(--cyan)}
.shift-head h1{font:500 clamp(2rem,4vw,4rem)/1 ui-serif,Georgia;margin:5px 0}
.clock{border-left:1px solid var(--line);padding-left:20px}
.clock span{display:block;color:var(--muted)}
.clock b{font-size:1.7rem}
.workspace{display:grid;grid-template-columns:290px minmax(430px,1fr) 240px;gap:13px;padding:0 clamp(14px,3vw,46px) 60px}
.manifest,.route-card{background:var(--panel);border:1px solid var(--line);padding:16px;align-self:start}
.aside-title{display:flex;justify-content:space-between;text-transform:uppercase;letter-spacing:.12em;font-size:0.75rem;color:var(--cyan);margin-bottom:14px}
.forecast{border-left:4px solid var(--cyan);background:#0c122b;padding:10px;margin-bottom:13px}
.forecast b,.forecast span{display:block}
.forecast b{color:var(--cyan);font-size:0.75rem;text-transform:uppercase;letter-spacing:.1em}
.forecast span{font-size:0.75rem;color:#c0c6df;margin-top:4px}
.exhibit{width:100%;min-height:78px;border:1px solid var(--line);background:#0f1530;display:grid;grid-template-columns:42px 1fr auto;align-items:center;text-align:left;gap:9px;padding:9px;margin-bottom:8px}
.exhibit>span{width:38px;height:38px;border:1px solid var(--violet);display:grid;place-items:center;font-weight:900}
.exhibit b,.exhibit small{display:block}
.exhibit small{font-size:0.75rem;color:var(--muted);margin-top:3px}
.exhibit i{font-style:normal;font-size:0.75rem;text-transform:uppercase;color:var(--cyan)}
.exhibit.active{background:#382c72}
.exhibit.done{opacity:.58}
.controls{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:15px}
.controls button{min-height:44px;border:1px solid var(--line);background:transparent;font-size:0.75rem}
.controls button:nth-last-child(-n+2){grid-column:1/-1}
.controls #install{background:var(--violet);color:#100d22;font-weight:850}
.controls button:disabled{opacity:.35;cursor:not-allowed}
.manifest>p{min-height:70px;font-size:0.75rem;color:#aeb5d0;border-top:1px solid var(--line);padding-top:12px}
.plan-wrap{min-width:0}
.plan-key{display:flex;justify-content:space-between;font-size:0.75rem;color:var(--muted);margin:0 3px 8px}
.plan{--cols:7;display:grid;grid-template-columns:repeat(var(--cols),minmax(58px,1fr));gap:5px;background:#070b1a;padding:12px;border:1px solid var(--line);min-height:470px}
.cell{aspect-ratio:1;border:1px solid #333d68;background:#111936;min-width:0;position:relative}
.cell span{font-weight:850}
.cell:hover:not(:disabled){background:#202b56}
.cell.blocked{background:repeating-linear-gradient(45deg,#080c1c,#080c1c 6px,#202746 6px,#202746 8px);border-color:#202746}
.cell.sun{box-shadow:inset 0 0 0 4px #dfb45a}
.cell.rough{box-shadow:inset 0 0 0 4px var(--danger)}
.cell.narrow{box-shadow:inset 0 0 0 4px var(--cyan)}
.cell.slope{box-shadow:inset 0 0 0 4px #efcc74}
.cell.target{border-style:dashed;border-color:var(--violet)}
.cell.active-target{animation:pulse 1.4s infinite}
.cell.hint-cell{animation:hintcell .9s infinite;box-shadow:inset 0 0 0 5px var(--cyan)}
.cell.route{background:var(--violet);color:#0b1025}
.cell.occupied{background:var(--cyan);color:#07151a}
.arrow-controls{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:8px}
.arrow-controls button{min-height:46px;border:1px solid var(--line);background:var(--panel)}
.route-card>span{font-size:0.75rem;text-transform:uppercase;color:var(--cyan);letter-spacing:.1em}
.route-card h2{font:500 1.35rem ui-serif,Georgia}
.route-card dl div{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:7px 0;font-size:0.75rem}
.route-card dd{margin:0;text-align:right}
.route-total{margin:20px 0;border:1px solid var(--violet);padding:12px}
.route-total small{display:block;color:var(--muted)}
.route-total b{font-size:2rem}
.route-card ol{max-height:170px;overflow:auto;padding-left:25px;font-size:0.75rem;color:var(--muted)}
#result{padding:clamp(50px,9vw,130px) clamp(20px,8vw,120px)}
.opening{max-width:1000px;border:1px solid var(--line);background:linear-gradient(145deg,var(--panel),#10152e);padding:clamp(25px,5vw,60px);border-radius:4px 42px 4px 42px}
.opening>span{color:var(--cyan);text-transform:uppercase;letter-spacing:.15em;font-size:0.75rem}
.opening h1{font:400 clamp(3rem,7vw,7rem)/.9 ui-serif,Georgia;margin:18px 0}
.opening>p{max-width:60ch;color:#b8bfd9}
.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:35px 0}
.metrics div{border:1px solid var(--line);padding:16px}
.metrics b,.metrics span{display:block}
.metrics b{font-size:1.6rem;color:var(--violet)}
.metrics span{font-size:0.75rem;text-transform:uppercase;color:var(--muted)}
.result-report{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0 25px}
.result-report div{border:1px solid var(--line);padding:13px}
.result-report b,.result-report span{display:block}
.result-report b{font-size:1.05rem;color:var(--cyan)}
.result-report span{font-size:0.75rem;text-transform:uppercase;color:#b8bfd9}
.new-badges{color:var(--cyan);font-weight:750}
.move-playback{border:1px solid var(--line);background:#0b1025;padding:12px;margin:18px 0}
.move-playback>div{display:flex;align-items:center;justify-content:space-between}
.move-playback button{min-height:40px;border:1px solid var(--cyan);background:transparent;color:var(--paper)}
.move-playback ol{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:6px;padding:0;list-style:none}
.move-playback li{display:grid;grid-template-columns:32px 1fr;padding:7px;border:1px solid var(--line);font-size:0.75rem}
.move-playback li>span{grid-row:1/3;display:grid;place-items:center;color:var(--cyan);font-weight:900}
.move-playback li small{font-size:0.75rem;color:#b9c0d9}
.move-playback li.playing{background:var(--violet);color:#0b1025;transform:translateY(-3px)}
.move-playback li.playing span,.move-playback li.playing small{color:#0b1025}
.opening>button{min-height:49px;border:1px solid var(--line);background:transparent;padding:0 18px;margin:5px;color:#fff}
.opening>button:first-of-type{background:var(--violet);color:#100d22}
.toast{position:fixed;left:50%;bottom:20px;transform:translate(-50%,10px);opacity:0;background:var(--cyan);color:#07151a;padding:10px 14px;z-index:30;transition:.2s}
.toast.show{opacity:1;transform:translate(-50%,0)}
footer{border-top:1px solid var(--line);padding:22px clamp(14px,4vw,60px);display:flex;justify-content:space-between;font-size:0.75rem;color:var(--muted)}
footer a{color:inherit;margin-left:15px}
dialog{width:min(590px,calc(100% - 24px));border:1px solid var(--violet);background:var(--panel);color:var(--paper);padding:28px}
dialog::backdrop{background:rgba(5,8,20,.8)}
dialog form button{float:right;width:44px;height:44px;border:1px solid var(--line);background:transparent}
dialog>span{color:var(--cyan);font-size:0.75rem;text-transform:uppercase}
dialog h2{font:500 2.3rem ui-serif,Georgia}
dialog>label{display:flex;gap:10px;align-items:center;min-height:47px;border-bottom:1px solid var(--line)}
.dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.dialog-actions button:first-child{background:var(--violet);color:#0a0920}.history-dialog ol{list-style:none;padding:0;display:grid;gap:7px}.history-dialog li{display:flex;justify-content:space-between;gap:12px;padding:10px;border:1px solid var(--line)}.history-dialog li.playing{border-color:var(--cyan);background:#172244}.history-dialog li span{color:#b9c2e2;font-size:0.75rem}
.data{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:18px}
.data button,.data label{min-height:44px;border:1px solid var(--line);display:grid;place-items:center;background:transparent}
.data button:last-child{grid-column:1/-1;color:var(--danger)}
.data input{position:absolute;opacity:0}
@keyframes pulse{50%{box-shadow:inset 0 0 0 4px var(--violet),0 0 18px var(--violet)}
}
@keyframes hintcell{50%{box-shadow:inset 0 0 0 5px var(--cyan),0 0 16px var(--cyan)}}
html[data-contrast=high]{--night:#000;--panel:#000;--paper:#fff;--muted:#fff;--line:#fff;--violet:#d4c8ff;--cyan:#9ffff9}
html[data-large=yes]{font-size:19px}
html[data-motion=reduced] *{animation:none!important;transition:none!important}

@media(max-width:1150px){.workspace{grid-template-columns:260px 1fr}
.route-card{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.route-card>span,.route-card h2{grid-column:1/-1}
}
@media(max-width:800px){.workspace{grid-template-columns:1fr}
.manifest{order:2}
.plan-wrap{order:1}
.route-card{order:3}
.shift-head{grid-template-columns:1fr auto}
.shift-head>button{grid-column:1/-1}
.plan{grid-template-columns:repeat(7,minmax(52px,1fr));overflow:auto}
.modes{grid-template-columns:1fr}
.badge-case ul{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){header{height:68px}
.brand small{display:none}
nav button{padding-inline:9px}
.home{padding:40px 16px 55px}
.home h1{font-size:3.25rem}
.shift-head{padding:20px 12px}
.shift-head h1{font-size:2.25rem}
.workspace{padding:0 10px 50px}
.plan{padding:7px;gap:3px;grid-template-columns:repeat(7,minmax(36px,1fr));min-height:390px;overflow:visible}
.plan-wrap{overflow:auto}
.cell{width:auto}
.metrics{grid-template-columns:1fr}
.opening h1{font-size:3.5rem}
.archive-bar{flex-direction:column;align-items:stretch}
.local-ledger li{grid-template-columns:1fr 1fr}.local-ledger li div{grid-column:1/-1}.dialog-actions{grid-template-columns:1fr}
.career-strip{grid-template-columns:1fr}
.career-strip div{border-right:0;border-bottom:1px solid var(--line)}
.badge-case ul,.result-report{grid-template-columns:1fr 1fr}
footer{flex-direction:column;gap:10px}
}

@media(max-width:360px){.home{padding-inline:10px}.workspace{padding-inline:6px}.plan{grid-template-columns:repeat(7,minmax(34px,1fr))}.opening{margin-inline:8px;padding-inline:18px}.history-dialog li{flex-direction:column}}

@media(pointer:coarse){button{min-height:44px}}

/* Portfolio signature: a night-floor operations desk, not a generic hero stack. */
.home[hidden]{display:none!important}
.floor-preview{position:relative;min-height:170px;border:1px solid var(--line);background:linear-gradient(90deg,transparent 24%,rgba(116,215,224,.12) 25%,transparent 26%,transparent 74%,rgba(116,215,224,.12) 75%,transparent 76%),linear-gradient(0deg,transparent 24%,rgba(116,215,224,.12) 25%,transparent 26%,transparent 74%,rgba(116,215,224,.12) 75%,transparent 76%),#0b1025;background-size:64px 64px;overflow:hidden}
.floor-preview::after{content:"";position:absolute;left:42px;top:75%;width:72%;height:2px;background:var(--cyan);transform:rotate(-7deg);transform-origin:left;box-shadow:120px -52px 0 var(--cyan)}
.floor-preview .dock-mark{position:absolute;left:14px;bottom:14px;width:38px;height:38px;display:grid;place-items:center;border:2px solid var(--cyan);border-radius:50%;font-weight:900;color:var(--cyan);z-index:1}
.floor-preview i{position:absolute;width:18px;height:18px;border:3px solid var(--violet);background:#171d3b;z-index:1}.floor-preview i:nth-of-type(1){left:27%;top:61%}.floor-preview i:nth-of-type(2){left:47%;top:42%}.floor-preview i:nth-of-type(3){left:68%;top:49%}.floor-preview i:nth-of-type(4){left:84%;top:20%;border-color:var(--cyan)}
.floor-preview b{position:absolute;right:13px;bottom:10px;color:#8f9abb;font-size:0.75rem;letter-spacing:.18em;text-transform:uppercase}
.night-desk{display:grid;gap:14px;margin-top:28px}.night-desk>.archive-bar,.night-desk>.career-strip,.night-desk>.badge-case,.night-desk>.local-ledger{max-width:none;margin-top:0}.night-desk>.legend{align-self:end}
@media(min-width:900px){
  .home{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:18px 26px;align-items:start}
  .home>.night,.home>h1,.home>p,.home>.floor-preview,.home>.first-run{grid-column:1/8}.home>h1{margin-block:4px}.home>.floor-preview{margin-top:10px}
  .home>.modes{grid-column:8/-1;grid-row:1/span 4;grid-template-columns:1fr;max-width:none;margin:0;gap:10px}
  .home>.modes button{min-height:132px;border-radius:3px 28px 3px 3px;position:relative;padding-left:72px}.home>.modes button::before{position:absolute;left:20px;top:18px;font:500 1.45rem ui-serif,Georgia;color:var(--cyan)}.home>.modes button:nth-child(1)::before{content:"01"}.home>.modes button:nth-child(2)::before{content:"02"}.home>.modes button:nth-child(3)::before{content:"03"}.home>.modes button:first-child{min-height:190px}
  .home>.night-desk{grid-column:1/-1;grid-template-columns:minmax(0,1fr) minmax(330px,.82fr);margin-top:18px;padding-top:20px;border-top:1px solid var(--line)}
  .night-desk>.archive-bar,.night-desk>.career-strip,.night-desk>.badge-case,.night-desk>.legend{grid-column:1}.night-desk>.history-ledger{grid-column:2;grid-row:1/span 4}.night-desk>.draft-ledger{grid-column:2;grid-row:5}.night-desk>.legend{grid-row:4}
  #result{padding-inline:clamp(28px,6vw,100px)}.opening{max-width:1260px;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(290px,.55fr);gap:14px 28px;border-radius:3px 58px 3px 3px;background:linear-gradient(118deg,#111735 0 69%,#090e22 69%)}
  .opening>span,.opening>.result-report,.opening>.new-badges{grid-column:1/-1}.opening h1,.opening>p{grid-column:1;margin-block:6px}.opening>.metrics{grid-column:2;grid-row:2/span 2;grid-template-columns:1fr;margin:0}.opening>.metrics div{padding:18px;border-left:3px solid var(--violet)}
  .opening>.move-playback{grid-column:1/-1;margin-top:2px}.opening>button{justify-self:start;margin-left:0}
}
@media(max-width:899px){.floor-preview{margin:24px 0}.night-desk{grid-template-columns:1fr}.home>.modes{max-width:none}.opening{width:100%}}
@media(max-width:420px){.floor-preview{min-height:145px}.floor-preview::after{width:65%}.night-desk{gap:10px}}

.badge-case summary,.local-ledger summary{min-height:44px;display:flex;align-items:center}

button{min-width:44px;min-height:44px}
header a,footer a{display:inline-flex;align-items:center;min-width:44px;min-height:44px}
dialog label,details>summary,.file-button{min-height:44px}
@media(max-width:560px){.plan{width:max-content;min-width:100%;grid-template-columns:repeat(var(--cols),44px)}.cell{min-width:44px}}

#archive-status{display:block;flex-basis:auto;align-self:stretch;width:100%;min-width:0;padding:8px 10px;border-left:3px solid var(--violet);background:#0b1025;color:#c9cfee;font-size:0.75rem;overflow-wrap:anywhere}
.campaign-picker{max-width:950px;border:1px solid var(--line);background:#0d132b;padding:12px}.campaign-picker summary{color:var(--cyan);font-size:0.75rem;text-transform:uppercase;letter-spacing:.12em;cursor:pointer}.campaign-picker ol{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.campaign-picker li{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px;border:1px solid var(--line);min-width:0}.campaign-picker li>span{width:32px;height:32px;border:1px solid var(--violet);display:grid;place-items:center;color:var(--cyan);font-size:0.75rem}.campaign-picker b,.campaign-picker small{display:block;overflow-wrap:anywhere}.campaign-picker small{color:#aeb7d7;font-size:0.75rem}.campaign-picker button{border:1px solid var(--cyan);background:transparent;padding-inline:10px}.campaign-picker button:disabled{opacity:.35}.campaign-picker li.complete{background:#211b49}.shortcut-help{color:#aeb7d7!important;font-size:0.75rem!important}.manifest>.shortcut-help{min-height:auto;margin:10px 0 0;padding-top:8px}.controls #hint{grid-column:1/-1}
.night-desk>.campaign-picker{max-width:none;margin:0}
@media(min-width:900px){.night-desk>.campaign-picker{grid-column:1;grid-row:4}.night-desk>.legend{grid-row:5}.night-desk>.history-ledger{grid-row:1/span 5}.night-desk>.draft-ledger{grid-row:6}}
@media(max-width:650px){.campaign-picker ol{grid-template-columns:1fr}.campaign-picker li{grid-template-columns:34px minmax(0,1fr)}.campaign-picker button{grid-column:2;justify-self:start}}
.guide-page{width:min(1120px,100%);padding:clamp(38px,7vw,90px) clamp(16px,5vw,60px)}.guide-page article{border:1px solid var(--line);border-radius:3px 44px 3px 3px;background:linear-gradient(145deg,#141b38,#0d132b);padding:clamp(24px,5vw,58px)}.guide-kicker{color:var(--cyan);font-size:0.75rem;text-transform:uppercase;letter-spacing:.18em}.guide-page h1{font:400 clamp(2.8rem,7vw,6.5rem)/.92 ui-serif,Georgia;margin:18px 0}.guide-page h1 em{font-style:normal;color:var(--violet)}.guide-lead{max-width:68ch;color:#c2c8e2;font-size:1.08rem}.guide-page section{margin-top:38px;padding-top:18px;border-top:1px solid var(--line)}.guide-page h2{font:500 clamp(1.6rem,3vw,2.4rem) ui-serif,Georgia}.guide-page li{margin-block:.7rem}.guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.guide-grid p,.guide-page details{border:1px solid var(--line);background:#0b1025;padding:14px;margin:8px 0}.guide-page details summary{cursor:pointer;color:var(--cyan);font-weight:750}.guide-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:38px}.guide-actions a{min-height:48px;display:inline-flex;align-items:center;padding:0 16px;border:1px solid var(--cyan);color:var(--paper);text-decoration:none}.guide-actions a:first-child{background:var(--violet);border-color:var(--violet);color:#0b1025;font-weight:850}@media(max-width:600px){.guide-grid{grid-template-columns:1fr}.guide-page article{padding-inline:18px}}
footer{display:grid;grid-template-columns:minmax(0,1fr);justify-content:stretch;gap:18px}
.footer-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 14px;align-items:baseline}
.footer-row>span{display:flex;flex-wrap:wrap;gap:4px 14px;min-width:0}
.footer-row>span>a{margin-left:0}
.footer-row>nav{display:flex;flex-wrap:wrap;gap:4px 14px;min-width:0}
.more-games{display:block;min-width:0}
.more-games h2{font-size:1rem;margin:0 0 4px;font-weight:800}
.more-games>p{margin:0 0 10px;max-width:72ch}
.more-games ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:2px 18px}
.more-games li{display:grid;align-content:center;min-height:44px;padding:4px 0}
.more-games li a{margin-left:0;font-weight:800;text-decoration:none}
.more-games li a:hover,.more-games li a:focus-visible{text-decoration:underline}
.more-games li small{opacity:.85}
.first-run{border:1px solid var(--cyan);border-left:4px solid var(--cyan);background:rgba(118,229,223,.06);padding:14px 16px;margin:0 0 18px;max-width:70ch}
.first-run b{display:block;color:var(--cyan);margin-bottom:6px}
.first-run ol{margin:0 0 8px;padding-left:20px}
.first-run li{margin:.25rem 0}
.first-run p{margin:0}
.first-run a{color:var(--violet)}
.result-summary{margin:6px 0 0;color:var(--paper)}

.shortcut-open{width:100%;min-height:44px;margin-top:8px;border:1px solid var(--line);background:transparent;color:var(--cyan);font-size:0.8rem;letter-spacing:.06em;text-transform:uppercase}
.shortcut-open:hover,.shortcut-open:focus-visible{border-color:var(--cyan);background:rgba(118,229,223,.08)}
.shortcuts-dialog dl{display:grid;gap:6px;margin:14px 0 12px}
.shortcuts-dialog dl div{display:grid;grid-template-columns:minmax(120px,.5fr) minmax(0,1fr);gap:12px;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--line)}
.shortcuts-dialog dt{color:var(--cyan);font-weight:750}
.shortcuts-dialog dd{margin:0;color:#c6cdea}
.share-preview{margin-top:14px;border:1px solid var(--line);border-left:3px solid var(--cyan);padding:12px 14px;background:rgba(118,229,223,.05)}
.share-preview span{display:block;color:var(--cyan);font-size:0.8rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:6px}
.share-preview p{margin:0;color:#c6cdea;white-space:pre-wrap;overflow-wrap:anywhere;font-size:0.9rem}
@media(min-width:900px){.opening>.share-preview{grid-column:1/-1}}

.update-prompt{position:fixed;z-index:40;right:16px;bottom:16px;max-width:min(340px,calc(100vw - 32px));display:flex;flex-direction:column;gap:10px;padding:14px 16px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--paper);box-shadow:0 14px 40px rgba(0,0,0,.3)}
.update-prompt-text{margin:0;font-size:.875rem;line-height:1.45}
.update-prompt-actions{display:flex;flex-wrap:wrap;gap:8px}
.update-prompt button{min-width:44px;min-height:44px;padding:0 16px;border-radius:8px;font:inherit;font-size:.875rem;cursor:pointer}
.update-prompt-reload{border:1px solid transparent;background:var(--violet);color:#0b1025;font-weight:700}
.update-prompt-dismiss{border:1px solid var(--line);background:transparent;color:inherit}
@media(prefers-reduced-motion:no-preference){.update-prompt{animation:update-prompt-in .18s ease-out}
@keyframes update-prompt-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
}
@media(max-width:560px){.update-prompt{left:12px;right:12px;bottom:84px;max-width:none}}

.cell.suggested{background:repeating-linear-gradient(135deg,var(--violet),var(--violet) 7px,#5a4bb0 7px,#5a4bb0 14px);color:#0b1025}
.archive-week{display:flex;flex-wrap:wrap;gap:6px;width:100%;min-width:0}
.archive-week button{flex:1 1 74px;min-height:44px;min-width:44px;display:grid;gap:2px;padding:6px 4px;border:1px solid var(--line);background:#0f1530;color:var(--muted);font-size:0.75rem}
.archive-week button.played{border-color:var(--cyan);color:var(--paper)}
.archive-week button b{font-size:0.85rem;color:var(--cyan)}
.archive-week button small{font-size:0.75rem}
.metrics small#score-par{display:block;font-size:0.75rem;color:var(--muted);letter-spacing:.06em}
.result-next-step{margin:6px 0 0;color:var(--cyan);font-size:0.9rem;max-width:70ch}
#share[data-copied=yes]{background:var(--cyan);color:#07151a}
