*{box-sizing:border-box;margin:0;padding:0}:root{--paper: #f4ead0;--paper-warm: #f7e9c4;--paper-shade: #e6d9b3;--paper-edge: rgba(80, 55, 20, .18);--grid-line: rgba(80, 140, 190, .35);--grid-line-major: rgba(80, 140, 190, .55);--margin-line: #d96b6b;--ink-primary: #1c3a82;--ink-secondary: #345fa8;--ink-ghost: rgba(28, 58, 130, .45);--ink-red: #b8342a;--ink-pencil: #5a4a30;--highlight: #f5d76e;--grid-px: 28px;--headfont: "Caveat", cursive;--bodyfont: "Patrick Hand", cursive;--displayfont: "Caveat", cursive;--monofont: "Space Mono", monospace}[data-theme=blueprint]{--paper: #0d2a52;--paper-warm: #0e2e5a;--paper-shade: #08214a;--paper-edge: rgba(0, 0, 0, .45);--grid-line: rgba(160, 220, 255, .13);--grid-line-major: rgba(160, 220, 255, .28);--margin-line: #5fa8d3;--ink-primary: #e0f1ff;--ink-secondary: #a8cce8;--ink-ghost: rgba(224, 241, 255, .45);--ink-red: #ff8870;--ink-pencil: #88a8c8;--highlight: #ffd86a;--headfont: "Architects Daughter", cursive;--bodyfont: "Architects Daughter", cursive;--displayfont: "Architects Daughter", cursive}[data-theme=tactical]{--paper: #0b1612;--paper-warm: #0d1a14;--paper-shade: #06100b;--paper-edge: rgba(0, 0, 0, .6);--grid-line: rgba(80, 200, 130, .13);--grid-line-major: rgba(80, 200, 130, .3);--margin-line: #56c98a;--ink-primary: #7af0a8;--ink-secondary: #4ec087;--ink-ghost: rgba(122, 240, 168, .45);--ink-red: #ff6242;--ink-pencil: #6fa886;--highlight: #ffe066;--headfont: "Share Tech Mono", monospace;--bodyfont: "Share Tech Mono", monospace;--displayfont: "Share Tech Mono", monospace}html,body{background:#2a2218;color:var(--ink-primary);font-family:var(--bodyfont);font-size:18px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}[data-theme=blueprint] body,[data-theme=tactical] body{background:#060a08}.page{position:relative;max-width:1240px;margin:32px auto;background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--grid-px) - 1px),var(--grid-line) calc(var(--grid-px) - 1px),var(--grid-line) var(--grid-px)),repeating-linear-gradient(to right,transparent 0,transparent calc(var(--grid-px) - 1px),var(--grid-line) calc(var(--grid-px) - 1px),var(--grid-line) var(--grid-px)),radial-gradient(ellipse at top left,var(--paper-warm),var(--paper) 50%,var(--paper-shade) 100%);border-radius:4px;box-shadow:0 0 0 1px var(--paper-edge),0 2px 4px #0000001a,0 24px 60px -12px #00000073,inset 0 0 80px #785a2814}[data-theme=blueprint] .page,[data-theme=tactical] .page{box-shadow:0 0 0 1px var(--paper-edge),0 24px 60px -12px #0009,inset 0 0 120px #00000040}.page:before{content:"";position:absolute;left:64px;top:0;bottom:0;width:1.5px;background:var(--margin-line);opacity:.65;pointer-events:none;z-index:1}.page:after{content:"";position:absolute;left:22px;top:0;bottom:0;width:16px;background:radial-gradient(circle at 50% 12%,rgba(0,0,0,.28) 0 7px,transparent 8px),radial-gradient(circle at 50% 50%,rgba(0,0,0,.28) 0 7px,transparent 8px),radial-gradient(circle at 50% 88%,rgba(0,0,0,.28) 0 7px,transparent 8px);pointer-events:none;z-index:1}[data-theme=blueprint] .page:after,[data-theme=tactical] .page:after{background:radial-gradient(circle at 50% 12%,rgba(0,0,0,.55) 0 7px,transparent 8px),radial-gradient(circle at 50% 50%,rgba(0,0,0,.55) 0 7px,transparent 8px),radial-gradient(circle at 50% 88%,rgba(0,0,0,.55) 0 7px,transparent 8px)}.page-inner{position:relative;padding:56px 64px 64px 110px;z-index:2}.page-meta{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;font-family:var(--headfont);font-size:20px;color:var(--ink-pencil)}.page-meta .lang{display:flex;gap:4px;align-items:center;font-family:var(--bodyfont);font-size:16px}.page-meta .lang button{background:transparent;border:0;font-family:var(--bodyfont);font-size:16px;color:var(--ink-pencil);padding:4px 10px;cursor:pointer;border-radius:999px;letter-spacing:.05em}.page-meta .lang button.active{background:var(--ink-primary);color:var(--paper);transform:rotate(-2deg)}h1.title{font-family:var(--displayfont);font-weight:700;font-size:clamp(80px,11.5vw,168px);line-height:.85;letter-spacing:-.03em;color:var(--ink-primary);margin-top:12px;transform:rotate(-1.2deg);display:inline-block;white-space:nowrap;overflow:visible}h2.section-title{font-family:var(--displayfont);font-weight:700;font-size:clamp(40px,5vw,64px);line-height:.95;color:var(--ink-primary);margin-bottom:8px}h2.section-title .num{display:inline-block;font-family:var(--bodyfont);font-size:.42em;color:var(--ink-red);vertical-align:top;margin-right:12px;transform:translateY(-4px)}.subtitle{font-family:var(--bodyfont);font-size:24px;color:var(--ink-secondary);max-width:580px;margin-bottom:24px}.section{padding:64px 0;position:relative}.section+.section{border-top:none}.section-divider{position:relative;height:36px;margin:24px 0}.section-divider svg{width:100%;height:100%;color:var(--ink-ghost)}.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;min-height:540px}.hero-text{position:relative}.tagline{font-family:var(--bodyfont);font-size:22px;color:var(--ink-pencil);margin-bottom:4px;letter-spacing:.02em}.hero-sub{font-family:var(--bodyfont);font-size:22px;line-height:1.5;color:var(--ink-secondary);max-width:520px;margin-top:16px}.hero-sub mark{background:var(--highlight);color:var(--ink-primary);padding:0 4px;border-radius:2px}[data-theme=blueprint] .hero-sub mark,[data-theme=tactical] .hero-sub mark{background:#ffd86a40;color:var(--ink-primary)}.hero-ctas{display:flex;gap:18px;margin-top:32px;flex-wrap:wrap;align-items:center}.hero-stamps{margin-top:36px;display:flex;gap:26px;font-family:var(--bodyfont);font-size:15px;color:var(--ink-pencil);flex-wrap:wrap}.hero-stamps span{display:flex;align-items:center;gap:6px}.hero-stamps .dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:currentColor;opacity:.5}.btn{position:relative;display:inline-flex;align-items:center;gap:10px;font-family:var(--displayfont);font-weight:700;font-size:28px;padding:10px 26px;color:var(--ink-primary);background:transparent;border:none;cursor:pointer;line-height:1;letter-spacing:.01em;transform:rotate(-.8deg);transition:transform .18s ease;white-space:nowrap}.btn:before{content:"";position:absolute;top:-4px;right:-8px;bottom:-4px;left:-8px;border:2.5px solid var(--ink-primary);border-radius:50%/32%;transform:rotate(.5deg);pointer-events:none}.btn:after{content:"";position:absolute;top:0;right:-4px;bottom:0;left:-4px;border:1.5px solid var(--ink-primary);border-radius:60%/40%;transform:rotate(-1deg);opacity:.5;pointer-events:none}.btn:hover{transform:rotate(-1.5deg) scale(1.04)}.btn:hover:before{transform:rotate(1.5deg) scale(1.02)}.btn.primary{background:var(--ink-primary);color:var(--paper)}.btn.primary:before{border-color:var(--ink-primary)}.btn.primary:after{display:none}.btn.small{font-size:20px;padding:6px 18px}.btn:disabled{opacity:.55;cursor:wait;transform:rotate(-1deg)}.coffee-link{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-family:var(--displayfont);font-size:22px;font-weight:700;line-height:1;color:var(--ink-primary);background:#ffffff24;border:2px dashed var(--ink-pencil);border-radius:5px;padding:10px 16px;cursor:pointer;transform:rotate(.4deg);transition:transform .15s ease,color .15s ease,border-color .15s ease,background .15s ease}.coffee-link:hover{color:var(--ink-red);border-color:var(--ink-red);background:#ffffff38;transform:rotate(-.8deg) scale(1.03)}.coffee-link.compact{font-size:15px;padding:7px 10px}.scribble-input{position:relative;display:inline-flex;align-items:center;font-family:var(--displayfont);font-size:26px;padding:8px 16px}.scribble-input:before{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border:2px dashed var(--ink-ghost);border-radius:4px;pointer-events:none}.scribble-input input{background:transparent;border:0;outline:0;font:inherit;color:var(--ink-primary);width:220px;text-align:center;letter-spacing:.4em;text-transform:uppercase;font-weight:700}.scribble-input input::placeholder{color:var(--ink-ghost);letter-spacing:.2em;font-weight:400}.doodle{position:absolute;pointer-events:none;color:var(--ink-ghost)}.scribbled-out{position:relative;display:inline-block}.scribbled-out:after{content:"";position:absolute;left:-4%;right:-4%;top:45%;height:6px;background:repeating-linear-gradient(95deg,var(--ink-red) 0 14px,transparent 14px 18px);transform:rotate(-2deg);opacity:.85}.card{position:relative;padding:22px 26px;background:#ffffff0a;border-radius:6px;border:1.5px dashed var(--ink-ghost)}[data-theme=notebook] .card,:root:not([data-theme]) .card{background:#ffffff1f;box-shadow:2px 3px 0 -1px #50321426}[data-theme=blueprint] .card{background:#ffffff08}[data-theme=tactical] .card{background:#7af0a80a}.card-num{display:inline-block;font-family:var(--displayfont);font-size:28px;font-weight:700;color:var(--ink-red);line-height:1;margin-bottom:6px}.card-title{font-family:var(--displayfont);font-size:32px;font-weight:700;line-height:1;margin-bottom:8px;color:var(--ink-primary)}.card-body{font-family:var(--bodyfont);font-size:18px;color:var(--ink-secondary);line-height:1.45}.tilt-l{transform:rotate(-.8deg)}.tilt-r{transform:rotate(.7deg)}.tilt-l2{transform:rotate(-1.4deg)}.tilt-r2{transform:rotate(1.2deg)}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:36px;position:relative}.steps .arrow{position:absolute;top:60px;pointer-events:none;color:var(--ink-pencil)}.steps .arrow.a1{left:31%;width:8%}.steps .arrow.a2{left:64%;width:8%}.shapes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px 28px;margin-top:32px}.shape-card{position:relative;padding:20px 22px 22px}.shape-card .matrix-wrap{display:flex;justify-content:center;margin:12px 0 16px}.shape-card .label-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.shape-card .name{font-family:var(--displayfont);font-size:32px;font-weight:700;color:var(--ink-primary);line-height:1}.shape-card .badge{font-family:var(--bodyfont);font-size:14px;color:var(--ink-red);border:1.5px solid var(--ink-red);padding:3px 10px;border-radius:999px;transform:rotate(2deg);white-space:nowrap}.shape-card .desc{font-family:var(--bodyfont);font-size:16px;color:var(--ink-secondary);margin-top:6px;line-height:1.4}.shape-card .stats{display:flex;gap:14px;margin-top:12px;font-family:var(--bodyfont);font-size:14px;color:var(--ink-pencil)}.shape-card .stats b{font-family:var(--displayfont);font-weight:700;color:var(--ink-primary);font-size:18px;margin-right:3px}.mx{display:grid;gap:2px}.mx-cell{width:28px;height:28px;position:relative;border-radius:2px}.mx-cell.empty{background:transparent;border:1px dashed var(--ink-ghost);opacity:.4}.mx-cell.body{background:var(--ink-primary);color:var(--paper);border-radius:3px}.mx-cell.cabin{background:var(--ink-red);color:var(--paper);border-radius:3px;box-shadow:0 0 0 1.5px var(--ink-primary)}.mx-cell.cabin:after{content:"✕";position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-family:var(--bodyfont);font-size:14px;font-weight:700;color:var(--paper)}.modes{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:32px}.mode-card{padding:22px;position:relative}.mode-card .mode-name{font-family:var(--displayfont);font-size:44px;font-weight:700;line-height:1;color:var(--ink-primary);margin-bottom:4px}.mode-card .mode-meta{font-family:var(--bodyfont);font-size:16px;color:var(--ink-pencil);margin-bottom:14px}.mode-card .mini-grid{display:grid;border:1.5px solid var(--ink-primary);margin:12px 0;background:transparent}.mode-card .mini-grid>div{border-right:.5px solid var(--grid-line-major);border-bottom:.5px solid var(--grid-line-major);aspect-ratio:1}.mode-card .mode-list{list-style:none;font-family:var(--bodyfont);font-size:16px;color:var(--ink-secondary);line-height:1.5;margin-top:8px}.mode-card .mode-list li:before{content:"→ ";color:var(--ink-red)}.game-preview{position:relative;padding:18px;display:flex;flex-direction:column;align-items:center;gap:14px}.preview-grids{display:flex;gap:22px;align-items:flex-start}.mini-board{display:flex;flex-direction:column;align-items:center;gap:6px}.mini-board .board-label{font-family:var(--bodyfont);font-size:16px;color:var(--ink-pencil);letter-spacing:.04em}.mini-board .board-label b{font-family:var(--displayfont);font-size:20px;font-weight:700;color:var(--ink-primary)}.board{display:grid;background:transparent;position:relative}.board.with-outer-border{box-shadow:0 0 0 1.5px var(--ink-primary)}.board .cell{width:var(--cell, 28px);height:var(--cell, 28px);position:relative;display:flex;align-items:center;justify-content:center;font-family:var(--displayfont);font-weight:700;color:var(--ink-red)}.board .cell .hit{position:absolute;top:4px;right:4px;bottom:4px;left:4px;display:flex;align-items:center;justify-content:center;font-family:var(--displayfont);font-size:22px;font-weight:700;color:var(--ink-red);animation:scribbleIn .3s ease-out}.board .cell .miss{position:absolute;width:8px;height:8px;border-radius:50%;background:var(--ink-secondary);opacity:.6;animation:dotIn .25s ease-out}.board .cell .ship-mine{position:absolute;top:3px;right:3px;bottom:3px;left:3px;background:var(--ink-primary);opacity:.85;border-radius:2px}.board .cell.cabin-mine .ship-mine{background:var(--ink-red)}.board .cell.cabin-mine .ship-mine:after{content:"✕";position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--paper);font-size:16px}.board .cell.killed .hit{color:var(--ink-red);animation:shake .5s ease-out}@keyframes scribbleIn{0%{transform:scale(.4) rotate(-30deg);opacity:0}60%{transform:scale(1.2) rotate(8deg);opacity:1}to{transform:scale(1) rotate(-6deg);opacity:1}}@keyframes dotIn{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:.6}}@keyframes shake{0%,to{transform:rotate(-6deg) translate(0)}25%{transform:rotate(-12deg) translate(-2px)}75%{transform:rotate(0) translate(2px)}}.board-frame{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;gap:0}.board-frame .axis-x{grid-column:2;grid-row:1;display:flex;font-family:var(--monofont);font-size:11px;color:var(--ink-pencil);margin-bottom:4px;padding-left:2px}.board-frame .axis-x span,.board-frame .axis-y span{display:flex;align-items:center;justify-content:center;font-family:var(--bodyfont);font-size:13px}.board-frame .axis-y{grid-column:1;grid-row:2;display:flex;flex-direction:column;font-family:var(--monofont);font-size:11px;color:var(--ink-pencil);margin-right:4px}.board-frame .board-area{grid-column:2;grid-row:2}.themes{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:32px}.theme-card{position:relative;border-radius:6px;overflow:hidden;cursor:pointer;border:2px dashed var(--ink-ghost);transition:transform .2s ease}.theme-card:hover{transform:translateY(-4px) rotate(-.4deg)}.theme-card.active{border-style:solid;border-color:var(--ink-red);box-shadow:0 0 0 2px var(--ink-red),4px 6px 0 -1px #b8342a40}.theme-preview{height:200px;display:flex;align-items:center;justify-content:center;position:relative}.theme-preview .mini-cells{display:grid;grid-template-columns:repeat(6,1fr);gap:0;width:70%;aspect-ratio:1}.theme-preview .mini-cells>div{border-right:1px solid;border-bottom:1px solid;border-color:inherit}.theme-info{padding:14px 18px 16px;background:#ffffff0f;border-top:1.5px dashed var(--ink-ghost)}.theme-info .t-name{font-family:var(--displayfont);font-size:26px;font-weight:700;color:var(--ink-primary);line-height:1}.theme-info .t-desc{font-family:var(--bodyfont);font-size:15px;color:var(--ink-secondary);margin-top:4px}.theme-info .t-tag{font-family:var(--bodyfont);font-size:12px;color:var(--ink-red);margin-top:6px;letter-spacing:.06em;text-transform:uppercase}.preview-notebook{background:repeating-linear-gradient(to bottom,transparent 0 19px,rgba(80,140,190,.35) 19px 20px),repeating-linear-gradient(to right,transparent 0 19px,rgba(80,140,190,.35) 19px 20px),#f4ead0;color:#508cbe8c}.preview-notebook .ink{color:#1c3a82}.preview-blueprint{background:repeating-linear-gradient(to bottom,transparent 0 19px,rgba(160,220,255,.18) 19px 20px),repeating-linear-gradient(to right,transparent 0 19px,rgba(160,220,255,.18) 19px 20px),#0d2a52;color:#a0dcff66}.preview-blueprint .ink{color:#e0f1ff}.preview-tactical{background:repeating-linear-gradient(to bottom,transparent 0 19px,rgba(80,200,130,.18) 19px 20px),repeating-linear-gradient(to right,transparent 0 19px,rgba(80,200,130,.18) 19px 20px),#0b1612;color:#50c88266}.preview-tactical .ink{color:#7af0a8}.theme-preview .mini-cells>div.s{background:currentColor;opacity:.85;color:var(--ink-primary)}.theme-preview .mini-cells>div.h:after{content:"✕";display:flex;align-items:center;justify-content:center;color:#b8342a;font-family:Caveat;font-weight:700;font-size:16px}.preview-blueprint .mini-cells>div.h:after{color:#ff8870}.preview-tactical .mini-cells>div.h:after{color:#ff6242}.final-cta{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;margin-top:24px}.final-cta .col h3{font-family:var(--displayfont);font-size:48px;font-weight:700;color:var(--ink-primary);line-height:1;margin-bottom:12px}.final-cta .col p{font-family:var(--bodyfont);font-size:18px;color:var(--ink-secondary);margin-bottom:20px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#281e0a8c;display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .2s ease-out;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}[data-theme=blueprint] .modal-backdrop,[data-theme=tactical] .modal-backdrop{background:#000000b3}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:repeating-linear-gradient(to bottom,transparent 0 23px,var(--grid-line) 23px 24px),repeating-linear-gradient(to right,transparent 0 23px,var(--grid-line) 23px 24px),var(--paper);border-radius:6px;padding:40px 48px 44px;width:540px;max-width:90vw;position:relative;box-shadow:0 24px 60px #0006,0 0 0 1px var(--paper-edge);transform:rotate(-.6deg);animation:pop .3s cubic-bezier(.34,1.56,.64,1)}@keyframes pop{0%{transform:rotate(-3deg) scale(.92);opacity:0}to{transform:rotate(-.6deg) scale(1);opacity:1}}.modal h3{font-family:var(--displayfont);font-size:44px;font-weight:700;color:var(--ink-primary);line-height:1;margin-bottom:6px}.modal .modal-sub{font-family:var(--bodyfont);font-size:17px;color:var(--ink-secondary);margin-bottom:24px}.modal .code-box{position:relative;font-family:var(--displayfont);font-size:64px;font-weight:700;color:var(--ink-primary);text-align:center;letter-spacing:.2em;padding:14px 0 8px;margin:12px 0 18px;border:2.5px dashed var(--ink-red);border-radius:6px;background:#ffffff1a}.modal .copy-row{display:flex;gap:10px;margin:8px 0 20px}.modal .copy-row .link-display{flex:1;font-family:var(--monofont);font-size:14px;background:#ffffff2e;border:1.5px dashed var(--ink-ghost);padding:10px 14px;border-radius:4px;color:var(--ink-secondary);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}[data-theme=blueprint] .modal .copy-row .link-display,[data-theme=tactical] .modal .copy-row .link-display{background:#00000040}.modal .copy-row button{font-family:var(--bodyfont);font-size:16px;background:var(--ink-primary);color:var(--paper);border:0;padding:0 16px;border-radius:4px;cursor:pointer;transform:rotate(-1deg);white-space:nowrap}.modal .waiting{display:flex;align-items:center;gap:12px;font-family:var(--bodyfont);font-size:17px;color:var(--ink-pencil);margin-top:14px;white-space:nowrap}.modal .dots:after{content:".";animation:dots 1.2s steps(3,end) infinite}@keyframes dots{0%{content:"."}33%{content:".."}66%{content:"..."}}.modal .close-x{position:absolute;top:12px;right:14px;background:transparent;border:0;font-family:var(--displayfont);font-size:32px;color:var(--ink-pencil);cursor:pointer;line-height:1}.modal .share-list{display:flex;gap:8px;margin-top:6px}.modal .share-list button{flex:1;font-family:var(--bodyfont);font-size:14px;padding:8px;border:1.5px dashed var(--ink-ghost);background:#ffffff0f;color:var(--ink-secondary);border-radius:4px;cursor:pointer}.modal .share-list button:hover{color:var(--ink-primary);border-color:var(--ink-primary)}.signature{margin-top:80px;display:flex;justify-content:space-between;align-items:flex-end;font-family:var(--bodyfont);font-size:15px;color:var(--ink-pencil);flex-wrap:wrap;gap:20px}.signature .sig-handwritten{font-family:var(--displayfont);font-size:36px;color:var(--ink-primary);transform:rotate(-3deg)}.consent-bar{position:fixed;left:12px;right:12px;bottom:12px;z-index:900;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;background:var(--paper, #fffdf5);border:2px solid var(--ink-pencil);border-radius:10px;box-shadow:0 6px 24px #0000002e;font-family:var(--bodyfont);font-size:15px;line-height:1.45}.consent-text{flex:1 1 320px;min-width:0}.consent-text a{color:var(--ink-primary)}.consent-actions{display:flex;gap:10px;flex-wrap:wrap}.consent-btn{font-family:var(--bodyfont);font-size:15px;padding:8px 18px;border:2px solid var(--ink-pencil);border-radius:6px;background:transparent;color:var(--ink-primary);cursor:pointer}.consent-btn:hover{border-color:var(--ink-primary)}@media(max-width:620px){.consent-bar{left:8px;right:8px;bottom:8px;padding:12px 14px;font-size:14px}.consent-actions{width:100%}.consent-btn{flex:1 1 0}}.site-links{margin-top:26px;display:flex;flex-wrap:wrap;gap:6px 18px;font-family:var(--bodyfont);font-size:14px}.site-links a{color:var(--ink-pencil);text-decoration:none;border-bottom:1px dotted var(--ink-pencil);padding:2px 0}.site-links a:hover{color:var(--ink-primary);border-bottom-color:var(--ink-primary)}.smudge{position:absolute;background:radial-gradient(ellipse at center,var(--ink-primary) 0%,transparent 60%);opacity:.08;border-radius:50%;filter:blur(3px);pointer-events:none}.coord-tag{display:inline-block;font-family:var(--monofont);font-size:12px;padding:2px 8px;border:1px dashed var(--ink-ghost);border-radius:3px;color:var(--ink-pencil);letter-spacing:.05em}@media(max-width:920px){.hero{grid-template-columns:1fr;gap:32px}.steps,.shapes-grid,.modes,.themes{grid-template-columns:1fr 1fr}.final-cta{grid-template-columns:1fr}.page-inner{padding:36px 28px 40px 80px}}@media(max-width:620px){.steps,.shapes-grid,.modes,.themes{grid-template-columns:1fr}h1.title{font-size:min(80px,20vw)}.page-inner{padding:30px 22px 32px 60px}.page:before{left:44px}.page:after{left:14px}.hero-visual{min-width:0;overflow-x:auto}.tourney-entry .btn{white-space:normal}}.game-app{min-height:100vh;padding:24px;display:flex;flex-direction:column;align-items:center}.game-page{position:relative;width:100%;max-width:1280px;margin:0 auto;background:radial-gradient(ellipse at top left,var(--paper-warm),var(--paper) 50%,var(--paper-shade) 100%);border-radius:4px;box-shadow:0 0 0 1px var(--paper-edge),0 24px 60px -12px #00000073,inset 0 0 80px #785a2814;padding:32px 40px 44px}.game-header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px;flex-wrap:wrap}.game-header .left{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.game-header h1{font-family:var(--displayfont);font-weight:700;font-size:48px;line-height:1;color:var(--ink-primary);letter-spacing:-.01em;transform:rotate(-1.2deg);display:inline-block}.game-header .room-id{font-family:var(--displayfont);font-size:24px;font-weight:700;color:var(--ink-red);letter-spacing:.18em;padding:4px 12px;border:2px dashed var(--ink-red);border-radius:6px;transform:rotate(.5deg)}.game-header .right{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.sound-control{display:inline-flex;align-items:center;gap:4px}.sound-toggle,.sound-test{font-family:var(--bodyfont);font-size:14px;background:#ffffff2e;border:1.5px solid var(--ink-pencil);color:var(--ink-primary);padding:6px 10px;border-radius:4px;cursor:pointer}.sound-toggle{display:inline-flex;align-items:center;gap:6px}.sound-toggle.muted{color:var(--ink-pencil);border-style:dashed;background:transparent}.sound-test{width:30px;padding-left:0;padding-right:0;color:var(--ink-red);border-color:var(--ink-red)}.sound-toggle:hover,.sound-test:hover{transform:rotate(-1deg);color:var(--ink-red);border-color:var(--ink-red)}.game-header .copy-link-btn{font-family:var(--bodyfont);font-size:14px;background:#ffffff2e;border:1.5px dashed var(--ink-ghost);padding:6px 12px;border-radius:4px;color:var(--ink-secondary);cursor:pointer}[data-theme=blueprint] .game-header .copy-link-btn,[data-theme=tactical] .game-header .copy-link-btn{background:#00000040}.game-header .copy-link-btn:hover{color:var(--ink-primary);border-color:var(--ink-primary)}.game-header .leave-btn{font-family:var(--bodyfont);font-size:14px;background:transparent;border:1.5px solid var(--ink-pencil);color:var(--ink-pencil);padding:6px 12px;border-radius:4px;cursor:pointer}.game-header .leave-btn:hover{color:var(--ink-red);border-color:var(--ink-red)}.backend-badge{font-family:var(--monofont);font-size:11px;color:var(--ink-pencil);background:#ffffff14;border:1px dashed var(--ink-ghost);padding:3px 8px;border-radius:3px;letter-spacing:.04em;text-transform:uppercase}.score-badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--displayfont);font-weight:700;padding:4px 10px 5px;background:#ffffff2e;border:1.5px dashed var(--ink-ghost);border-radius:4px;line-height:1;transform:rotate(-.5deg)}[data-theme=blueprint] .score-badge,[data-theme=tactical] .score-badge{background:#00000040}.score-badge .score-label{font-family:var(--bodyfont);font-weight:400;font-size:12px;color:var(--ink-pencil);letter-spacing:.04em;margin-right:2px;text-transform:uppercase}.score-badge .score-win{font-size:22px;color:var(--ink-primary)}.score-badge .score-loss{font-size:22px;color:var(--ink-red)}.score-badge .score-sep{font-size:18px;color:var(--ink-pencil);margin:0 1px}.modal.premium-modal{width:600px;max-width:92vw;padding:36px 40px 32px}.premium-card{text-align:left;position:relative;padding:18px 18px 16px;background:#ffffff24;border:2px dashed var(--ink-ghost);border-radius:6px;cursor:pointer;transition:all .15s ease;font-family:var(--bodyfont);color:inherit;display:flex;flex-direction:column;gap:4px}[data-theme=blueprint] .premium-card,[data-theme=tactical] .premium-card{background:#0003}.premium-card:hover{border-color:var(--ink-primary);transform:translateY(-2px)}.premium-card.recommended{border-color:var(--ink-red);border-style:solid;box-shadow:4px 6px 0 -2px #b8342a33}.premium-card.recommended:hover{box-shadow:6px 8px 0 -2px #b8342a4d}.premium-card .prem-tag{font-family:var(--bodyfont);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-red);border:1px solid var(--ink-red);padding:2px 8px;border-radius:999px;align-self:flex-start;margin-bottom:6px}.premium-card .prem-price{font-family:var(--displayfont);font-size:42px;font-weight:700;color:var(--ink-primary);line-height:1}.premium-card .prem-title{font-family:var(--displayfont);font-size:22px;font-weight:700;color:var(--ink-primary);line-height:1;margin-top:2px;margin-bottom:8px}.premium-card .prem-list{list-style:none;padding:0;margin:0;font-family:var(--bodyfont);font-size:13px;color:var(--ink-secondary);line-height:1.4}.premium-card .prem-list li{display:flex;gap:6px;align-items:baseline}.premium-card .prem-list li:before{content:"✓";color:var(--ink-red);font-weight:700;font-family:var(--displayfont)}.pay-row{margin-bottom:12px}.pay-row label{display:block;font-family:var(--bodyfont);font-size:13px;color:var(--ink-pencil);margin-bottom:4px;letter-spacing:.02em}.pay-row input{width:100%;font-family:var(--monofont);font-size:15px;padding:10px 12px;background:#ffffff2e;border:1.5px solid var(--ink-ghost);border-radius:4px;color:var(--ink-primary);outline:none}[data-theme=blueprint] .pay-row input,[data-theme=tactical] .pay-row input{background:#00000040}.pay-row input:focus{border-color:var(--ink-primary)}.pay-row .card-input-row{display:flex;gap:8px}.pay-row .card-input-row input{font-family:var(--monofont)}.pay-hint{font-family:var(--bodyfont);font-size:11px;color:var(--ink-pencil);margin-top:4px;font-style:italic}.pay-total{display:flex;justify-content:space-between;align-items:baseline;padding:10px 0 6px;border-top:1.5px dashed var(--ink-ghost);margin-top:12px;font-family:var(--bodyfont);font-size:16px;color:var(--ink-pencil)}.pay-total b{font-family:var(--displayfont);font-size:32px;font-weight:700;color:var(--ink-primary)}.btn-primary{flex:1;font-family:var(--displayfont);font-size:22px;font-weight:700;background:var(--ink-primary);color:var(--paper);border:0;padding:10px 16px;border-radius:4px;cursor:pointer;transform:rotate(-.5deg);letter-spacing:.01em}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary:disabled{opacity:.55;cursor:wait}.btn-secondary{flex:0 0 auto;font-family:var(--bodyfont);font-size:15px;background:transparent;color:var(--ink-pencil);border:1.5px solid var(--ink-pencil);padding:10px 18px;border-radius:4px;cursor:pointer}.btn-secondary:hover{color:var(--ink-primary);border-color:var(--ink-primary)}.ad-stage{position:relative;background:#0006;border:2px dashed var(--ink-ghost);border-radius:6px;padding:28px 20px 16px;margin:10px 0 8px;text-align:center}.ad-content{padding:30px 0}.ad-logo{font-size:60px;line-height:1}.ad-title{font-family:var(--displayfont);font-size:28px;font-weight:700;color:var(--paper);margin-top:10px}.ad-by{font-family:var(--monofont);font-size:11px;color:#fff9;margin-top:4px;letter-spacing:.05em}.ad-counter{font-family:var(--bodyfont);font-size:14px;color:var(--paper);margin-top:16px}.ad-progress{height:4px;background:#fff3;margin-top:8px;border-radius:2px;overflow:hidden}.ad-progress-bar{height:100%;background:var(--ink-red);transition:width 1s linear}.mock-ad-backdrop{z-index:3000}.mock-ad-modal{max-width:460px}.lock-chip{position:absolute;top:8px;right:8px;display:inline-flex;align-items:center;gap:3px;font-family:var(--bodyfont);font-size:11px;background:var(--ink-red);color:var(--paper);padding:3px 8px;border-radius:999px;letter-spacing:.05em;text-transform:uppercase;z-index:2;transform:rotate(2deg);cursor:pointer;border:0}.lock-chip:hover{transform:rotate(2deg) scale(1.07)}.lock-chip .lock-icon{font-size:13px}.premium-pill{font-family:var(--bodyfont);font-size:11px;display:inline-flex;align-items:center;gap:4px;padding:3px 9px;background:linear-gradient(135deg,#ffd86a,#f5b04b);color:#5a3c0c;border-radius:999px;letter-spacing:.04em;text-transform:uppercase;font-weight:700;border:1px solid #c98a1c;cursor:pointer}.premium-pill.ad-tier{background:linear-gradient(135deg,#c8e7ff,#95c5e8);color:#1a3a5a;border-color:#5a8bb5}.mode-picker button.locked{position:relative;cursor:pointer}.mode-picker button.locked:after{content:"🔒";position:absolute;top:6px;right:8px;font-size:13px;opacity:.8}.mode-picker button.locked.active{background:#b8342a1f;border-color:var(--ink-red);color:var(--ink-red);border-style:solid}.theme-card.locked{position:relative}.theme-card.locked:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#0000002e;pointer-events:none;border-radius:6px}.theme-card.locked .theme-info{position:relative;z-index:1}.status-banner{position:relative;padding:18px 24px;margin:0 0 28px;font-family:var(--displayfont);font-size:28px;font-weight:700;color:var(--ink-primary);text-align:center;border:2px dashed var(--ink-ghost);border-radius:6px;background:#ffffff0f;line-height:1.1;transform:rotate(-.3deg)}.status-banner.your-turn{border-color:var(--ink-red);background:#b8342a14;color:var(--ink-red);animation:pulseBanner 1.8s ease-in-out infinite}.status-banner.waiting{color:var(--ink-pencil);border-style:dashed}.status-banner small{display:block;font-family:var(--bodyfont);font-size:15px;color:var(--ink-secondary);margin-top:4px;font-weight:400}@keyframes pulseBanner{0%,to{box-shadow:0 0 #b8342a33}50%{box-shadow:0 0 0 6px #b8342a00}}.placement-layout{display:grid;grid-template-columns:1fr 320px;gap:36px;align-items:flex-start}.placement-board-wrap{display:flex;justify-content:center}.placement-side{position:relative;padding:22px 22px 24px;background:#ffffff14;border:1.5px dashed var(--ink-ghost);border-radius:6px}[data-theme=blueprint] .placement-side,[data-theme=tactical] .placement-side{background:#0003}.placement-side h3{font-family:var(--displayfont);font-size:28px;font-weight:700;color:var(--ink-primary);line-height:1;margin-bottom:4px}.placement-side .hint{font-family:var(--bodyfont);font-size:14px;color:var(--ink-pencil);margin-bottom:16px;line-height:1.4}.placement-queue{display:flex;flex-direction:column;gap:12px}.queue-item{display:flex;gap:12px;align-items:center;padding:10px 12px;border:1.5px dashed var(--ink-ghost);border-radius:4px;background:#ffffff0d;position:relative}.queue-item.active{border-color:var(--ink-red);background:#b8342a14;transform:rotate(-.5deg)}.queue-item.placed{opacity:.42}.queue-item.placed .name{text-decoration:line-through}.queue-item .info{display:flex;flex-direction:column;gap:2px}.queue-item .name{font-family:var(--displayfont);font-size:22px;font-weight:700;color:var(--ink-primary);line-height:1}.queue-item .cells-label{font-family:var(--bodyfont);font-size:13px;color:var(--ink-pencil)}.queue-item .mini-mx{display:grid;gap:1px;flex-shrink:0}.queue-item .mini-mx>div{width:12px;height:12px;border-radius:1px}.queue-item .mini-mx .empty{background:transparent;opacity:.2}.queue-item .mini-mx .body{background:var(--ink-primary);opacity:.7}.queue-item .mini-mx .cabin{background:var(--ink-red)}.placement-controls{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}.placement-controls button{font-family:var(--bodyfont);font-size:14px;background:transparent;border:1.5px solid var(--ink-pencil);color:var(--ink-pencil);padding:8px 12px;border-radius:4px;cursor:pointer;flex:1;white-space:nowrap}.placement-controls button:hover{color:var(--ink-primary);border-color:var(--ink-primary)}.placement-controls button.danger{color:var(--ink-red);border-color:var(--ink-red)}.placement-controls button:disabled{opacity:.4;cursor:not-allowed}.placement-ready{display:block;width:100%;font-family:var(--displayfont);font-size:26px;font-weight:700;padding:12px 20px;background:var(--ink-primary);color:var(--paper);border:0;border-radius:6px;cursor:pointer;margin-top:14px;transform:rotate(-.7deg);letter-spacing:.02em;transition:transform .18s ease}.placement-ready:hover:not(:disabled){transform:rotate(-1.5deg) scale(1.02)}.placement-ready:disabled{background:var(--ink-pencil);opacity:.5;cursor:not-allowed}.gb-wrap{display:inline-grid;grid-template-columns:auto auto;grid-template-rows:auto auto;gap:0;-webkit-user-select:none;user-select:none}.gb-corner{grid-column:1;grid-row:1}.gb-xaxis{grid-column:2;grid-row:1;display:grid;font-family:var(--monofont);font-size:11px;color:var(--ink-pencil)}.gb-xaxis>span{display:flex;align-items:flex-end;justify-content:center;padding-bottom:4px;font-family:var(--bodyfont);font-size:13px}.gb-yaxis{grid-column:1;grid-row:2;display:grid;font-family:var(--monofont);font-size:11px;color:var(--ink-pencil)}.gb-yaxis>span{display:flex;align-items:center;justify-content:flex-end;padding-right:6px;font-family:var(--bodyfont);font-size:13px}.gb{grid-column:2;grid-row:2;display:grid;background:#ffffff0f;border:1.5px solid var(--ink-primary);position:relative}[data-theme=blueprint] .gb,[data-theme=tactical] .gb{background:#00000040}.gb-cell{width:var(--cell, 36px);height:var(--cell, 36px);border-right:1px solid var(--grid-line-major);border-bottom:1px solid var(--grid-line-major);position:relative;cursor:default}.gb-cell.last-col{border-right:0}.gb-cell.last-row{border-bottom:0}.gb.clickable .gb-cell{cursor:crosshair}.gb.clickable .gb-cell:hover{background:#ffebb42e}[data-theme=blueprint] .gb.clickable .gb-cell:hover{background:#ffffff12}[data-theme=tactical] .gb.clickable .gb-cell:hover{background:#7af0a812}.gb-cell .ship{position:absolute;top:3px;right:3px;bottom:3px;left:3px;background:var(--ink-primary);opacity:.7;border-radius:2px}.gb-cell.cabin .ship{background:var(--ink-red);opacity:.9}.gb-cell.cabin .ship:after{content:"✕";position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-family:var(--displayfont);font-weight:700;color:var(--paper);font-size:calc(var(--cell, 36px) * .5)}.gb-cell .ghost{position:absolute;top:2px;right:2px;bottom:2px;left:2px;background:var(--ink-primary);opacity:.35;border-radius:2px;border:2px dashed var(--ink-primary);pointer-events:none;animation:ghostPulse 1.4s ease-in-out infinite}.gb-cell .ghost.cabin{background:var(--ink-red);border-color:var(--ink-red)}.gb-cell .ghost.invalid{background:var(--ink-red);border-color:var(--ink-red);opacity:.45;animation:ghostInvalid .4s ease-in-out infinite alternate}@keyframes ghostPulse{0%,to{opacity:.3}50%{opacity:.55}}@keyframes ghostInvalid{0%{opacity:.35}to{opacity:.6}}.gb-cell .shot-x{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-family:var(--displayfont);font-weight:700;color:var(--ink-red);font-size:calc(var(--cell, 36px) * .78);transform:rotate(-8deg);pointer-events:none;animation:scribbleIn .35s ease-out;text-shadow:0 0 1px var(--ink-red)}.gb-cell.kill .shot-x{font-size:calc(var(--cell, 36px) * .9);animation:killShake .6s ease-out}.gb-cell .shot-miss{position:absolute;left:50%;top:50%;width:30%;height:30%;margin:-15% 0 0 -15%;background:var(--ink-secondary);border-radius:50%;opacity:.5;pointer-events:none;animation:dotIn .3s ease-out}.gb-cell .shot-miss:after{content:"";position:absolute;top:-40%;right:-40%;bottom:-40%;left:-40%;border:1.5px solid var(--ink-secondary);border-radius:50%;opacity:.3;animation:ripple .6s ease-out}@keyframes killShake{0%,to{transform:rotate(-8deg) translate(0)}20%{transform:rotate(-16deg) translate(-2px,1px)}40%{transform:rotate(8deg) translate(2px,-1px)}60%{transform:rotate(-12deg) translate(-1px,2px)}80%{transform:rotate(4deg) translate(1px)}}@keyframes ripple{0%{transform:scale(.4);opacity:.6}to{transform:scale(1.4);opacity:0}}.gb-cell.killed-ship .ship{background:var(--ink-red);opacity:.6}.gb-cell.revealed-ship .ship{background:var(--ink-secondary);opacity:.4}.game-layout{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:flex-start;margin-top:8px}.board-section{display:flex;flex-direction:column;align-items:center;gap:10px;position:relative;min-width:0}.board-section h2{font-family:var(--displayfont);font-size:30px;font-weight:700;color:var(--ink-primary);line-height:1;letter-spacing:-.01em}.board-section .sub{font-family:var(--bodyfont);font-size:14px;color:var(--ink-pencil);margin-top:-4px}.board-section.active-target h2{color:var(--ink-red)}.board-section.active-target{animation:youCanShoot 1.8s ease-in-out infinite}.board-section.active-target:before{content:"";position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px;border:2.5px dashed var(--ink-red);border-radius:8px;pointer-events:none;opacity:.5;animation:pulseBorder 1.5s ease-in-out infinite}@keyframes youCanShoot{0%,to{transform:scale(1)}50%{transform:scale(1.012)}}@keyframes pulseBorder{0%,to{opacity:.3}50%{opacity:.7}}.score-row{display:flex;gap:12px;font-family:var(--bodyfont);font-size:14px;color:var(--ink-pencil);margin-top:6px;flex-wrap:wrap;justify-content:center}.score-row span{display:flex;gap:6px;align-items:center}.score-row b{font-family:var(--displayfont);font-size:18px;font-weight:700;color:var(--ink-primary)}.score-row .killed b{color:var(--ink-red)}.endgame{text-align:center;padding:40px 24px}.endgame h1{font-family:var(--displayfont);font-weight:700;font-size:clamp(64px,10vw,128px);line-height:.9;color:var(--ink-primary);transform:rotate(-2deg);display:inline-block}.endgame.lose h1{color:var(--ink-red)}.endgame .endgame-sub{font-family:var(--bodyfont);font-size:20px;color:var(--ink-secondary);margin:16px auto 24px;max-width:480px}.endgame .stats{display:flex;gap:32px;justify-content:center;margin:24px 0 32px;flex-wrap:wrap}.endgame .stat{font-family:var(--bodyfont);color:var(--ink-pencil);text-align:center}.endgame .stat b{display:block;font-family:var(--displayfont);font-size:56px;font-weight:700;color:var(--ink-primary);line-height:1}.endgame .endgame-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:12px}.taunt-overlay{position:absolute;font-family:var(--displayfont);font-size:40px;font-weight:700;pointer-events:none;z-index:10;text-shadow:0 2px 0 var(--paper);animation:tauntFly 1.1s ease-out forwards}@keyframes tauntFly{0%{transform:rotate(-5deg) scale(.4);opacity:0}20%{transform:rotate(-5deg) scale(1.3);opacity:1}to{transform:rotate(-12deg) translateY(-40px) scale(.9);opacity:0}}.mode-picker{display:flex;gap:10px;margin:14px 0 18px;flex-wrap:wrap}.mode-picker button{font-family:var(--bodyfont);font-size:15px;padding:8px 14px;background:transparent;border:1.5px dashed var(--ink-ghost);color:var(--ink-secondary);border-radius:4px;cursor:pointer;flex:1;min-width:90px;transition:all .15s ease}.mode-picker button:hover{color:var(--ink-primary);border-color:var(--ink-primary)}.mode-picker button.active{background:var(--ink-primary);color:var(--paper);border-color:var(--ink-primary);border-style:solid;transform:rotate(-1deg)}.mode-picker button .grid-size{display:block;font-family:var(--monofont);font-size:11px;opacity:.8;margin-top:2px}.board-scroll{overflow:auto;max-width:100%;-webkit-overflow-scrolling:touch}.board-inner{position:relative;width:max-content;margin:0 auto}.placement-board-wrap{min-width:0}.gb-cell{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.radar-btn{font-family:var(--bodyfont);font-size:14px;padding:5px 12px;margin-bottom:4px;background:#ffffff26;border:1.5px dashed var(--ink-secondary);border-radius:4px;color:var(--ink-secondary);cursor:pointer;transform:rotate(-.4deg)}.radar-btn:disabled{opacity:.45;cursor:default}.radar-btn.armed{background:#b8342a1f;border-color:var(--ink-red);color:var(--ink-red);border-style:solid}.radar-zone{position:absolute;pointer-events:none;z-index:6;border:2.5px dashed var(--ink-secondary);border-radius:3px;background:#508cbe1a}.radar-count{position:absolute;top:-12px;right:-12px;min-width:24px;height:24px;padding:0 4px;display:flex;align-items:center;justify-content:center;background:var(--ink-secondary);color:var(--paper);border-radius:50%;font-family:var(--displayfont);font-size:17px;font-weight:700}.conn-banner{margin:10px 0 0;padding:8px 14px;border:1.5px dashed var(--ink-red);border-radius:4px;background:#b8342a1a;color:var(--ink-red);font-family:var(--bodyfont);font-size:15px;text-align:center;transform:rotate(-.3deg)}@media(max-width:880px){.game-layout{grid-template-columns:1fr;gap:36px}.placement-layout{grid-template-columns:1fr}.placement-side{order:-1}}@media(max-width:620px){.game-page{padding:24px 16px 28px}.game-header h1{font-size:36px}}.zoom-controls{position:absolute;top:0;right:0;display:flex;gap:6px;z-index:4}.zoom-controls button{width:30px;height:30px;font-family:var(--displayfont);font-size:20px;font-weight:700;background:#fff3;border:1.5px dashed var(--ink-ghost);border-radius:4px;color:var(--ink-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;padding:0}.zoom-controls button:hover{background:#ffffff59;border-color:var(--ink-primary)}[data-theme=blueprint] .zoom-controls button,[data-theme=tactical] .zoom-controls button{background:#00000040}[data-theme=blueprint] .zoom-controls button:hover,[data-theme=tactical] .zoom-controls button:hover{background:#00000073}.kill-overlay{position:absolute;pointer-events:none;z-index:8}.kill-overlay svg{overflow:visible}.kill-flash{position:absolute;top:-6%;right:-6%;bottom:-6%;left:-6%;border:3px solid var(--ink-red);border-radius:6px;pointer-events:none;animation:killFlash 1.2s ease-out forwards;z-index:7}@keyframes killFlash{0%{opacity:0;transform:scale(.7)}20%{opacity:1;transform:scale(1.04)}60%{opacity:.7}to{opacity:0;transform:scale(1)}}.gb-cell.revealed-ship .ship{background:var(--ink-red);opacity:.55}.gb-cell.revealed-ship.cabin .ship{background:var(--ink-red);opacity:.85}.gb-cell{overflow:visible}.boom-fx.hit-boom{position:absolute;left:50%;top:50%;width:110%;height:110%;transform:translate(-50%,-50%) scale(.2);border-radius:50%;background:radial-gradient(circle at center,#ffffff 0%,#fff3a0 15%,#ffce4c 32%,#ff8a1c 50%,#d92b1e 65%,transparent 72%);pointer-events:none;z-index:5;opacity:0;animation:hitBoom .65s cubic-bezier(.2,.8,.2,1) forwards;filter:drop-shadow(0 0 6px rgba(255,138,28,.6))}@keyframes hitBoom{0%{transform:translate(-50%,-50%) scale(.2);opacity:0}18%{transform:translate(-50%,-50%) scale(1.3);opacity:1}60%{transform:translate(-50%,-50%) scale(1.6);opacity:.65}to{transform:translate(-50%,-50%) scale(1.8);opacity:0}}.boom-fx.kill-boom{position:absolute;left:50%;top:50%;width:100%;height:100%;pointer-events:none;z-index:5;transform:translate(-50%,-50%);overflow:visible}.kill-boom:before{content:"";position:absolute;left:50%;top:50%;width:100%;height:100%;transform:translate(-50%,-50%) scale(.2);border-radius:50%;background:radial-gradient(circle at center,#ffffff 0%,#fff3a0 10%,#ffce4c 20%,#ff8a1c 35%,#d92b1e 50%,rgba(80,25,10,.55) 65%,transparent 75%);animation:killFireball .95s cubic-bezier(.15,.7,.25,1) forwards;filter:drop-shadow(0 0 10px rgba(255,138,28,.7))}@keyframes killFireball{0%{transform:translate(-50%,-50%) scale(.2);opacity:0}10%{transform:translate(-50%,-50%) scale(1);opacity:1}35%{transform:translate(-50%,-50%) scale(2.6);opacity:.95}70%{transform:translate(-50%,-50%) scale(3.5);opacity:.5}to{transform:translate(-50%,-50%) scale(4.2);opacity:0}}.kill-boom:after{content:"";position:absolute;left:50%;top:50%;width:100%;height:100%;transform:translate(-50%,-50%) scale(.5);border-radius:50%;background:radial-gradient(circle at center,#fff,#fff0 60%);animation:killFlash2 .4s ease-out forwards}@keyframes killFlash2{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}20%{opacity:1;transform:translate(-50%,-50%) scale(1.5)}to{opacity:0;transform:translate(-50%,-50%) scale(2)}}.kill-boom .boom-ring{position:absolute;left:50%;top:50%;width:100%;height:100%;transform:translate(-50%,-50%) scale(.2);border:3px solid rgba(255,200,100,.9);border-radius:50%;animation:killRing .8s ease-out forwards}@keyframes killRing{0%{transform:translate(-50%,-50%) scale(.2);opacity:0;border-width:4px}15%{opacity:1}to{transform:translate(-50%,-50%) scale(4.5);opacity:0;border-width:1px}}.kill-boom .boom-spark{position:absolute;left:50%;top:50%;width:6px;height:6px;border-radius:50%;background:#ffce4c;box-shadow:0 0 6px 2px #ffce4ccc;--sx: 0px;--sy: 0px;animation:killSpark .9s cubic-bezier(.2,.7,.2,1) forwards}.kill-boom .boom-spark.s1{--sx: 90%;--sy: -80%;background:#fff3a0}.kill-boom .boom-spark.s2{--sx: -100%;--sy: -50%;background:#ff8a1c}.kill-boom .boom-spark.s3{--sx: 100%;--sy: 60%;background:#ffce4c}.kill-boom .boom-spark.s4{--sx: -90%;--sy: 90%;background:#fff3a0}.kill-boom .boom-spark.s5{--sx: 40%;--sy: -120%;background:#ff8a1c}.kill-boom .boom-spark.s6{--sx: -50%;--sy: 110%;background:#ffce4c}@keyframes killSpark{0%{transform:translate(-50%,-50%) scale(.3);opacity:0}15%{transform:translate(-50%,-50%) scale(1);opacity:1}to{transform:translate(-50%,-50%) translate(var(--sx, 0),var(--sy, 0)) scale(.5);opacity:0}}.flame-fx{position:absolute;top:-15%;right:-10%;bottom:0;left:-10%;pointer-events:none;z-index:4;background:radial-gradient(ellipse 60% 80% at 50% 80%,rgba(255,245,180,.95) 0%,rgba(255,195,80,.85) 25%,rgba(255,130,30,.7) 50%,rgba(217,43,30,.45) 70%,transparent 90%);border-radius:50% 50% 35% 35%/65% 65% 35% 35%;animation:flameFlicker .32s ease-in-out infinite alternate,flameAppear .6s ease-out .35s backwards;transform-origin:50% 100%}@keyframes flameFlicker{0%{transform:scale(.92,.88) translateY(2px);opacity:.78}33%{transform:scale(1.05,1.08) translateY(-1px);opacity:.95}66%{transform:scale(.96,1.15) translateY(-3px) skew(-2deg);opacity:.85}to{transform:scale(1.08,.95) translateY(0) skew(2deg);opacity:.9}}@keyframes flameAppear{0%{opacity:0}to{opacity:1}}.smoke-fx{position:absolute;left:50%;top:-15%;width:60%;height:60%;margin-left:-30%;pointer-events:none;z-index:3;background:radial-gradient(circle at 50% 60%,rgba(60,50,40,.6) 0%,rgba(60,50,40,.3) 40%,transparent 75%);border-radius:50%;animation:smokeRise 2s ease-out infinite,flameAppear .6s ease-out .5s backwards}@keyframes smokeRise{0%{transform:translateY(30%) scale(.6);opacity:0}30%{opacity:.7}to{transform:translateY(-80%) scale(1.4);opacity:0}}.gb-cell.kill .shot-x{animation:killShake .8s ease-out,killGlow 1.5s ease-in-out infinite;z-index:6}@keyframes killGlow{0%,to{text-shadow:0 0 2px var(--ink-red),0 0 6px rgba(184,52,42,.5)}50%{text-shadow:0 0 4px var(--ink-red),0 0 12px rgba(255,138,28,.8),0 0 18px rgba(255,200,100,.4)}}.gb-cell.kill .shot-x{font-size:calc(var(--cell, 36px) * 1);color:var(--ink-red);text-shadow:0 0 2px var(--ink-red),0 0 6px rgba(184,52,42,.4);animation:killShake .8s ease-out}.gb-cell.just-killed:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--ink-red);opacity:0;animation:justKilledPulse 1.4s ease-out forwards;pointer-events:none;z-index:1}@keyframes justKilledPulse{0%{opacity:0}20%{opacity:.55}to{opacity:.18}}.gb-cell .impact-ripple,.gb-cell .paper-tear,.gb-cell .hit-embers,.gb-cell .hit-smoke,.kill-sequence,.kill-sequence *{pointer-events:none}.gb-cell .impact-ripple{position:absolute;left:50%;top:50%;width:64%;height:64%;border:2px solid rgba(255,138,28,.85);border-radius:50%;transform:translate(-50%,-50%) scale(.1);opacity:0;z-index:6;animation:rrImpactRipple .72s ease-out forwards;box-shadow:0 0 0 1px #ffdc8c59}.gb-cell .impact-ripple:before,.gb-cell .impact-ripple:after{content:"";position:absolute;top:-55%;right:-55%;bottom:-55%;left:-55%;border:1.5px dashed rgba(28,58,130,.45);border-radius:50%}.gb-cell .impact-ripple:after{top:-110%;right:-110%;bottom:-110%;left:-110%;opacity:.45}@keyframes rrImpactRipple{0%{transform:translate(-50%,-50%) scale(.1);opacity:0}15%{opacity:1}to{transform:translate(-50%,-50%) scale(2.4);opacity:0}}.gb-cell .paper-tear{position:absolute;left:50%;top:50%;width:74%;height:58%;transform:translate(-50%,-50%) rotate(-7deg) scale(.2);opacity:0;z-index:4;background:linear-gradient(115deg,transparent 0 14%,rgba(255,255,255,.72) 15% 22%,transparent 23% 100%),linear-gradient(35deg,transparent 0 28%,rgba(80,55,20,.34) 29% 32%,transparent 33% 100%),radial-gradient(ellipse at 50% 50%,rgba(255,255,255,.7) 0 26%,rgba(184,52,42,.42) 28% 35%,transparent 39%);clip-path:polygon(6% 42%,22% 29%,33% 36%,45% 12%,55% 38%,74% 20%,67% 45%,95% 58%,66% 62%,77% 88%,55% 72%,43% 96%,34% 69%,10% 78%,25% 55%);filter:drop-shadow(0 1px 0 rgba(80,55,20,.22));animation:rrPaperTear .82s ease-out forwards}@keyframes rrPaperTear{0%{transform:translate(-50%,-50%) rotate(-7deg) scale(.2);opacity:0}18%{transform:translate(-50%,-50%) rotate(4deg) scale(1.18);opacity:.95}to{transform:translate(-50%,-50%) rotate(-5deg) scale(1);opacity:.58}}.gb-cell .hit-embers{position:absolute;top:0;right:0;bottom:0;left:0;z-index:7}.gb-cell .hit-embers i{position:absolute;left:50%;top:50%;width:max(3px,calc(var(--cell, 36px) * .095));height:max(3px,calc(var(--cell, 36px) * .095));border-radius:999px;background:#ffce4c;box-shadow:0 0 7px #ff8a1ce6;opacity:0;--ex: 0px;--ey: 0px;animation:rrEmberPop .78s cubic-bezier(.2,.7,.2,1) forwards}.gb-cell .hit-embers .e1{--ex: 48%;--ey: -62%;background:#fff3a0}.gb-cell .hit-embers .e2{--ex: -58%;--ey: -42%;background:#ff8a1c}.gb-cell .hit-embers .e3{--ex: 66%;--ey: 16%;background:#ffce4c}.gb-cell .hit-embers .e4{--ex: -46%;--ey: 54%;background:#fff3a0}.gb-cell .hit-embers .e5{--ex: 12%;--ey: -76%;background:#ff8a1c}.gb-cell .hit-embers .e6{--ex: -12%;--ey: 74%;background:#ffce4c}.gb-cell .hit-embers .e7{--ex: 84%;--ey: -18%;background:#fff3a0}.gb-cell .hit-embers .e8{--ex: -78%;--ey: 10%;background:#ff8a1c}@keyframes rrEmberPop{0%{transform:translate(-50%,-50%) scale(.2);opacity:0}16%{opacity:1}to{transform:translate(-50%,-50%) translate(var(--ex),var(--ey)) scale(.35);opacity:0}}.gb-cell .hit-smoke{position:absolute;left:50%;top:42%;width:52%;height:52%;transform:translate(-50%,-50%) scale(.35);border-radius:50%;z-index:5;opacity:0;background:radial-gradient(circle at 42% 56%,rgba(50,45,38,.46),transparent 62%),radial-gradient(circle at 66% 38%,rgba(90,82,68,.32),transparent 57%),radial-gradient(circle at 32% 30%,rgba(120,110,92,.25),transparent 54%);animation:rrHitSmoke 1.05s ease-out .12s forwards}@keyframes rrHitSmoke{0%{transform:translate(-50%,-20%) scale(.35);opacity:0}25%{opacity:.72}to{transform:translate(-44%,-104%) scale(1.25);opacity:0}}.gb-cell .impact-ripple.kill-ripple{border-color:#b8342aeb;animation-duration:1.05s}.gb-cell .paper-tear.kill-tear{width:92%;height:76%;opacity:0;animation:rrPaperTear 1.1s ease-out forwards}.kill-sequence{z-index:12;overflow:visible;transform-origin:center;animation:rrKillBoxBump .55s ease-out forwards}@keyframes rrKillBoxBump{0%{transform:scale(.96) rotate(0)}28%{transform:scale(1.04) rotate(-.8deg)}58%{transform:scale(.99) rotate(.6deg)}to{transform:scale(1) rotate(0)}}.kill-sequence .kill-flash{top:-10%;right:-10%;bottom:-10%;left:-10%;border-width:3px;border-style:solid;box-shadow:0 0 0 2px #ffce4c33,0 0 18px #b8342a73;animation:rrKillFlashFrame 1.2s ease-out forwards}@keyframes rrKillFlashFrame{0%{opacity:0;transform:scale(.76)}12%{opacity:1;transform:scale(1.04)}45%{opacity:.85;transform:scale(1.02)}to{opacity:0;transform:scale(1.08)}}.kill-sequence .kill-outline{position:absolute;top:2px;right:2px;bottom:2px;left:2px;border:3px solid var(--ink-red);border-radius:6px;opacity:0;box-shadow:inset 0 0 0 2px #ffce4c2e,0 0 16px #b8342a8c;animation:rrKillOutline 1.8s ease-out forwards}.kill-sequence .kill-outline:before,.kill-sequence .kill-outline:after{content:"";position:absolute;left:6%;right:6%;top:50%;border-top:2px dashed rgba(184,52,42,.72);transform:rotate(-4deg)}.kill-sequence .kill-outline:after{transform:rotate(4deg)}@keyframes rrKillOutline{0%{opacity:0;transform:scale(.94)}18%{opacity:1;transform:scale(1.02)}62%{opacity:.92}to{opacity:0;transform:scale(1.08)}}.kill-sequence .kill-board-shockwave{position:absolute;left:50%;top:50%;width:max(80px,120%);aspect-ratio:1 / 1;border:3px solid rgba(255,206,76,.75);border-radius:50%;opacity:0;transform:translate(-50%,-50%) scale(.1);animation:rrKillShockwave 1.25s ease-out .28s forwards}.kill-sequence .kill-board-shockwave:before,.kill-sequence .kill-board-shockwave:after{content:"";position:absolute;top:18%;right:18%;bottom:18%;left:18%;border:2px dashed rgba(28,58,130,.42);border-radius:50%}.kill-sequence .kill-board-shockwave:after{top:-24%;right:-24%;bottom:-24%;left:-24%;border-color:#b8342a47}@keyframes rrKillShockwave{0%{opacity:0;transform:translate(-50%,-50%) scale(.1)}12%{opacity:1}to{opacity:0;transform:translate(-50%,-50%) scale(2.25)}}.kill-sequence .kill-fire-core{position:absolute;left:50%;top:48%;width:42%;height:115%;transform:translate(-50%,-50%) scale(.2);opacity:0;border-radius:50%;background:radial-gradient(circle at 50% 42%,rgba(255,255,255,.95) 0 5%,rgba(255,243,160,.95) 6% 15%,rgba(255,138,28,.88) 16% 34%,rgba(184,52,42,.72) 35% 48%,transparent 62%),radial-gradient(ellipse at 50% 72%,rgba(255,138,28,.68),transparent 60%);filter:drop-shadow(0 0 12px rgba(255,138,28,.68));animation:rrKillFireCore 1.55s cubic-bezier(.18,.75,.2,1) .08s forwards}@keyframes rrKillFireCore{0%{opacity:0;transform:translate(-50%,-50%) scale(.2)}12%{opacity:1;transform:translate(-50%,-50%) scale(.85)}38%{opacity:.95;transform:translate(-50%,-50%) scale(1.35)}to{opacity:0;transform:translate(-50%,-50%) scale(1.9)}}.kill-sequence .kill-smoke-cloud{position:absolute;left:50%;top:44%;width:82%;height:120%;transform:translate(-50%,-30%) scale(.45);opacity:0;border-radius:50%;background:radial-gradient(circle at 32% 62%,rgba(40,36,32,.58),transparent 38%),radial-gradient(circle at 54% 44%,rgba(70,64,56,.52),transparent 42%),radial-gradient(circle at 72% 66%,rgba(36,32,28,.42),transparent 39%),radial-gradient(circle at 46% 22%,rgba(120,110,94,.24),transparent 45%);animation:rrKillSmokeCloud 2.2s ease-out .34s forwards}@keyframes rrKillSmokeCloud{0%{opacity:0;transform:translate(-50%,-15%) scale(.45)}18%{opacity:.85}to{opacity:0;transform:translate(-46%,-118%) scale(1.55)}}.kill-sequence .kill-stamp{position:absolute;right:-16%;bottom:-24%;padding:.08em .34em .12em;border:3px solid var(--ink-red);border-radius:4px;color:var(--ink-red);background:#f4ead0d1;font-family:var(--displayfont);font-weight:700;font-size:clamp(18px,calc(var(--cell, 36px) * .48),34px);line-height:1;letter-spacing:.04em;transform:rotate(-8deg) scale(.2);opacity:0;text-shadow:none;box-shadow:0 2px #50371429;animation:rrKillStamp 1.2s cubic-bezier(.15,.8,.2,1) .92s forwards}@keyframes rrKillStamp{0%{opacity:0;transform:rotate(-8deg) scale(.2)}28%{opacity:1;transform:rotate(-8deg) scale(1.2)}48%{transform:rotate(-8deg) scale(.94)}to{opacity:1;transform:rotate(-8deg) scale(1)}}.gb-cell.just-killed .ship,.gb-cell.just-killed.revealed-ship .ship{background:var(--ink-red);opacity:.82;animation:rrKilledCellSettle 2.2s ease-out forwards}@keyframes rrKilledCellSettle{0%{transform:scale(.88);opacity:.35;filter:saturate(1)}18%{transform:scale(1.06);opacity:.96;filter:saturate(1.6)}55%{transform:scale(1);opacity:.88}to{transform:scale(1);opacity:.66;filter:saturate(1)}}.gb-cell.just-killed:after{content:"";position:absolute;top:2px;right:2px;bottom:2px;left:2px;border:2px dashed rgba(255,206,76,.75);border-radius:3px;z-index:6;opacity:0;animation:rrCellDangerOutline 1.05s ease-out forwards}@keyframes rrCellDangerOutline{0%{opacity:0;transform:scale(.6)}20%{opacity:1;transform:scale(1.03)}to{opacity:0;transform:scale(1.18)}}[data-theme=blueprint] .kill-sequence .kill-stamp,[data-theme=tactical] .kill-sequence .kill-stamp{background:#0a1923db}[data-theme=blueprint] .gb-cell .impact-ripple:before,[data-theme=blueprint] .gb-cell .impact-ripple:after,[data-theme=blueprint] .kill-sequence .kill-board-shockwave:before,[data-theme=blueprint] .kill-sequence .kill-board-shockwave:after{border-color:#e0f1ff75}[data-theme=tactical] .gb-cell .impact-ripple:before,[data-theme=tactical] .gb-cell .impact-ripple:after,[data-theme=tactical] .kill-sequence .kill-board-shockwave:before,[data-theme=tactical] .kill-sequence .kill-board-shockwave:after{border-color:#7af0a86b}@media(prefers-reduced-motion:reduce){.boom-fx,.impact-ripple,.paper-tear,.hit-embers i,.hit-smoke,.kill-sequence,.kill-sequence *,.gb-cell.just-killed:before,.gb-cell.just-killed:after,.flame-fx,.smoke-fx{animation-duration:.001ms!important;animation-iteration-count:1!important}}.daily-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:26px auto 6px;padding:14px 18px;max-width:720px;background:#ffffff24;border:2px dashed var(--ink-red);border-radius:8px;transform:rotate(-.4deg)}.daily-banner-text{display:flex;flex-direction:column;gap:2px;min-width:220px;flex:1}.daily-banner-text b{font-family:var(--displayfont);font-size:22px;color:var(--ink-primary);line-height:1.15}.daily-banner-text span{font-family:var(--bodyfont);font-size:14px;color:var(--ink-secondary)}.daily-layout{justify-content:center}.daily-endgame{padding-top:26px}.rank-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border:1.5px dashed var(--ink-ghost);border-radius:999px;font-family:var(--bodyfont);font-size:13px;color:var(--ink-primary);background:#ffffff1f;white-space:nowrap}.rank-badge .rank-icon{font-size:14px;line-height:1}.rank-badge .rank-name{font-weight:600}.rank-badge .rank-bar{width:34px;height:5px;border-radius:3px;background:#29261b26;overflow:hidden}.rank-badge .rank-bar i{display:block;height:100%;background:var(--ink-red);border-radius:3px;transition:width .6s ease}.xp-award{display:inline-flex;align-items:center;gap:12px;margin:0 auto 18px;padding:8px 18px;border:2px solid var(--ink-primary);border-radius:8px;background:#fff3;transform:rotate(.5deg);font-family:var(--displayfont)}.xp-award .xp-plus{font-size:26px;font-weight:700;color:var(--ink-primary)}.xp-award.level-up{border-color:var(--ink-red);animation:xpPop .5s ease-out}.xp-award .xp-rankup{font-family:var(--bodyfont);font-size:16px;color:var(--ink-red)}@keyframes xpPop{0%{transform:scale(.7) rotate(.5deg);opacity:0}70%{transform:scale(1.08) rotate(.5deg)}to{transform:scale(1) rotate(.5deg);opacity:1}}.zoom-controls .enigma-btn{margin-left:10px;font-size:15px}.enigma-overlay{position:fixed;top:74px;left:50%;transform:translate(-50%) rotate(-.6deg);z-index:220;min-width:280px;max-width:min(480px,92vw);background:var(--paper, #f5efdc);border:2px solid var(--ink-primary);border-radius:6px;box-shadow:4px 6px #29261b40;overflow:hidden;animation:enigmaIn .25s ease-out}.enigma-overlay.mine{border-style:dashed;opacity:.92}@keyframes enigmaIn{0%{transform:translate(-50%) translateY(-14px) rotate(-.6deg);opacity:0}to{transform:translate(-50%) translateY(0) rotate(-.6deg);opacity:1}}.enigma-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:5px 12px;background:var(--ink-primary);color:var(--paper, #f5efdc);font-family:var(--monofont, monospace);font-size:11px;letter-spacing:.12em}.enigma-lights{display:inline-flex;gap:5px}.enigma-lights i{width:7px;height:7px;border-radius:50%;background:#e8b73a;opacity:.35}.enigma-lights i.blink{animation:enigmaBlink .5s infinite alternate}.enigma-lights i.blink.d2{animation-delay:.17s}.enigma-lights i.blink.d3{animation-delay:.34s}@keyframes enigmaBlink{0%{opacity:.25}to{opacity:1}}.enigma-text{padding:12px 16px 14px;font-family:var(--monofont, monospace);font-size:17px;line-height:1.45;color:var(--ink-primary);min-height:44px;word-break:break-word}.enigma-text.done{color:var(--ink-red)}.enigma-picker .enigma-list{display:flex;flex-direction:column;gap:7px;max-height:46vh;overflow-y:auto;margin-top:6px}.enigma-phrase{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;padding:9px 12px;border:1.5px dashed var(--ink-ghost);border-radius:5px;background:#ffffff1f;font-family:var(--bodyfont);font-size:15px;color:var(--ink-primary);cursor:pointer;transition:transform .08s ease,border-color .08s ease}.enigma-phrase:not(.locked):hover{border-color:var(--ink-red);border-style:solid;transform:rotate(-.4deg) scale(1.01)}.enigma-phrase.locked{opacity:.5;cursor:not-allowed}.enigma-phrase .enigma-lock{font-family:var(--bodyfont);font-size:12px;color:var(--ink-pencil);white-space:nowrap}.tourney-entry{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:14px auto 6px;padding:14px 18px;max-width:720px;background:#2f4a8c0f;border:2px dashed var(--ink-primary);border-radius:8px;transform:rotate(.3deg)}.tourney-entry-text{display:flex;flex-direction:column;gap:2px;min-width:220px;flex:1}.tourney-entry-text b{font-family:var(--displayfont);font-size:22px;color:var(--ink-primary);line-height:1.15}.tourney-entry-text span{font-family:var(--bodyfont);font-size:14px;color:var(--ink-secondary)}.tourney-modal .tourney-tabs{display:flex;gap:8px;margin-bottom:16px}.tourney-modal .tourney-tabs button{flex:1;padding:8px;border:1.5px dashed var(--ink-ghost);background:transparent;border-radius:5px;cursor:pointer;font-family:var(--bodyfont);font-size:15px;color:var(--ink-secondary)}.tourney-modal .tourney-tabs button.active{border-style:solid;border-color:var(--ink-primary);background:var(--ink-primary);color:var(--paper)}.tourney-field{display:block;margin-bottom:14px}.tourney-field>span{display:block;font-family:var(--bodyfont);font-size:13px;color:var(--ink-pencil);margin-bottom:5px;letter-spacing:.03em}.tourney-field input{width:100%;padding:10px 12px;box-sizing:border-box;border:1.5px solid var(--ink-ghost);border-radius:5px;background:#ffffff80;font-family:var(--bodyfont);font-size:16px;color:var(--ink-primary)}.tourney-field .seg{display:flex;gap:8px}.tourney-field .seg button{flex:1;padding:9px;border:1.5px dashed var(--ink-ghost);background:transparent;border-radius:5px;cursor:pointer;font-family:var(--bodyfont);font-size:15px;color:var(--ink-secondary)}.tourney-field .seg button.active{border-style:solid;border-color:var(--ink-primary);background:var(--ink-primary);color:var(--paper)}.tourney-hint{font-family:var(--bodyfont);font-size:13px;color:var(--ink-pencil);margin:4px 0 14px}.tourney-err{font-family:var(--bodyfont);font-size:14px;color:var(--ink-red);background:#b8342a1a;border:1px dashed var(--ink-red);border-radius:4px;padding:8px 12px;margin-bottom:12px}.tourney-center{display:flex;flex-direction:column;align-items:center;gap:14px;padding:50px 24px;text-align:center}.tourney-center h2{font-family:var(--displayfont);font-size:34px;margin:0;color:var(--ink-primary)}.tourney-center p{font-family:var(--bodyfont);font-size:16px;color:var(--ink-secondary);margin:0}.tourney-name-input{padding:10px 14px;border:1.5px solid var(--ink-ghost);border-radius:5px;font-family:var(--bodyfont);font-size:17px;text-align:center;min-width:220px;background:#ffffff80;color:var(--ink-primary)}.spinner{display:inline-block;width:16px;height:16px;border:3px solid var(--ink-pencil);border-top-color:transparent;border-radius:50%;animation:spin .9s linear infinite;vertical-align:middle}.tourney-lobby{max-width:560px;margin:0 auto;padding:24px}.tourney-code-box{text-align:center;margin-bottom:20px}.tourney-code-label{font-family:var(--bodyfont);font-size:13px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-pencil);margin-bottom:6px}.tourney-code{font-family:var(--displayfont);font-size:64px;font-weight:700;letter-spacing:.15em;color:var(--ink-primary);border:2.5px dashed var(--ink-red);border-radius:8px;padding:8px 0;margin-bottom:12px;background:#ffffff1a}.tourney-meta{text-align:center;font-family:var(--bodyfont);font-size:15px;color:var(--ink-secondary);margin-bottom:18px}.tourney-meta b{color:var(--ink-primary)}.tourney-players{display:flex;flex-direction:column;gap:8px;margin-bottom:22px}.tourney-player{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1.5px solid var(--ink-ghost);border-radius:6px;background:#ffffff24}.tourney-player.me{border-color:var(--ink-primary);border-width:2px}.tourney-player.empty{border-style:dashed;opacity:.55}.tourney-player .seat{font-family:var(--monofont);font-size:13px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--ink-primary);color:var(--paper);border-radius:50%}.tourney-player.empty .seat{background:var(--ink-ghost)}.tourney-player .pname{font-family:var(--bodyfont);font-size:17px;color:var(--ink-primary)}.tourney-start,.tourney-waiting{width:100%}.tourney-waiting{display:flex;align-items:center;justify-content:center;gap:10px;font-family:var(--bodyfont);font-size:16px;color:var(--ink-pencil);padding:12px}.tourney-running{padding:16px}.tourney-cta{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;max-width:620px;margin:0 auto 22px;padding:14px 18px;border-radius:8px;border:2px solid var(--ink-primary);background:#2f4a8c14}.tourney-cta div{display:flex;flex-direction:column}.tourney-cta b{font-family:var(--displayfont);font-size:22px;color:var(--ink-primary)}.tourney-cta span{font-family:var(--bodyfont);font-size:14px;color:var(--ink-secondary)}.tourney-cta.win{border-color:#1d8b4a;color:#1d8b4a;justify-content:center;font-family:var(--displayfont);font-size:18px}.tourney-cta.lost{border-color:var(--ink-red);color:var(--ink-red);justify-content:center;font-family:var(--displayfont);font-size:18px}.bracket-scroll{overflow-x:auto;padding-bottom:12px}.bracket{display:flex;gap:28px;min-width:min-content;padding:8px 4px;justify-content:center}.bracket-round{display:flex;flex-direction:column;gap:16px;justify-content:center;min-width:180px}.bracket-round-name{font-family:var(--monofont);font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-pencil);text-align:center;margin-bottom:4px}.match-card{border:1.5px solid var(--ink-ghost);border-radius:7px;overflow:hidden;background:#ffffff24}.match-card.mine{border-color:var(--ink-primary);border-width:2px;box-shadow:2px 2px #2f4a8c26}.match-row{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;font-family:var(--bodyfont);font-size:15px;color:var(--ink-primary)}.match-row.winner{background:#1d8b4a1f;font-weight:700}.match-row.loser{opacity:.5;text-decoration:line-through}.match-row.me .mp-name{color:var(--ink-red)}.match-row .mp-check{color:#1d8b4a;font-weight:700}.match-vs{text-align:center;font-family:var(--monofont);font-size:10px;color:var(--ink-pencil);padding:1px 0}.tourney-champion{text-align:center;padding:40px 24px 20px}.tourney-champion .champ-trophy{font-size:72px;line-height:1}.tourney-champion h1{font-family:var(--displayfont);font-size:40px;color:var(--ink-primary);margin:8px 0}.tourney-champion.me h1{color:var(--ink-red)}.tourney-champion .champ-name{font-family:var(--displayfont);font-size:30px;font-weight:700;color:var(--ink-primary);border:2px dashed var(--ink-red);border-radius:8px;display:inline-block;padding:6px 24px;margin:6px 0 14px}.tourney-champion p{font-family:var(--bodyfont);font-size:15px;color:var(--ink-secondary)}.skin-sprite{position:absolute;object-fit:fill;pointer-events:none;z-index:1;filter:drop-shadow(1px 2px 2px rgba(0,0,0,.25))}.skin-sprite.wreck{filter:drop-shadow(1px 2px 3px rgba(0,0,0,.35)) saturate(.9)}.gb-cell .skin-decal{position:absolute;top:4%;right:4%;bottom:4%;left:4%;width:92%;height:92%;object-fit:contain;pointer-events:none;z-index:3;animation:skinDecalIn .35s ease-out}@keyframes skinDecalIn{0%{transform:scale(2.2);opacity:0}60%{transform:scale(.9);opacity:1}to{transform:scale(1);opacity:1}}.skin-explosion{position:absolute;top:-30%;right:-30%;bottom:-30%;left:-30%;pointer-events:none;z-index:5}.skin-explosion img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;opacity:0}.skin-boom-frame{animation:skinBoom 1.05s ease-out forwards}.skin-explosion.frames-3 .skin-boom-frame:last-child,.skin-explosion.frames-2 .skin-boom-frame:last-child{animation-duration:1.3s}@keyframes skinBoom{0%{opacity:0;transform:scale(.72)}18%{opacity:1;transform:scale(1.06)}55%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.12)}}@media(prefers-reduced-motion:reduce){.skin-boom-frame{animation:none;opacity:0}.skin-boom-frame:last-child{animation:none;opacity:1}.gb-cell .skin-decal{animation:none}}.hangar-modal{width:640px;max-height:86vh;overflow-y:auto}.hangar-group{margin-top:18px;text-align:left}.hangar-group-hd{font-family:var(--displayfont);font-size:15px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-secondary);border-bottom:1.5px solid var(--grid-line);padding-bottom:4px;margin-bottom:10px;display:flex;justify-content:space-between;align-items:baseline}.hangar-progress{font-family:var(--monofont);font-size:13px;color:var(--ink-red)}.hangar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:10px}.hangar-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px 8px;background:#ffffff80;border:1.5px solid var(--ink-ghost);border-radius:6px;font-family:var(--bodyfont);cursor:pointer;transition:transform .12s ease,border-color .12s ease}button.hangar-card:hover,.hangar-card .hangar-pick:hover{transform:translateY(-2px)}.hangar-card.active{border-color:var(--ink-red);box-shadow:0 0 0 1.5px var(--ink-red)}.hangar-card.soon{opacity:.55;cursor:default}.hangar-pick{display:flex;flex-direction:column;align-items:center;gap:4px;background:none;border:none;font-family:inherit;cursor:pointer;width:100%}.hangar-thumb{height:72px;display:flex;align-items:center;justify-content:center}.hangar-thumb img{max-height:72px;max-width:84px;object-fit:contain}.hangar-pen{font-size:34px}.hangar-name{font-size:14.5px;color:var(--ink-primary);line-height:1.2;text-align:center}.hangar-year{font-size:12px;color:var(--ink-secondary)}.hangar-equipped{font-size:12px;color:var(--ink-red);font-weight:700}.hangar-soon{font-size:11.5px;color:var(--ink-pencil);border:1px dashed var(--ink-pencil);border-radius:3px;padding:1px 6px;transform:rotate(-2deg)}.hangar-info{background:none;border:none;font-family:var(--bodyfont);font-size:12.5px;color:var(--ink-secondary);text-decoration:underline;cursor:pointer;padding:2px 4px}.hangar-info:hover{color:var(--ink-red)}.hangar-sheet{margin-top:12px;padding:12px 16px;border:1.5px dashed var(--ink-secondary);border-radius:6px;background:#fff9;font-family:var(--bodyfont);font-size:15px;text-align:left}.hangar-sheet-hd{display:flex;flex-direction:column;margin-bottom:6px}.hangar-sheet-hd b{font-size:17px}.hangar-sheet-hd span{font-size:13px;color:var(--ink-secondary)}.hangar-sheet p{margin:6px 0;line-height:1.45}.hangar-fact{color:var(--ink-primary)}.hangar-engine{font-size:13px;color:var(--ink-secondary);font-family:var(--monofont)}.hangar-sheet .btn{margin-top:8px;font-size:14px;padding:6px 14px}@media(max-width:560px){.hangar-grid{grid-template-columns:repeat(auto-fill,minmax(88px,1fr))}.hangar-thumb{height:56px}.hangar-thumb img{max-height:56px}}
