:root{--bg:#eeeee9;--bg-gradient:radial-gradient(circle at 50% 38%, #fff 0%, #ecece7 65%, #deded8 100%);--ink:#141416;--ink-dim:#1414168c;--ink-faint:#1414161a;--dock-bg:#ffffffc2;--dock-border:#ffffffa6;--panel-bg:#ffffffe0;--accent:#e50012;--radius-dock:22px;--font-ui:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Roboto, sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);background-image:var(--bg-gradient);width:100%;height:100%;color:var(--ink);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;overflow:hidden}.app{position:fixed;inset:0;overflow:hidden}.stage{touch-action:none;cursor:grab;position:absolute;inset:0}.stage:active{cursor:grabbing}.gl{width:100%;height:100%;display:block}.corner{top:max(20px, env(safe-area-inset-top));left:max(24px, env(safe-area-inset-left));pointer-events:none;z-index:10;flex-direction:column;gap:3px;display:flex;position:absolute}.brand{letter-spacing:-.02em;align-items:center;gap:6px;font-size:15px;font-weight:700;display:flex}.brand-mark{color:var(--accent);font-size:14px}.tag{color:var(--ink-dim);letter-spacing:.01em;font-size:11.5px;font-weight:450}.hint{left:50%;bottom:calc(max(24px, env(safe-area-inset-bottom)) + 78px);pointer-events:none;color:var(--ink-dim);letter-spacing:.02em;white-space:nowrap;-webkit-backdrop-filter:blur(10px);z-index:10;background:#ffffff73;border:1px solid #fff9;border-radius:20px;padding:4px 12px;font-size:12px;font-weight:500;transition:opacity .3s;position:absolute;transform:translate(-50%)}.dock{left:50%;bottom:max(24px, env(safe-area-inset-bottom));background:var(--dock-bg);border:1px solid var(--dock-border);-webkit-backdrop-filter:blur(24px);border-radius:var(--radius-dock);z-index:20;align-items:center;gap:8px;padding:6px 10px;display:flex;position:absolute;transform:translate(-50%);box-shadow:0 16px 36px -10px #0000001f,0 2px 8px #0000000a}.divider{background:var(--ink-faint);width:1px;height:24px;margin:0 2px}.tool{width:40px;height:40px;color:var(--ink);cursor:pointer;background:0 0;border:none;border-radius:50%;place-items:center;transition:background .2s,transform .15s,color .2s;display:grid}.tool:hover{background:#1414160f}.tool:active{transform:scale(.94)}.tool[aria-pressed=true]{background:var(--ink);color:#fff}.tool[aria-pressed=true] .ico-lid{transform-origin:10.6px 4.5px;transition:transform .3s;transform:rotate(-35deg)}.dot{border:2px solid #fff;border-radius:50%;width:18px;height:18px;display:block;box-shadow:0 1px 4px #00000040}.rail{align-items:center;gap:8px;display:flex}.thumb-btn{cursor:pointer;background:0 0;border:none;border-radius:10px;place-items:center;width:46px;height:46px;padding:4px;transition:background .2s;display:grid;position:relative}.thumb-btn:hover{background:#1414160d}.thumb-btn img{object-fit:cover;width:28px;height:38px;transform:rotate(var(--tilt)) scale(.92);border-radius:4px;transition:transform .4s cubic-bezier(.34,1.56,.64,1),box-shadow .3s;box-shadow:0 4px 8px #0003}.thumb-btn:hover img{transform:rotate(0)scale(1)translateY(-2px);box-shadow:0 8px 14px #00000040}.thumb-btn[data-active=true] img{transform:rotate(0)scale(1.08)translateY(-3px);box-shadow:0 10px 18px #0000004d}.thumb-btn .bar{background:var(--ink);opacity:0;border-radius:2px;width:14px;height:2.5px;transition:opacity .2s;position:absolute;bottom:0}.thumb-btn[data-active=true] .bar{opacity:1}.pop-anchor{position:relative}.popover{background:var(--dock-bg);border:1px solid var(--dock-border);-webkit-backdrop-filter:blur(20px);border-radius:24px;gap:8px;padding:8px 10px;display:flex;position:absolute;bottom:calc(100% + 12px);left:50%;transform:translate(-50%);box-shadow:0 12px 28px #00000026}.swatch{cursor:pointer;border:2px solid #fff;border-radius:50%;width:24px;height:24px;transition:transform .18s;box-shadow:0 2px 6px #00000026}.swatch:hover{transform:scale(1.18)}.panel{top:max(20px, env(safe-area-inset-top));right:max(20px, env(safe-area-inset-right));background:var(--panel-bg);-webkit-backdrop-filter:blur(24px);z-index:30;border:1px solid #fffc;border-radius:18px;width:min(340px,100vw - 40px);max-height:calc(100vh - 120px);padding:18px;animation:.3s cubic-bezier(.16,1,.3,1) slideIn;position:absolute;overflow-y:auto;box-shadow:0 20px 40px -12px #00000029}@keyframes slideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.panel-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.panel-head h2{letter-spacing:-.01em;font-size:15px;font-weight:700}.close{color:var(--ink-dim);cursor:pointer;background:0 0;border:none;border-radius:50%;place-items:center;padding:4px;display:grid}.close:hover{color:var(--ink)}.panel-body{flex-direction:column;gap:12px;display:flex}.field{color:var(--ink-dim);flex-direction:column;gap:5px;font-size:11.5px;font-weight:600;display:flex}.field input[type=text]{color:var(--ink);background:#ffffffb3;border:1px solid #1414161f;border-radius:8px;outline:none;padding:7px 10px;font-size:13px;transition:border-color .2s,background .2s}.field input[type=text]:focus{border-color:var(--ink);background:#fff}.check{color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:12px;display:flex}.uploads{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:4px;display:grid}.upload{cursor:pointer;flex-direction:column;align-items:center;gap:4px;display:flex}.upload input[type=file]{display:none}.upload .thumb{aspect-ratio:2/3;background:#ffffff80 50%/cover;border:1.5px dashed #14141633;border-radius:8px;width:100%;transition:border-color .2s,transform .2s}.upload:hover .thumb{border-color:var(--ink);transform:translateY(-2px)}.upload .cap{color:var(--ink-dim);font-size:11px;font-weight:500}.note{color:var(--ink-dim);font-size:10.5px;line-height:1.4}.swatches{gap:8px;margin-top:4px;display:flex}.ghost{color:var(--ink);cursor:pointer;background:0 0;border:1px solid #14141626;border-radius:8px;margin-top:4px;padding:8px;font-size:12px;font-weight:600;transition:background .2s}.ghost:hover{background:#1414160d}.loader{background:var(--bg);z-index:100;place-items:center;transition:opacity .5s;display:grid;position:absolute;inset:0}.loader.hide{opacity:0;pointer-events:none}.loader span{border:3px solid #1414161a;border-top-color:var(--ink);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.fail{color:#f33;font-size:14px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@media (max-width:640px){.corner{top:max(16px, env(safe-area-inset-top));left:max(16px, env(safe-area-inset-left))}.dock{bottom:max(16px, env(safe-area-inset-bottom));gap:4px;padding:5px 8px}.tool{width:36px;height:36px}.thumb-btn{width:38px;height:38px}.thumb-btn img{width:24px;height:32px}.hint{bottom:calc(max(16px, env(safe-area-inset-bottom)) + 68px);font-size:11px}.panel{top:auto;bottom:calc(max(16px, env(safe-area-inset-bottom)) + 68px);width:auto;max-height:60vh;left:16px;right:16px}}[hidden]{display:none!important}.stage{inset:78px 0 164px}.corner{top:28px;left:32px}.brand{letter-spacing:-.025em;font-size:14px}.tag{letter-spacing:.08em;text-transform:uppercase;margin-top:3px;font-size:10px}.hint{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0}.tool{width:44px;height:44px}.tool:focus-visible,.thumb-btn:focus-visible,.swatch:focus-visible,.ghost:focus-visible,.close:focus-visible{outline-offset:4px;outline:2px solid #3b6076}.swatch{width:30px;height:30px}.swatch[aria-pressed=true]{outline:1px solid var(--ink);outline-offset:3px}.popover{padding:14px;left:auto;right:-44px;transform:none}.upload{position:relative}.upload input[type=file]{opacity:0;width:1px;height:1px;display:block;position:absolute}.upload:focus-within .thumb{outline-offset:3px;outline:2px solid #3b6076}.upload .thumb{place-items:center;display:grid}.upload .thumb:empty:before{content:"+";color:#848a90;font-size:24px;font-weight:300}.upload .thumb.has-image:before{display:none}.status{color:#9e302c;min-height:15px;font-size:11px;line-height:1.5}.inspector{z-index:10;gap:8px;display:flex;position:absolute;bottom:144px;left:50%;transform:translate(-50%)}.inspector button{color:var(--ink);cursor:pointer;font:500 12px var(--font-ui);background:#fff;border:1px solid #d8d9d6;border-radius:20px;padding:10px 16px}.edition{letter-spacing:.13em;color:var(--ink-dim);text-align:right;pointer-events:none;font-size:10px;line-height:1.8;position:absolute;top:29px;right:32px}@media (max-width:640px){.stage{inset:78px 0 144px}.corner{top:22px;left:22px}.tag{font-size:8px}.edition{font-size:8px;top:24px;right:22px}.dock{gap:2px;max-width:calc(100vw - 20px);padding:6px}.tool{width:40px;height:44px}.rail{gap:2px}.thumb-btn{width:36px;height:44px}.divider{margin:0}.hint{font-size:10px;bottom:89px}.inspector{bottom:118px}.panel{max-height:calc(100dvh - 185px)}}@media (max-height:540px){.stage{inset:55px 0 126px}.hint{display:none}.dock{bottom:12px}.inspector{bottom:74px}.panel{max-height:calc(100dvh - 95px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.edition{max-width:32%}#edition-title{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.edition br,.status:empty{display:none}@media (max-width:360px){.tag{max-width:165px;line-height:1.6}.edition{font-size:7px}}.inspector button:disabled{opacity:.45;cursor:default}.inspector button:focus-visible{outline-offset:3px;outline:2px solid #3b6076}.app[data-customizing] .stage{right:380px}.panel-head{background:var(--panel-bg);z-index:1;padding:8px 0;position:sticky;top:-18px}.close{width:36px;height:36px}.panel{overscroll-behavior:contain;scrollbar-width:thin}.inspector button{min-height:44px}#btn-flip{background:0 0}@media (max-width:640px){.app[data-customizing] .stage{bottom:calc(46dvh + 102px);right:0}.app[data-customizing] .inspector,.app[data-customizing] .hint{visibility:hidden}.panel{max-height:46dvh}.field input[type=text]{font-size:16px}.swatch{width:36px;height:36px}.inspector{white-space:nowrap;gap:6px}.inspector button{padding:8px 12px}}@media (max-height:540px) and (min-width:641px){.app[data-customizing] .stage{right:360px}.panel{width:320px}}@media (max-height:540px) and (min-width:480px) and (max-width:640px){.app[data-customizing] .stage{bottom:126px;right:calc(52vw + 32px)}.panel{width:52vw;max-height:calc(100dvh - 90px);top:12px;bottom:auto;left:auto}}
