:root{--ground:#d9dcd5;--ink:#1f2531;--ink-soft:#5b6270;--wood:#b98a57;--wood-dark:#8e6537;--shelf-back:#efe6d6;--whistle:#f2c230;--whistle-ink:#2a2206;--paper:#fbfaf6;--line:#dedbd2;--danger:#b4321f;--scrim:#1f253159}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ground:#2b3036;--ink:#eef0f2;--ink-soft:#a6adb8;--shelf-back:#2a2724;--paper:#1f2329;--line:#3a4048;--scrim:#00000080}}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--ground);color:var(--ink);-webkit-tap-highlight-color:transparent;font-family:Gothic A1,system-ui,sans-serif;overflow:hidden}button{font-family:inherit}button:focus-visible,input:focus{outline:3px solid var(--whistle);outline-offset:2px}canvas#plaza{touch-action:manipulation;width:100%;height:100%;position:fixed;inset:0}.top{z-index:5;padding:max(12px, env(safe-area-inset-top)) 16px 0;pointer-events:none;align-items:flex-start;gap:8px;display:flex;position:fixed;top:0;left:0;right:0}.top>*{pointer-events:auto}.icon-btn{border:1px solid var(--line);background:var(--paper);min-width:42px;height:42px;color:var(--ink);cursor:pointer;border-radius:12px;flex:none;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:14px;font-weight:600;display:inline-flex}.menu-icon{flex-direction:column;justify-content:space-between;width:18px;height:14px;display:flex}.menu-icon i{background:currentColor;border-radius:1px;height:2px;display:block}.title-block{background:color-mix(in srgb, var(--paper) 82%, transparent);border-radius:12px;flex:0 auto;align-self:flex-start;min-width:0;max-width:max-content;padding:4px 10px 5px}.title-block h1{white-space:nowrap;margin:0;font-size:18px;font-weight:800;line-height:1.2}.title-block p{color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;margin:2px 0 0;font-size:12px;overflow:hidden}.spacer{flex:1}.points-pill{background:var(--whistle);color:var(--whistle-ink);border-color:#0000}.points-pill b{font-weight:800}.filter-dot{background:var(--danger);border-radius:50%;width:7px;height:7px;display:none}.filter-dot.on{display:inline-block}.truck{z-index:4;left:12px;top:calc(max(12px, env(safe-area-inset-top)) + 64px);filter:drop-shadow(0 2px #00000026);cursor:pointer;align-items:flex-end;width:min(360px,100% - 24px);display:none;position:fixed}.truck.show{animation:.9s ease-out drive-in;display:flex}@keyframes drive-in{0%{transform:translate(-110%)}to{transform:none}}.truck .box{background:#2b2f38;border-radius:6px 2px 2px 6px;flex:1;min-width:0;height:58px;padding:5px;position:relative}.truck .panel{border-radius:3px;align-items:center;height:100%;display:flex;overflow:hidden}.truck .panel .track{white-space:nowrap;animation:marquee var(--dur,12s) linear infinite;font-size:26px;line-height:1;display:flex}.truck .panel .track span{padding-right:0}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.truck .cab{background:#e2513b;border-radius:4px 14px 4px 4px;flex:none;width:54px;height:44px;position:relative}.truck .cab:before{content:"";background:#bfe3f7;border-radius:2px 8px 2px 2px;width:18px;height:14px;position:absolute;top:6px;right:6px}.truck .wheel{background:#1f2531;border:3px solid #8f96a3;border-radius:50%;width:16px;height:16px;position:absolute;bottom:-8px}.truck .meta{color:var(--ink);background:var(--paper);border:1px solid var(--line);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;position:absolute;bottom:-26px;left:6px}@media (prefers-reduced-motion:reduce){.truck.show,.truck .panel .track{animation:none}}.feed{z-index:6;right:12px;bottom:max(12px, env(safe-area-inset-bottom));color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#14181fc7;border-radius:16px;flex-direction:column;width:min(320px,100% - 24px);display:none;position:fixed;overflow:hidden}.feed.show{display:flex}.feed-head{align-items:center;gap:10px;padding:10px 10px 8px 12px;display:flex}.feed-sign{white-space:nowrap;text-overflow:ellipsis;border-radius:3px;flex:1;min-width:0;padding:4px 8px;font-size:20px;line-height:1.05;overflow:hidden}.feed-sign .feed-track{display:inline-flex}.feed-sign.scroll{text-overflow:clip}.feed-sign.scroll .feed-track{animation:marquee var(--dur,10s) linear infinite}.feed-sign.scroll .feed-track span{padding-right:2em}.feed-head .live{background:#e2513b;border-radius:4px;padding:2px 6px;font-size:11px;font-weight:800}.feed-head .x{color:#fff;cursor:pointer;background:0 0;border:0;padding:2px 4px;font-size:20px}.feed-list{flex-direction:column;justify-content:flex-end;gap:6px;height:190px;margin:0;padding:0 12px;list-style:none;display:flex;overflow:hidden;-webkit-mask-image:linear-gradient(#0000,#000 45%);mask-image:linear-gradient(#0000,#000 45%)}.feed-list li{font-size:14px;line-height:1.4;animation:.3s ease-out rise}.feed-list li b{color:#c9ced8;margin-right:6px;font-weight:600}.feed-list li i{vertical-align:1px;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.feed-list li.me b{color:var(--whistle)}.feed-list li[role=button]{cursor:pointer}.agree-note{text-align:center}.agree-note a{color:inherit}.cta.danger{color:#fff;background:#c62f22}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.feed-foot{color:#c9ced8;align-items:center;gap:8px;padding:10px 12px 12px;font-size:12px;display:flex}.feed-foot span{flex:1}.feed-foot .cta{box-shadow:none;padding:9px 14px;font-size:13px}@media (width<=640px){.feed{background:#14181f9e;width:min(300px,78vw)}.feed-list{height:140px}.feed-list li{font-size:13px}}@media (prefers-reduced-motion:reduce){.feed-list li{animation:none}}.cta{background:var(--whistle);color:var(--whistle-ink);cursor:pointer;white-space:nowrap;border:0;border-radius:999px;padding:15px 24px;font:800 16px Gothic A1,sans-serif;box-shadow:0 3px #c99c14}.cta:active{transform:translateY(2px);box-shadow:0 1px #c99c14}.cta[disabled]{opacity:.55;cursor:default;box-shadow:none}.drawer{z-index:20;background:var(--paper);width:min(300px,84vw);padding:max(20px, env(safe-area-inset-top)) 12px 20px;transition:transform .22s;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-102%)}.drawer.show{transform:none}.drawer .brand{padding:4px 12px 10px;font-family:Nanum Pen Script,cursive;font-size:30px;line-height:1}.account{background:var(--ground);border-radius:12px;margin:0 12px 14px;padding:12px;font-size:13px;line-height:1.5}.account b{font-size:15px}.account .cta{width:100%;box-shadow:none;margin-top:8px;padding:11px;font-size:14px}.account .logout{color:var(--ink-soft);cursor:pointer;background:0 0;border:0;margin-top:6px;padding:4px 0;font-size:13px;text-decoration:underline;display:block}.or{color:var(--ink-soft);align-items:center;gap:10px;margin:6px 0 14px;font-size:13px;display:flex}.or:before,.or:after{content:"";background:var(--line);flex:1;height:1px}.agree{border:1px solid var(--line);border-radius:12px;margin-bottom:16px;padding:6px 14px}.agree label{cursor:pointer;align-items:center;gap:10px;padding:9px 0;font-size:14px;display:flex}.agree label.all{border-bottom:1px solid var(--line);font-weight:800}.agree input{accent-color:#c99c14;flex:none;width:20px;height:20px}.agree a{color:var(--ink-soft);margin-left:auto;font-size:12px}.drawer nav{flex-direction:column;gap:2px;display:flex}.drawer nav button{text-align:left;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:12px;justify-content:space-between;align-items:center;padding:13px 12px;font-size:16px;font-weight:600;display:flex}.drawer nav button span{color:var(--ink-soft);font-size:13px;font-weight:400}.drawer nav button[aria-current=page]{background:var(--ground)}.drawer .actions{flex-direction:column;gap:8px;margin:14px 12px 0;display:flex}.drawer .actions .cta,.drawer .actions .ghost{width:100%;padding:13px;font-size:15px}.drawer .mock{border-top:1px dashed var(--line);color:var(--ink-soft);flex-direction:column;gap:8px;margin-top:24px;padding:12px;font-size:12px;display:flex}.drawer .mock button{border:1px dashed var(--ink-soft);color:var(--ink-soft);cursor:pointer;text-align:left;background:0 0;border-radius:8px;padding:8px 10px;font-size:13px}.page{padding:calc(max(12px, env(safe-area-inset-top)) + 66px) 16px 40px;background:var(--ground);display:none;position:fixed;inset:0;overflow-y:auto}.page.show{display:block}.page-inner{max-width:560px;margin:0 auto}.board{text-align:center;word-break:keep-all;border:1.5px solid #0000002e;border-radius:2px;place-items:center;line-height:1.05;display:grid;overflow:hidden}.shelf-case{background:var(--shelf-back);border:10px solid var(--wood);box-shadow:inset 0 0 0 2px var(--wood-dark);border-radius:6px}.shelf{border-bottom:12px solid var(--wood);grid-template-columns:repeat(4,1fr);align-items:end;gap:10px;min-height:170px;padding:18px 12px 0;display:grid;position:relative}.shelf:last-child{border-bottom-width:0;padding-bottom:12px}.shelf:after{content:"";background:var(--wood-dark);height:4px;position:absolute;bottom:-12px;left:0;right:0}.shelf:last-child:after{display:none}.picket{cursor:pointer;transform-origin:bottom;color:var(--ink);background:0 0;border:0;flex-direction:column;align-items:center;padding:0;display:flex}.picket .board{aspect-ratio:3/4;width:100%;padding:8px 6px;font-size:19px}.picket .stick{background:#8b6b3e;width:5px;height:26px}.picket .count{color:var(--ink-soft);margin:4px 0 6px;font-size:11px;font-weight:600}.picket.empty .board{border:1.5px dashed var(--wood-dark);color:var(--wood-dark);background:0 0;font-family:Gothic A1;font-size:13px;font-weight:600}.note{color:var(--ink-soft);margin:14px 2px 0;font-size:13px;line-height:1.5}#podium{width:100%;height:250px;display:block}.rank-list{margin:8px 0 0;padding:0;list-style:none}.rank-list li+li{border-top:1px solid var(--line)}.rank-list button{width:100%;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:12px;padding:12px 4px;display:flex}.rank-list .no{border:1.5px solid var(--ink);border-radius:8px;flex:none;place-items:center;width:30px;height:30px;font-size:14px;font-weight:800;display:grid}.rank-list .t{flex:1;min-width:0;font-family:Nanum Pen Script,cursive;font-size:24px;line-height:1.1}.rank-list .cat{color:var(--ink-soft);border:1px solid var(--line);white-space:nowrap;border-radius:999px;padding:2px 7px;font-size:11px}.rank-list .c{color:var(--ink-soft);white-space:nowrap;font-size:13px}.rank-list .up{color:#c2410c;margin-left:4px;font-size:12px;font-weight:600}.top3{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:2px;display:grid}.top3 button{color:var(--ink);cursor:pointer;text-align:center;word-break:keep-all;background:0 0;border:0;padding:4px 2px;font-family:Nanum Pen Script,cursive;font-size:21px;line-height:1.05}.top3 button span{color:var(--ink-soft);margin-top:3px;font-family:Gothic A1;font-size:12px;display:block}.balance{background:var(--paper);border:1px solid var(--line);border-radius:18px;align-items:center;gap:14px;padding:18px;display:flex}.balance .num{flex:1;font-size:30px;font-weight:800}.balance .num small{color:var(--ink-soft);margin-bottom:2px;font-size:13px;font-weight:400;display:block}.balance .cta{padding:12px 16px;font-size:14px}.section-title{margin:26px 2px 10px;font-size:15px;font-weight:800}.earn{background:var(--paper);border:1px solid var(--line);border-radius:14px;margin:0;padding:0;list-style:none}.earn li{justify-content:space-between;gap:12px;padding:13px 14px;font-size:14px;display:flex}.earn li+li{border-top:1px solid var(--line)}.earn li b{white-space:nowrap}.earn li .plus{color:#2f7d46}.earn li .minus{color:var(--danger)}.toast{left:50%;top:max(16px, env(safe-area-inset-top));z-index:40;background:var(--ink);color:var(--paper);text-align:center;border-radius:999px;max-width:calc(100% - 32px);padding:10px 16px;font-size:14px;transition:transform .2s;position:fixed;transform:translate(-50%,calc(-100% - 80px))}.toast.show{transform:translate(-50%)}.scrim{z-index:15;background:var(--scrim);opacity:0;pointer-events:none;transition:opacity .2s;position:fixed;inset:0}.scrim.show{opacity:1;pointer-events:auto}.sheet{z-index:30;background:var(--paper);width:min(480px,100%);padding:10px 20px max(20px, env(safe-area-inset-bottom));border-radius:22px 22px 0 0;max-height:90vh;transition:transform .25s;position:fixed;bottom:0;left:50%;overflow-y:auto;transform:translate(-50%,105%)}.sheet.show{transform:translate(-50%)}.sheet .grab{background:var(--line);border-radius:2px;width:40px;height:4px;margin:0 auto 14px}.sheet h2{margin:0 0 4px;font-size:20px;font-weight:800}.sheet h3{margin:22px 0 4px;font-size:16px;font-weight:800}.sheet .sub{color:var(--ink-soft);margin:0 0 16px;font-size:14px;line-height:1.5}.field{margin-bottom:18px}.field>label,.field>.label{justify-content:space-between;margin-bottom:8px;font-size:14px;font-weight:600;display:flex}.field>label span,.field>.label span{color:var(--ink-soft);font-weight:400}.field input[type=text],.field input[type=password]{width:100%;color:var(--ink);border:1px solid var(--line);background:0 0;border-radius:12px;padding:13px 14px;font:400 16px Gothic A1,sans-serif}.hint{color:var(--ink-soft);margin-top:6px;font-size:12px;line-height:1.5}.error{color:var(--danger);min-height:18px;margin-top:6px;font-size:13px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chips button{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:0 0;border-radius:999px;padding:7px 13px;font-size:14px}.chips button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.font-chips button{padding:4px 13px;font-size:20px}.swatches{flex-wrap:wrap;gap:8px;display:flex}.swatches button{cursor:pointer;width:30px;height:30px;box-shadow:inset 0 0 0 2px var(--paper), 0 0 0 1px var(--line);border:2px solid #0000;border-radius:50%}.swatches button[aria-pressed=true]{border-color:var(--ink)}.sign-preview{background:var(--ground);border-radius:16px;flex-direction:column;align-items:center;margin-bottom:14px;padding:16px;display:flex}.sign-preview .board{width:220px;min-height:96px;padding:10px 12px;font-size:30px}.sign-preview .stick{background:#8b6b3e;width:6px;height:34px}.look{align-items:center;gap:16px;margin-bottom:18px;display:flex}.look canvas{background:var(--ground);border-radius:16px;flex:none;width:96px;height:120px}.look-opts{flex-direction:column;flex:1;gap:12px;display:flex}.sheet .cta.block{width:100%}.row{gap:10px;display:flex}.row>button{white-space:nowrap;flex:1;padding-left:12px;padding-right:12px}.ghost{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:0 0;border-radius:999px;padding:14px;font-size:15px;font-weight:600}.quiet{width:100%;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;margin-top:6px;padding:12px;font-size:14px}.link-box{border:1px dashed var(--ink-soft);word-break:break-all;border-radius:12px;margin-bottom:14px;padding:12px 14px;font-size:15px}.reasons{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.reasons button{text-align:left;border:1px solid var(--line);color:var(--ink);cursor:pointer;background:0 0;border-radius:12px;padding:13px 14px;font-size:15px}.themes{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.themes button{color:var(--ink);cursor:pointer;background:0 0;border:2px solid #0000;border-radius:12px;padding:3px;font-size:12px;font-weight:600}.themes button canvas{aspect-ratio:4/3;border-radius:9px;width:100%;margin-bottom:4px;display:block}.themes button[aria-pressed=true]{border-color:var(--ink)}@media (width<=400px){.themes{grid-template-columns:repeat(3,1fr)}}.cat-rows{margin:0 0 12px;padding:0;list-style:none}.cat-rows li{justify-content:space-between;align-items:center;padding:10px 2px;font-size:16px;display:flex}.cat-rows li+li{border-top:1px solid var(--line)}.cat-rows small{color:var(--ink-soft);margin-top:2px;font-size:12px;display:block}.switch{background:var(--line);cursor:pointer;border:0;border-radius:999px;flex:none;width:50px;height:30px;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #0003}.switch[aria-checked=true]{background:#3f9a5b}.switch[aria-checked=true]:after{transform:translate(20px)}.pick-list{flex-direction:column;gap:8px;margin-bottom:18px;display:flex}.pick-list button{border:1px solid var(--line);color:var(--ink);cursor:pointer;text-align:left;background:0 0;border-radius:12px;align-items:center;gap:10px;padding:8px 12px;display:flex}.pick-list button[aria-pressed=true]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.pick-list .board{flex:none;width:84px;height:40px;padding:2px 4px;font-size:15px}.pick-list span{color:var(--ink-soft);font-size:13px}input[type=range]{accent-color:#c99c14;width:100%}.truck-calc{justify-content:space-between;margin:6px 0 4px;font-size:14px;display:flex}.truck-calc b{font-size:22px}.led-preview{background:#2b2f38;border-radius:6px;margin-top:8px;padding:5px;overflow:hidden}.led-preview div{white-space:nowrap;text-overflow:ellipsis;border-radius:3px;padding:6px 8px;font-size:22px;overflow:hidden}.badge{background:var(--whistle);color:var(--whistle-ink);border-radius:999px;margin-bottom:8px;padding:3px 9px;font-size:12px;font-weight:600;display:inline-block}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){.sheet,.scrim,.toast,.drawer,.switch:after{transition:none}}
