*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #101013;--panel: #1b1b20;--panel-2: #232329;--line: #34343c;--text: #e8e6df;--text-dim: #8f8f98;--accent: #ff5c1f;--mono: "SF Mono", "Fira Code", "JetBrains Mono", ui-monospace, Menlo, monospace}html,body{height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--mono);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input{-webkit-user-select:text;user-select:text}html,body,#hud,.modal-wrap,#boot{touch-action:manipulation}html,body{overscroll-behavior:none}button{touch-action:manipulation}@media(pointer:coarse){input{font-size:16px!important}}#wall{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;touch-action:none;-webkit-user-select:none;user-select:none}#vignette{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.55) 100%)}#hud{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none}#hud>*{pointer-events:auto}#topbar{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:14px 18px;pointer-events:none}#topbar>*{pointer-events:auto}.logo{font-size:15px;font-weight:700;letter-spacing:2px;text-shadow:0 2px 8px rgba(0,0,0,.8);-webkit-user-select:none;user-select:none}.logo span{color:#ffd23f}.chips{display:flex;gap:8px;align-items:center}.chip{background:#141418d9;border:1px solid var(--line);border-radius:999px;padding:7px 14px;font-size:11px;letter-spacing:1px;color:var(--text);font-family:var(--mono);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);white-space:nowrap;-webkit-user-select:none;user-select:none}button.chip{cursor:pointer}button.chip:hover{border-color:var(--accent)}.chip-credits .dot,.pill .dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);margin-right:7px;vertical-align:1px}.chip-credits .plus{color:var(--accent);font-weight:700;margin-left:6px}.hint{position:absolute;top:60px;left:50%;transform:translate(-50%);font-size:11px;letter-spacing:1px;color:var(--text-dim);background:#101013b3;padding:6px 14px;border-radius:999px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:opacity .3s;white-space:nowrap;-webkit-user-select:none;user-select:none}.hint:empty{opacity:0}.bar{position:absolute;bottom:20px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;background:#141418eb;border:1px solid var(--line);border-radius:14px;padding:10px 14px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 8px 32px #00000080;max-width:calc(100vw - 24px);flex-wrap:wrap;justify-content:center}.bar.hidden{display:none}.bar-label{font-size:11px;letter-spacing:.5px;color:var(--text-dim)}.group{display:flex;gap:6px;align-items:center}.sep{width:1px;height:24px;background:var(--line)}.tool,.size{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:var(--panel-2);color:var(--text-dim);border:1px solid transparent;border-radius:9px;cursor:pointer;font-family:var(--mono);font-size:12px;font-weight:700}.tool:hover,.size:hover{color:var(--text)}.shape-glyph{font-size:15px}.tool.active,.size.active{color:var(--accent);border-color:var(--accent);background:#ff5c1f14}.swatch{width:22px;height:22px;border-radius:6px;border:2px solid transparent;cursor:pointer;padding:0}.swatch.active{border-color:#fff;transform:scale(1.15)}.swatch:hover{transform:scale(1.15)}.primary{background:var(--accent);color:#1a0d05;border:none;border-radius:9px;padding:9px 16px;font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:1px;cursor:pointer}.primary:hover:not(:disabled){filter:brightness(1.1)}.primary:disabled{opacity:.35;cursor:not-allowed}.primary.big{width:100%;padding:13px;font-size:13px;margin-top:16px}.ghost-btn{background:transparent;color:var(--text-dim);border:1px solid var(--line);border-radius:9px;padding:8px 12px;font-family:var(--mono);font-size:11px;letter-spacing:1px;cursor:pointer}.ghost-btn:hover{color:var(--text);border-color:var(--text-dim)}#textbar,#stickerbar{bottom:84px}#text-input{width:min(260px,50vw);background:var(--panel-2);border:1px solid var(--line);border-radius:9px;color:var(--text);font-family:"Permanent Marker",var(--mono);font-size:15px;padding:8px 12px;outline:none}#text-input:focus{border-color:var(--accent)}#zoomctl{position:absolute;right:14px;bottom:20px;display:flex;flex-direction:column;gap:6px}#zoomctl button{width:40px;height:34px;background:#141418e6;border:1px solid var(--line);border-radius:9px;color:var(--text);font-family:var(--mono);font-size:13px;font-weight:700;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}#zoomctl button:hover{border-color:var(--accent);color:var(--accent)}#btn-fit,#btn-mytags{font-size:8px!important;letter-spacing:.5px}#music{font-size:15px!important;color:var(--text-dim);position:relative;overflow:hidden}#music:before{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;border-radius:50%;background:conic-gradient(from 0deg,transparent 0 30deg,rgba(255,92,31,.55) 30deg 42deg,transparent 42deg),radial-gradient(circle,var(--accent) 0 2px,transparent 2px),repeating-radial-gradient(circle,#191920 0,#191920 1.5px,#24242b 1.5px,#24242b 3px);opacity:0;transition:opacity .3s}#music.on{color:#fff;border-color:#ff5c1f66}#music.on:before{opacity:1;animation:vinyl-spin 1.8s linear infinite}#music span,#music{z-index:1}@keyframes vinyl-spin{to{transform:rotate(360deg)}}#ticker{position:absolute;bottom:58px;left:18px;font-size:10px;letter-spacing:.5px;color:var(--text-dim);background:#101013bf;padding:6px 12px;border-radius:999px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:opacity .5s;pointer-events:none;max-width:44vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#ticker.hidden{opacity:0}#ticker b{color:var(--text);font-weight:700}#tagcard{position:absolute;z-index:20;background:#121216f5;border:1px solid var(--line);border-radius:12px;padding:10px 12px;min-width:150px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 8px 28px #0000008c}#tagcard.hidden{display:none}#tagcard-name{font-family:"Permanent Marker",var(--mono);font-size:16px;margin-bottom:2px}#tagcard-time{font-size:10px;color:var(--text-dim);margin-bottom:8px}.tagcard-actions{display:flex;gap:6px}.tagcard-actions .ghost-btn{padding:5px 9px;font-size:9px}.restyle-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}.restyle-opt{background:var(--panel-2);border:1px solid var(--line);border-radius:12px;color:var(--text);font-family:var(--mono);padding:14px 10px;cursor:pointer;text-align:center}.restyle-opt:hover{border-color:var(--accent)}.restyle-opt b{display:block;font-family:"Permanent Marker",var(--mono);font-size:16px;margin-bottom:4px}.restyle-opt span{font-size:9px;color:var(--text-dim);letter-spacing:.5px}.restyle-btn{color:var(--accent);border-color:#ff5c1f59}.timer{color:var(--text-dim);min-width:44px;text-align:center}.timer.low{color:#ff4b3e}.swatch[data-dark=true]{border:2px solid var(--line)}.swatch.active[data-dark=true]{border-color:#fff}.hint.muted{opacity:0}.mobile-only{display:none}.primary.confirming,.ghost-btn.confirming{background:#ff4b3e;color:#fff;border-color:#ff4b3e}.pill{position:absolute;bottom:20px;left:18px;background:#141418d9;border:1px solid var(--line);border-radius:999px;padding:8px 14px;font-family:var(--mono);font-size:11px;color:var(--text);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.pill.off .dot{background:var(--text-dim)}.pill:hover{border-color:var(--accent)}.linklike{background:none;border:none;color:var(--text-dim);font-family:var(--mono);font-size:10px;letter-spacing:.5px;text-decoration:underline;cursor:pointer;margin-top:14px}.linklike:hover{color:var(--accent)}#restore-row{display:flex;gap:8px;margin-top:14px}#restore-row.hidden{display:none}#key-input{flex:1;min-width:0;background:var(--panel-2);border:1px solid var(--line);border-radius:9px;color:var(--text);font-family:var(--mono);font-size:11px;padding:10px;outline:none}.keyline{width:100%;margin-bottom:8px}.toast{position:absolute;top:100px;z-index:130;pointer-events:none;left:50%;transform:translate(-50%);background:var(--accent);color:#1a0d05;font-size:12px;font-weight:700;letter-spacing:1.5px;padding:10px 22px;border-radius:999px;box-shadow:0 8px 32px #ff5c1f59;transition:opacity .4s,transform .4s;white-space:nowrap}.toast.hidden{opacity:0;transform:translate(-50%) translateY(-8px);pointer-events:none}.modal-wrap{position:fixed;top:0;right:0;bottom:0;left:0;background:#08080abf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:50}.modal-wrap.hidden{display:none}.modal{width:min(400px,calc(100vw - 32px));background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:28px;text-align:center}.modal-title{font-family:"Permanent Marker",var(--mono);font-size:24px;letter-spacing:2px;margin-bottom:10px;transform:rotate(-2deg)}.modal-sub{font-size:12px;line-height:1.6;color:var(--text-dim);margin-bottom:20px}.modal-sub em{color:var(--text);font-style:normal}#name-input{width:100%;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;color:var(--text);font-family:var(--mono);font-size:16px;font-weight:700;letter-spacing:2px;text-align:center;text-transform:uppercase;padding:12px;outline:none}#name-input:focus{border-color:var(--accent)}.swatches{display:flex;gap:8px;justify-content:center;margin-top:16px;flex-wrap:wrap}.swatches .swatch{width:30px;height:30px;border-radius:8px}#chip-conn.live{color:#3ddc67;border-color:#3ddc6766}#chip-conn.reconnecting{color:#ffd23f;border-color:#ffd23f66}.daily-btn{width:100%;margin-bottom:10px;padding:11px;color:#3ddc67;border-color:#3ddc6759}.daily-btn:disabled{color:var(--text-dim);border-color:var(--line);cursor:default}@keyframes pulse-dot{0%,to{box-shadow:0 0 #3ddc6799}50%{box-shadow:0 0 0 5px #3ddc6700}}.chip-credits.daily-ready .dot{background:#3ddc67;animation:pulse-dot 1.6s infinite}#tagcard-name .check{color:#3ddc67;margin-left:4px;font-family:var(--mono);font-size:13px}.plinth{position:relative;width:300px;max-width:100%;margin:6px auto 18px;padding:20px 52px 20px 16px;background:linear-gradient(160deg,#202024,#161619);border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 36px #0000008c,inset 0 1px #ffffff0a}.plinth-light{position:absolute;right:14px;bottom:12px;width:8px;height:8px;border-radius:50%;background:#3a3a42;transition:background .3s,box-shadow .3s}.plinth-light.on{background:#3ddc67;box-shadow:0 0 10px #3ddc67cc}.tonearm{position:absolute;top:8px;right:10px;width:40px;height:150px;transform-origin:20px 20px;transform:rotate(-24deg);transition:transform .7s cubic-bezier(.4,0,.2,1);z-index:4;pointer-events:none}.tonearm.on{transform:rotate(6deg)}.tonearm-pivot{position:absolute;top:6px;left:6px;width:28px;height:28px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#4a4a52,#232328);border:2px solid #0d0d10}.tonearm-rod{position:absolute;top:30px;left:18px;width:4px;height:96px;background:linear-gradient(90deg,#55555e,#2e2e34);border-radius:2px}.tonearm-head{position:absolute;top:124px;left:12px;width:16px;height:22px;background:linear-gradient(180deg,#3a3a41,#1c1c21);border:1px solid #0d0d10;border-radius:3px 3px 5px 5px}.deck-wrap{position:relative;width:232px;height:232px;margin:0}.deck-needle{position:absolute;top:-6px;left:50%;transform:translate(-50%);width:0;height:0;border-left:9px solid transparent;border-right:9px solid transparent;border-top:16px solid var(--accent);z-index:3;filter:drop-shadow(0 2px 4px rgba(0,0,0,.6))}.deck{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:5px solid #050507;box-shadow:0 8px 30px #000000b3,inset 0 0 26px #000000d9;background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.07),transparent 45%),repeating-radial-gradient(circle at center,#0000008c 0,#0000008c 2px,#ffffff09 2px,#ffffff09 3px),conic-gradient(#1d1d22,#1d1d22 45deg,#2b1a22 45deg,#2b1a22 90deg,#1d1d22 90deg,#1d1d22 135deg,#17262a 135deg,#17262a 180deg,#1d1d22 180deg,#1d1d22 225deg,#211a2b 225deg,#211a2b 270deg,#292214 270deg,#292214 315deg,#2e1720 315deg,#2e1720 360deg);transition:transform 3.2s cubic-bezier(.12,.82,.16,1);will-change:transform}.deck-label{position:absolute;top:0;right:0;bottom:0;left:0}.deck-label span{position:absolute;left:50%;top:50%;font-family:var(--mono);font-size:15px;font-weight:700;color:var(--text)}.deck-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:74px;height:74px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#ff7c42,var(--accent) 60%);color:#1a0d05;font-family:"Permanent Marker",var(--mono);font-size:15px;line-height:1.1;display:flex;align-items:center;justify-content:center;text-align:center;box-shadow:inset 0 0 0 3px #00000040,0 0 12px #00000080}.deck-center .spindle{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:7px;height:7px;border-radius:50%;background:#0c0c0f;box-shadow:inset 0 1px 2px #ffffff40}#inkcans{gap:4px}.inkcan{width:22px;height:40px;background:none;border:none;cursor:pointer;position:relative;padding:0;display:flex;flex-direction:column;align-items:center;gap:3px}.inkcan img{width:100%;height:34px;object-fit:contain;filter:drop-shadow(0 2px 3px rgba(0,0,0,.5));pointer-events:none}.inkcan .ink-ring{width:16px;height:3px;border-radius:2px;pointer-events:none}.inkcan.active{border-color:#fff}.inkcan:hover{transform:translateY(-2px)}.inkcan.shop-open{background:var(--panel-2);color:var(--text-dim);font-size:14px;font-weight:700;font-family:var(--mono)}.inkcan.shop-open:hover{color:var(--accent)}#ink-list{max-height:52vh;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-right:4px;scrollbar-width:thin;scrollbar-color:#45454e transparent}#ink-list::-webkit-scrollbar{width:6px}#ink-list::-webkit-scrollbar-thumb{background:#45454e;border-radius:3px}.ink-row{display:flex;align-items:center;gap:12px;background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:8px}.ink-row .strip{display:flex;width:96px;height:30px;border-radius:6px;overflow:hidden;flex-shrink:0}.ink-row .strip i{flex:1}.ink-row .meta{flex:1;text-align:left;min-width:0}.ink-row .meta b{display:block;font-size:12px;letter-spacing:1px}.ink-row .meta span{font-size:9px;color:var(--text-dim);letter-spacing:.5px}.ink-row .ghost-btn{flex-shrink:0}.ink-row .owned{color:#3ddc67;border-color:#3ddc6759}.sticker-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px;max-height:320px;overflow-y:auto}.sticker-cell{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:8px;display:flex;flex-direction:column;gap:6px;align-items:center}.sticker-cell canvas{image-rendering:pixelated;max-width:84px;max-height:64px;background:#101014;border-radius:4px}.sticker-cell .row{display:flex;gap:4px}.sticker-cell .ghost-btn{padding:4px 8px;font-size:9px}.sticker-grid .empty{grid-column:1 / -1;color:var(--text-dim);font-size:11px;padding:18px 0}.coupon-row{display:flex;gap:8px;margin-bottom:8px}#coupon-input{flex:1;min-width:0;background:var(--panel-2);border:1px solid var(--line);border-radius:9px;color:var(--text);font-family:var(--mono);font-size:12px;letter-spacing:1.5px;text-transform:uppercase;text-align:center;padding:10px;outline:none}#coupon-input:focus{border-color:var(--accent)}.coupon-note{font-size:10px;color:var(--text-dim);margin-bottom:16px}.credit-options{display:flex;gap:10px;margin-bottom:16px}.credit-opt{flex:1;background:var(--panel-2);border:1px solid var(--line);border-radius:12px;color:var(--text);font-family:var(--mono);padding:14px 6px;cursor:pointer;display:flex;flex-direction:column;gap:4px;align-items:center}.credit-opt:hover{border-color:var(--accent)}.credit-opt b{font-size:22px;color:var(--accent)}.credit-opt span{font-size:9px;letter-spacing:1px;color:var(--text-dim)}.credit-opt .price{color:var(--text);font-size:11px}@media(max-width:720px){#topbar{padding:calc(8px + env(safe-area-inset-top)) 10px 8px;flex-direction:column;align-items:stretch;gap:6px}.logo{font-size:11px;letter-spacing:1px}.chips{gap:4px;justify-content:space-between}.chips>*{flex:1;text-align:center}.chip{padding:5px 6px;font-size:9px}.hint{top:74px;font-size:9px;max-width:92vw;white-space:normal;text-align:center}.toast{top:118px}.bar{bottom:calc(8px + env(safe-area-inset-bottom));gap:6px;padding:8px 10px;border-radius:14px;width:calc(100vw - 12px);max-width:calc(100vw - 12px)}#textbar{bottom:auto;top:112px;width:auto}.mobile-only{display:inline-flex}.desktop-only{display:none}#toolbar{flex-direction:column;align-items:stretch;flex-wrap:nowrap}#toolbar .group{flex-wrap:wrap;justify-content:center;width:100%}#toolbar #tools{display:grid;grid-template-columns:repeat(10,1fr);gap:4px}#toolbar #tools .tool{width:100%}#toolbar #btn-collapse{width:100%;height:22px;border-radius:8px;background:var(--panel-2);color:var(--text-dim);font-size:11px}#toolbar .tool{width:38px;height:38px}#toolbar .swatch{width:26px;height:26px;border-radius:6px}#sizes .size{width:38px;height:34px}.inkcan{width:26px;height:44px}.inkcan img{height:38px}#toolbar .ghost-btn{padding:7px 8px;font-size:9px;letter-spacing:.5px}#toolbar .primary{flex:1;padding:12px}#toolbar .timer{flex-basis:100%}#claimbar .bar-label{flex-basis:100%;display:block;text-align:center;font-size:10px}#claimbar>button{flex:1;padding:11px}#btn-claim{flex:1.6!important}#textbar{flex-direction:column;align-items:stretch}#textbar .bar-label{display:none}#text-input{width:100%}#textbar .primary,#textbar .ghost-btn{width:100%;padding:10px}#zoomctl{bottom:calc(240px + env(safe-area-inset-bottom));right:8px;gap:5px}#toolbar:not(.collapsed):not(.hidden)~#zoomctl{display:none}#zoomctl button{width:38px;height:34px}#tagcard .ghost-btn{padding:9px 12px;font-size:11px}#ticker{display:none}#toolbar.collapsed .group:not(.essential),#toolbar.collapsed .sep{display:none}#inkcans:empty{display:none}#palette .inkcan{width:20px;height:30px;gap:2px;margin-left:6px}#palette .inkcan img{height:24px}#palette .inkcan .ink-ring{width:13px;height:2px}.sep{display:none}.primary{padding:8px 12px;font-size:11px}.ghost-btn{padding:7px 9px;font-size:10px}#toolbar .bar-label{display:none}#toolbar .timer{display:inline}#text-input{width:46vw;font-size:14px}.pill{display:none}.toast{top:84px;font-size:10px;padding:8px 16px;max-width:92vw;white-space:normal;text-align:center}.modal{padding:20px}.credit-options{flex-direction:column}.credit-opt{flex-direction:row;justify-content:space-between;padding:12px 14px}}@media(max-width:720px){#stickerbar{bottom:auto;top:112px;flex-direction:row;flex-wrap:wrap}#stickerbar .bar-label{flex-basis:100%;display:block;text-align:center;font-size:9px}#stickerbar .ghost-btn{flex:1}#stickerbar .primary{flex:2}}#boot{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#131317;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;transition:opacity .4s ease}#boot.gone{opacity:0;pointer-events:none}.boot-logo{font-family:Permanent Marker,cursive;font-size:30px;letter-spacing:2px;color:#f5f1e8;transform:rotate(-2deg);text-shadow:0 0 18px rgba(255,63,142,.45),3px 4px 0 #0b0b0e}.boot-logo span{color:#ffd23f;text-shadow:0 0 20px rgba(255,210,63,.5),3px 4px 0 #0b0b0e}.boot-drip{width:190px;height:6px;border-radius:3px;background:#26262c;overflow:hidden}.boot-drip i{display:block;height:100%;width:34%;border-radius:3px;background:linear-gradient(90deg,#ff3f8e,#ffd23f);animation:bootslide 1.05s ease-in-out infinite alternate}@keyframes bootslide{0%{transform:translate(-40%)}to{transform:translate(240%)}}.boot-note{font-size:11px;letter-spacing:3px;color:#8a8a92}#veil{position:fixed;top:0;right:0;bottom:0;left:0;background:#131317;opacity:0;pointer-events:none;transition:opacity .5s ease;z-index:4}#veil.on{opacity:1}.ghost-btn.lit{border-color:var(--accent);color:var(--accent)}#minimap{position:absolute;left:14px;bottom:calc(14px + env(safe-area-inset-bottom));width:300px;height:44px;border-radius:8px;border:1px solid #2e2e36;background:#0a0a0db8;cursor:pointer;z-index:6}#minimap.hidden{display:none}@media(pointer:coarse){#minimap{display:none}}
