@font-face{font-family:Quest;src:url('quest-regular.ttf') format('truetype');font-weight:100 600;font-display:swap}@font-face{font-family:Quest;src:url('quest.ttf') format('truetype');font-weight:650 900;font-display:swap}*{box-sizing:border-box}html{color-scheme:dark;scroll-behavior:smooth}body{margin:0;background:#08152e;color:#f6f7ff;font:16px/1.6 Quest,'Trebuchet MS',Arial,sans-serif}a{color:inherit;text-decoration:none}a:hover{color:#c7fa60}button,input{font:inherit}button,a,input{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #c7fa60;outline-offset:5px}button{color:inherit}img{max-width:100%;display:block}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.07;letter-spacing:-.045em}h1{font-size:clamp(46px,5.9vw,84px);font-weight:800;margin-bottom:26px}h2{font-size:clamp(26px,3vw,39px);font-weight:750;margin-bottom:22px}h3{font-size:24px;font-weight:750;margin-bottom:10px}em{font-style:normal;color:#c7fa60}p{color:#bac7ed}.shell{max-width:1400px;margin:auto;padding-left:42px;padding-right:42px}.site-header{height:88px;display:flex;align-items:center;gap:64px}.brand{display:inline-flex;align-items:center;gap:10px;font-size:33px;line-height:1;font-weight:850;letter-spacing:-1.6px;white-space:nowrap}.brand span{color:#c7fa60;margin-left:-10px}.brand img{width:43px;height:43px;object-fit:contain}.site-header nav{display:flex;gap:33px;font-size:16px;font-weight:650}.site-header nav a{position:relative;padding:10px 0}.active:after{position:absolute;bottom:0;left:0;right:0;background:#c7fa60;height:3px;content:'';border-radius:3px}.anywhere{margin-left:auto;display:flex;align-items:center;gap:12px;color:#acbce6;font-size:13px;white-space:nowrap}.hero{display:grid;grid-template-columns:1fr 1.12fr;align-items:center;gap:35px;padding:12px 0 42px}.hero-copy .eyebrow{margin-bottom:24px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.19em;color:#c7fa60}.lead{font-size:clamp(18px,1.7vw,23px);line-height:1.5;letter-spacing:-.025em;margin-bottom:30px}.actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:11px;border:1px solid #c7fa60;background:#c7fa60;border-radius:12px;color:#0c172a;font-weight:800;font-size:15px;line-height:1.3;padding:18px 23px;min-height:56px;transition:transform .15s,background .15s}.button img{width:18px;height:18px}.button:hover{background:#d7ff90;color:#07132a;transform:translateY(-2px)}.button.secondary{background:transparent;border-color:#879acb;color:#edf0ff}.button.secondary:hover{background:#152747;color:white}.button.small{font-size:13px;min-height:44px;padding:11px 16px;border-radius:10px}.device-note{font-size:12px;margin:23px 0 0;color:#a8bae8}.device-note span{padding:0 8px}.hero-art{position:relative;border-radius:24px;overflow:hidden;border:1px solid #3c5283;display:block;isolation:isolate}.hero-art>img{width:100%;aspect-ratio:1.5;object-fit:cover}.hero-art:hover img{filter:brightness(1.04)}.play-circle{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:74px;height:74px;background:#08152ecc;border:2px solid #ffffff90;border-radius:50%;display:grid;place-items:center;backdrop-filter:blur(5px)}.play-circle img{width:25px;filter:invert(1)}.art-caption{position:absolute;bottom:11px;left:12px;background:#07152ddb;padding:4px 9px;font-size:10px;border-radius:6px;color:#d7e0ff}.section-title{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:25px}.section-title h2{margin:0}.section-title p{font-size:13px;margin:0}.game-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.game-card{border:1px solid #354c7e;border-radius:18px;overflow:hidden;background:#0b1933}.card-image{display:block;position:relative}.card-image>img{width:100%;aspect-ratio:1.66;object-fit:cover}.tag{position:absolute;top:14px;left:14px;font-size:10px;font-weight:850;letter-spacing:.08em;background:#c7fa60;color:#122131;padding:7px 11px;border-radius:7px;line-height:1.2}.tag.lilac{background:#d0b7ff;color:#201b42}.tag.muted{background:#102642e8;color:#d4defa}.tag.inline{position:static;display:inline-block;margin-bottom:25px}.card-body{padding:23px 20px;display:flex;align-items:center;gap:12px;justify-content:space-between}.card-body h3{font-size:21px}.card-body p{font-size:12px;margin:0}.coming{font-size:11px;color:#a5b4d4;white-space:nowrap}.upcoming .card-image img{filter:saturate(.7)}.info-strip{text-align:center;border-top:1px solid #30436e;padding:23px 15px;margin-top:35px;font-size:13px;color:#adbce5}.footer{display:flex;align-items:center;gap:22px;flex-wrap:wrap;padding-top:38px;padding-bottom:38px;margin-top:45px;border-top:1px solid #273d66}.small-brand{font-size:22px}.small-brand span{margin-left:-10px}.footer>p{font-size:11px;margin:0}.footer nav{display:flex;gap:20px;margin-left:auto;font-size:12px}.tiny{font-size:12px;color:#b1bfe1;line-height:1.6;margin-top:18px}.tiny a,.prose a,.text-link{color:#c5adff;text-decoration:underline;text-underline-offset:4px}.subtle{color:#adbee7}.breadcrumb{display:flex;gap:14px;font-size:13px;padding:30px 0 25px;color:#bac7ed}.breadcrumb a{color:#8daaf1}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}.page-heading h1{font-size:64px;margin-bottom:12px}.page-heading .lead{margin:0}.text-button{background:transparent;border:1px solid #536d9a;border-radius:10px;padding:12px 17px;color:#e2e9ff;font-size:13px}.text-button:hover{background:#192b4c}.play-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr);gap:36px;align-items:start}.board-panel{padding:24px;border:1px solid #3b5285;border-radius:18px;background:#0b1a35}.game-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap;margin-bottom:20px}.game-toolbar strong{font-size:19px}.game-toolbar .subtle{display:block;font-size:11px}.tools{display:flex;gap:6px}.tools button{border:1px solid #4d6495;border-radius:8px;background:#112443;padding:9px 12px;font-size:12px}.tools button:hover{background:#25375c}#board{width:min(100%,570px);margin:auto;aspect-ratio:1;touch-action:none;position:relative;background:#0c1933;border:1px solid #506b9e;border-radius:12px;overflow:hidden;user-select:none}#board svg{width:100%;height:100%;display:block}.board-bottom{display:flex;justify-content:space-between;margin-top:17px;font-size:12px;color:#a8bbe7}#game-message{font-size:13px;min-height:42px;margin:13px 0 0;color:#c6d3f6}.game-aside>h2{font-size:30px;margin-top:5px}.instructions{list-style:none;counter-reset:steps;padding:0}.instructions li{position:relative;padding-left:54px;margin-bottom:28px;counter-increment:steps}.instructions li:before{content:counter(steps);position:absolute;left:0;top:0;background:#c8a8fc;color:#121b37;font-weight:800;width:36px;height:36px;display:grid;place-items:center;border-radius:50%}.instructions strong{font-size:17px;line-height:1.25;display:block}.instructions p{font-size:14px;line-height:1.5;margin:8px 0 0}.pack-teaser{padding:26px;border:1px solid #7869bd;background:#30275b;border-radius:15px;margin-top:25px}.pack-teaser h3{font-size:32px}.pack-teaser p{font-size:14px}.pack-teaser .eyebrow{font-size:9px;color:#d3beff}.pack-teaser .button{width:100%;font-size:13px}.pack-teaser .tiny{font-size:11px;margin-bottom:0}details{font-size:12px;color:#b7c7ed}summary{cursor:pointer;color:#d2bfff}.completion{background:#142e39;border:1px solid #9cd96c;padding:25px;border-radius:12px;margin-top:20px}.completion h2{font-size:32px}.completion p{font-size:14px}dialog{color:#f6f7ff;background:#0d1c38;border:1px solid #5b72a4;border-radius:20px;padding:28px;width:min(570px,calc(100% - 30px));max-height:85vh}dialog::backdrop{background:#020817bc;backdrop-filter:blur(4px)}.dialog-heading{display:flex;align-items:start;justify-content:space-between;gap:20px}.dialog-heading h2{font-size:26px}.dialog-heading button{background:none;border:0;font-size:26px}.level-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin:22px 0}.level-grid button{border:1px solid #59719c;border-radius:10px;background:#17284b;padding:13px 0;color:white}.level-grid button.solved{border-color:#c7fa60;color:#c7fa60}.level-grid button.locked{opacity:.55}.level-grid button.selected{background:#c7fa60;color:#0b1629}.pack-hero{padding-top:5px}.pack-hero h1{font-size:clamp(44px,5.4vw,74px)}.pack-hero .button{font-size:13px}.pack-details{display:grid;grid-template-columns:2fr 1fr;gap:45px}.pack-details aside{border-left:1px solid #3a4e78;padding-left:30px}.pack-details h2{font-size:30px}.chapter-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.chapter{padding:24px 18px;border:1px solid #3d5287;border-radius:12px;background:#10203f}.chapter h3{font-size:22px;line-height:1.15;margin:25px 0 12px}.chapter p{font-size:13px}.chapter-number{font-size:12px;color:#c5adff;letter-spacing:.1em}.feature-list{list-style:none;padding:0}.feature-list li{margin-bottom:21px}.feature-list strong{font-size:17px}.feature-list p{font-size:13px;margin:5px 0}.access-layout{display:grid;grid-template-columns:1.6fr 1fr;gap:60px;padding:20px 0}.access-layout h1{font-size:60px}.stepper{display:flex;gap:13px;padding:22px 0;font-size:13px;color:#a8b9e6}.stepper span{padding:10px 15px;border:1px solid #3c5384;border-radius:30px}.stepper .current{color:#c7fa60;border-color:#c7fa60}.panel{padding:30px;border:1px solid #405783;border-radius:15px;background:#10203d;margin:20px 0}.panel h2{font-size:26px}.empty-state p{font-size:15px}.status-dot{display:block;width:10px;height:10px;border-radius:50%;background:#c7fa60;margin-bottom:18px}.unlock-summary{border:1px solid #405783;border-radius:18px;padding:25px;align-self:start}.unlock-summary>img{border-radius:10px;margin-bottom:25px;aspect-ratio:1.6;object-fit:cover}.unlock-summary h2{font-size:35px}.unlock-summary hr{border:0;border-top:1px solid #3c527b}.text-page{max-width:850px;margin:55px auto 70px}.text-page h1{font-size:60px}.prose h2{font-size:25px;letter-spacing:-.025em;margin-top:36px}.prose p{font-size:16px;line-height:1.85}.prose .button{color:#101b2a;text-decoration:none}.install{max-width:850px;padding-top:50px;padding-bottom:60px}.install>.brand{margin-bottom:35px}.install h1{font-size:55px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}label{display:block;font-size:13px;color:#c6d3ee}input{display:block;width:100%;margin-top:8px;padding:13px;border:1px solid #526c98;background:#08152e;color:white;border-radius:8px}form .button{margin-top:15px}.notice{padding:15px;border:1px solid #ffad8f;color:#ffcfbd;border-radius:10px}.recovery-code{display:block;background:#09182c;color:#c7fa60;padding:20px;margin:20px 0;font-size:18px;letter-spacing:.1em;overflow-wrap:anywhere}.inline-button{border:0;background:none;padding:0;font:inherit;color:#c5adff;text-decoration:underline}.skip{position:absolute;left:10px;top:-80px;background:#c7fa60;color:#08152e;padding:12px;z-index:10}.skip:focus{top:10px}#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);max-width:calc(100% - 30px);background:#d4fca4;color:#101b29;border:1px solid #a6d779;border-radius:10px;padding:13px 20px;box-shadow:0 10px 30px #0005;z-index:50}.loading{display:grid;place-items:center;height:100%}[hidden]{display:none!important}.admin-shell{max-width:1000px;margin:40px auto;padding:0 24px}.admin-shell h1{font-size:45px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.stats .panel{margin:0}.stats strong{display:block;font-size:30px;color:#c7fa60}.stats span{font-size:12px}.admin-shell table{width:100%;border-collapse:collapse;font-size:13px}.admin-shell td,.admin-shell th{text-align:left;border-bottom:1px solid #354b76;padding:12px}.admin-shell form{margin-top:20px}.admin-shell .actions{margin:20px 0}.admin-shell .form-grid{margin:0}.admin-shell .button{font-size:13px}.admin-shell .panel>p{font-size:14px}@media(min-width:1500px){.hero{padding-top:20px}}@media(max-width:1100px){.shell{padding-left:26px;padding-right:26px}.site-header{gap:30px}.anywhere{display:none}.hero{gap:26px}.hero .actions{gap:10px}.hero .button{font-size:12px;padding:16px}.card-body{align-items:start;flex-direction:column}.play-layout{gap:24px}.tools button{padding:8px}.access-layout{gap:30px}.pack-details{gap:25px}.footer nav{margin-left:0}.chapter-grid{gap:10px}.chapter{padding:20px 13px}}@media(max-width:760px){.shell{padding-left:20px;padding-right:20px}.site-header{height:auto;min-height:94px;flex-wrap:wrap;gap:18px;padding-top:24px;padding-bottom:20px;justify-content:space-between}.brand{font-size:28px}.brand img{width:35px;height:35px}.site-header nav{font-size:12px;gap:20px}.hero{grid-template-columns:1fr;padding:30px 0 42px;gap:30px}.hero h1{font-size:57px}.hero-copy .eyebrow{font-size:9px}.hero .lead{font-size:18px}.hero .button{font-size:13px;padding:15px 17px}.hero-art>img{aspect-ratio:1.5}.section-title{display:block}.section-title h2{font-size:31px}.section-title p{margin-top:16px}.game-cards{grid-template-columns:1fr}.card-body{flex-direction:row;align-items:center}.card-body p{font-size:12px}.card-image>img{aspect-ratio:1.9}.footer{margin-top:25px;padding-top:25px;gap:20px}.footer nav{flex-wrap:wrap;gap:16px;width:100%}.footer>.tiny{margin:0}.breadcrumb{padding-top:22px}.page-heading{align-items:start;flex-direction:column;gap:15px}.page-heading h1{font-size:45px}.page-heading .lead{font-size:17px}.play-layout{grid-template-columns:1fr}.board-panel{padding:14px}.game-toolbar{gap:12px}.game-toolbar strong{font-size:17px}.tools button{font-size:11px;padding:9px}.game-aside{padding-top:15px}.instructions{display:grid;gap:10px}.instructions li{margin-bottom:12px}.pack-teaser{margin-top:20px}.level-grid{grid-template-columns:repeat(5,1fr)}.pack-details{grid-template-columns:1fr}.pack-details aside{padding:25px 0 0;border-left:0;border-top:1px solid #3a4e78}.chapter-grid{grid-template-columns:1fr}.chapter{padding:20px}.chapter h3{margin-top:15px}.access-layout{grid-template-columns:1fr;padding-top:15px}.access-layout h1{font-size:47px}.stepper{gap:7px;font-size:10px}.stepper span{padding:9px 11px}.panel{padding:23px}.text-page{margin-top:35px}.text-page h1,.install h1{font-size:43px}.form-grid{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.admin-shell .panel{padding:20px}.admin-shell table{font-size:11px}.admin-shell td,.admin-shell th{padding:8px}.recovery-code{font-size:14px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.anywhere>img{filter:invert(80%) sepia(25%) saturate(600%) hue-rotate(185deg)}

/* 1.1 completion modal */
dialog.completion{position:fixed;inset:0;margin:auto;width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:32px 24px;text-align:center;background:#10213e;color:#fff;border:1px solid #53698d;border-radius:24px;box-shadow:0 24px 100px #0009;isolation:isolate}
dialog.completion:not([open]){display:none}dialog.completion::backdrop{background:#040b1dbd;backdrop-filter:blur(5px)}.completion .actions{justify-content:center}.success-medal{font-size:48px;color:#c7fa60;animation:success-pop .45s ease-out}.confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:-1}.confetti i{position:absolute;left:var(--x);top:-20px;width:8px;height:14px;animation:confetti-fall 1.8s var(--delay) ease-in forwards}@keyframes confetti-fall{to{transform:translateY(520px) rotate(var(--turn));opacity:0}}@keyframes success-pop{from{transform:scale(.5)}to{transform:scale(1)}}@media(prefers-reduced-motion:reduce){.success-medal,.confetti i{animation:none}.confetti{display:none}}
/* 1.2 regional controls */
.language-bar{display:flex;justify-content:flex-end;padding-top:8px}.language-picker{display:flex;align-items:center;gap:8px;margin:0}.language-picker label{margin:0;font-size:13px}.language-picker select,.language-picker button{font:inherit;border:1px solid #34476b;background:#10213e;color:#fff;border-radius:9px;padding:7px 10px}.language-picker select{width:auto;max-width:145px}.language-picker button{cursor:pointer}.geo-credit{font-size:11px;color:#9aabc9}.admin-tabs{display:flex;gap:12px;flex-wrap:wrap;margin:25px 0}.admin-tabs a{padding:10px 14px;border:1px solid #34476b;border-radius:10px}.table-scroll{overflow-x:auto}.table-scroll table{min-width:640px}.table-scroll td{vertical-align:top}.admin-shell select,.admin-shell textarea{font:inherit;background:#09172f;border:1px solid #415477;border-radius:10px;color:#fff;padding:12px;width:100%}.admin-shell textarea{overflow-wrap:anywhere}.admin-shell .check{display:flex;align-items:flex-start;gap:10px;margin:14px 0;line-height:1.5}.admin-shell .check input{width:18px;height:18px;flex-shrink:0;margin-top:3px}.panel[id]{scroll-margin-top:20px}@media(max-width:760px){.language-bar{padding-top:0}.language-picker{flex-wrap:wrap}.admin-tabs{gap:6px}.admin-tabs a{padding:8px}.admin-shell .form-grid{grid-template-columns:1fr}.completion .actions{flex-wrap:wrap}}
@media(max-width:760px){body[data-page="play"] .site-header{min-height:76px;padding-top:12px;padding-bottom:10px;gap:8px}body[data-page="play"] .site-header .brand{font-size:25px}body[data-page="play"] .site-header .brand img{width:29px;height:29px}body[data-page="play"] .site-header nav{font-size:11px;gap:17px}body[data-page="play"] .language-picker{font-size:12px}body[data-page="play"] .language-picker select,body[data-page="play"] .language-picker button{padding:5px 8px}body[data-page="play"] .breadcrumb{padding:12px 0;font-size:11px}body[data-page="play"] .page-heading{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;margin-bottom:16px}body[data-page="play"] .page-heading .eyebrow{display:none}body[data-page="play"] .page-heading h1{font-size:30px;margin-bottom:6px}body[data-page="play"] .page-heading .lead{font-size:13px}body[data-page="play"] #show-levels{font-size:11px;padding:10px}body[data-page="play"] .game-toolbar{margin-bottom:12px}}
.admin-shell #campaigns td:last-child{white-space:nowrap}.admin-shell #campaigns td form{display:inline;margin:0 0 0 8px}.admin-shell #campaigns td .text-button{font-size:11px;padding:6px 9px}.admin-shell #campaigns td{padding-top:12px;padding-bottom:12px}
