.duel{background:linear-gradient(135deg,color-mix(in srgb,var(--c) 16%,var(--card)),var(--card) 55%);width:calc(100% - 40px);max-width:960px;margin:36px auto 10px;padding:26px;position:relative;overflow:hidden}.duel:before{content:"";background:repeating-radial-gradient(circle,color-mix(in srgb,var(--c) 30%,transparent) 0 6px,transparent 6px 18px);opacity:.55;pointer-events:none;border-radius:50%;width:220px;height:220px;position:absolute;top:-60px;right:-60px}.duel-main{grid-template-columns:1.05fr 1fr;align-items:center;gap:28px;display:grid;position:relative}.duel-tag{font-family:var(--display);background:var(--card);border:2.5px solid var(--border);border-radius:999px;align-items:center;gap:8px;padding:4px 12px 4px 4px;font-size:15px;font-weight:600;display:inline-flex}.duel-tag b{color:#fff;background:#1d1630;border-radius:999px;padding:2px 10px;font-size:14px}.duel-tag i{color:var(--muted);border-left:2px solid var(--soft);padding-left:8px;font-size:12px;font-style:normal}.duel h2{font-family:var(--display);margin:14px 0 8px;font-size:clamp(26px,4vw,36px);line-height:1.1}.duel-pitch>p{color:var(--muted);max-width:420px;font-size:17px;line-height:1.45}.duel-cta{flex-wrap:wrap;gap:10px;margin-top:20px;display:flex}.duel-cta .btn{border:2.5px solid var(--border);height:52px;box-shadow:4px 4px 0 var(--shadow);padding:0 20px;font-size:18px;transition:transform .15s,box-shadow .15s}.duel-cta .btn:active{box-shadow:1px 1px 0 var(--shadow);transform:translate(3px,3px)}.duel-go{color:#1d1630;background:var(--c)!important}.duel-card{background:var(--card);border:2.5px solid var(--border);box-shadow:5px 5px 0 var(--shadow);border-radius:18px;padding:20px;position:relative;transform:rotate(1.2deg)}.duel-vs{text-align:center;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;display:grid}.duel-p{flex-direction:column;align-items:center;gap:4px;min-width:0;display:flex}.duel-p .av{width:58px;height:58px;font-family:var(--display);color:#1d1630;border:2.5px solid #1d1630;border-radius:50%;place-items:center;font-size:18px;font-weight:700;display:grid;box-shadow:0 3px #1d1630}.duel-p.d-me .av{background:var(--c)}.duel-p.d-op .av{background:#c3a6ff}.duel-p b{font-family:var(--display);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:17px;overflow:hidden}.duel-p small{font-family:var(--mono);color:var(--muted);font-size:13px}.duel-badge{font-family:var(--display);color:#fff;background:#ff5d73;border:2.5px solid #1d1630;border-radius:14px;place-items:center;width:52px;height:52px;font-size:22px;font-weight:700;display:grid;transform:rotate(-8deg);box-shadow:0 4px #1d1630}.duel.racing .duel-badge{animation:.6s ease-in-out infinite alternate duel-pulse}@keyframes duel-pulse{to{transform:rotate(8deg)scale(1.08)}}.duel-bars{gap:8px;margin-top:18px;display:grid}.duel-bar{background:var(--soft);border:2px solid var(--border);border-radius:999px;height:26px;position:relative;overflow:hidden}.duel-bar i{border-radius:inherit;width:0;transition:width .1s linear;position:absolute;inset:0 auto 0 0}.duel-bar.d-me i{background:var(--c)}.duel-bar.d-op i{background:#c3a6ff}.duel-bar span{text-align:right;font-family:var(--display);color:var(--ink);padding-right:10px;font-size:13px;font-weight:600;line-height:22px;display:block;position:relative}.duel-status{color:var(--muted);text-align:center;min-height:18px;margin-top:12px;font-size:13px}.duel.won .duel-card{border-color:#22c55e}.duel.won .duel-p.d-me .av,.duel.lost .duel-p.d-op .av{outline-offset:3px;outline:3px solid #ffd23f}.duel-invite{background:var(--soft);border:2.5px dashed var(--border);border-radius:16px;grid-template-columns:1.2fr 1fr;align-items:center;gap:18px;margin-top:22px;padding:18px;animation:.3s cubic-bezier(.3,1.5,.5,1) duel-in;display:grid;position:relative}@keyframes duel-in{0%{opacity:0;transform:translateY(8px)}}.duel-invite[hidden]{display:none}.duel-msg{color:#1d1630;background:#dcf8c6;border:2px solid #1d1630;border-radius:16px 16px 16px 4px;padding:14px 16px}.duel-msg-from{text-transform:uppercase;letter-spacing:.06em;opacity:.6;font-size:11px;font-weight:700}.duel-msg p{margin:4px 0 6px;font-size:15px;line-height:1.4}.duel-msg code{font-family:var(--mono);color:#0b6bcb;font-size:13px;text-decoration:underline}.duel-share{flex-wrap:wrap;gap:8px;display:flex}.duel-share .btn{border:2.5px solid var(--border);height:44px;box-shadow:3px 3px 0 var(--shadow);padding:0 14px;font-size:16px}.duel-wait{color:var(--muted);grid-column:1/-1;align-items:center;gap:8px;font-size:14px;display:flex}.duel-dot{background:#22c55e;border-radius:50%;flex:none;width:10px;height:10px;animation:1.2s ease-in-out infinite duel-blink}@keyframes duel-blink{50%{opacity:.3}}.duel-steps{border-top:2px dashed var(--soft);grid-template-columns:repeat(3,1fr);gap:12px;margin-top:24px;padding-top:20px;list-style:none;display:grid;position:relative}.duel-steps li{align-items:flex-start;gap:10px;display:flex}.duel-steps li>span{background:var(--card);border:2px solid var(--border);border-radius:12px;flex:none;place-items:center;width:40px;height:40px;font-size:20px;display:grid}.duel-steps b{font-family:var(--display);font-size:16px}.duel-steps p{color:var(--muted);margin-top:2px;font-size:13px;line-height:1.35}@media (width<=760px){.duel{margin-top:28px;padding:20px 16px}.duel-main,.duel-invite{grid-template-columns:1fr}.duel-card{transform:none}.duel-cta .btn{flex:100%;justify-content:center}.duel-steps{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.duel-badge,.duel-dot,.duel-invite{animation:none!important}}.duel-more{font-family:var(--display);margin-top:16px;font-size:15px;font-weight:600;position:relative}.duel-more a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--c);text-underline-offset:4px;text-decoration-thickness:3px}.duel{scroll-margin-top:90px}.gs .board-wrap{padding:10px;position:relative}@keyframes pop{0%{transform:scale(.3)}}@keyframes shake{20%,60%{transform:translate(-4px)}40%,80%{transform:translate(4px)}}@keyframes wave{40%{background:var(--c);transform:scale(1.08)}}:root{--line:#d9d0e6}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--line:#3a3150}}:root[data-theme=dark]{--line:#3a3150}.gs{max-width:1000px;margin:0 auto;padding:16px 20px 10px}.gs h1,.gs .gs-h{font-family:var(--display);margin-right:6px;font-size:clamp(28px,4vw,40px);font-weight:700;line-height:1}.gs .modes a.chip:hover{text-decoration:underline}.gs .seg a{font-family:var(--display);color:var(--muted);border-radius:999px;padding:7px 16px;font-size:16px;font-weight:600}.gs .seg a.on{background:var(--c);color:#1d1630}.gs .mine{grid-template-columns:repeat(2,1fr);gap:10px;margin-top:12px;display:grid}.gs .modes{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:18px;display:flex}.gs .seg{background:var(--card);border:2.5px solid var(--border);border-radius:999px;padding:4px;display:flex}.gs .seg button{font-family:var(--display);color:var(--muted);border-radius:999px;padding:7px 16px;font-size:16px;font-weight:600}.gs .seg button.on{background:var(--c);color:#1d1630}.gs .chip{background:var(--soft);height:40px;font-family:var(--display);border-radius:999px;align-items:center;gap:6px;padding:0 14px;font-size:15px;font-weight:600;display:inline-flex}.gs .chip.diff-easy{color:#1d1630;background:#d9fbb0}.gs .chip.diff-medium{color:#1d1630;background:#ffe7a3}.gs .chip.diff-hard{color:#1d1630;background:#ffc2cc}.gs .game{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:24px;display:grid}.gs .paused{background:color-mix(in srgb,var(--card) 70%,transparent);backdrop-filter:blur(14px);z-index:5;border-radius:12px;place-items:center;display:none;position:absolute;inset:10px}.gs .paused.on{display:grid}.gs .paused button{font-family:var(--display);background:var(--c);color:#1d1630;border:2.5px solid var(--border);box-shadow:4px 4px 0 var(--shadow);border-radius:18px;padding:16px 30px;font-size:22px;font-weight:600}.gs .side{flex-direction:column;gap:16px;display:flex}.gs .stats{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.gs .stat{background:var(--card);border:2.5px solid var(--border);text-align:center;border-radius:16px;padding:12px 6px}.gs .stat b{font-family:var(--display);font-size:24px;font-weight:700;line-height:1.1;display:block}.gs .stat span{color:var(--muted);font-size:12px}.gs .stat.timer{cursor:pointer}.gs .tools{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.gs .tool{color:var(--muted);border:2.5px solid #0000;border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;font-size:12px;display:flex}.gs .tool i{filter:grayscale(.2);font-size:22px;font-style:normal}.gs .tool:hover{background:var(--soft)}.gs .tool.on{background:var(--c);color:#1d1630;border-color:var(--border)}.gs .tool .badge{font-family:var(--mono);background:var(--soft);color:var(--ink);border-radius:999px;padding:1px 6px;font-size:10px}.gs .tool.on .badge{background:#fff}.gs .keys{color:var(--muted);padding:0 4px;font-size:12px;line-height:1.7}.gs .keys kbd{font-family:var(--mono);border:1.5px solid var(--line);background:var(--card);border-radius:6px;padding:1px 6px;font-size:11px}.gs .practice-bar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.gs .btn{height:46px;font-family:var(--display);border:2.5px solid var(--border);box-shadow:3px 3px 0 var(--shadow);background:var(--card);border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:0 20px;font-size:17px;font-weight:600;transition:transform .12s,box-shadow .12s;display:inline-flex}.gs .btn:hover{box-shadow:4px 4px 0 var(--shadow);transform:translate(-1px,-1px)}.gs .btn:active{box-shadow:1px 1px 0 var(--shadow);transform:translate(2px,2px)}.gs .btn.main{background:var(--c);color:#1d1630}.gs .btn.lime{color:#1d1630;background:#b8f53d}.gs .modal{z-index:50;backdrop-filter:blur(6px);opacity:0;pointer-events:none;background:#140e208c;place-items:center;padding:16px;transition:opacity .2s;display:grid;position:fixed;inset:0}.gs .modal.open{opacity:1;pointer-events:auto}.gs .sheet{scrollbar-width:none;text-align:center;width:min(440px,100%);max-height:94vh;padding:26px;transition:transform .4s cubic-bezier(.3,1.6,.5,1);overflow:auto;transform:scale(.85)rotate(-2deg)}.gs .modal.open .sheet{transform:none}.gs .sheet .big{font-size:56px;line-height:1;animation:1s infinite alternate bounce}@keyframes bounce{to{transform:translateY(-6px)rotate(6deg)}}.gs .sheet h2{font-family:var(--display);margin-top:8px;font-size:34px;font-weight:700}.gs .sheet .sub{color:var(--muted);margin-top:4px}.gs .sheet .stats{margin:20px 0 14px}.gs .pct{background:var(--soft);border-radius:14px;padding:12px 14px;font-size:15px}.gs .pct b{color:var(--ink);font-family:var(--display);font-size:18px}.gs .lb{text-align:left;margin-top:14px}.gs .lb div{border-radius:12px;align-items:center;gap:10px;padding:7px 10px;font-size:15px;display:flex}.gs .lb div.me{background:color-mix(in srgb,var(--c) 30%,transparent);border:2px solid var(--border)}.gs .lb i{width:46px;font-style:normal;font-family:var(--mono);color:var(--muted);font-size:12px}.gs .lb em{font-style:normal;font-family:var(--mono);margin-left:auto;font-size:14px}.gs .sheet .row{gap:10px;margin-top:20px;display:flex}.gs .sheet .row .btn{flex:1}.gs .sheet .stats{display:flex}.gs .sheet .stats .stat{flex:1}.gs .sheet .meta{color:var(--muted);margin-top:12px;font-size:15px}.gs .sheet .rank-box+.meta{margin-top:10px}.gs .sheet .more{flex-wrap:wrap;justify-content:center;gap:4px 18px;margin-top:14px;font-size:14px;font-weight:600;display:flex}.gs .sheet .more a,.gs .sheet .more button{color:var(--muted);padding:4px 2px}.gs .sheet .more a:hover,.gs .sheet .more button:hover{color:var(--ink);text-decoration:underline}.gs p.next{color:var(--muted);margin-top:12px;font-size:13px}.gs p.next b{font-family:var(--mono);color:var(--ink)}.gs .x{background:var(--soft);border-radius:50%;width:36px;height:36px;font-size:15px;position:absolute;top:12px;right:12px}@media (width<=820px){.gs .game{grid-template-columns:1fr;gap:14px}.gs .board-wrap{padding:0}.gs .paused{inset:0}.gs .side{width:100%;max-width:520px;margin:0 auto}.gs .stats{order:-1}.gs .keys{display:none}}@media (prefers-reduced-motion:reduce){.gs *{transition:none!important;animation:none!important}}.gs.wide .game{grid-template-columns:1fr}.gs.wide .side{order:-1;grid-template-columns:minmax(300px,360px) 1fr;align-items:center;gap:12px 20px;max-width:none;display:grid}.gs.wide .side .keys{grid-column:1/-1}@media (width<=820px){.gs.wide .side{grid-template-columns:1fr}.gs .game{gap:10px}.gs .side,.gs.wide .side{display:contents}.gs .game>:not(.board-wrap){width:100%;max-width:520px;margin-inline:auto}.gs .stats{order:-1;gap:8px}.gs .stat{border-width:2px;border-radius:12px;justify-content:center;align-items:baseline;gap:6px;padding:7px 6px;display:flex}.gs .stat b{font-size:18px;display:inline}.gs .stat span{font-size:11px}}@media (width<=560px){.gs{padding:8px 14px 10px}.gs h1,.gs .gs-h{flex-basis:100%;margin:0 0 2px;font-size:24px}.gs .modes{gap:6px;margin-bottom:10px}.gs .chip{height:34px;padding:0 11px;font-size:14px}.gs .seg{border-width:2px;padding:3px}.gs .seg button,.gs .seg a{padding:5px 11px;font-size:14px}.gs .help-chip b{width:18px;height:18px;font-size:12px}.gs .chip:empty,.gs .chip-t{display:none}.gs .help-chip,.gs a.chip[href$="/leaderboard/"]{justify-content:center;width:34px;padding:0}.gs:not([data-mode=archive]) #label{display:none}.gs .practice-bar .btn{padding:0 12px;font-size:14px;height:36px!important}.gs .tools{gap:6px}.gs .tool{padding:7px 2px}.gs .tool i{font-size:20px}.gs .sheet{padding:20px 18px}.gs .sheet h2{font-size:28px}}.gs .help-chip{cursor:pointer;gap:7px}.gs .help-chip b{background:var(--c);color:#1d1630;border:2px solid var(--border);border-radius:50%;place-items:center;width:20px;height:20px;font-family:Georgia,serif;font-size:13px;font-style:italic;display:grid}.gs .help-chip:hover{transform:translateY(-2px)}.howto{width:100%;max-width:min(620px,100vw - 24px);max-height:calc(100dvh - 24px);color:var(--ink);background:0 0;border:0;margin:auto;padding:0;overflow:visible}.howto::backdrop{backdrop-filter:blur(6px);background:#140e208c}.howto[open] .ht-in{animation:.35s cubic-bezier(.3,1.5,.5,1) ht-in}@keyframes ht-in{0%{opacity:0;transform:translateY(20px)scale(.96)}}.howto .ht-in{flex-direction:column;max-height:calc(100dvh - 24px);padding:0;display:flex;overflow:hidden}.howto .ht-head{border-bottom:2px solid var(--soft);align-items:center;gap:12px;padding:18px 20px 14px;display:flex}.howto .ht-badge{background:var(--c);color:#1d1630;border:2.5px solid var(--border);border-radius:12px;flex:none;place-items:center;width:38px;height:38px;font-family:Georgia,serif;font-size:20px;font-style:italic;font-weight:700;display:grid;transform:rotate(-6deg)}.howto h2{font-family:var(--display);flex:1;font-size:24px;font-weight:700}.howto .ht-x{width:38px;height:38px;color:var(--muted);border-radius:50%;font-size:16px}.howto .ht-x:hover{background:var(--soft);color:var(--ink)}.howto .ht-steps{overscroll-behavior:contain;padding:6px 20px;overflow:auto}.howto .ht-foot{border-top:2px solid var(--soft);justify-content:center;padding:14px 20px 18px;display:flex}.howto .ht-foot .btn{color:#1d1630;width:100%;height:50px;box-shadow:4px 4px 0 var(--shadow);background:#b8f53d;border:2.5px solid #1d1630;justify-content:center;font-size:18px}.ht-step{border-bottom:2px dashed var(--soft);grid-template-columns:150px 1fr;align-items:center;gap:18px;padding:14px 0;display:grid}.ht-step:last-child{border-bottom:0}.ht-step.wide{grid-template-columns:1fr;gap:12px}.ht-step.wide .ht-pic{max-width:420px}.ht-pic{justify-self:center;width:100%;position:relative}.ht-text h3{font-family:var(--display);margin-bottom:4px;font-size:18px;font-weight:700}.ht-text p{color:var(--muted);font-size:15px;line-height:1.5}.ht-text p b{color:var(--ink)}.ht-verdict{border:2.5px solid var(--border);color:#1d1630;z-index:3;border-radius:50%;place-items:center;width:28px;height:28px;font-size:15px;font-weight:900;display:grid;position:absolute;top:-8px;right:-8px}.ht-verdict.ok{background:#b8f2a6}.ht-verdict.no{background:#ffb0bd}.mg{grid-template-columns:repeat(var(--n),1fr);aspect-ratio:var(--n)/var(--r);background:#cfc6dd;border:2.5px solid #1d1630;border-radius:10px;grid-auto-rows:1fr;gap:1px;width:100%;display:grid;position:relative;overflow:hidden}.mg-c{color:#1d1630;font-family:var(--display);background:#fff;place-items:center;font-size:20px;font-weight:700;line-height:1;display:grid;position:relative}.mg svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.mg polyline{fill:none;stroke-width:.34px;stroke-linecap:round;stroke-linejoin:round;opacity:.9}.mg .kb{fill:none;stroke:#1d1630;stroke-width:2.5px;stroke-linecap:square;vector-effect:non-scaling-stroke}.mg .wall{stroke:#1d1630;stroke-width:.14px;stroke-linecap:round}.mg-c.sel{background:#fff3b0}.mg-c.good{background:#c9f7bd}.mg-c.bad{background:#ffd0d8}.mg-c.bad:after{content:"";background:repeating-linear-gradient(-45deg,#e8364f59 0 4px,#0000 4px 8px);position:absolute;inset:0}.mg-c.dim{color:#9a91ad}.mg-c .dot{aspect-ratio:1;z-index:1;border:2px solid #1d1630;border-radius:50%;width:62%}.mg-c .num{aspect-ratio:1;color:#fff;z-index:1;background:#1d1630;border-radius:50%;place-items:center;width:64%;font-size:12px;display:grid}.mg-c .tw{aspect-ratio:1;background:#d8d2e0;border:2px solid #1d1630;border-radius:30% 30% 12% 12%;place-items:center;width:72%;font-size:12px;display:grid}.mg-c.tower{background:#8a8296}.mg-c .mx{color:#7a7190;font-size:.7em}.mg-c .notes{color:#6d6580;width:100%;height:100%;font-size:8px;font-family:var(--body);grid-template-columns:repeat(3,1fr);place-items:center;padding:2px;font-weight:800;display:grid}.mg-c .notes i{font-style:normal}.ht-pair{grid-template-columns:1fr 1fr;gap:8px;display:grid}.ht-pair svg{border:2.5px solid #1d1630;border-radius:10px;width:100%;height:auto;display:block}@media (width<=520px){.ht-step{grid-template-columns:110px 1fr;gap:14px}.howto h2{font-size:20px}.ht-text p{font-size:14px}}
