:root{color-scheme:dark;--bg:#07121c;--panel:#101f2a;--line:#2e4556;--ink:#e7f1f4;--muted:#a0b6c2;--cyan:#70efd3;--gold:#edc584;--hard:#c4a4f3;--easy:#6acebf;--medium:#e8bf7b;--font:'Pretendard','Noto Sans CJK KR','Apple SD Gothic Neo','Malgun Gothic',sans-serif}*{box-sizing:border-box}body{margin:0;color:var(--ink);font:15px/1.7 var(--font);background:radial-gradient(ellipse at 40% 0,#153340 0,transparent 55%),var(--bg);word-break:keep-all}button,input{font:inherit}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;border:1px solid var(--line);background:#142d3b;border-radius:6px}button:disabled{cursor:not-allowed;opacity:.48}button:hover:not(:disabled){border-color:var(--cyan)}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:4px}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}[hidden]{display:none!important}.top{min-height:72px;display:flex;align-items:center;justify-content:space-between;padding:14px 4%;border-bottom:1px solid var(--line);gap:18px;background:#07121cdc}.brand{font-size:20px;letter-spacing:.04em}.brand small{display:block;color:var(--muted);font-size:10px;letter-spacing:.08em}.nav{display:flex;gap:10px;align-items:center;font-size:12px}.nav button{background:none;border:0;padding:8px}.nav a{padding:8px}.wrap{max-width:1510px;margin:auto;padding:30px 4%}.eyebrow{font-size:10px;letter-spacing:.12em;color:var(--cyan)}.hero{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:23px}.hero h1{font-size:42px;letter-spacing:-.06em;font-weight:500;margin:2px 0 7px}.hero p{font-size:13px;color:var(--muted)}.clockbox{border:1px solid #4c776f;border-radius:8px;background:#0d2630;padding:12px 22px;text-align:right;flex-shrink:0}.clockbox small{display:block;font-size:11px;color:var(--muted)}#clock{font:42px/1.2 ui-monospace,Consolas,monospace;letter-spacing:.02em;font-variant-numeric:tabular-nums;color:var(--cyan)}.clockbox.urgent{border-color:#e5a48b}.clockbox.urgent #clock{color:#ffba9d}.layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(345px,1fr);gap:24px;align-items:start}.mapcard{border:1px solid #385364;border-radius:10px;overflow:hidden;background:linear-gradient(150deg,#102c39,#081722)}.bar{display:flex;justify-content:space-between;align-items:center;padding:14px 19px;border-bottom:1px solid var(--line);gap:10px}.bar h2{font-size:14px;font-weight:500}.bar small{color:var(--muted);font-size:10px;display:block}.bar button{font-size:11px;padding:8px 12px;white-space:nowrap}.map svg{display:block;width:100%;height:auto}.map .module{cursor:pointer}.map .module:hover .wall,.map .module:focus .wall{stroke:white!important;stroke-width:3}.map .module[aria-disabled=true]{cursor:not-allowed;opacity:.5}.map .module text{pointer-events:none}.circuit-live{stroke-dasharray:6 9;animation:current 2s linear infinite}@keyframes current{to{stroke-dashoffset:-60}}.map-note{padding:11px 18px;border-bottom:1px solid var(--line);background:#102733;font-size:11px;color:#bdd4dc;line-height:1.85}.map-note b{color:var(--gold)}.legend{padding:8px 14px 14px;display:flex;justify-content:center;gap:9px 17px;flex-wrap:wrap;font-size:10px;color:var(--muted)}.legend i{display:inline-block;width:18px;vertical-align:middle;margin-right:5px;border-top:3px solid}.legend .h{color:var(--hard)}.legend .m{color:var(--medium)}.legend .e{color:var(--easy)}.legend .lit{color:var(--cyan);border-top-style:dashed}.map-foot{padding:12px 18px;border-top:1px solid var(--line);font-size:11px;display:flex;justify-content:space-between;gap:8px;color:var(--muted)}.map-foot strong{color:var(--cyan);font-weight:500}.routes{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:12px}.routes>div{border:1px solid var(--line);border-radius:6px;padding:11px;background:#122532}.routes b{font-size:12px;display:block;font-weight:500}.routes small{color:var(--muted);font-size:10px}.routes>div:nth-child(1) b{color:var(--hard)}.routes>div:nth-child(2) b{color:var(--medium)}.routes>div:nth-child(3) b{color:var(--easy)}.caption{font-size:11px;line-height:1.85;color:var(--muted);margin-top:12px}.side{min-width:0;scroll-margin-top:14px}.panel{border:1px solid #44606a;border-radius:9px;padding:26px;background:linear-gradient(155deg,#193440,#101e2a)}.panel h2{font-size:27px;line-height:1.5;letter-spacing:-.045em;font-weight:500;margin:8px 0 16px}.panel p{font-size:14px;line-height:1.9;color:#ccdadf}.intro-quote{border-left:2px solid var(--cyan);padding:8px 0 8px 16px;margin:20px 0}.primary,.secondary{min-height:48px;width:100%;padding:13px 16px;display:flex;gap:14px;justify-content:space-between;align-items:center;font-size:14px}.primary{background:var(--cyan);color:#09262a;border-color:var(--cyan);font-weight:650}.primary:hover:not(:disabled){background:#a5f7e5}.secondary{background:#142e3a;border-color:#53717d;margin-top:11px;font-size:13px}.plain{background:transparent;border:0;color:var(--muted);font-size:12px;padding:12px 0;min-height:42px;text-align:left;text-decoration:underline;text-underline-offset:4px}.micro{font-size:11px!important;color:var(--muted)!important;line-height:1.8!important;margin-top:12px}.name-label{font-size:12px;color:#c8dce0;display:block;margin:19px 0 6px}#nick{width:100%;border:1px solid #54727d;border-radius:5px;padding:11px 13px;background:#09202b;color:var(--ink);margin-bottom:14px}.subpanel{border:1px solid var(--line);border-radius:7px;padding:15px 18px;margin-top:14px;background:#112632}.subpanel h3{font-size:12px;font-weight:500}.subpanel p{font-size:11px;color:var(--muted);line-height:1.9;margin-top:5px}.gateway{width:100%;display:flex;align-items:center;gap:12px;text-align:left;margin-top:10px;padding:14px;min-height:77px;background:#102632;border:1px solid #3b5b6c}.gateway .badge{width:34px;height:34px;display:grid;place-items:center;border:1px solid currentColor;flex-shrink:0}.hard{color:var(--hard)}.medium{color:var(--medium)}.easy{color:var(--easy)}.gateway b{display:block;font-size:15px;font-weight:500;color:var(--ink)}.gateway small{display:block;font-size:10px;color:var(--muted);line-height:1.8;margin-top:3px}.gateway .arrow{margin-left:auto}.powered{border-color:#448877;background:#14382f}.powered .badge{color:var(--cyan)}.success{padding:16px;border:1px solid #528e7b;background:#163e37;border-radius:6px;margin-bottom:18px}.success strong{font-size:15px;color:#bdf1d9;display:block;margin-bottom:7px}.success p{font-size:13px}.success button{color:#bdebd4}.status{font-size:11px;color:var(--muted)}.puzzle h2{font-size:24px}.trip{border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:14px;font-size:11px;color:var(--muted)}.rules{list-style:none;padding:0;margin:14px 0 19px;counter-reset:rule}.rules li{font-size:13px;line-height:1.95;margin:6px 0;padding-left:24px;position:relative}.rules li:before{counter-increment:rule;content:counter(rule);position:absolute;left:0;top:3px;border:1px solid #577888;border-radius:50%;width:16px;height:16px;font-size:10px;line-height:16px;text-align:center;color:#acc7ce}.diagram{background:#091d28;border:1px solid #345363;border-radius:7px;padding:10px;margin:13px 0}.diagram svg{display:block;width:100%;height:auto}.diagram .circuit-live{animation-duration:1.5s}.diagram text{font-family:var(--font)}.diagram .wire.selected{stroke:var(--cyan);stroke-width:5}.diagram .tap{cursor:pointer}.diagram .tap:focus rect{stroke:white;stroke-width:3}.readout{display:flex;gap:6px;justify-content:space-between;padding:10px;border-bottom:1px solid #304b59;margin-bottom:6px;font:12px ui-monospace,Consolas,monospace;color:#d2e8e8}.readout b{color:var(--cyan);font-size:17px;font-weight:500}.readout .over{color:#ffaf96}.controls{display:grid;gap:9px;margin:12px 0}.dial{display:flex;gap:8px;align-items:center;background:#102b38;padding:9px 10px;border:1px solid #3c5a67;border-radius:6px}.dial .description{flex:1;min-width:0}.dial b{font-size:12px;display:block;font-weight:500}.dial small{font-size:10px;display:block;color:var(--muted)}.dial button{width:39px;height:42px;flex-shrink:0;font-size:19px;background:#1d414e}.dial input{width:46px;height:42px;border:1px solid #426373;border-radius:4px;text-align:center;color:#c1fff1;background:#081b25;font:19px ui-monospace,Consolas,monospace;-moz-appearance:textfield}.dial input::-webkit-inner-spin-button{display:none}.dial .meter{height:3px;margin-top:5px;background:#254552}.dial .meter i{display:block;height:100%;background:var(--cyan)}.choices{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:13px 0}.choices button{padding:14px 10px;background:#132f3c;min-height:67px;font-size:13px;line-height:1.75;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}.choices button.selected{border:2px solid var(--cyan);background:#205146;padding:13px 9px}.battery{width:50px;height:28px;border:2px solid #84bcb6;border-radius:4px;position:relative;display:block;padding:3px}.battery:after{content:'';position:absolute;right:-6px;top:6px;width:4px;height:12px;background:#84bcb6}.battery i{display:block;height:100%;background:var(--cyan)}.choice-mark{font-size:10px;color:var(--muted)}.assignments{display:grid;gap:8px;margin:13px 0}.device{border:1px solid #385666;padding:10px;border-radius:6px;background:#102937;display:flex;justify-content:space-between;gap:9px;align-items:center}.device b{font-size:12px;font-weight:500;display:block}.device small{font-size:11px;color:var(--muted)}.device .switch{display:flex;gap:6px}.device button{padding:8px 12px;min-height:41px;font-size:12px}.device button.selected{border-color:var(--cyan);background:#265649;color:#e0fff2}.tools{display:flex;gap:14px;justify-content:space-between;flex-wrap:wrap}.help{border:1px solid #8e8b63;border-radius:7px;background:#28392f;padding:16px;margin-top:17px}.help header{display:flex;justify-content:space-between;gap:8px;font-size:14px;color:#ecdfb2}.help header small{font-size:10px}.help>p{font-size:11px;color:#d5d8bf;margin:7px 0}.help details{border-top:1px solid #5c6e53;padding:8px 0;margin-top:9px}.help summary{font-size:12px;color:#e4e3c9;cursor:pointer;min-height:32px;padding:5px 0}.help details p{font-size:13px;color:#e1e5d4;padding:6px 0}.help .secondary{background:#354a39;border-color:#889770;color:#eff1d9;margin-top:9px}.help .plain{font-size:11px;color:#ddd3b5}.warning{border:1px solid #b59465;border-left:4px solid var(--gold);border-radius:7px;background:#3c362b;padding:19px;margin-bottom:17px}.warning strong{font-size:20px;font-weight:500;color:#ffe4b0}.warning p{font-size:13px;color:#eaddc5;margin:8px 0}.warning .secondary{background:#f0d4a1;color:#173543;border-color:#f0d4a1}.risk{font-size:11px!important;line-height:1.8!important;color:#e6cda2!important;border-left:2px solid #ac8e54;padding:8px 10px;margin:17px 0 11px;background:#2c312b}.locked{padding:12px;border:1px solid #976f77;border-radius:6px;background:#342b34;color:#e8c6c9;font-size:12px;margin-bottom:15px}.error{font-size:12px;padding:12px;background:#4b372e;border-left:2px solid #ecb289;margin:13px 0}.shift-notice{border-color:#c99972;background:linear-gradient(140deg,#40352c,#19323b);margin-bottom:15px}.shift-notice h2{font-size:22px;color:#ffe3b1}.score{text-align:center;color:var(--cyan);font:70px/1.3 ui-monospace,Consolas,monospace;padding:17px 0}.score small{font:13px var(--font)}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:12px 0 18px}.metrics>div{padding:12px;background:#0e2630;font-size:11px;color:var(--muted);text-align:center}.metrics b{font-size:24px;font-weight:500;color:var(--ink);display:block}.tags{display:flex;gap:7px;flex-wrap:wrap;margin:15px 0}.tags span{font-size:11px;padding:5px 9px;border:1px solid #416c62;color:#c7e7d9;border-radius:4px}.foot{padding:16px 4%;border-top:1px solid var(--line);font-size:10px;color:var(--muted);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.foot button{background:none;border:0;color:var(--muted);font-size:10px;padding:4px}.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);max-width:calc(100vw - 32px);width:max-content;z-index:80;padding:13px 18px;border-radius:6px;background:#cfece0;color:#123b3a;font-size:12px;box-shadow:0 5px 25px #0005}.storage{padding:12px;margin-bottom:18px;border:1px solid #b08659;color:#efceb2;background:#422f2d;font-size:12px}.float-clock{position:static;width:max-content;max-width:100%;margin:0 0 12px auto;border:1px solid #649889;background:#0d2b33f0;color:var(--cyan);padding:6px 12px;border-radius:5px;font:21px ui-monospace,monospace}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.skip{position:fixed;top:-100px;left:12px;z-index:100;background:var(--cyan);padding:12px;color:#082c2a}.skip:focus{top:8px}dialog{background:#112b38;border:1px solid #66838a;border-radius:9px;color:var(--ink);max-width:700px;width:calc(100% - 30px);max-height:91dvh;overflow:auto;padding:25px;overscroll-behavior:contain}dialog::backdrop{background:#020c15d9}.dialog-top{display:flex;justify-content:space-between;align-items:start;gap:15px;margin-bottom:17px}.dialog-top h2{font-size:23px;letter-spacing:-.03em;font-weight:500}.dialog-top button{min-width:36px;height:36px;font-size:18px}dialog p{font-size:13px;line-height:1.9;color:#c6d9df}dialog .buttons{display:flex;gap:12px;flex-wrap:wrap;margin-top:19px}dialog .buttons button{flex:1;margin:0;min-width:170px}.logcard{border:1px solid #426b66;padding:16px;margin-top:12px;background:#12372f;border-radius:5px}.logcard summary{cursor:pointer;font-size:16px;line-height:1.8}.logcard summary small{font-size:10px;color:#acd6c4;display:block}.logcard p{font-size:13px;color:#d8eadb;margin-top:12px}.recordwrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px}th,td{padding:12px 8px;text-align:left;border-bottom:1px solid #3b5967}th{font-size:10px;color:var(--muted);font-weight:500}td small{display:block;font-size:10px;color:var(--muted)}.filters{display:flex;flex-wrap:wrap;gap:8px;margin:17px 0}.filters button{font-size:11px;padding:7px 12px}.filters button.selected{border-color:var(--cyan)}.demo{border:1px solid #496b74;background:#0d2530;padding:19px;margin:18px 0}.demo h3{font-size:18px;font-weight:500;color:var(--cyan);margin-bottom:9px}.empty{text-align:center;padding:28px 10px;color:var(--muted)}#bigDialog{max-width:1050px;padding:18px}.nomotion *{animation:none!important;transition:none!important}
@media(min-width:1200px){.side{position:sticky;top:18px}}@media(max-width:1080px){.layout{grid-template-columns:minmax(0,1.2fr) minmax(320px,1fr);gap:18px}.panel{padding:22px}.wrap{padding:25px 3%}.hero h1{font-size:36px}.routes>div{padding:9px}.routes b{font-size:11px}.routes small{font-size:9px}}
@media(max-width:760px){.top{padding:12px 17px;gap:8px;min-height:65px}.brand{font-size:18px}.brand small{font-size:9px}.nav{gap:3px;font-size:10px}.nav button{font-size:10px;padding:7px 5px}.nav .library{display:none}.wrap{padding:22px 16px}.hero{gap:10px;margin-bottom:20px}.hero h1{font-size:31px;margin:3px 0}.hero p{font-size:11px;max-width:220px}.eyebrow{font-size:9px}.clockbox{padding:10px 12px}.clockbox small{font-size:10px}#clock{font-size:29px}.layout{grid-template-columns:1fr;gap:21px}.routes b{font-size:12px}.routes small{font-size:10px}.routes>div{padding:10px}.panel{padding:23px}.panel h2{font-size:25px}.bar{padding:12px 15px}.bar h2{font-size:13px}.map-note{padding:11px 15px}.map-foot{padding:10px 15px;font-size:10px}.dial .description b{font-size:12px}.rules li{font-size:14px}.help details p{font-size:14px}.caption{font-size:10px}.foot{padding:15px 18px}.legend{font-size:9px;gap:7px 12px}.side{position:static}.nav a{padding:7px 3px}dialog{padding:21px}.choices button{min-height:69px}.warning strong{font-size:22px}.diagram{padding:8px}.clockbox.urgent #clock{color:#ffba9d}.gateway small{font-size:11px}}
@media(max-width:360px){.wrap{padding:19px 12px}.top{padding:10px 12px}.brand{font-size:17px}.hero h1{font-size:27px}.panel{padding:20px 17px}.clockbox{padding:10px}#clock{font-size:26px}.routes{gap:6px}.routes b{font-size:11px}.routes small{font-size:9px}.dial{gap:6px;padding:8px}.dial button{width:34px}.device button{padding:8px}.rules li{font-size:13px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
