#boot{cursor:pointer;z-index:9999;background:radial-gradient(circle at 50% 42%,#15202e 0%,#0a1018 66%);font-family:Noto Sans KR,sans-serif;position:fixed;inset:0;overflow:hidden}#boot.loop{--it:infinite}#boot.done{display:none}#fit{width:1280px;height:720px;transform:translate(-50%,-50%) scale(var(--k,1));transform-origin:50%;position:absolute;top:50%;left:50%}.corner{color:#9aa8b8;font-family:JetBrains Mono,monospace;font-size:13px;position:absolute}#skip{flex-direction:column;align-items:flex-end;gap:8px;display:flex;bottom:max(16px,3vh);right:max(20px,3vw)}#copy{color:#8795a6;font-family:Noto Sans KR,sans-serif;font-size:12px;bottom:max(16px,3vh);left:max(20px,3vw)}.sg-stage{animation:sgStage 9s linear var(--it,1) forwards}.sg-back{opacity:0;animation:sgBack 9s cubic-bezier(.2,.9,.2,1) var(--it,1) forwards}.sg-front{opacity:0;animation:sgFront 9s cubic-bezier(.2,.9,.2,1) var(--it,1) forwards}.sg-x{opacity:0;animation:sgX 9s ease-out var(--it,1) forwards}.sg-glow{opacity:0;animation:sgGlow 9s ease-out var(--it,1) forwards}.sg-word{opacity:0;animation:sgWord 9s ease-out var(--it,1) forwards}.sg-fill{width:0;animation:sgFill 9s cubic-bezier(.4,.1,.3,1) var(--it,1) forwards}.sg-l1{opacity:0;animation:sgL1 9s linear var(--it,1) forwards}.sg-l2{opacity:0;animation:sgL2 9s linear var(--it,1) forwards}.sg-l3{opacity:0;animation:sgL3 9s linear var(--it,1) forwards}@keyframes sgStage{0%,93%{opacity:1}to{opacity:0}}@keyframes sgBack{0%,4%{opacity:0;transform:translate(-56px,-56px)}30%,to{opacity:1;transform:translate(0)}}@keyframes sgFront{0%,8%{opacity:0;transform:translate(56px,56px)}34%,to{opacity:1;transform:translate(0)}}@keyframes sgX{0%,33%{opacity:0}40%,to{opacity:1}}@keyframes sgGlow{0%,33%{opacity:0}40%{opacity:1}70%,to{opacity:.4}}@keyframes sgWord{0%,48%{opacity:0;transform:translateY(10px)}66%,to{opacity:1;transform:translateY(0)}}@keyframes sgFill{0%,50%{width:0}88%,to{width:100%}}@keyframes sgL1{0%,40%{opacity:0}44%,to{opacity:1}}@keyframes sgL2{0%,60%{opacity:0}64%,to{opacity:1}}@keyframes sgL3{0%,80%{opacity:0}84%,to{opacity:1}}:root{--accent:#9ed8f5;--accent-ink:#0a1018;--accent-soft:#9ed8f533;--bar-h:56px;--label:#fff8ec;--halo:#00000080;--sel:#9ed8f538;--panel:#18222f;--panel-2:#1f2b3a;--field:#0f1823;--ink:#f6f0e4;--ink-2:#d9d0be;--ink-3:#a39c8e;--edge:#3a3224;--edge-strong:#4a4030;--edge-focus:#7a5f2e;--track:#3a3020;--line:#f6f0e41f;--hover:#f6f0e414;--bar:#0f1823f0;--shadow:#00000080}:root[data-tone=light]{--label:#0a1018;--halo:#ffffffbf;--sel:#9ed8f54d}:root[data-win=light]{--panel:#faf7f0;--panel-2:#f1ebdd;--field:#fff;--ink:#0a1018;--ink-2:#4a4236;--ink-3:#7a7163;--edge:#dcd3c0;--edge-strong:#c9bea6;--edge-focus:#e0a23a;--track:#e6ddcb;--line:#1a12061f;--hover:#1a120612;--bar:#f6f1e6f0;--shadow:#281e0a40}html,body{height:100%;margin:0;overflow:hidden}body{color:var(--ink);font-family:var(--font-ui,"Noto Sans KR",sans-serif);-webkit-font-smoothing:antialiased;background:#4a5e55;font-size:14px}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}svg{display:block}.mono{font-family:JetBrains Mono,monospace}.hidden{display:none!important}.btn{background:var(--accent);min-width:84px;height:40px;color:var(--accent-ink);border-radius:10px;padding:0 14px;font-weight:700}.btn.ghost{border:1px solid var(--edge-strong);color:var(--ink-2);background:0 0;font-weight:500}#desk{inset:0 0 var(--bar-h) 0;background:linear-gradient(160deg,#2f4a52 0%,#587286 46%,#9cc6da 100%);transition:background .4s;animation:.6s both fadeIn;position:fixed;overflow:hidden}#mark{opacity:.07;pointer-events:none;color:#fff;width:70vmin;height:70vmin;position:absolute;bottom:-6vmin;right:-8vmin}#icons{pointer-events:none;position:absolute;inset:0}.icon{-webkit-user-select:none;user-select:none;touch-action:none;pointer-events:auto;z-index:1;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:7px;width:96px;height:96px;padding:4px;display:flex;position:absolute}.icon .glyph{width:56px;height:56px;color:var(--label);filter:drop-shadow(0 0 1px var(--halo)) drop-shadow(0 1px 3px var(--halo));justify-content:center;align-items:center;transition:transform .15s;display:flex}.icon .glyph svg{stroke-width:1.5px;width:32px;height:32px}.icon .label{max-width:100%;color:var(--label);white-space:nowrap;text-overflow:ellipsis;text-shadow:0 0 2px var(--halo),0 1px 3px var(--halo),0 0 10px var(--halo);padding:0 2px;font-size:13px;font-weight:500;line-height:1.3;overflow:hidden}.icon:hover .glyph{transform:translateY(-2px)}.icon[aria-selected=true]{background:var(--sel)}.icon.dragging{opacity:.9;z-index:5;cursor:grabbing}.icon.enter{animation:.45s cubic-bezier(.3,1.5,.4,1) pop}@keyframes pop{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.win{background:var(--panel);border:1px solid var(--edge);box-shadow:0 28px 70px var(--shadow);border-radius:14px;flex-direction:column;min-width:320px;min-height:240px;display:flex;position:absolute;overflow:hidden}.win.hidden{display:none}.win.max{border-color:#0000;border-radius:0;width:100%!important;height:100%!important;top:0!important;left:0!important}.win.max .win-head{cursor:default}.win.focus{border-color:var(--edge-focus)}.win-head{border-bottom:1px solid var(--line);cursor:move;touch-action:none;-webkit-user-select:none;user-select:none;flex:none;justify-content:space-between;align-items:center;height:44px;padding-left:14px;display:flex}.win-title{align-items:center;gap:10px;font-weight:500;display:flex}.win-ctl{display:flex}.win-ctl button{width:44px;height:44px;color:var(--ink-2);justify-content:center;align-items:center;display:flex}.win-ctl button:hover{background:var(--hover)}.win-ctl .x:hover{color:#fff;background:#c4473a}.win-body{flex:1;min-height:0;padding:20px;overflow:auto}.grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.card{background:var(--panel-2);border:1px solid var(--line);border-radius:12px;align-items:center;gap:12px;padding:14px;display:flex}.card .ic{background:var(--accent-soft);width:44px;height:44px;color:var(--accent);border-radius:12px;flex:none;justify-content:center;align-items:center;display:flex}.card .txt{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.card .name{font-weight:700}.card .desc{color:var(--ink-3);font-size:13px}.prog{width:84px;color:var(--ink-2);flex-direction:column;gap:6px;font-size:12px;display:flex}.prog i{background:var(--track);border-radius:2px;height:3px;display:block;overflow:hidden}.prog i b{background:var(--accent);width:0;height:3px;transition:width 1.6s linear;display:block}.ok{color:var(--accent);align-items:center;gap:6px;font-size:13px;display:flex}.placeholder{color:var(--ink-3);flex-direction:column;gap:12px;display:flex}.placeholder h3{color:var(--ink);margin:0;font-family:Outfit,sans-serif;font-size:22px;font-weight:600}.set{flex-direction:column;gap:14px;display:flex}.set h3{margin:0;font-family:Outfit,sans-serif;font-size:18px;font-weight:600}.walls{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;display:grid}.wall{border:2px solid #0000;border-radius:12px;height:84px;padding:0;position:relative;overflow:hidden}.wall[aria-pressed=true]{border-color:var(--accent)}.wall span{color:#fff8ec;background:#0a08069e;border-radius:7px;padding:2px 8px;font-size:12px;position:absolute;bottom:8px;left:8px}.row{flex-wrap:wrap;gap:10px;display:flex}.hint{color:var(--ink-3);margin:0;font-size:13px;line-height:1.6}.seg{border:1px solid var(--edge-strong);height:36px;color:var(--ink-2);border-radius:9px;padding:0 14px}.seg[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);border-color:#0000;font-weight:700}#snapHint{border:2px dashed var(--accent);background:var(--accent-soft);pointer-events:none;opacity:0;z-index:0;border-radius:14px;width:96px;height:96px;transition:opacity .12s;position:absolute}#snapHint.on{opacity:1}#start{left:10px;bottom:calc(var(--bar-h) + 8px);background:var(--panel);border:1px solid var(--edge);width:320px;max-height:60vh;box-shadow:0 24px 60px var(--shadow);z-index:50;border-radius:14px;flex-direction:column;gap:4px;padding:12px;display:flex;position:absolute;overflow:auto}#start .hd{color:var(--ink-3);letter-spacing:.08em;padding:6px 8px;font-size:12px}#start button{text-align:left;border-radius:10px;align-items:center;gap:12px;padding:10px;display:flex}#start button:hover{background:var(--hover)}#start .glyph{background:var(--hover);border-radius:10px;flex:none;justify-content:center;align-items:center;width:34px;height:34px;display:flex}#start .lock{border-top:1px solid var(--line);color:var(--ink-2);border-radius:0;margin-top:6px;padding-top:14px}#ctx{z-index:80;background:var(--panel);border:1px solid var(--edge);min-width:180px;box-shadow:0 18px 40px var(--shadow);border-radius:10px;padding:6px;position:fixed}#ctx button{text-align:left;border-radius:7px;width:100%;padding:10px 12px;display:block}#ctx button:hover{background:var(--hover)}#bar{height:var(--bar-h);background:var(--bar);border-top:1px solid var(--line);z-index:60;justify-content:space-between;align-items:center;padding:0 10px;display:flex;position:fixed;bottom:0;left:0;right:0}#bar .side{width:200px;color:var(--ink-2);align-items:center;gap:14px;font-size:13px;display:flex}#bar .center{align-items:center;gap:6px;min-width:0;display:flex}#bar .right{width:200px;color:var(--ink-2);justify-content:flex-end;align-items:center;gap:14px;font-size:13px;display:flex}.tbtn{color:var(--ink);border-radius:10px;flex:none;justify-content:center;align-items:center;width:44px;height:44px;display:flex;position:relative}.tbtn:hover,.tbtn.on{background:var(--hover)}.tbtn.on:after{content:"";background:var(--accent);border-radius:2px;height:3px;position:absolute;bottom:3px;left:14px;right:14px}#clock{text-align:right;font-size:12px;line-height:1.25}#toast{right:16px;bottom:calc(var(--bar-h) + 14px);background:var(--panel);border:1px solid var(--edge-strong);z-index:70;opacity:0;pointer-events:none;border-radius:12px;align-items:center;gap:10px;padding:12px 16px;transition:all .3s;display:flex;position:fixed;transform:translateY(12px)}#toast.show{opacity:1;transform:none}#login{z-index:9000;justify-content:center;align-items:center;padding:20px;transition:opacity .5s;animation:.5s both fadeIn;display:flex;position:fixed;inset:0;overflow:hidden}#login.out{opacity:0;pointer-events:none}#lgBg{filter:blur(26px);position:absolute;inset:-40px;transform:scale(1.03)}#lgScrim{background:#0806045c;position:absolute;inset:0}.lg-card{background:var(--panel);border:1px solid var(--edge);width:min(360px,100%);box-shadow:0 30px 80px var(--shadow);border-radius:18px;flex-direction:column;gap:14px;padding:32px 28px 26px;display:flex;position:relative}.lg-av{background:var(--field);border:1px solid var(--edge-strong);border-radius:50%;justify-content:center;align-items:center;width:76px;height:76px;margin:0 auto 4px;display:flex}.lg-title{text-align:center;letter-spacing:.2em;padding-left:.2em;font-family:Outfit,sans-serif;font-size:20px;font-weight:600}.lg-sub{text-align:center;color:var(--ink-3);margin-top:-8px;font-size:13px}.lg-card label{color:var(--ink-2);flex-direction:column;gap:6px;font-size:13px;display:flex}.lg-card input{border:1px solid var(--edge-strong);background:var(--field);height:46px;color:var(--ink);font:inherit;border-radius:10px;padding:0 14px;font-size:15px}.lg-card input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.lg-err{color:#f28b7e;text-align:center;min-height:20px;font-size:13px}.lg-card .btn{width:100%;height:46px;margin-top:4px;font-size:15px}.shake{animation:.4s shake}@keyframes shake{0%,to{transform:none}25%{transform:translate(-8px)}75%{transform:translate(8px)}}@media (width<=720px){.icon{width:84px}.win{border:0;border-radius:0;min-width:0;min-height:0;width:100%!important;height:calc(100% - var(--bar-h))!important;top:0!important;left:0!important}.win-head{cursor:default}.win-ctl .max{display:none}#bar .side,#bar .right{width:auto}#clock .d{display:none}.grid{grid-template-columns:1fr}#start{width:calc(100% - 20px);left:10px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.win-body.flush{flex-direction:column;padding:0;display:flex;overflow:hidden}.sx{flex:1;min-height:0;display:flex}.sx-nav{border-right:1px solid var(--line);background:var(--panel-2);flex-direction:column;flex:none;gap:4px;width:156px;padding:14px 10px;display:flex}.sx-nav button{text-align:left;height:38px;color:var(--ink-2);border-radius:9px;padding:0 12px;font-size:14px}.sx-nav button[aria-selected=true]{background:var(--accent-soft);color:var(--ink);font-weight:700}.sx-pane{flex-direction:column;flex:1;gap:14px;min-width:0;padding:20px 22px;display:flex;overflow:auto}.sx-pane h3{margin:6px 0 0;font-family:Outfit,sans-serif;font-size:16px;font-weight:600}.sx-pane h3:first-child{margin-top:0}.fonts{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;display:grid}.fcard{border:2px solid var(--edge-strong);background:var(--panel-2);text-align:left;border-radius:12px;flex-direction:column;align-items:flex-start;gap:6px;min-width:0;min-height:92px;padding:12px 14px;display:flex}.fcard[aria-pressed=true]{border-color:var(--accent)}.fcard .fs{max-width:100%;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:16px;line-height:1.35;overflow:hidden}.fcard .fn{color:var(--ink-3);font-size:12px}.fcard .fb{color:var(--accent);margin-top:auto;font-size:11px;font-weight:700}.fin{border:1px solid var(--edge-strong);background:var(--field);min-width:0;height:40px;color:var(--ink);border-radius:10px;flex:1;padding:0 12px}.tog{color:var(--ink);cursor:pointer;align-items:center;gap:10px;font-size:14px;display:flex}.tog input{width:18px;height:18px;accent-color:var(--accent)}.hide{display:none!important}#lockscr{z-index:90;font-family:var(--font-ui,"Noto Sans KR",sans-serif);color:#fff;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;animation:.4s both fadeIn;display:flex;position:fixed;inset:0;overflow:hidden}.lk-bg{position:absolute;inset:-40px;transform:scale(1.03)}.lk-bg.blur{filter:blur(18px)}.lk-scrim{background:#080c1047;position:absolute;inset:0}.lk-body{text-shadow:0 2px 18px #00000059;flex-direction:column;align-items:center;gap:6px;display:flex;position:relative}.lk-time{letter-spacing:-.02em;font-size:112px;font-weight:300;line-height:1}.lk-date{opacity:.92;font-size:22px}.lk-hint{text-align:center;opacity:.85;text-shadow:0 1px 8px #0006;font-size:13px;position:absolute;bottom:48px;left:0;right:0}
