@font-face{font-family:Grandstander;src:url(/fonts/Grandstander.woff2)format("woff2");font-weight:100 900;font-display:swap}@font-face{font-family:Atkinson Next;src:url(/fonts/AtkinsonNext.woff2)format("woff2");font-weight:200 800;font-display:swap}@font-face{font-family:Caveat;src:url(/fonts/Caveat.woff2)format("woff2");font-weight:400 700;font-display:swap}@font-face{font-family:Anton;src:url(/fonts/Anton.woff2)format("woff2");font-display:swap}@font-face{font-family:DotGothic16;src:url(/fonts/DotGothic16.woff2)format("woff2");font-display:swap}@font-face{font-family:Pacifico;src:url(/fonts/Pacifico.woff2)format("woff2");font-display:swap}@font-face{font-family:Special Elite;src:url(/fonts/SpecialElite.woff2)format("woff2");font-display:swap}@font-face{font-family:Noto Emoji;src:url(/fonts/NotoEmoji.woff2)format("woff2");font-weight:300 700;font-display:swap}:root{--desk:#2d4bf0;--desk-2:#2641d8;--desk-3:#1a2fae;--desk-ink:#e8ecff;--paper:#fff;--ink:#17182f;--muted:#676c98;--cloud:#f3f5ff;--line:#dde2fb;--marker:#ffe14a;--marker-dark:#d6b300;--eraser:#ff7a9c;--eraser-dark:#d8527a;--mint:#36d69a;--sky:#8fd3ff;--radius:22px;--ui:"Atkinson Next", system-ui, sans-serif;--display:"Grandstander", "Atkinson Next", system-ui, sans-serif;--emoji:"Noto Emoji", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{font:500 17px/1.45 var(--ui);color:var(--ink);background:var(--desk);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default}:focus-visible{outline:3px solid var(--marker);outline-offset:3px}svg.lucide{stroke-width:2.4px;flex:none;width:22px;height:22px}.btn{background:var(--paper);min-height:48px;color:var(--ink);box-shadow:0 5px 0 var(--line);border:0;border-radius:16px;justify-content:center;align-items:center;gap:8px;padding:0 20px;font-weight:700;transition:transform .12s,box-shadow .12s,opacity .2s;display:inline-flex}.btn:active:not(:disabled){box-shadow:0 1px 0 var(--line);transform:translateY(4px)}.btn:disabled{opacity:.55}.btn.primary{background:var(--marker);box-shadow:0 6px 0 var(--marker-dark);font-family:var(--display);letter-spacing:.01em;font-size:20px;font-weight:800}.btn.primary:active:not(:disabled){box-shadow:0 2px 0 var(--marker-dark)}.btn.big{min-height:60px;font-size:22px}.btn.small{min-height:40px;box-shadow:0 4px 0 var(--line);padding:0 14px;font-size:15px}.btn.ghost{color:var(--desk-ink);box-shadow:none;background:0 0;padding:0 12px}.btn.ghost:hover{background:#ffffff14}.btn.ghost:active{background:#fff2;transform:none}.btn.done{background:var(--ink);color:#fff;min-height:44px;box-shadow:0 4px #000}.icon-btn{background:var(--cloud);width:44px;height:44px;color:var(--ink);box-shadow:0 3px 0 var(--line);border:0;border-radius:14px;place-items:center;transition:transform .12s,box-shadow .12s;display:grid}.icon-btn:active:not(:disabled){box-shadow:none;transform:translateY(3px)}.icon-btn:disabled{opacity:.35}.icon-btn.danger{color:var(--eraser-dark);background:#ffe6ec;box-shadow:0 3px #ffc3d1}.round{background:var(--paper);width:56px;height:56px;color:var(--ink);box-shadow:0 5px 0 var(--line);border:0;border-radius:50%;flex:none;place-items:center;transition:transform .12s,box-shadow .12s,opacity .2s;display:grid}.round:active:not(:disabled){box-shadow:0 1px 0 var(--line);transform:translateY(4px)}.round:disabled{opacity:.45}.app{grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr);min-height:100dvh;display:grid;overflow-x:clip}.top{color:var(--desk-ink);align-items:center;gap:12px;padding:14px 16px 6px;display:flex}.logo{font:900 30px/1 var(--display);letter-spacing:-.01em;color:#fff;flex:none;margin:0}.top-actions{flex:none;gap:2px;margin-left:auto;display:flex}.top-actions .btn span{display:none}.status{background:var(--desk-3);color:var(--desk-ink);white-space:nowrap;text-overflow:ellipsis;border-radius:99px;flex:0 auto;align-items:center;gap:8px;min-width:0;padding:7px 12px 7px 10px;font-size:14px;font-weight:700;display:inline-flex;overflow:hidden}.status span{text-overflow:ellipsis;overflow:hidden}.status i{background:#8a93c9;border-radius:50%;flex:none;width:10px;height:10px}.status.on i{background:var(--mint);box-shadow:0 0 0 4px #36d69a33}.status.warn i{background:var(--eraser);box-shadow:0 0 0 4px #ff7a9c33}.stage{justify-content:center;padding:8px 16px 330px;display:flex}.printer-wrap{flex-direction:column;align-items:center;width:min(100%,420px);display:flex}.mascot{z-index:2;width:min(78%,300px);height:auto;display:block;position:relative;overflow:visible}.mascot .ear{fill:var(--paper)}.mascot .ear-in{fill:var(--eraser)}.mascot .body{fill:var(--paper)}.mascot .body-shade{fill:var(--line)}.mascot .eye{fill:var(--ink)}.mascot .glint{fill:#fff}.mascot .lid,.mascot .mouth{fill:none;stroke:var(--ink);stroke-width:5px;stroke-linecap:round}.mascot .nose{fill:var(--eraser)}.mascot .cheek{fill:var(--eraser);opacity:.35}.mascot .slot{fill:var(--ink)}.mascot .zzz{font:800 22px var(--display);fill:#fff}.mascot .ears{transform-origin:160px 60px}.mood-awake .eye,.mood-awake .glint{transform-origin:50%;transform-box:fill-box;animation:5s infinite blink}.mood-busy .ears{animation:.35s ease-in-out infinite alternate wiggle}.mood-happy .ears{animation:.5s ease-in-out 3 alternate wiggle}.mood-asleep .zzz{animation:2.4s ease-in-out infinite float}@keyframes blink{0%,94%,to{transform:scaleY(1)}97%{transform:scaleY(.1)}}@keyframes wiggle{0%{transform:rotate(-2.5deg)}to{transform:rotate(2.5deg)}}@keyframes float{50%{opacity:.6;transform:translateY(-5px)}}.paper-clip{z-index:1;width:86%;margin-top:-8px;padding:0 14px 20px;position:relative;overflow:hidden}.paper{background:var(--paper);--tooth:9px;-webkit-mask:linear-gradient(#000 0 0) top / 100% calc(100% - var(--tooth)) no-repeat, conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) bottom / calc(var(--tooth) * 2) var(--tooth) repeat-x;-webkit-mask:linear-gradient(#000 0 0) top / 100% calc(100% - var(--tooth)) no-repeat, conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) bottom / calc(var(--tooth) * 2) var(--tooth) repeat-x;mask:linear-gradient(#000 0 0) top / 100% calc(100% - var(--tooth)) no-repeat, conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) bottom / calc(var(--tooth) * 2) var(--tooth) repeat-x;padding-bottom:calc(var(--tooth) + 6px);position:relative;box-shadow:0 16px 30px -12px #0a1a7a88}.paper:before{content:"";pointer-events:none;z-index:1;background:linear-gradient(#17182f22,#0000);height:18px;position:absolute;inset:0 0 auto}.paper-img{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:auto;display:block}.paper.sending{animation:1.1s steps(22,end) forwards swallow}.paper.feeding{animation:.9s steps(18,end) both feed}@keyframes swallow{to{transform:translateY(-104%)}}@keyframes feed{0%{transform:translateY(-104%)}to{transform:none}}.paper-hint{color:var(--desk-ink);opacity:.75;text-align:center;margin:14px 0 0;font-size:14px}.hit{background:0 0;border:0;border-radius:8px;padding:0;transition:background-color .15s,box-shadow .15s;position:absolute;left:-4px;right:-4px}.hit:hover{background:#2d4bf00d}.hit.on{box-shadow:0 0 0 3px var(--desk), 0 0 0 7px #2d4bf033;background:#2d4bf00a}.panel{z-index:10;pointer-events:none;position:fixed;inset:auto 0 0}.panel>*{pointer-events:auto}.dock{padding:12px 14px calc(14px + env(safe-area-inset-bottom));background:var(--paper);border-radius:28px 28px 0 0;box-shadow:0 -10px 30px #0a1a7a40}.tiles{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.tile{background:var(--c,var(--cloud));min-height:70px;color:var(--ink);box-shadow:0 5px 0 var(--cd,var(--line));border:0;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:8px 2px;font-size:14px;font-weight:700;transition:transform .12s,box-shadow .12s;display:flex}.tile svg.lucide{width:28px;height:28px}.tile:active{box-shadow:0 1px 0 var(--cd,var(--line));transform:translateY(4px)}.t-text{--c:#e4e9ff;--cd:#c4cefb}.t-image{--c:#d8f1ff;--cd:#a9dcf8}.t-emoji{--c:#fff4b8;--cd:#f0da6a}.t-draw{--c:#ffe1e9;--cd:#ffb9ca}.t-line{--c:#d9f7ea;--cd:#9fe5c7}.dock-row{align-items:center;gap:10px;margin-top:12px;display:flex}.btn.print{flex:1;min-height:60px;font-size:22px}.btn.print svg.lucide{width:26px;height:26px}.sheet{background:var(--paper);color:var(--ink)}.editor{z-index:20;max-height:62dvh;padding-bottom:env(safe-area-inset-bottom);border-radius:28px 28px 0 0;flex-direction:column;animation:.22s cubic-bezier(.2,.9,.3,1.1) rise;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -12px 40px #0a1a7a55}@keyframes rise{0%{opacity:0;transform:translateY(40%)}}.sheet-head{align-items:center;gap:10px;padding:14px 16px 10px;display:flex}.sheet-head h2{font:800 24px/1 var(--display);margin:0}.sheet-head .btn.done{margin-left:auto}.block-actions{gap:6px;margin-left:auto;display:flex}.sheet-head .block-actions+.btn.done{margin-left:4px}.sheet-body{overscroll-behavior:contain;padding:4px 16px 20px;overflow-y:auto}.welcome{display:none}.app.has-selection .stage{padding-bottom:66dvh}.field{margin-top:16px}.field-label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;font-size:13px;font-weight:800}.row{flex-wrap:wrap;gap:0 22px;display:flex}.chips{flex-wrap:wrap;gap:8px;display:flex}.chips.scroll{padding-bottom:6px;scrollbar-width:none;flex-wrap:nowrap;margin:0 -16px;padding-inline:16px;overflow-x:auto}.chip{background:var(--cloud);min-width:52px;min-height:52px;color:var(--ink);box-shadow:0 4px 0 var(--line);border:0;border-radius:16px;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-weight:700;transition:transform .12s,box-shadow .12s,background-color .15s;display:inline-flex}.chip:active{box-shadow:0 1px 0 var(--line);transform:translateY(3px)}.chip.on{background:var(--desk);color:#fff;box-shadow:0 4px 0 var(--desk-3)}.chip.danger{color:var(--eraser-dark);background:#ffe6ec;box-shadow:0 4px #ffc3d1}.font-chip{flex-direction:column;flex:none;gap:0;min-width:84px;min-height:68px}.font-chip span{font-size:26px;line-height:1.1}.font-chip small{opacity:.8;font-size:12px;font-weight:700}.emoji-font{font-family:var(--emoji)}.chip.size-s{font-size:14px}.chip.size-m{font-size:18px}.chip.size-l{font-size:24px}.chip.size-xl{font-size:32px}.chip.invert-chip:not(.on){background:var(--ink);color:#fff;box-shadow:0 4px #000}.text-input{resize:vertical;border:3px solid var(--line);background:var(--cloud);border-radius:18px;width:100%;min-height:96px;padding:14px 16px;font-size:24px;line-height:1.25}.text-input:focus{border-color:var(--desk);background:#fff;outline:none}.quick{scrollbar-width:none;gap:6px;margin-top:10px;display:flex;overflow-x:auto}.emoji-btn{aspect-ratio:1;background:var(--cloud);min-width:48px;font:600 28px/1 var(--emoji);border:0;border-radius:14px;place-items:center;transition:transform .1s,background-color .15s;display:grid}.emoji-btn:active{background:var(--marker);transform:scale(.88)}.emoji-btn.small{min-width:44px;font-size:22px}.emoji-line{align-items:center;gap:10px;display:flex}.emoji-current{background:var(--cloud);min-height:64px;font:600 36px/1.2 var(--emoji);white-space:nowrap;border-radius:18px;flex:1;align-items:center;padding:6px 16px;display:flex;overflow-x:auto}.emoji-current .muted{font:600 16px var(--ui);color:var(--muted)}.tabs{scrollbar-width:none;gap:6px;margin-top:16px;display:flex;overflow-x:auto}.tab{min-width:50px;height:48px;font:600 24px var(--emoji);color:var(--muted);background:0 0;border:0;border-radius:14px;flex:1}.tab.on{background:var(--marker);color:var(--ink)}.emoji-grid{grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:8px;margin-top:10px;display:grid}.slider{font:600 22px var(--emoji);align-items:center;gap:12px;display:flex}.slider input{accent-color:var(--desk);flex:1;height:40px}.slider input::-webkit-slider-thumb{width:34px;height:34px}.dithers{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.dither{background:var(--cloud);border:3px solid #0000;border-radius:16px;flex-direction:column;gap:6px;padding:6px 6px 8px;font-size:13px;font-weight:800;display:flex}.dither img,.thumb-wait{aspect-ratio:1;object-fit:cover;background:#fff;border-radius:10px;width:100%;display:block}.dither.on{border-color:var(--desk);background:#e4e9ff}.draw-pad{aspect-ratio:512/360;border:3px dashed var(--line);touch-action:none;cursor:crosshair;background:#fff;border-radius:18px;width:100%;height:auto;display:block}.draw-tools{margin-top:12px}.brush{background:currentColor;border-radius:50%;display:block}.divider-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.divider-btn{background:var(--cloud);min-height:60px;font:600 20px var(--emoji);box-shadow:0 4px 0 var(--line);border:0;border-radius:16px}.divider-btn.on{background:var(--desk);color:#fff;box-shadow:0 4px 0 var(--desk-3)}.overlay{z-index:40;background:#0b155c80;justify-content:center;align-items:flex-end;animation:.2s fade;display:flex;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.sheet.modal{width:100%;max-height:88dvh;padding-bottom:env(safe-area-inset-bottom);border-radius:28px 28px 0 0;flex-direction:column;animation:.25s cubic-bezier(.2,.9,.3,1.1) rise;display:flex}.sheet.modal .sheet-head .icon-btn{margin-left:auto}.templates{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.template{background:var(--cloud);text-align:left;box-shadow:0 5px 0 var(--line);border:0;border-radius:20px;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 10px 14px;transition:transform .12s,box-shadow .12s;display:flex}.template:active{box-shadow:0 1px 0 var(--line);transform:translateY(4px)}.template-paper{background:#fff;border-radius:12px;width:100%;height:170px;margin-bottom:8px;display:block;overflow:hidden}.template-paper img{width:100%;display:block}.template b{font:800 18px var(--display)}.template small{color:var(--muted);font-size:14px}.history{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.history li{background:var(--cloud);border-radius:20px;grid-template-columns:76px 1fr;align-items:start;gap:14px;padding:10px;display:grid}.history-paper{background:#fff;border-radius:10px;width:76px;height:96px;display:block;overflow:hidden}.history-paper img{width:100%;display:block}.history-info{flex-direction:column;gap:2px;min-width:0;display:flex}.history-info b{font:800 18px var(--display);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.history-info small{color:var(--muted)}.history-actions{grid-column:2}.badge{background:var(--line);border-radius:99px;align-self:flex-start;margin-top:4px;padding:3px 10px;font-size:13px;font-weight:800}.badge.done{color:#0c7a50;background:#d4f7e8}.badge.queued,.badge.sent{color:#7a6200;background:#fff4b8}.badge.failed{color:var(--eraser-dark);background:#ffe1e9}.empty{color:var(--muted);text-align:center;padding:30px 0}.error{color:var(--eraser-dark);font-weight:700}.toast{z-index:60;background:var(--ink);color:#fff;text-align:center;border-radius:18px;max-width:calc(100vw - 32px);padding:14px 20px;font-weight:700;animation:.3s cubic-bezier(.2,.9,.3,1.3) pop;position:fixed;bottom:190px;left:50%;translate:-50%;box-shadow:0 10px 30px #0006}@keyframes pop{0%{opacity:0;transform:translateY(16px)scale(.9)}}.drop-zone{z-index:80;color:#fff;font:800 28px var(--display);pointer-events:none;background:#2d4bf0e6;border:4px dashed #fff;border-radius:32px;flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;position:fixed;inset:12px}.drop-zone svg.lucide{width:64px;height:64px}.boot,.login{color:#fff;text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:24px 16px;display:flex}.login-mascot{width:min(70vw,280px)}.login .logo{margin-top:18px;font-size:52px}.login-sub{color:var(--desk-ink);max-width:320px;margin:8px 0 26px}.login-card{background:var(--paper);width:min(100%,380px);color:var(--ink);text-align:left;border-radius:28px;flex-direction:column;gap:14px;padding:22px;display:flex;box-shadow:0 20px 50px #0a1a7a66}.login-card label{flex-direction:column;gap:6px;font-size:15px;font-weight:800;display:flex}.login-card input{border:3px solid var(--line);background:var(--cloud);border-radius:16px;min-height:56px;padding:0 16px;font-size:20px}.login-card input:focus{border-color:var(--desk);background:#fff;outline:none}.login-card .error{margin:0}@media (width>=960px){.app{grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr) 440px;column-gap:28px;padding-right:24px}.top{grid-column:1/-1;padding:20px 28px 8px}.top-actions .btn span{display:inline}.stage{align-items:flex-start;padding:12px 0 60px 24px}.printer-wrap{width:min(100%,470px);position:sticky;top:16px}.app.has-selection .stage{padding-bottom:60px}.panel{top:16px;pointer-events:auto;flex-direction:column;align-self:start;gap:16px;max-height:calc(100dvh - 110px);display:flex;position:sticky;inset:auto}.dock{border-radius:28px;order:-1;padding:14px;box-shadow:0 16px 40px #0a1a7a40}.editor,.welcome{border-radius:28px;flex-direction:column;min-height:0;max-height:none;animation:none;display:flex;position:static;box-shadow:0 16px 40px #0a1a7a40}.editor{flex:1}.welcome{background:var(--desk-2);color:var(--desk-ink);box-shadow:none;padding:24px}.welcome h2{font:800 24px var(--display);color:#fff;margin:0 0 6px}.welcome p{margin:0}.toast{bottom:40px}.overlay{align-items:center}.sheet.modal{border-radius:28px;width:min(720px,94vw)}.templates{grid-template-columns:repeat(3,1fr)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation-duration:0s!important;animation-iteration-count:1!important}}
