:root{--bg:#e6ecf4;--bg2:#f9fbfe;--ink:#172031;--muted:#5a6477;--surface:#fff;--surface2:#eef2f8;--line:#d4dce8;--accent:#2f5bea;--accent-ink:#fff;--gold:#f5c21b;--scrim:#121a2861;--shadow:0 18px 50px -18px #17203159, 0 2px 6px #1720310f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#111a29;--bg2:#1e2a40;--ink:#eef2f9;--muted:#9ba7bc;--surface:#1c2639;--surface2:#26324a;--line:#33415a;--accent:#7090ff;--accent-ink:#0d1424;--gold:#f5c21b;--scrim:#0408108c;--shadow:0 18px 50px -18px #000000b3, 0 2px 6px #0000004d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#111a29;--bg2:#1e2a40;--ink:#eef2f9;--muted:#9ba7bc;--surface:#1c2639;--surface2:#26324a;--line:#33415a;--accent:#7090ff;--accent-ink:#0d1424;--gold:#f5c21b;--scrim:#0408108c;--shadow:0 18px 50px -18px #000000b3, 0 2px 6px #0000004d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:inherit}html{height:100%;scroll-padding-top:env(safe-area-inset-top,0px)}body{height:100%;color:var(--ink);background:radial-gradient(120% 75% at 50% 32%, var(--bg2), var(--bg));-webkit-font-smoothing:antialiased;margin:0;font-family:Bricolage Grotesque Variable,ui-rounded,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.4;overflow:hidden}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.app{height:100%;position:relative;overflow:hidden}#stage{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}.top{pointer-events:none;z-index:2;flex-direction:column;gap:10px;padding:14px 14px 0;display:flex;position:absolute;top:0;left:0;right:0}.brand{letter-spacing:-.01em;align-self:flex-start;align-items:center;gap:10px;font-size:17px;font-weight:800;display:flex}.logo{background:var(--accent);border-radius:3px;width:26px;height:13px;margin-top:5px;position:relative}.logo:before,.logo:after{content:"";background:var(--accent);border-radius:2px 2px 0 0;width:8px;height:5px;position:absolute;top:-5px}.logo:before{left:3px}.logo:after{right:3px}.models{scrollbar-width:none;pointer-events:auto;gap:8px;padding-bottom:2px;display:flex;overflow-x:auto}.models::-webkit-scrollbar{display:none}.chip{border:1.5px solid var(--line);background:var(--surface);border-radius:999px;flex:none;padding:7px 14px;font-size:14px;font-weight:600;transition:background .2s,border-color .2s,color .2s,transform .15s}.chip:active{transform:scale(.96)}.chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--surface)}.models{align-self:flex-end;align-items:center;max-width:100%}.chip#textChip{align-items:center;gap:6px;display:inline-flex}@media (width<=519px){.chip .wide{display:none}.cc-txt small{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.chip#catChip{flex:0 auto;gap:6px;min-width:0;padding-right:10px}.cc-txt{min-width:0}.cc-txt b{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.chip{padding:7px 12px}}@media (width>=720px){.top{flex-direction:row;justify-content:space-between;align-items:center}.brand,.models{align-self:auto}}.chip#catChip{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);box-shadow:0 6px 16px -8px var(--accent);align-items:center;gap:8px;padding:4px 12px 4px 4px;display:inline-flex}.chip#catChip[aria-pressed=false]{background:var(--surface);color:var(--ink);box-shadow:none}.cc-ico{background:#ffffff38;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;display:grid}.chip#catChip[aria-pressed=false] .cc-ico{background:var(--accent);color:var(--accent-ink)}.cc-txt{text-align:left;flex-direction:column;align-items:flex-start;line-height:1.1;display:flex}.cc-txt small{opacity:.85;font-size:11px;font-weight:600}.cc-txt b{font-size:14px;font-weight:800}.cc-chev{flex:none;transition:transform .3s}.chip#catChip:hover .cc-chev{transform:translateY(2px)}.chip#catChip.nudge{animation:1.4s ease-in-out 1.5s 2 nudge}@keyframes nudge{0%,to{transform:none}15%{transform:translateY(-3px)scale(1.05)}30%{transform:none}45%{transform:translateY(-1px)scale(1.02)}60%{transform:none}}.chip.upload{border-style:dashed;align-items:center;gap:6px;display:inline-flex}.chip.upload input{opacity:0;width:1px;height:1px;position:absolute}.hint{text-align:center;color:var(--muted);pointer-events:none;z-index:1;margin:0;font-size:13px;transition:opacity .6s;position:absolute;top:46%;left:0;right:0}.hint.off{opacity:0}.panel{background:var(--surface);max-width:560px;box-shadow:var(--shadow);z-index:2;border-radius:24px;flex-direction:column;gap:12px;margin:0 auto;padding:12px;display:flex;position:absolute;bottom:12px;left:12px;right:12px}.seg{background:var(--surface2);--i:0;border-radius:14px;grid-template-columns:repeat(3,1fr);padding:4px;display:grid;position:relative}.seg .thumb{background:var(--surface);width:calc(33.3333% - 2.66667px);transform:translateX(calc(var(--i)*100%));border-radius:11px;transition:transform .45s cubic-bezier(.3,1.4,.5,1);position:absolute;top:4px;bottom:4px;left:4px;box-shadow:0 2px 8px #1720311f}.seg button{color:var(--muted);background:0 0;border:0;border-radius:11px;padding:9px 4px;font-size:14px;font-weight:600;transition:color .25s;position:relative}.seg button[aria-selected=true]{color:var(--ink)}.kitrow{align-items:center;gap:10px;display:flex}.kitrow>span{color:var(--muted);flex:none;min-width:7.2em;font-size:12.5px}.seg.sm{border-radius:12px;flex:1;padding:3px}.seg.sm .thumb{border-radius:9px;width:calc(33.3333% - 2px);top:3px;bottom:3px;left:3px}.seg.sm button{padding:6px 2px;font-size:13px}.seg.two{grid-template-columns:repeat(2,1fr)}.seg.two .thumb{width:calc(50% - 3px)}.kitrow[hidden],.fact[hidden],.price[hidden]{display:none}.steps{grid-template-columns:44px 1fr 44px;align-items:center;gap:10px;display:grid}.steps[hidden]{display:none}.round{border:1.5px solid var(--line);background:var(--surface);border-radius:50%;place-items:center;width:44px;height:44px;transition:transform .15s,opacity .2s;display:grid}.round:active{transform:scale(.92)}.round:disabled{opacity:.35;cursor:default}.round svg{width:18px;height:18px}.round.go{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}body.gift .steps{grid-template-columns:44px 1fr 44px 64px}.ffwd{display:none}body.gift .ffwd{display:grid}body.gift #next{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;width:64px;height:64px}body.gift #next svg{width:22px;height:22px}.stepinfo{min-width:0}.stepinfo strong{font-size:16px;font-weight:800;display:block}.bar{background:var(--surface2);border-radius:6px;height:6px;margin:6px 0 7px;overflow:hidden}.bar i{background:var(--accent);border-radius:6px;width:0;height:100%;transition:width .5s cubic-bezier(.2,.8,.2,1);display:block}.need{color:var(--muted);flex-wrap:wrap;gap:6px;font-size:12.5px;display:flex}.need span{background:var(--surface2);border-radius:8px;align-items:center;gap:5px;padding:3px 7px;display:inline-flex}.need em{align-self:center;font-style:normal}.sw{border-radius:3px;flex:none;width:12px;height:12px;box-shadow:inset 0 0 0 1px #00000026}.facts{flex-direction:column;gap:10px;display:flex}.factrow{align-items:flex-end;gap:16px;display:flex}.kitpick{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}.kitpick .cap{color:var(--muted);font-size:12.5px}.kitpick .seg.sm{flex:none}.fact b{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:26px;font-weight:800;line-height:1;display:block}.fact span{color:var(--muted);font-size:12.5px}.actions{grid-template-columns:1fr 1fr 1.5fr;gap:8px;display:grid}.btn{border:1.5px solid var(--line);background:var(--surface);border-radius:14px;padding:11px 12px;font-weight:600;transition:transform .15s,background .2s}.btn:active{transform:scale(.97)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.exitgift{z-index:3;border:1.5px solid var(--line);background:var(--surface);border-radius:999px;padding:7px 14px;font-size:14px;font-weight:600;position:absolute;top:14px;left:14px}.exitgift[hidden]{display:none}.spin{border:1.5px solid var(--line);background:var(--surface);width:40px;height:40px;color:var(--ink);border-radius:50%;place-items:center;padding:0;transition:transform .15s,background .2s;display:grid;position:absolute;bottom:calc(100% + 10px);right:4px;box-shadow:0 6px 18px -10px #17203173}.spin:active{transform:scale(.94)}.spin .ico{width:16px;height:16px;display:grid}.spin svg{grid-area:1/1;width:16px;height:16px;transition:transform .35s cubic-bezier(.3,1.5,.5,1),opacity .2s}.spin .i-play{opacity:0;transform:scale(.4)rotate(-90deg)}.spin[aria-pressed=true] .i-pause{opacity:0;transform:scale(.4)rotate(90deg)}.spin[aria-pressed=true] .i-play{opacity:1;transform:none}body.gift .top,body.gift .seg,body.gift .facts,body.gift.waiting .panel{display:none}.card{background:var(--surface);width:min(88vw,380px);box-shadow:var(--shadow);z-index:6;text-align:center;opacity:0;pointer-events:none;border-radius:26px;padding:26px 22px 20px;transition:transform .5s cubic-bezier(.3,1.35,.5,1),opacity .3s;position:fixed;top:50%;left:50%;transform:translate(-50%,-46%)scale(.92)}.card.show{opacity:1;pointer-events:auto;transform:translate(-50%,-50%)scale(1)}.card h2{letter-spacing:-.02em;margin:6px 0 8px;font-size:26px;font-weight:800;line-height:1.1}.card p{color:var(--muted);margin:0 0 18px}.card .msg{color:var(--ink);margin:6px 0 8px;font-size:19px;line-height:1.35}.card .from{margin-bottom:20px;font-size:14px}.card .row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.card .row.one{grid-template-columns:1fr}.box{width:64px;height:54px;margin:0 auto 4px;position:relative}.box i{border-radius:6px;position:absolute}.box .b1{background:var(--accent);height:30px;bottom:0;left:6px;right:6px}.box .b2{background:var(--gold);height:12px;top:12px;left:0;right:0}.box .b3{background:var(--gold);border-radius:2px;width:8px;top:12px;bottom:0;left:28px}.card.show .box{animation:1.8s ease-in-out .5s infinite wiggle}@keyframes wiggle{0%,60%,to{transform:rotate(0)}70%{transform:rotate(-6deg)}80%{transform:rotate(5deg)}90%{transform:rotate(-3deg)}}.scrim{background:var(--scrim);opacity:0;pointer-events:none;z-index:4;transition:opacity .3s;position:fixed;inset:0}.scrim.show{opacity:1;pointer-events:auto}.sheet{background:var(--surface);max-width:560px;max-height:82%;padding:10px 18px calc(22px + env(safe-area-inset-bottom,0px));z-index:5;border-radius:26px 26px 0 0;margin:0 auto;transition:transform .45s cubic-bezier(.2,.9,.25,1);position:fixed;bottom:0;left:0;right:0;overflow:auto;transform:translateY(105%)}.sheet.show{transform:translateY(0)}.grab{background:var(--line);border-radius:5px;width:42px;height:5px;margin:0 auto 12px}.sheet h3{letter-spacing:-.01em;margin:0 0 4px;font-size:21px;font-weight:800}.sheet .sub{color:var(--muted);margin:0 0 14px;font-size:14px}.inv{margin:0 0 16px;padding:0;list-style:none}.inv li{border-bottom:1px solid var(--line);grid-template-columns:40px 1fr auto;align-items:center;gap:12px;padding:9px 0;display:grid}.inv .piece{border-radius:4px;height:22px;margin-top:4px;position:relative;box-shadow:inset 0 -3px #00000024}.inv .piece:before{content:"";background:inherit;border-radius:2px 2px 0 0;height:4px;position:absolute;top:-4px;left:4px;right:4px;-webkit-mask:repeating-linear-gradient(90deg,#000 0 6px,#0000 6px 9px);mask:repeating-linear-gradient(90deg,#000 0 6px,#0000 6px 9px)}.inv .nm{font-weight:600}.inv .nm small{color:var(--muted);font-size:13px;font-weight:400;display:block}.inv .ct{font-variant-numeric:tabular-nums;font-size:17px;font-weight:800}.price{background:var(--surface2);border-radius:18px;padding:14px 16px}.price div{font-variant-numeric:tabular-nums;justify-content:space-between;gap:12px;padding:3px 0;display:flex}.price .tot{border-top:1px solid var(--line);margin-top:6px;padding-top:9px;font-size:18px;font-weight:800}.note{color:var(--muted);margin:10px 0 0;font-size:12.5px}label.f{margin:4px 0 6px;font-weight:600;display:block}.sheet textarea,.sheet input[type=text]{border:1.5px solid var(--line);background:var(--surface2);resize:none;border-radius:14px;width:100%;margin-bottom:12px;padding:11px 13px}.sheet .btn{width:100%}.sheet .btn+.btn{margin-top:8px}#ttlSeg{margin-bottom:14px}.linkbox{gap:8px;margin-bottom:6px;display:flex}.linkbox[hidden]{display:none}.sheet .linkbox input[type=text]{flex:1;min-width:0;margin:0;font-size:14px}.sheet .linkbox .btn{flex:none;width:auto}.note[hidden]{display:none}#linkNote{margin:0 0 12px}.swatches{flex-wrap:wrap;gap:8px;margin:0 0 16px;display:flex}.fonts{grid-template-columns:1fr 1fr;gap:8px;margin:0 0 16px;display:grid}.fontopt{border:1.5px solid var(--line);background:var(--surface);text-align:left;border-radius:16px;flex-direction:column;gap:3px;padding:10px 11px 11px;transition:border-color .2s,box-shadow .2s,transform .15s;display:flex}.fontopt:active{transform:scale(.97)}.fontopt[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.fontopt b{font-size:14px;font-weight:800}.fontopt small{color:var(--muted);font-size:12px;line-height:1.3}.fontopt .cost{font-variant-numeric:tabular-nums;margin-top:4px;font-size:13px;font-weight:700;transition:opacity .2s}.fontopt .cost.busy{opacity:.4}.fprev{width:100%;height:26px;color:var(--ink);margin-bottom:4px}.fprev rect{transform-box:fill-box;transform-origin:50%;animation:.35s cubic-bezier(.3,1.4,.5,1) both pop}.swatch{border:2px solid #0000;border-radius:10px;flex:none;width:34px;height:34px;padding:0;transition:transform .2s cubic-bezier(.3,1.5,.5,1),border-color .2s;box-shadow:inset 0 0 0 1px #00000026}.swatch:active{transform:scale(.9)}.swatch[aria-pressed=true]{border-color:var(--ink);transform:scale(1.1)}.swatch.rainbow{background:conic-gradient(#cf2a3b,#f5c21b,#2f9a4c,#1e5ed3,#7a4bb5,#cf2a3b)}.crow{border-bottom:1px solid var(--line);padding:10px 0}.crow .hd{align-items:center;gap:10px;margin-bottom:8px;font-weight:600;display:flex}.crow .hd small{color:var(--muted);margin-left:auto;font-weight:400}.crow .swatches{scrollbar-width:none;flex-wrap:nowrap;margin:0;padding:4px 2px;overflow-x:auto}.crow .swatches::-webkit-scrollbar{display:none}.crow .swatch{width:30px;height:30px}#colorSheet{max-height:58%}#catSheet{max-height:88%}.tabs{scrollbar-width:none;gap:6px;margin:0 -18px 6px;padding:2px 18px 6px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{border:1.5px solid var(--line);background:var(--surface);border-radius:999px;flex:none;padding:6px 12px;font-size:13px;font-weight:600;transition:background .2s,color .2s,border-color .2s}.tab[aria-pressed=true]{background:var(--ink);color:var(--surface);border-color:var(--ink)}.cathead{color:var(--muted);margin:14px 0 8px;font-size:13px;font-weight:600}.grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}@media (width>=520px){.grid{grid-template-columns:repeat(4,1fr)}}.item{background:var(--surface2);text-align:center;animation:.45s cubic-bezier(.3,1.4,.5,1) both pop;animation-delay:var(--d,0s);border:0;border-radius:18px;flex-direction:column;align-items:center;gap:2px;padding:6px 6px 10px;font-size:13px;font-weight:600;line-height:1.2;transition:transform .15s;display:flex}.item:active{transform:scale(.95)}.item[aria-current=true]{box-shadow:inset 0 0 0 2px var(--accent)}.item .th{aspect-ratio:1;place-items:center;width:100%;display:grid}.item img{object-fit:contain;opacity:0;width:94%;height:94%;transition:opacity .35s,transform .5s cubic-bezier(.3,1.4,.5,1);transform:scale(.8)translateY(6px)}.item img.in{opacity:1;transform:none}@keyframes pop{0%{opacity:0;transform:translateY(10px)scale(.94)}}#colorList{margin-bottom:14px}.toast{left:50%;top:calc(env(safe-area-inset-top,0px) + 70px);background:var(--ink);color:var(--surface);opacity:0;z-index:7;pointer-events:none;white-space:nowrap;border-radius:999px;padding:9px 16px;font-size:14px;font-weight:600;transition:opacity .3s,transform .4s cubic-bezier(.3,1.4,.5,1);position:fixed;transform:translate(-50%,-20px)}.toast.show{opacity:1;transform:translate(-50%)}.confetti{pointer-events:none;z-index:5;position:fixed;inset:0;overflow:hidden}.confetti span{border-radius:2px;width:16px;height:9px;animation:linear forwards fall;position:absolute;top:-30px}.confetti span:before{content:"";background:inherit;border-radius:1px;width:4px;height:3px;position:absolute;top:-3px;left:2px;box-shadow:8px 0}@keyframes fall{to{transform:translate(var(--dx),110vh) rotate(var(--r))}}.fail{text-align:center;color:var(--muted);place-items:center;padding:30px;display:grid;position:absolute;inset:0}.fail[hidden]{display:none}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-opsz-normal-D9N6E8K1.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-opsz-normal-IcJDqblK.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-opsz-normal-Cre6nC2_.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
