@font-face{font-family:PitmapPixel;src:url('/fonts/dalmoori.woff2') format('woff2');font-display:swap}
/* Scoped, mobile-first coming-soon product. */
.gk-card,.garage-keyring{box-sizing:border-box;color:var(--text,#f5f7fa);background:var(--surface,#131e26)}
.gk-card{margin-top:16px;padding:16px;border:1px solid var(--line,#2d3c48);border-radius:16px;overflow:hidden}
.gk-badge{display:inline-block;font-size:11px;font-weight:700;border:1px solid #73b8ff55;border-radius:20px;color:#8bc3ff;background:#247cff18;padding:5px 9px}
.gk-card h3{font-size:20px;margin:14px 0 8px}.gk-card>strong{display:block;font-size:15px;line-height:1.5}.gk-card>.gk-card-price{font-size:22px;color:#8bc3ff;margin:8px 0 12px}.gk-card>.gk-card-tagline{margin:0 0 6px}.gk-card p{font-size:12px;line-height:1.7;color:var(--muted,#98acba)}
.garage-shop .gk-card>button{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:14px;background:#247cff;color:#fff;border-color:transparent;font-size:14px;font-weight:700;min-height:46px}
.gk-card-art{position:relative;height:196px;max-width:360px;margin:8px auto 0;background:radial-gradient(ellipse at center,#2f52684d,transparent 72%)}
.gk-card-art canvas{display:block;width:100%;height:100%;object-fit:contain;image-rendering:auto}.gk-card-art [data-card-fallback]{position:absolute;inset:0}.gk-ring{position:absolute;box-sizing:border-box;left:50%;top:12px;width:25px;height:25px;border:3px solid #c7d2d7;border-radius:50%;transform:translateX(-50%)}.gk-card-car{position:absolute;left:21%;bottom:9px;width:58%;filter:drop-shadow(0 2px 0 #d4e7ef)}.gk-card-logo{position:absolute;left:10%;top:62px;width:35%}.gk-card-art img{display:block;width:100%;height:auto}.gk-card-art svg{display:block;width:100%}.gk-card-art .gk-card-prop{position:absolute;right:13%;top:45px;width:19%;height:62px;object-fit:contain;image-rendering:pixelated}
.garage-keyring{width:min(560px,calc(100% - 24px));max-width:100%;max-height:92dvh;margin:auto;padding:0;border:1px solid var(--line,#2d3c48);border-radius:20px;overflow:hidden;overscroll-behavior:contain}
.garage-keyring[open]{display:flex;flex-direction:column}.garage-keyring .gk-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-bottom:24px}.garage-keyring .gk-head,.garage-keyring .gk-footer{flex:none}.garage-keyring .gk-footer{position:static}.gk-card [hidden],.ks-art [hidden]{display:none!important}
.garage-keyring::backdrop{background:#000a;backdrop-filter:blur(3px)}
.garage-keyring [hidden]{display:none!important}.garage-keyring *{box-sizing:border-box}
.gk-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;margin:0;border-bottom:1px solid var(--line,#2d3c48);background:var(--surface,#131e26)}
.gk-head h2{font-size:18px;margin:7px 0 0}.garage-keyring button,.garage-keyring select,.garage-keyring a{font:inherit;font-size:13px;min-height:44px;border:1px solid var(--line,#2d3c48);border-radius:10px;background:var(--surface,#131e26);color:inherit;padding:10px 12px}
.garage-keyring button:focus-visible,.garage-keyring select:focus-visible,.garage-keyring a:focus-visible{outline:3px solid #74b2ff;outline-offset:2px}.gk-head button{flex-shrink:0}
.gk-body{padding:20px 16px 12px}.gk-body>h3{font-size:23px;line-height:1.35;letter-spacing:-.8px;margin:0 0 8px}.gk-sub{font-size:12px;line-height:1.7;color:var(--muted,#98acba);margin:0}
.gk-product{margin:18px 0 20px;border:1px solid var(--line,#2d3c48);border-radius:16px;background:radial-gradient(ellipse at 50% 38%,#37597655,transparent 75%),#0c1720;overflow:hidden}
/* One display plane owns the safe slots and connector layering at every width. */
.gk-stage{width:100%;max-width:440px;margin:auto;aspect-ratio:1000/1040}.gk-stage canvas{display:block;width:100%;height:auto;aspect-ratio:1000/1040}
.gk-product figcaption{position:relative;text-align:center;font-size:10px;line-height:1.6;color:#a8bdca;padding:12px 10px 14px;margin:0;border-top:1px solid #ffffff0a;background:#111d26}.gk-product figcaption p{margin:8px 0}.gk-product figcaption button{font-size:11px;margin-top:8px}
.gk-selection{padding:0 0 20px;border-bottom:1px solid var(--line,#2d3c48)}.gk-body h4{font-size:15px;margin:0 0 10px}.gk-selection p,.gk-component p,.gk-fine{font-size:12px;line-height:1.65;color:var(--muted,#98acba);margin:8px 0}
.gk-selection label{display:block;font-size:11px;color:var(--muted,#98acba);margin:12px 0 6px}.gk-selection select{display:block;width:100%;max-width:100%;font-size:13px;min-height:46px;text-overflow:ellipsis}.gk-selection a{display:inline-flex;align-items:center;text-decoration:none;color:#8bc3ff;margin-top:6px}
.gk-selection [data-art-status]{color:#e6bc89}.gk-selection [data-more]{width:100%;margin:6px 0}.gk-composition{padding-top:20px}.gk-component{display:flex;align-items:flex-start;gap:10px;margin:14px 0}.gk-number{font-size:12px;color:#8bc3ff;line-height:22px}.gk-component strong{font-size:13px}.gk-component p{margin:4px 0 0}
.gk-faces{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px 10px;border:1px solid var(--line,#2d3c48);border-radius:12px;background:#8bbcff09}.gk-faces figure{margin:0;min-width:0}.gk-faces img,.gk-faces canvas{display:block;width:100%;height:auto;aspect-ratio:2133/469;image-rendering:pixelated}.gk-faces figcaption{font-size:10px;text-align:center;color:var(--muted,#98acba);line-height:1.6;margin-top:10px;overflow-wrap:anywhere}.gk-nickname-placeholder{aspect-ratio:2133/469;display:grid;place-items:center;color:#fff;background:#000;font-family:PitmapPixel,monospace;font-size:11px}.gk-nickname-placeholder:has(canvas){background:none}
.gk-fine{margin-top:12px}.gk-footer{position:sticky;bottom:0;padding:12px 16px max(12px,env(safe-area-inset-bottom));border-top:1px solid var(--line,#2d3c48);background:var(--surface,#131e26)}.garage-keyring .gk-footer button{width:100%;min-height:48px;background:#273d50;color:#a7c0d5;font-weight:700;font-size:15px;cursor:not-allowed}.gk-footer p{text-align:center;font-size:11px;line-height:1.5;color:var(--muted,#98acba);margin:8px 0 0}
@media(max-width:480px){.garage-keyring{width:100%;max-height:94dvh;margin:auto auto 0;border-radius:20px 20px 0 0}.garage-shop nav{gap:5px}.garage-shop nav button{padding:10px 5px;font-size:12px}}
[data-theme=light] .gk-badge,[data-theme=light] .gk-number,[data-theme=light] .gk-selection a{color:#1763ba}[data-theme=light] .garage-keyring .gk-footer button{background:#e2eaf2;color:#586c7b}

/* Local-only furniture charm selection; fixed slots keep three charms in view. */
.gk-prop-picker{padding:18px 0;border-bottom:1px solid var(--line,#2d3c48)}.gk-prop-picker label{font-size:15px;font-weight:700;display:block;margin-bottom:10px}.gk-prop-picker label small{display:inline;font-size:11px;font-weight:400;margin-left:5px}.gk-prop-picker select{display:block;width:100%;min-height:46px}.gk-prop-picker>small,.gk-prop-picker p{font-size:11px;line-height:1.6;color:var(--muted,#98acba);margin-top:8px}.gk-prop-picker [data-prop-retry]{margin-top:8px}

/* A separate flow box prevents padded inline links from covering the preceding text. */
.garage-keyring .gk-composition .gk-fine{line-height:1.8;margin:12px 0 0}.garage-keyring .gk-policy-link{display:flex;align-items:center;justify-content:center;width:fit-content;max-width:100%;min-height:44px;margin-top:12px;line-height:1.6;white-space:normal;overflow-wrap:anywhere;text-decoration:none}
