@font-face{font-family:'DM Sans';font-style:normal;font-weight:100 1000;font-display:swap;src:url('vendor/dm-sans.ttf') format('truetype')}
@font-face{font-family:'Outfit';font-style:normal;font-weight:100 900;font-display:swap;src:url('vendor/outfit.ttf') format('truetype')}
:root{--ink:#303b36;--muted:#7a837b;--purple:#7760b6;--mint:#e8eedf;--paper:#f5f5ee;--line:#e3e6da;--orange:#eeab56;--radius:22px}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:14px}button,input,select{font:inherit}button,a,input,select,canvas{-webkit-tap-highlight-color:transparent}button{cursor:pointer;transition:background .18s,transform .18s,box-shadow .18s}button:hover:not(:disabled){filter:brightness(.97);transform:translateY(-1px)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,canvas:focus-visible{outline:3px solid #a697d6;outline-offset:3px}button{border:0}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}h1,h2,h3,.brand,.stat strong{font-family:'Outfit',sans-serif}button[hidden],section[hidden],div[hidden],input[hidden]{display:none!important}.site-header{max-width:1376px;margin:auto;height:100px;display:flex;align-items:center;justify-content:space-between;padding:0 40px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:11px;font-weight:800;letter-spacing:-1.5px;font-size:30px}.brand-light{font-weight:500}.brand-dot{font:10px 'DM Sans';vertical-align:top;margin-left:3px}.site-header nav{display:flex;gap:12px;align-items:center}.nav-button{padding:12px 19px;color:#788076;background:transparent;border-radius:12px;font-weight:650}.nav-button.active{background:#e7e5ef;color:#6d57a4}.new-badge{font-size:8px;padding:3px 5px;border:1px solid #c5cdbb;color:#838f73;border-radius:4px;vertical-align:middle;margin-left:4px;letter-spacing:.5px}.sound-button{display:flex;gap:9px;align-items:center;background:transparent;color:#737e70;font-size:12px}.sound-button #sound-icon{font-size:22px}main{max-width:1296px;margin:auto;padding:0 0 40px}.intro{display:flex;align-items:center;justify-content:space-between;padding:43px 0 30px}.eyebrow,.field-label{font-size:10px;font-weight:700;letter-spacing:1.5px;color:var(--muted)}.eyebrow{font-size:9px;letter-spacing:1.8px}.live-dot{width:6px;height:6px;display:inline-block;background:#9fac88;border-radius:50%;margin-right:7px;vertical-align:middle}h1{font-size:48px;letter-spacing:-1.8px;font-weight:750;line-height:1.3;margin:7px 0 9px}h1 span{color:var(--purple)}.intro p{font-size:13px;color:#81867b}.intro-note{display:flex;gap:12px;align-items:center;position:relative;margin:0 55px 0 20px;transform:rotate(-5deg)}.note-star{font-size:44px;color:#d6ab64}.intro-note strong{display:block;font-size:15px;font-family:'Outfit';font-weight:600}.intro-note div>span{display:block;font-size:10px;color:#929589;margin-top:4px}.intro-note svg{position:absolute;width:70px;right:-60px;top:30px;fill:none;stroke:#b8bea8;stroke-width:2;stroke-linecap:round}.game-shell{border:1px solid #dce1d5;border-radius:24px;overflow:hidden;background:#fffdf7;box-shadow:0 8px 0 #e7e9dd,0 20px 45px #424e3110}.game-hud{height:86px;display:flex;align-items:center;justify-content:space-between;padding:0 27px}.level-heading{display:flex;align-items:center;gap:13px}.level-icon{display:grid;place-items:center;width:40px;height:40px;background:#f0eee2;border-radius:13px;font-size:25px;color:#9caa83}.field-label{font-size:8px;letter-spacing:1.4px;display:block}h2{font-size:25px;font-weight:650;letter-spacing:-.6px}.level-heading h2{font-size:21px;margin-top:4px}.hud-stats{display:flex;align-items:center;gap:27px}.stat strong{font-size:22px;letter-spacing:1px;display:block;margin-top:2px;font-weight:600}.tiny-label{font-size:11px;color:#9a9d91;font-weight:400;letter-spacing:0}.hud-divider{height:30px;width:1px;background:var(--line);margin-left:1px}.icon-button{background:transparent;color:#828a78;display:grid;place-items:center;width:28px;height:34px;font-size:27px;padding:0}.hud-stats .icon-button{margin-left:-10px}.canvas-wrap{position:relative;background:#c7e6e3;overflow:hidden}canvas#game{display:block;width:100%;aspect-ratio:2/1;touch-action:none;cursor:grab;outline-offset:-4px}canvas#game:active{cursor:grabbing}.stage-badge{position:absolute;top:22px;left:25px;font-size:8px;font-weight:700;letter-spacing:1.7px;color:#5f8275;padding:9px 12px;background:#f8fff275;backdrop-filter:blur(5px);border-radius:7px;pointer-events:none}.stage-badge span{color:#81a682;margin-right:5px;font-size:7px}.aim-tip{position:absolute;left:8%;top:41%;font-size:12px;color:#668978;transform:rotate(-8deg);pointer-events:none}.tip-arrow{display:block;font-size:38px;line-height:1;margin:0 0 8px 40px}.game-footer{min-height:94px;display:flex;align-items:center;gap:20px;padding:15px 27px}.cat-queue{min-width:200px}.cat-queue .field-label{margin-bottom:7px}#queue{display:flex;gap:4px;min-height:34px}#queue canvas{width:39px;height:34px}.shot-status{border-left:1px solid var(--line);padding-left:25px;flex:1}.shot-status strong{display:block;font-size:12px;font-weight:600}.shot-status span{display:block;color:#92978b;font-size:11px;margin-top:5px}.ability-button{display:flex;align-items:center;gap:9px;background:#eee9f8;color:#7760ae;border:1px solid #e0d8ee;padding:12px 15px;border-radius:12px;font-size:12px;font-weight:600}.ability-button>span:first-child{font-size:22px}.ability-button kbd{color:#9a88bb;border:1px solid #d0c5e3;background:transparent}kbd{font:10px 'DM Sans';border:1px solid #d9ddd0;background:#fffdf6;border-radius:4px;min-width:19px;text-align:center;padding:3px 5px;display:inline-block}.campaign{padding:40px 0 0}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.section-heading h2{margin-top:7px;font-size:27px}.progress-pill{display:flex;gap:8px;align-items:center;border:1px solid #e0e4d6;padding:9px 13px;border-radius:20px;font-size:10px;color:#a1a68f}.progress-pill>span:first-child{color:#d6ab64;font-size:18px}.progress-pill strong{color:#646f58;font-size:12px}.level-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:10px}.level-card{padding:13px 7px 10px;background:#edeee5;border:1px solid #e1e3d7;border-radius:13px;position:relative;text-align:center;color:#929987;overflow:hidden}.level-card.selected{background:#ede7f6;border-color:#a78fce;box-shadow:0 0 0 2px #a78fce18;color:#765ca6}.level-card .level-number{font:600 21px 'Outfit';display:block;position:absolute;top:12px;left:13px;z-index:1}.level-card canvas{width:100%;height:51px;margin:8px 0 2px;opacity:.75}.level-card.selected canvas{opacity:1}.level-card .level-stars{display:block;font-size:12px;letter-spacing:3px;color:#c5cab8}.level-card .earned{color:#d6ab64}.level-card .level-name{font-size:8px;white-space:nowrap;display:block;margin:5px 0 1px}.campaign-bottom{display:flex;justify-content:space-between;color:#9ca28f;font-size:10px;margin-top:17px}.save-dot{font-size:8px;color:#9db28f;margin-right:4px}.crew-section{display:grid;grid-template-columns:1.1fr repeat(3,1fr);gap:16px;margin-top:45px;border-top:1px solid var(--line);padding-top:34px}.crew-intro h2{font-size:25px;line-height:1.1;margin-top:10px}.crew-intro p{font-size:11px;color:#959b8c;line-height:1.7;margin-top:12px}.crew-card{display:flex;align-items:center;gap:0;background:#eeefe6;border:1px solid #e3e6da;border-radius:18px;padding:20px 15px 20px 0}.portrait{width:103px;height:95px;flex-shrink:0}.cat-tag{font-size:7px;letter-spacing:.8px;font-weight:700}.cat-tag.orange{color:#b48b54}.cat-tag.purple{color:#8f7aad}.cat-tag.green{color:#70977c}.crew-card h3{font-size:21px;margin:4px 0 7px}.crew-card p{font-size:10px;line-height:1.6;color:#959b8c}.power-label{display:block;font-size:10px;font-weight:600;margin-top:13px;color:#7e8a70}.site-footer{max-width:1296px;margin:auto;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);height:90px;color:#9ba18f;font-size:10px}.brand.small{font-size:19px;gap:7px;letter-spacing:-.8px;color:#7c8773}.brand.small .brand-light{margin-left:-6px}.subtle{color:#7d8975;font-size:11px;font-weight:600;background:transparent;padding:8px}.primary,.secondary{padding:13px 20px;border-radius:11px;font-weight:600;font-size:12px;white-space:nowrap}.primary{background:var(--purple);color:white;box-shadow:0 3px 0 #604b9b}.secondary{background:#f2f2e9;color:#65715e;border:1px solid #dce1d2}.pause-overlay,.result-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#e9eee2aa;backdrop-filter:blur(7px);z-index:4}.pause-overlay{flex-direction:column;gap:20px}.pause-overlay h2{font-size:35px}.result-card{text-align:center;background:#fffdf5;border:1px solid #fff;border-radius:25px;padding:26px 40px;box-shadow:0 15px 70px #394c3326;min-width:330px;max-height:96%;overflow:auto}.result-art{color:#c3a0db;font-size:48px;line-height:1.1}.result-card h2{font-size:35px;margin:9px 0}.result-stars{font-size:36px;color:#e7b959;letter-spacing:6px;margin:9px 0}.result-stars .empty-star{color:#e0e3d6}.result-card p{color:#8a9281;font-size:13px;margin:10px 0 20px}.result-actions{display:flex;flex-direction:column;gap:9px}.builder-toolbar{border:1px solid #dce1d5;padding:17px;background:#fffdf5;border-radius:17px;margin-bottom:15px;display:flex;align-items:center;justify-content:space-between;gap:15px}.palette{display:flex;gap:5px;margin-top:8px;flex-wrap:wrap}.tool-button{width:55px;min-height:57px;border-radius:9px;background:#f1f2e9;color:#79856f;border:1px solid #e1e5d7;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:8px;gap:3px}.tool-button.selected{background:#e9e2f5;border-color:#ae94d3;color:#7151a2}.tool-button canvas{height:28px;width:35px}.tool-button .tool-symbol{font-size:23px}.builder-actions{display:flex;align-items:center;gap:3px;flex-wrap:wrap}.danger{color:#ad8073}.editor-panel{display:grid;grid-template-columns:1.7fr 1fr;gap:30px;margin-top:35px}.editor-help{font-size:12px;color:#89917f;line-height:1.7;margin-top:-8px}.settings-row{display:flex;gap:15px;margin-top:20px}.settings-row label{font-size:10px;font-weight:600;color:#86917c;display:flex;flex-direction:column;gap:7px;flex:1}.settings-row label:first-child{flex:2}input,select{border:1px solid #d9decd;background:#fffdf7;color:var(--ink);border-radius:9px;padding:11px 12px;min-width:0;width:100%;font-size:12px}.save-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:20px}.saved-panel{background:#eeefe6;border:1px solid #e1e4d6;padding:20px;border-radius:18px}.small-pill{font-size:9px;color:#929a85;border:1px solid #dae0cf;border-radius:12px;padding:5px 8px}.small-note{font-size:11px;line-height:1.6;color:#929a85;margin-top:20px}.saved-empty{padding:18px 10px;text-align:center;font-size:12px;color:#929a85}.saved-item{display:flex;align-items:center;gap:7px;border-top:1px solid #dce2d2;padding:11px 0}.saved-item span{flex:1;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.saved-item button{font-size:10px;padding:7px;border-radius:6px;color:#7760ae;background:#e4dff0}dialog{border:1px solid #e2e7d7;border-radius:25px;background:#fffdf5;max-width:560px;width:calc(100% - 36px);color:var(--ink);padding:40px;box-shadow:0 20px 80px #263c3433}dialog::backdrop{background:#253e3160;backdrop-filter:blur(5px)}dialog h2{font-size:37px;margin:8px 0 20px}.dialog-close{position:absolute;right:16px;top:13px}dialog ol{padding-left:22px;color:#7c8872;font-size:13px;line-height:1.7}dialog li{margin-bottom:14px;padding-left:6px}dialog strong{color:#46553d}.keyboard-guide{display:flex;gap:12px;flex-wrap:wrap;font-size:10px;color:#859177;padding-top:10px}dialog .primary{margin-top:25px}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);background:#374933;color:#fffdf5;padding:13px 22px;border-radius:12px;font-size:13px;z-index:20;box-shadow:0 8px 30px #25342122;opacity:0;pointer-events:none;transition:.2s;max-width:90vw;text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}.game-shell:fullscreen{display:flex;flex-direction:column;background:#edf0e3;border-radius:0;justify-content:center}.game-shell:fullscreen .canvas-wrap{width:100%;max-height:calc(100vh - 180px);aspect-ratio:2/1;align-self:center}.game-shell:fullscreen canvas#game{width:100%;height:100%;object-fit:contain}.game-shell:fullscreen .game-hud,.game-shell:fullscreen .game-footer{flex-shrink:0}.game-shell:fullscreen .canvas-wrap{max-width:calc((100vh - 180px)*2)}
@media(min-width:1600px){main,.site-footer{max-width:1360px}.site-header{max-width:1440px}.intro{padding-top:48px}}
@media(max-width:1400px){main{padding-left:35px;padding-right:35px}.site-footer{margin:0 35px}.crew-card{padding-right:8px}.portrait{width:90px}}
@media(max-width:1050px){.site-header{padding:0 25px;height:85px}.intro-note{display:none}h1{font-size:42px}.level-grid{grid-template-columns:repeat(5,1fr)}.level-card{min-height:105px}.level-card canvas{height:48px}.crew-section{grid-template-columns:repeat(3,1fr)}.crew-intro{grid-column:1/-1;display:flex;gap:20px;align-items:center}.crew-intro h2{margin:0}.crew-intro p{margin:0}.builder-toolbar{flex-direction:column;align-items:flex-start}.editor-panel{grid-template-columns:1fr}.shot-status{padding-left:15px}.cat-queue{min-width:160px}.hud-stats{gap:20px}.game-footer{padding:15px 20px}.crew-card p{font-size:9px}}
@media(max-width:700px){.site-header{height:auto;min-height:80px;flex-wrap:wrap;padding:16px 18px;gap:15px}.brand{font-size:26px}.brand img{width:36px;height:36px}.site-header nav{order:3;width:100%;justify-content:center;gap:3px;border-top:1px solid var(--line);padding-top:9px}.nav-button{font-size:12px;padding:10px 13px}.sound-button{font-size:10px}.new-badge{display:none}main{padding:0 14px 25px}.intro{padding:26px 5px 23px}h1{font-size:34px;letter-spacing:-1px}.intro .eyebrow{font-size:7px;letter-spacing:1.3px}.intro p{font-size:11px;max-width:290px;line-height:1.6}.game-shell{border-radius:16px}.game-hud{height:72px;padding:0 13px}.level-icon{display:none}.level-heading h2{font-size:17px}.field-label{font-size:6px;letter-spacing:1px}.hud-stats{gap:14px}.stat strong{font-size:18px}.targets-stat{display:none}.hud-divider{display:none}.hud-stats .icon-button{margin-left:0;width:21px;font-size:24px}.stage-badge{left:10px;top:10px;font-size:5px;padding:5px;letter-spacing:1px}.aim-tip{font-size:7px;top:35%}.tip-arrow{font-size:22px;margin-bottom:3px;margin-left:20px}.game-footer{padding:12px;gap:10px;flex-wrap:wrap;min-height:95px}.cat-queue{min-width:120px;flex:1}.cat-queue .field-label{font-size:7px}#queue canvas{width:28px;height:25px}#queue{min-height:25px}.shot-status{order:3;flex-basis:100%;padding:0;border:0;text-align:center}.shot-status strong{font-size:10px}.shot-status span{font-size:9px;margin-top:3px}.ability-button{font-size:10px;padding:7px 10px}.ability-button kbd{display:none}.campaign{padding-top:33px}.section-heading h2{font-size:23px}.section-heading .eyebrow{font-size:7px;letter-spacing:1px}.progress-pill{font-size:8px;gap:4px;padding:7px 9px}.level-grid{gap:7px}.level-card{padding:9px 3px;min-height:90px}.level-card .level-number{font-size:17px;left:8px;top:8px}.level-card canvas{height:36px;margin-top:10px}.level-card .level-name{font-size:6px}.level-card .level-stars{font-size:9px;letter-spacing:1px}.campaign-bottom{gap:10px;font-size:8px;line-height:1.6}.crew-section{grid-template-columns:1fr;gap:10px;margin-top:30px;padding-top:24px}.crew-intro{display:block;margin-bottom:8px}.crew-intro h2{font-size:24px;margin-top:8px}.crew-intro h2 br{display:none}.crew-intro p{margin-top:6px}.crew-intro p br{display:none}.crew-card{padding:12px 20px;gap:10px}.portrait{width:90px;height:75px}.crew-card>div{display:grid;grid-template-columns:1fr 1fr;align-items:center;column-gap:20px;flex:1}.cat-tag{grid-column:1/-1}.crew-card h3{font-size:23px}.crew-card p{grid-column:2;grid-row:2/4;font-size:10px}.power-label{margin:0}.site-footer{margin:0 18px;flex-wrap:wrap;gap:10px;padding:15px 0;height:auto}.site-footer>span{font-size:8px}.site-footer>.subtle{display:none}.brand.small{font-size:16px}.brand.small img{width:23px;height:23px}.result-card{padding:15px 20px;min-width:260px;max-width:90%}.result-card h2{font-size:24px}.result-art{display:none}.result-card .eyebrow{font-size:6px}.result-stars{font-size:23px;margin:5px 0}.result-card p{font-size:10px;margin:6px 0 10px}.result-actions{gap:5px;flex-direction:row;flex-wrap:wrap;justify-content:center}.result-actions .primary,.result-actions .secondary{padding:8px 10px;font-size:10px}.result-actions .subtle{font-size:9px}.pause-overlay{gap:12px}.pause-overlay h2{font-size:24px}.pause-overlay .primary{padding:10px 15px;font-size:10px}.builder-toolbar{padding:12px;gap:8px}.tool-button{width:43px;font-size:7px;min-height:50px}.tool-button canvas{width:30px;height:24px}.palette{gap:4px}.builder-actions .subtle{font-size:10px;padding:7px}.settings-row{flex-wrap:wrap}.settings-row label:first-child{flex-basis:100%}.save-actions .primary,.save-actions .secondary{font-size:10px;padding:11px 13px}.editor-help{font-size:11px}.editor-panel{margin-top:25px;gap:22px}.game-footer>.primary{font-size:10px;padding:10px 12px}dialog{padding:28px 24px}dialog h2{font-size:30px}dialog li{font-size:12px}.game-shell:fullscreen .canvas-wrap{max-height:calc(100vh - 175px);max-width:calc((100vh - 175px)*2)}}
@media(prefers-reduced-motion:reduce){button,#toast{transition:none}html{scroll-behavior:auto}}

@media(max-width:700px){.crew-intro h2 br::after,.crew-intro p br::after{content:" "}.crew-card>div{column-gap:12px}.crew-card p{line-height:1.7}.game-hud .field-label{line-height:1.4}}

@media(max-width:700px){.site-header nav{flex-wrap:wrap}}
