:root{--ink:#e6f1fb;--dim:#8ea6c4;--accent:#ffd54a;--mine:#7ee0c0;--panel:#101624eb;--line:#7896c833;--ctrlh:36px}*{box-sizing:border-box;margin:0;padding:0}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:#22314f;border:2px solid #05070d;border-radius:99px}::-webkit-scrollbar-thumb:hover{background:#2e4066}::-webkit-scrollbar-track{background:0 0}html{scrollbar-color:#22314f transparent}body{color:var(--ink);background:#02030a;min-height:100vh;padding:18px;font-family:Apple SD Gothic Neo,Pretendard,Malgun Gothic,sans-serif}.wrap{max-width:900px;margin:0 auto}.layout{display:block}@media (min-width:1024px){.wrap{max-width:1400px}.layout{grid-template-columns:minmax(0,1fr) 380px;align-items:start;gap:20px;display:grid}.mapcol{position:sticky;top:12px}.mapcol .stage{max-width:min(960px,100vh - 150px)}.mapcol .ctrlrow,.mapcol .timeline,.mapcol .statusbar{max-width:min(960px,100vh - 150px);margin-left:auto;margin-right:auto}.mapcol .ctrlrow .bar{max-width:none;margin-left:0;margin-right:0}.sidepanel{scrollbar-width:thin;max-height:calc(100vh - 28px);position:sticky;top:14px;overflow-y:auto}.sidepanel .readout{margin-top:0}.sidepanel .story{margin-top:14px}}.rflash{border-radius:10px}.rflash.flash{animation:.95s flashPulse}@keyframes flashPulse{0%{box-shadow:0 0 0 2px #ffd54ae6}to{box-shadow:0 0 0 2px #ffd54a00}}.linkstar{cursor:pointer;border-bottom:1px dotted var(--dim)}.linkstar:hover{color:var(--accent);border-bottom-color:var(--accent)}.stage.drawing{cursor:cell;border-color:#ffd54a8c}.drawpanel{background:#0a1120;border:1px solid #ffd54a66;border-radius:10px;margin-bottom:10px;padding:13px 15px}.drawpanel .dhead{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;font-size:13.5px;display:flex}.drawpanel .dhead>span{color:var(--dim);font-size:12px}.drawpanel .dhead>span b{color:var(--accent)}.drawpanel .dempty{color:var(--dim);margin-top:8px;font-size:12px;line-height:1.65}.chips{scrollbar-width:thin;flex-wrap:wrap;gap:5px;max-height:118px;margin:9px 0 2px;display:flex;overflow-y:auto}.chip{border:1px solid var(--line);color:var(--dim);font-variant-numeric:tabular-nums;background:#121b30;border-radius:99px;align-items:center;gap:2px;padding:2px 3px 2px 9px;font-size:11px;display:inline-flex}.chip button{color:var(--dim);cursor:pointer;background:0 0;border:none;padding:0 5px;font-size:12px;line-height:1}.chip button:hover{color:var(--accent);background:0 0}.chip.more{color:var(--accent);padding:2px 10px}.dactions{flex-wrap:wrap;align-items:center;gap:7px;margin-top:9px;display:flex}.dactions button{padding:6px 11px;font-size:12px}.dactions .dhint{color:var(--dim);width:100%;font-size:11.5px}.drawsheet{display:none}.drawpanel.collapsed{align-items:center;gap:8px;margin-bottom:0;padding:8px 12px;display:flex}.drawpanel.collapsed>button:not(.dsum){white-space:nowrap;flex-shrink:0;padding:7px 12px;font-size:12.5px}.drawpanel .dsum{text-align:left;min-width:0;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;flex:1;align-items:center;gap:5px;padding:6px 2px;font-size:13px;display:flex;overflow:hidden}.drawpanel .dsum b{color:var(--accent)}.drawpanel .dsum .caret{color:var(--dim);margin-left:auto;padding-left:4px;font-size:10px}.drawpanel .dfold{color:var(--dim);background:0 0;padding:3px 9px;font-size:11.5px}@media (max-width:1023px){.sidepanel .drawpanel{display:none}.drawsheet{z-index:30;padding:0 10px calc(8px + env(safe-area-inset-bottom));display:block;position:fixed;bottom:0;left:0;right:0}.drawsheet .drawpanel{max-width:640px;margin:0 auto;box-shadow:0 -10px 34px #0000008c}.drawsheet .drawpanel.open{max-height:min(62vh,460px);overflow-y:auto}.wrap.has-drawsheet{padding-bottom:76px}}.results{border:1px solid var(--line);background:#0a1120;border-radius:10px;margin-top:10px;padding:13px 15px}.results .dhead{justify-content:space-between;align-items:baseline;gap:10px;font-size:13.5px;display:flex}.results .dhead>span{color:var(--dim);font-size:12px}.wnums{flex-wrap:wrap;gap:4px;margin:9px 0 7px;display:flex}.miniball{color:#111;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:11px;font-weight:700;display:inline-flex}.miniball.bonus{color:#cdd;background:#2a3550}.rsummary{color:var(--dim);margin-bottom:9px;font-size:12px;line-height:1.6}.rsummary b{color:var(--accent)}.rlist{scrollbar-width:thin;gap:5px;max-height:200px;display:grid;overflow-y:auto}.ritem{border:1px solid var(--line);background:#0d1626;border-radius:8px;align-items:center;gap:9px;padding:6px 10px;font-size:11.5px;display:flex}.ritem .rcoord{color:var(--dim);font-variant-numeric:tabular-nums}.ritem .rnums{letter-spacing:1px;color:var(--ink);flex:1;font-family:SF Mono,monospace}.ritem .rbadge{color:var(--dim);white-space:nowrap}.ritem .rbadge.win{color:var(--mine);font-weight:600}.ritem .rbadge.first{color:var(--accent);font-weight:700}.mycell{cursor:pointer;flex-wrap:wrap;transition:border-color .15s,background .15s}.mycell:hover{background:#101c30;border-color:#7ee0c08c}.mycell .rname{color:var(--mine);white-space:nowrap;font-weight:600}.ritem .rdate,.ghead .rdate{color:var(--dim);white-space:nowrap;margin-left:auto;font-size:10.5px}.sgroup{border:1px solid var(--line);background:#0d1626;border-radius:8px;margin-bottom:0;overflow:hidden}.sgroup .ghead{cursor:pointer;touch-action:manipulation;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:9px;padding:7px 10px;font-size:11.5px;font-weight:400;display:flex}.sgroup summary.ghead:after{content:"▾";color:var(--dim);flex-shrink:0;font-size:18px;line-height:1;transition:transform .18s;display:inline-block}.sgroup[open] summary.ghead:after{transform:rotate(180deg)}.sgroup .ghead:hover{background:#101c30}.sgroup .gname{color:var(--mine);white-space:nowrap;font-weight:600}.sgroup .gcount{color:var(--dim);font-size:11px}.sgroup .gfly{border-radius:99px;padding:3px 9px;font-size:10.5px}.sgroup .gbody{gap:4px;padding:2px 8px 8px;display:grid}.sgroup .gbody .ritem{background:#0a1120}.sgroup.single .ghead{cursor:pointer}details.sgroup{overflow:visible}details.sgroup>summary.ghead{border-radius:7px 7px 0 0}details.sgroup:not([open])>summary.ghead{border-radius:7px}details.sgroup>.gbody{border-radius:0 0 7px 7px}details.sgroup[open]>summary.ghead{z-index:2;border-bottom:1px solid var(--line);background:#0d1626;position:sticky;top:0}.mynote-mini{color:#5e708c;margin-top:10px;font-size:11px;line-height:1.5}.gacts{gap:4px;margin-left:auto;display:inline-flex}.ghead .gacts+.rdate{margin-left:6px}.gact{border-radius:99px;padding:2px 8px;font-size:11px;line-height:1.5}.gact.danger{color:#ff8a96;background:#3a1520;border-color:#ea4b5a99}.gedit{flex:1;align-items:center;gap:5px;display:inline-flex}.gedit input{flex:1;width:auto;min-width:110px;padding:4px 9px;font-size:12px}.pendingtag{color:var(--accent);white-space:nowrap;background:#3a2e10;border:1px solid #ffd54a80;border-radius:99px;padding:1px 7px;font-size:10px}.buychk{opacity:.32;filter:grayscale();border-radius:7px;flex:none;width:30px;height:25px;padding:0;font-size:13px;line-height:1;transition:opacity .15s,filter .15s,border-color .15s}.buychk:hover{opacity:.7;filter:grayscale(.3)}.buychk.on{opacity:1;filter:none;border-color:var(--mine);background:#7ee0c026}.buychk.some{opacity:.75;filter:grayscale(.4);border-color:#7ee0c073}.hoveracts{visibility:hidden}.ghead:hover .hoveracts,.ritem:hover .hoveracts,.hoveracts:focus-within{visibility:visible}@media (hover:none){.hoveracts{visibility:visible}}.rnums.fixed{letter-spacing:0;white-space:nowrap;font-variant-numeric:tabular-nums;width:auto;min-width:17ch;color:var(--ink);flex:none;font-family:SF Mono,ui-monospace,monospace}.sgroup .ghead{flex-wrap:nowrap;gap:8px;padding:6px 9px}.sgroup .gbody{gap:3px;padding:2px 6px 6px}.mycell{flex-wrap:nowrap}.rlist{gap:4px}.rlist .ritem{flex-wrap:nowrap;gap:8px;padding:5px 9px}.rlist .rcoord{flex:none}.sgroup .gname{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;overflow:hidden}.sgroup .gname[role=button]{cursor:pointer}.sgroup .gname[role=button]:hover{opacity:.8;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.hoveracts{flex:none}.gfoot{border-top:1px solid var(--line);justify-content:flex-end;margin-top:2px;padding:5px 2px 2px;display:flex}.dormtag{border:1px solid var(--line);color:var(--dim);white-space:nowrap;background:#1a2033;border-radius:99px;padding:1px 7px;font-size:10px}.dormtag.urgent{color:#ff8a96;background:#3a1520;border-color:#ea4b5a8c}.boughttag{color:var(--mine);white-space:nowrap;background:#7ee0c01f;border:1px solid #7ee0c073;border-radius:99px;padding:1px 7px;font-size:10px}.logincard{border:1px solid var(--line);background:#0a1120;border-radius:14px;width:100%;max-width:360px;padding:26px 26px 22px;position:relative}.logincard h2{margin-bottom:7px;font-size:17px}.logincard .ctx{color:var(--dim);margin-bottom:15px;font-size:12.5px;line-height:1.65}.logincard .ctx b{color:var(--accent)}.logincard .lbtns{gap:8px;display:grid}.logincard .lbtns button{width:100%;padding:11px;font-size:13.5px;font-weight:600}.logincard .kakao{color:#191919;background:#fee500;border-color:#fee500}.logincard .kakao:hover{background:#f2da00}.logincard .google{color:#333;background:#fff;border-color:#fff}.logincard .google:hover{background:#e9e9e9}.logincard .lsep{color:var(--dim);align-items:center;gap:9px;margin:13px 0;font-size:11px;display:flex}.logincard .lsep:before,.logincard .lsep:after{content:"";background:var(--line);flex:1;height:1px}.logincard .emailrow{gap:7px;display:flex}.logincard .emailrow input{flex:1;width:auto;min-width:0}.logincard .emailrow button{white-space:nowrap}.logincard .close{color:var(--dim);background:0 0;border:none;padding:4px 7px;font-size:19px;line-height:1;position:absolute;top:9px;right:11px}.logincard .close:hover{color:var(--ink);background:0 0}.logincard .lresend{color:var(--dim);text-underline-offset:3px;background:0 0;border:none;margin-top:12px;padding:0;font-size:11.5px;text-decoration:underline}.logincard .lresend:hover{color:var(--ink);background:0 0}.linklike{font-size:inherit;color:var(--accent);text-underline-offset:3px;background:0 0;border:none;padding:0;text-decoration:underline}.linklike:hover{color:var(--ink);background:0 0}h1{letter-spacing:-.4px;font-size:21px;font-weight:600}.top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;margin-bottom:14px;display:flex}.top>h1{flex:1;min-width:0}.auth{border:1px solid var(--line);background:#0a1120;border-radius:11px;flex-wrap:wrap;align-items:center;gap:7px;padding:9px 12px;display:flex}.loginbtn{color:var(--ink);cursor:pointer;white-space:nowrap;background:#111a2e;border:1px solid #7ee0c073;border-radius:10px;padding:9px 20px;font-family:inherit;font-size:13px;font-weight:600;transition:background .15s,border-color .15s}.loginbtn:hover{border-color:var(--mine);background:#16233c}.topright{align-items:stretch;gap:8px;display:flex}.trialbadge{color:var(--accent);white-space:nowrap;border:1px solid #ffd54a4d;border-radius:99px;align-items:center;padding:0 12px;font-size:12px;display:inline-flex}.gearbtn{color:var(--dim);border-radius:10px;padding:8px 12px;font-size:15px;line-height:1}.gearbtn:hover{color:var(--ink)}.settingscard{border:1px solid var(--line);scrollbar-width:thin;background:#0a1120;border-radius:14px;width:100%;max-width:440px;max-height:calc(100dvh - 40px);padding:24px 24px 18px;position:relative;overflow-y:auto}.settingscard h2{margin-bottom:14px;font-size:17px}.settingscard .close{color:var(--dim);background:0 0;border:none;padding:4px 7px;font-size:19px;line-height:1;position:absolute;top:9px;right:11px}.settingscard .close:hover{color:var(--ink);background:0 0}.sset{border-top:1px solid var(--line);padding:13px 0}.sset h3{color:var(--dim);letter-spacing:.4px;margin-bottom:10px;font-size:11.5px;font-weight:600}.sset .srow{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;min-height:24px;margin-bottom:9px;font-size:13px;display:flex}.sset .srow:last-child{margin-bottom:0}.sset .slabel{color:var(--dim);flex:auto;min-width:0;font-size:12.5px;line-height:1.5}.sset .kakao{color:#191919;background:#fee500;border-color:#fee500;font-weight:600}.sset .kakao:hover{background:#f2da00}.sset .snote{color:var(--dim);text-align:right;margin:2px 0 0;font-size:11.5px}.seg{border:1px solid var(--line);background:#0d1424;border-radius:9px;gap:2px;padding:2px;display:inline-flex}.seg .segbtn{color:var(--dim);background:0 0;border:none;border-radius:7px;min-height:32px;padding:7px 12px;font-size:12.5px}.seg .segbtn:hover{color:var(--ink);background:#16203a}.seg .segbtn.on{color:var(--ink);background:#1a2745;font-weight:600}.sset .slink{color:var(--mine);text-underline-offset:3px;background:0 0;border:none;padding:2px 4px;font-size:13px;font-weight:700;text-decoration:underline}.sset .slink:hover{color:var(--ink);background:0 0}.sempty{color:var(--dim);font-size:12px}.orderlist{scrollbar-width:thin;gap:6px;max-height:190px;display:grid;overflow-y:auto}.orderitem{border:1px solid var(--line);background:#0d1626;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:7px 10px;font-size:12px;display:flex}.orderitem .odate{color:var(--dim);font-variant-numeric:tabular-nums}.orderitem .oamount{font-variant-numeric:tabular-nums;margin-left:auto}.orderitem .ostatus{color:var(--dim);white-space:nowrap}.orderitem .ostatus.paid{color:var(--mine)}.ctrlrow{margin-bottom:9px}.bar{flex-wrap:wrap;align-items:center;gap:9px;margin-bottom:9px;display:flex}.bar button{padding:7px 11px;font-size:12.5px}.bar input[type=number]{padding:7px 10px;font-size:13px}.grow{flex:1}.timeline button{padding:6px 11px;font-size:12.5px}.timeline .playbtn{text-align:center;flex:none;width:38px;padding:6px 0}.bar button,.bar input[type=number],.bar select,.timeline button{height:var(--ctrlh)}.loginbtn,.gearbtn{min-height:var(--ctrlh)}.bar button,.timeline button,.loginbtn{white-space:nowrap;justify-content:center;align-items:center;display:inline-flex}@media (min-width:521px){.ctrlrow{align-items:center;gap:16px;display:flex}.ctrlrow .bar{margin-bottom:0}.bar-r1{flex:1}}input[type=number],input[type=text]{border:1px solid var(--line);color:var(--ink);background:#0d1424;border-radius:8px;width:130px;padding:8px 11px;font-family:inherit;font-size:14px}input:focus{border-color:var(--accent);outline:none}button{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#0d1424;border-radius:8px;padding:8px 13px;font-family:inherit;font-size:13px;transition:background .15s}button:hover{background:#16203a}button.on{background:var(--accent);color:#111;border-color:var(--accent)}button.mine{border-color:#7ee0c080}select{border:1px solid var(--line);color:var(--ink);background:#0d1424;border-radius:8px;padding:8px 10px;font-family:inherit;font-size:13px}input[type=range]{accent-color:var(--accent)}.timeline{align-items:center;gap:11px;margin-top:10px;display:flex}.timeline span{color:var(--dim);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px}.timeline .tlround{text-align:right;min-width:6.5ch;display:inline-block}.stage{aspect-ratio:1;border:1px solid var(--line);cursor:crosshair;background:#05070d;border-radius:12px;width:100%;max-width:960px;margin:0 auto;position:relative;overflow:hidden}.stage.drag{cursor:grabbing}canvas{width:100%;height:100%;display:block}.stage canvas{touch-action:none}.tip{pointer-events:none;background:var(--panel);border:1px solid var(--line);white-space:nowrap;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:5;border-radius:8px;padding:7px 10px;font-size:12px;display:none;position:absolute;transform:translate(-50%,-135%)}.layer-legend{pointer-events:none;z-index:4;flex-direction:column;gap:5px;max-width:78%;display:flex;position:absolute;top:10px;left:10px}.layer-legend .lchip{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);word-break:keep-all;border-radius:99px;width:fit-content;padding:3px 11px;font-size:11px;line-height:1.5}.layer-legend .lchip.est{color:#a8bdea;border-color:#6082d773}.layer-legend .lchip.obs{color:#ffcf8a;border-color:#ffaa3c66}.tip b{color:var(--accent);font-size:13px}.tip .nums{letter-spacing:1px;margin-top:3px;font-family:SF Mono,monospace}.toast{background:var(--panel);border:1px solid var(--line);color:var(--ink);opacity:0;pointer-events:none;text-align:center;word-break:keep-all;overflow-wrap:break-word;border-radius:9px;max-width:85%;padding:9px 16px;font-size:13px;line-height:1.5;transition:opacity .5s;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.toast.show{opacity:1}.statusbar{color:var(--dim);align-items:center;gap:12px;margin-top:10px;font-size:12px;display:flex}.statusbar .zc{gap:5px;display:flex}.statusbar .zc button{padding:5px 12px;font-size:15px;line-height:1}.readout{border:1px solid var(--line);background:#0a1120;border-radius:10px;min-height:60px;margin-top:13px;padding:16px 18px}.readout.empty{color:var(--dim);text-align:center;padding:22px;font-size:13px}.rrow{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.balls{flex-wrap:wrap;gap:5px;display:flex}.ball{color:#111;border-radius:50%;justify-content:center;align-items:center;width:33px;height:33px;font-size:13.5px;font-weight:600;display:flex}.stat{color:var(--dim);flex-direction:column;gap:1px;padding:0 4px;font-size:12px;display:flex}.stat b{color:var(--ink);font-size:15px;font-weight:600}.divider{background:var(--line);align-self:stretch;width:1px}.badges{flex-wrap:wrap;gap:6px;margin-top:11px;display:flex}.badge{border:1px solid var(--line);color:var(--dim);background:#121b30;border-radius:99px;padding:3px 10px;font-size:11.5px}.badge.gold{color:var(--accent);border-color:#ffd54a66}.badge.mine{color:var(--mine);border-color:#7ee0c066}.mynote{color:var(--dim);margin-top:11px;font-size:12.5px;line-height:1.7}.mynote b{color:var(--ink)}.certrow{flex-wrap:wrap;align-items:center;gap:9px;margin-top:12px;display:flex}.certrow input{flex:200px;width:auto;min-width:180px}.story{margin-top:22px}details{border:1px solid var(--line);background:#0a1120;border-radius:10px;margin-bottom:9px;overflow:hidden}summary{cursor:pointer;touch-action:manipulation;justify-content:space-between;align-items:center;padding:13px 17px;font-size:14px;font-weight:600;list-style:none;display:flex}summary::-webkit-details-marker{display:none}summary span.hint{color:var(--dim);font-size:11.5px;font-weight:400}.dbody{color:var(--dim);padding:2px 17px 16px;font-size:13px;line-height:1.75}.dbody b{color:var(--ink)}.dbody .accent{color:var(--accent)}.museum{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:9px;margin-top:6px;display:grid}.relic{border:1px solid var(--line);background:#0d1626;border-radius:9px;padding:12px 14px}.relic h4{color:var(--ink);margin-bottom:4px;font-size:13px}.relic .claim{color:#c9a44a;margin-bottom:6px;font-size:11.5px}.relic .truth{color:var(--dim);font-size:11.5px;line-height:1.55}.laws{gap:12px;margin:18px 0;display:grid}.law{align-items:flex-start;gap:14px;display:flex}.law .no{border:1px solid var(--accent);width:34px;height:34px;color:var(--accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.law b{margin-bottom:3px;font-size:15px;display:block}.law p{color:var(--dim);font-size:13px;line-height:1.6}.intro{z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#02030aed;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.intro .card{border:1px solid var(--line);background:#0a1120;border-radius:14px;max-width:520px;padding:30px 32px}.intro h2{margin-bottom:4px;font-size:19px}.intro .card>p{color:var(--dim);margin-bottom:6px;font-size:12.5px}.intro .card>button{background:var(--accent);color:#111;border:none;width:100%;margin-top:8px;padding:12px;font-size:14px;font-weight:700}.legend{color:var(--dim);text-align:center;margin-top:9px;font-size:11px;line-height:1.6}.spark{width:100%;height:auto;margin-top:10px}@media (max-width:520px){body{padding:12px;overflow-x:hidden}h1{font-size:19px}.top{gap:10px;margin-bottom:10px}.bar{gap:8px;margin-bottom:8px}.ctrlrow{margin-bottom:0}.certrow input{flex:100%;min-width:0}.statusbar .zc{display:none}.toast{max-width:calc(100% - 20px);padding:8px 13px;font-size:12.5px}.logincard{padding:22px 18px 18px}.settingscard{padding:20px 16px 16px}.timeline{gap:6px}.timeline button{padding:6px 8px;font-size:12px}.timeline .playbtn{width:34px}.timeline .tlpct{display:none}.stage{border-left:none;border-right:none;border-radius:0;width:calc(100% + 24px);max-width:none;margin-left:-12px;margin-right:-12px}}
