.gp-page{--gp-ink:var(--text,#243447);--gp-muted-ink:var(--muted,#6b7c93);--gp-card-ink:var(--card,#fff);--gp-border-ink:var(--border,#e3ebf3);--gp-brand:var(--primary,#2f80ed);max-width:1260px;color:var(--gp-ink);margin:0 auto;padding:0 18px 56px;overflow-x:clip}.gp-crumbs,.gp-section,.gp-back,.gp-head{max-width:960px;margin-inline:auto}.gp-head,.gp-section{width:100%}.gp-crumbs{color:var(--gp-muted-ink);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 0 8px;font-size:13px;font-weight:600;display:flex}.gp-crumbs a{color:var(--gp-muted-ink);text-decoration:none}.gp-crumbs a:hover{color:var(--gp-brand);text-decoration:underline}.gp-crumbs .gp-current{color:var(--gp-ink)}.gp-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;padding:0 0 10px;display:flex}.gp-head-below{padding:20px 0 2px}.gp-title{color:var(--gp-ink);margin:0 0 4px;font-size:clamp(24px,3.4vw,34px);font-weight:900;line-height:1.15}.gp-title small{letter-spacing:1.5px;text-transform:uppercase;color:var(--gp-brand);font-size:13px;font-weight:700;display:block}.gp-tagline{color:var(--gp-muted-ink);margin:0;font-size:16px;font-weight:600}.gp-head-badges{flex-wrap:wrap;gap:8px;display:flex}.gp-chip{color:var(--gp-ink);background:var(--gp-card-ink);border:1px solid var(--gp-border-ink);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:700;display:inline-flex}.gp-chip-gold{color:var(--gold,#f59e0b);border-color:var(--gold,#f59e0b)}.gp-arena{background:var(--gp-card-ink);border:1px solid var(--gp-border-ink);border-radius:16px;padding:14px;box-shadow:0 10px 30px -18px #14285040}.gp-arena-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:2px 4px 12px;display:flex}.gp-arena-hint{color:var(--gp-muted-ink);font-size:13px;font-weight:600}.gp-diff-picker{flex-wrap:wrap;gap:6px;display:flex}.gp-diff-btn{color:var(--gp-muted-ink);border:1.5px solid var(--gp-border-ink);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:7px;padding:7px 14px;font-family:inherit;font-size:13px;font-weight:800;transition:all .18s;display:inline-flex}.gp-diff-btn:hover{border-color:var(--diff-color);color:var(--diff-color)}.gp-diff-btn.active{background:var(--diff-color);border-color:var(--diff-color);color:#fff}.gp-diff-dot{background:var(--diff-color);border-radius:50%;width:8px;height:8px}.gp-arena-frame{background:#0b0f1e;border:1px solid #223052;border-radius:14px;position:relative;overflow:hidden}.gp-frame{aspect-ratio:3/2;background:#0b0f1e;border:none;width:100%;min-height:320px;max-height:600px;display:block}.gp-arena-frame:fullscreen{border-radius:0}.gp-arena-frame:fullscreen .gp-frame{width:100vw;height:100vh;max-height:none}.gp-frame-portrait{aspect-ratio:470/900;max-width:500px;min-height:420px;max-height:780px;margin:0 auto}.gp-frame-wide{aspect-ratio:960/418;max-height:520px}.gp-arena-frame:fullscreen .gp-frame-portrait{width:min(100vh,100vw);max-width:none;height:100vh}.gp-playbar{color:var(--gp-muted-ink);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 4px 0;font-size:13px;display:flex}.gp-playbar-actions{flex-wrap:wrap;gap:8px;display:flex}.gp-section{padding:26px 0 4px}.gp-section+.gp-section{padding-top:22px}.gp-section-title{color:var(--gp-ink);align-items:center;gap:10px;margin:0 0 16px;font-size:20px;font-weight:800;display:flex}.gp-section-kicker{letter-spacing:1.2px;text-transform:uppercase;color:var(--gp-brand);background:color-mix(in srgb, var(--gp-brand) 12%, transparent);border-radius:999px;padding:4px 10px;font-size:11px;font-weight:800}.gp-about{grid-template-columns:300px 1fr;align-items:start;gap:24px;display:grid}.gp-about-art{border:1px solid var(--gp-border-ink);background:var(--gp-card-ink);border-radius:14px;overflow:hidden}.gp-about-art img{aspect-ratio:5/3;object-fit:cover;width:100%;height:auto;display:block}.gp-about-text{color:var(--gp-ink);font-size:15.5px;line-height:1.7}.gp-about-text p{margin:0 0 12px}.gp-about-text p:last-child{margin-bottom:0}.gp-bullets{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.gp-bullets li{background:var(--gp-card-ink);border:1px solid var(--gp-border-ink);color:var(--gp-ink);border-radius:12px;padding:12px 16px 12px 44px;font-size:15px;line-height:1.6;position:relative}.gp-bullets li:before{content:"⌨";width:22px;height:22px;color:var(--gp-brand);background:color-mix(in srgb, var(--gp-brand) 12%, transparent);border-radius:7px;justify-content:center;align-items:center;font-size:12px;display:flex;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.gp-tips{background:color-mix(in srgb, var(--gold,#f59e0b) 8%, var(--gp-card-ink));border:1px solid color-mix(in srgb, var(--gold,#f59e0b) 35%, transparent);border-radius:12px;margin-top:16px;padding:18px 20px}.gp-tips-title{color:var(--gold,#b45309);margin:0 0 10px;font-size:15px;font-weight:800}.gp-tips-list{color:var(--gp-ink);flex-direction:column;gap:6px;margin:0;padding-left:20px;font-size:14px;line-height:1.6;display:flex}.gp-tips-list li::marker{color:var(--gold,#f59e0b)}.gp-skill-chips{flex-wrap:wrap;gap:10px;display:flex}.gp-skill-chip{color:var(--gp-ink);background:var(--gp-card-ink);border:1px solid var(--gp-border-ink);border-radius:999px;align-items:center;gap:8px;padding:10px 16px;font-size:14px;font-weight:600;transition:border-color .2s;display:inline-flex}.gp-skill-chip:hover{border-color:var(--gp-brand)}.gp-skill-icon{font-size:16px}.gp-meta-chips{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.gp-meta-chip{background:var(--gp-card-ink);border:1px solid var(--gp-border-ink);color:var(--gp-ink);border-radius:999px;align-items:center;gap:8px;padding:8px 14px;font-size:13px;font-weight:700;display:inline-flex}.gp-meta-chip.gp-category{border-color:var(--gp-brand);color:var(--gp-brand)}.gp-faq{flex-direction:column;gap:10px;display:flex}.gp-faq-item{background:var(--gp-card-ink);border:1px solid var(--gp-border-ink);border-radius:12px;transition:border-color .2s;overflow:hidden}.gp-faq-item[open]{border-color:var(--gp-brand)}.gp-faq-item summary{cursor:pointer;color:var(--gp-ink);-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;font-size:15px;font-weight:700;list-style:none;display:flex}.gp-faq-item summary::-webkit-details-marker{display:none}.gp-faq-item summary:after{content:"+";width:24px;height:24px;color:var(--gp-brand);background:color-mix(in srgb, var(--gp-brand) 12%, transparent);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:17px;font-weight:800;display:flex}.gp-faq-item[open] summary:after{content:"−"}.gp-faq-item .gp-faq-a{color:var(--gp-muted-ink);padding:0 16px 15px;font-size:14px;line-height:1.7}.gp-path{flex-direction:column;gap:14px;display:flex}.gp-path-track{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.gp-path-node{background:var(--gp-card-ink);border:1px solid var(--gp-border-ink);color:var(--gp-ink);border-radius:12px;flex-direction:column;gap:4px;padding:14px 16px;text-decoration:none;transition:border-color .2s,transform .2s;display:flex;position:relative}.gp-path-node:hover{border-color:var(--gp-brand);transform:translateY(-3px)}.gp-path-node.gp-path-current{border-color:var(--gp-brand);background:color-mix(in srgb, var(--gp-brand) 7%, var(--gp-card-ink))}.gp-path-stage{letter-spacing:1.2px;text-transform:uppercase;color:var(--gp-brand);font-size:10px;font-weight:800}.gp-path-name{font-size:15px;font-weight:800}.gp-path-keys{color:var(--gp-muted-ink);font-size:12px}.gp-path-flag{letter-spacing:1px;color:#fff;background:var(--gp-brand);border-radius:999px;padding:3px 8px;font-size:9px;font-weight:800;position:absolute;top:10px;right:12px}.gp-path-note{color:var(--gp-muted-ink);margin:0;font-size:13px}.gp-related{flex-direction:column;gap:18px;display:flex}.gp-rel-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;display:grid}.gp-rel-card{background:var(--gp-card-ink);border:1px solid var(--gp-border-ink);border-radius:14px;transition:border-color .25s,box-shadow .25s,transform .25s;overflow:hidden}.gp-rel-card:hover{border-color:var(--gp-brand);transform:translateY(-4px);box-shadow:0 12px 26px -12px #1428504d}.gp-rel-link{color:inherit;text-decoration:none;display:block}.gp-rel-image{aspect-ratio:16/9;background:var(--gp-card-ink);position:relative;overflow:hidden}.gp-rel-image img{object-fit:cover;width:100%;height:100%;transition:transform .4s;display:block}.gp-rel-card:hover .gp-rel-image img{transform:scale(1.05)}.gp-rel-category{text-transform:uppercase;background:var(--gp-brand);color:#fff;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:800;position:absolute;top:10px;left:10px}.gp-rel-info{padding:13px 15px 15px}.gp-rel-name{color:var(--gp-ink);margin:0 0 4px;font-size:16px;font-weight:800}.gp-rel-tagline{color:var(--gp-muted-ink);margin:0;font-size:13px;font-weight:500}.gp-back{text-align:center;padding-top:28px}@media (max-width:760px){.gp-about{grid-template-columns:1fr}.gp-about-art{max-width:420px}.gp-head{flex-direction:column;align-items:flex-start;gap:10px}.gp-frame{min-height:260px}.gp-rel-grid{grid-template-columns:1fr}}.gshell{--gshell-accent:var(--gp-brand)}@media (min-width:1000px){.gshell{margin-left:-110px;margin-right:-110px}}.gshell-bar{background:color-mix(in srgb, var(--gshell-accent) 9%, var(--gp-card-ink));border:1px solid var(--gp-border-ink);border-radius:14px;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 14px;margin:14px 0 0;padding:9px 14px;display:flex}@keyframes gshellAttn{0%,to{box-shadow:0 0 #0000}50%{box-shadow:0 0 0 4px color-mix(in srgb, var(--gshell-accent) 45%, transparent)}}.gshell-bar-attn .gshell-select,.gshell-bar-attn .gshell-diff-btn:not(.active){animation:1.2s ease-in-out 2 gshellAttn}@media (prefers-reduced-motion:reduce){.gshell-bar-attn .gshell-select,.gshell-bar-attn .gshell-diff-btn:not(.active){animation:none}}.gshell-stats{color:var(--gp-muted-ink);flex-wrap:wrap;align-items:center;gap:14px;font-size:12.5px;font-weight:700;display:flex}.gshell-stat b{color:var(--gp-ink)}.gshell-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.gshell-diff{border:1px solid var(--gp-border-ink);background:color-mix(in srgb, var(--gp-ink) 3%, transparent);border-radius:999px;gap:4px;padding:3px;display:flex}.gshell-diff-btn{color:var(--gp-muted-ink);cursor:pointer;background:0 0;border:none;border-radius:999px;align-items:center;gap:7px;padding:6px 13px;font-family:inherit;font-size:12.5px;font-weight:800;transition:background .15s,color .15s;display:inline-flex}.gshell-diff-btn:hover{color:var(--gshell-accent)}.gshell-diff-btn.active{background:var(--gshell-accent);color:#fff}.gshell-diff-dot{opacity:.7;background:currentColor;border-radius:50%;width:7px;height:7px}.gshell-diff-btn.active .gshell-diff-dot{opacity:1;background:#fff}.gshell-hero .gshell-diff{background:#080c1c80;border-color:#ffffff47}.gshell-hero .gshell-diff-btn{color:#cdd8ea}.gshell-hero .gshell-diff-btn:hover{color:#fff}.gshell-tool{color:var(--gp-ink);border:1.5px solid var(--gp-border-ink);cursor:pointer;white-space:nowrap;background:0 0;border-radius:999px;padding:7px 13px;font-family:inherit;font-size:12.5px;font-weight:800;transition:border-color .15s}.gshell-tool:hover{border-color:var(--gshell-accent)}.gshell-tool.off{opacity:.6}a.gshell-tool{align-items:center;text-decoration:none;display:inline-flex}.gshell-hint{color:var(--gp-muted-ink);margin:0 2px 10px;font-size:12.5px;font-weight:600}.gp-ad{border:1.5px dashed var(--gp-border-ink);background:repeating-linear-gradient(45deg,#0000 0 10px,#6b7c930f 10px 20px);border-radius:12px;justify-content:center;align-items:center;display:flex;overflow:hidden}.gp-ad-label{letter-spacing:2px;text-transform:uppercase;color:var(--gp-muted-ink);opacity:.7;font-size:10px;font-weight:800}.gp-ad-leaderboard{max-width:970px;min-height:110px;margin:6px auto 14px}.gshell-zone{grid-template-columns:300px minmax(0,1fr);align-items:start;gap:20px;display:grid}.gshell-zone-noads{grid-template-columns:minmax(0,1fr)}.gshell-rail{min-width:0;position:sticky;top:16px}.gshell-rail .gp-ad-skyscraper{width:300px;max-width:100%;min-height:600px;margin-left:auto}.gshell-main{min-width:0}@media (max-width:1200px){.gshell-zone{grid-template-columns:minmax(0,1fr)}.gshell-rail{display:none}}@media (max-width:760px){.gp-ad-leaderboard{min-height:90px}}.gshell-stage{aspect-ratio:23/10;background:#0b0f1e;border:1px solid #223052;border-radius:16px;width:100%;max-width:1100px;margin-inline:auto;position:relative;overflow:hidden;box-shadow:0 18px 44px -22px #0a193c80}.gshell-stage-portrait{aspect-ratio:3/4;min-height:480px;max-height:800px}.gshell-stage-wide{aspect-ratio:21/9;min-height:0;max-height:560px}.gshell-stage:fullscreen{aspect-ratio:auto;border-radius:0;max-height:none}.gshell-frame{background:#0b0f1e;border:0;width:100%;height:100%;position:absolute;inset:0}.gshell-overlay{z-index:2;justify-content:flex-start;align-items:flex-end;padding:30px 32px;transition:opacity .45s,visibility 0s .45s;display:flex;position:absolute;inset:0;overflow:hidden}.gshell-overlay.is-gone{opacity:0;visibility:hidden;pointer-events:none}.gshell-scene{position:absolute;inset:0}.gshell-scene svg{width:100%;height:100%;animation:26s ease-in-out infinite alternate tpsShellZoom;display:block}@keyframes tpsShellZoom{0%{transform:scale(1.02)}to{transform:scale(1.09)}}.gshell-veil{background:linear-gradient(#080c1c0d 0%,#080c1c47 45%,#080c1ce6 100%);position:absolute;inset:0}.gshell-hero{text-align:left;color:#fff;text-shadow:0 2px 14px #000000bf;width:calc(100% - 48px);max-width:620px;max-height:calc(100% - 40px);padding:6px 4px;position:relative;overflow-y:auto}.gshell-kicker{letter-spacing:2px;text-transform:uppercase;color:#fff;background:var(--gshell-accent);border-radius:999px;padding:4px 12px;font-size:10.5px;font-weight:800;display:inline-block}.gshell-title{letter-spacing:-.5px;margin:12px 0 6px;font-size:clamp(34px,5vw,52px);font-weight:900;line-height:1.02}.gshell-tag{color:#e6edf9;margin:0 0 16px;font-size:16px;font-weight:600}.gshell-cta-row{flex-wrap:wrap;align-items:stretch;gap:12px;margin-bottom:12px;display:flex}.gshell-pick{flex-direction:column;justify-content:center;gap:5px;display:flex}.gshell-pick-label{letter-spacing:1.6px;text-transform:uppercase;color:#cdd8ea;font-size:10.5px;font-weight:800}.gshell-select{appearance:none;color:#fff;cursor:pointer;background:#0a102299 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23ffd166' stroke-width='2.4' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") right 14px center no-repeat;border:1px solid #ffffff4d;border-radius:12px;max-width:250px;padding:13px 38px 13px 16px;font-family:inherit;font-size:14.5px;font-weight:800}.gshell-select:hover{border-color:#fff9}.gshell-select option{color:#10182b;font-weight:700}.gshell-bar .gshell-pick{flex-direction:row;align-items:center;gap:8px}.gshell-bar .gshell-pick-label{color:var(--gp-muted-ink)}.gshell-bar .gshell-select{color:var(--gp-ink);background-color:var(--gp-card-ink);border-color:var(--gp-border-ink);padding:7px 34px 7px 12px;font-size:12.5px}.gshell-bar .gshell-select:hover{border-color:var(--gshell-accent)}.gshell-demo{letter-spacing:.4px;text-align:left;color:#ffffff57;white-space:nowrap;background:#080c1c8c;border:1px solid #ffffff24;border-radius:10px;max-width:520px;margin:0 0 12px;padding:10px 14px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13.5px;overflow:hidden}.gshell-demo-typed{color:#fff;font-weight:700}.gshell-demo-caret{background:var(--gshell-accent);width:2px;height:1em;margin:0 1px -2px 2px;animation:1s steps(2,end) infinite gshellBlink;display:inline-block}@keyframes gshellBlink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.gshell-demo-caret{animation:none}}.gshell-proof{color:#ffd166;letter-spacing:.2px;margin:0 0 10px;font-size:13px;font-weight:700}.gshell-proof .dim{color:#cdd8ea;font-weight:600}.gshell-best{color:#ffd166;margin:0 0 16px;font-size:13.5px;font-weight:600}.gshell-best b{color:#fff}.gshell-start{letter-spacing:.2px;color:#fff;background:var(--gshell-accent);cursor:pointer;border:none;border-radius:14px;padding:16px 46px;font-family:inherit;font-size:18px;font-weight:900;transition:filter .15s,transform .15s;box-shadow:0 12px 28px -10px #0000008c}.gshell-start:hover{filter:brightness(1.1);transform:translateY(-1px)}.gshell-sub{color:#b9c4d8;margin:12px 0 0;font-size:12.5px;font-weight:600}.gshell-note{color:var(--gp-muted-ink);margin:10px 2px 0;font-size:13px}@keyframes tpsBob{0%,to{translate:0}50%{translate:0 -6px}}@keyframes tpsHop{0%,to{translate:0}32%{translate:0 -11px}64%{translate:0}}@keyframes tpsDriftA{0%{translate:-12px}to{translate:12px}}@keyframes tpsDriftB{0%{translate:13px}to{translate:-13px}}@keyframes tpsTw{0%,to{opacity:.25}50%{opacity:1}}@keyframes tpsPulse{0%,to{opacity:.45}50%{opacity:1}}@keyframes tpsSpin{0%{rotate:none}to{rotate:360deg}}@keyframes tpsRise{0%{opacity:0;translate:0 10px}22%{opacity:.9}78%{opacity:.85}to{opacity:0;translate:0 -26px}}@keyframes tpsDashA{0%{stroke-dashoffset:0}to{stroke-dashoffset:-24px}}@keyframes tpsDashB{0%{stroke-dashoffset:0}to{stroke-dashoffset:-16px}}@keyframes tpsDashC{0%{stroke-dashoffset:0}to{stroke-dashoffset:-12px}}@keyframes tpsVolley{0%{opacity:0;translate:14px}22%{opacity:.9}78%{opacity:.9}to{opacity:0;translate:-16px}}@keyframes tpsMarch{0%{opacity:0;translate:10px}20%{opacity:1}80%{opacity:1}to{opacity:0;translate:-12px}}@keyframes tpsTrek{0%{opacity:0;translate:-16px}14%{opacity:1}82%{opacity:1}to{opacity:0;translate:44px}}@keyframes tpsFlick{0%,to{opacity:1}30%{opacity:.45}55%{opacity:.9}70%{opacity:.6}}@keyframes tpsSweep{0%,55%{opacity:0}66%{opacity:.9}82%,to{opacity:0}}.gshell-scene .tps-bob{animation:3.4s ease-in-out infinite tpsBob}.gshell-scene .tps-hop{animation:2.2s ease-in-out infinite tpsHop}.gshell-scene .tps-drift-a{animation:26s ease-in-out infinite alternate tpsDriftA}.gshell-scene .tps-drift-b{animation:37s ease-in-out infinite alternate tpsDriftB}.gshell-scene .tps-tw{animation:2.6s ease-in-out infinite tpsTw}.gshell-scene .tps-pulse{animation:3.8s ease-in-out infinite tpsPulse}.gshell-scene .tps-spin,.gshell-scene .tps-spin-rev{transform-box:fill-box;transform-origin:50%}.gshell-scene .tps-spin{animation:14s linear infinite tpsSpin}.gshell-scene .tps-spin-rev{animation:19s linear infinite reverse tpsSpin}.gshell-scene .tps-rise{animation:6s linear infinite tpsRise}.gshell-scene .tps-dash{stroke-dasharray:8 8;animation:1.4s linear infinite tpsDashB}.gshell-scene .tps-volley{animation:2.6s linear infinite tpsVolley}.gshell-scene .tps-march{animation:4.2s linear infinite tpsMarch}.gshell-scene .tps-trek{animation:7s linear infinite tpsTrek}.gshell-scene .tps-flick{animation:2.1s linear infinite tpsFlick}.gshell-scene .tps-sweep{animation:4.4s ease-in-out infinite tpsSweep}.gshell-scene .tps-d1{animation-delay:-.9s}.gshell-scene .tps-d2{animation-delay:-1.7s}.gshell-scene .tps-d3{animation-delay:-2.6s}.gshell-scene .tps-d4{animation-delay:-3.4s}@media (prefers-reduced-motion:reduce){.gshell-scene svg{animation:none}.gshell-scene svg *{animation:none!important}.gshell-overlay{transition:none}}@media (max-width:760px){.gshell-panel{padding:20px 18px}.gshell-steps{font-size:12.5px}.gshell-start{width:100%;padding:13px 18px}}
