@font-face{font-family:Berkeley Mono;src:url(https://cdn.jannchie.com/fonts/variants/BerkeleyMono-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Berkeley Mono;src:url(https://cdn.jannchie.com/fonts/variants/BerkeleyMono-Oblique.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Berkeley Mono;src:url(https://cdn.jannchie.com/fonts/variants/BerkeleyMono-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--paper:#f2ecdf;--paper-2:#e8dfcb;--paper-3:#d9ceb5;--ink:#1e1a15;--ink-2:#564e43;--ink-3:#8a8072;--rule:#1e1a1524;--rule-2:#1e1a1552;--accent:#3f6e62;--accent-2:#30574d;--accent-ink:#fbf4e8;--night:#1a1815;--night-2:#221f1b;--night-line:#f2ecdf33;--night-text:#f2ecdf99;--display:"IM Fell English", "Noto Serif SC", "Songti SC", serif;--cjk-serif:"Noto Serif SC", "Songti SC", serif;--ui:"Archivo", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;--mono:"Berkeley Mono", "Sarasa Mono SC", "Noto Sans Mono CJK SC", "Noto Sans SC", monospace;--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .12 0 0 0 0 .1 0 0 0 0 .08 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");--caret:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='6'%3E%3Cpath d='M.5.5 4.5 5 8.5.5' fill='none' stroke='%231e1a15' stroke-width='1.2'/%3E%3C/svg%3E");--ease:cubic-bezier(.2, .7, .2, 1);--label-w:72px}:root:lang(en){--label-w:100px}:root:lang(ja){--label-w:84px;--display:"IM Fell English", "Noto Serif JP", "Noto Serif SC", serif;--cjk-serif:"Noto Serif JP", "Noto Serif SC", serif;--ui:"Archivo", "Noto Sans JP", "Noto Sans SC", sans-serif}*{box-sizing:border-box}html,body{background:var(--night);height:100%;color:var(--ink);font-family:var(--ui);-webkit-font-smoothing:antialiased;margin:0;font-size:13px;font-stretch:94%;overflow:hidden}#root{height:100%}::selection{background:var(--accent);color:var(--accent-ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:0;padding:0}input,select{font:inherit;color:inherit;border-radius:0}.app{height:100vh;display:flex}.panel{width:var(--panel-w,320px);background:var(--grain), var(--paper);z-index:2;box-shadow:inset -1px 0 0 var(--ink), inset -4px 0 0 var(--paper), inset -5px 0 0 var(--rule-2);flex-direction:column;flex:none;display:flex;position:relative}.panel-resize{z-index:3;cursor:col-resize;touch-action:none;width:9px;position:absolute;top:0;bottom:0;right:-7px}.panel-resize:after{content:"";background:var(--accent);opacity:0;width:2px;transition:opacity .15s;position:absolute;top:0;bottom:0;left:1px}.panel-resize:hover:after,.app.resizing .panel-resize:after{opacity:1}.app.resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.masthead{padding:18px 24px 0}.masthead-top{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.wordmark{font-family:var(--display);letter-spacing:-.005em;font-size:25px;line-height:1;transition:color .2s}.wordmark:hover{color:var(--accent)}.file{white-space:nowrap;align-items:center;gap:10px;display:flex}.ptabs{border-top:1px solid var(--rule-2);border-bottom:1px solid var(--ink);margin:12px -24px 0;padding:0 16px;display:flex}.ptabs button{min-width:0;color:var(--ink-3);text-align:center;flex-direction:column;flex:1 1 0;align-items:center;gap:4px;padding:10px 2px 9px;font-size:11px;line-height:1.15;transition:color .2s;display:flex;position:relative}.ptabs span{overflow-wrap:anywhere;max-width:100%}.ptabs button:after{content:"";background:var(--accent);height:2px;transition:transform .25s var(--ease);position:absolute;bottom:0;left:30%;right:30%;transform:scaleX(0)}.ptabs button:hover,.ptabs button.on{color:var(--ink)}.ptabs button.on:after{transform:none}.panel-scroll{scrollbar-width:thin;scrollbar-color:var(--paper-3) transparent;flex:1;overflow:hidden auto}.panel-body{counter-reset:sec;min-width:0;padding:4px 24px 24px}.panel-foot{border-top:1px solid var(--ink);gap:8px;padding:14px 24px 18px;display:flex}.panel-foot .primary{flex:1;min-width:0}.export-menu{flex:none;position:relative}.export-btn{border:1px solid var(--ink);place-items:center;width:42px;height:100%;transition:background .15s,color .15s;display:grid}.export-btn:hover,.export-menu.open .export-btn{background:var(--ink);color:var(--paper)}.export-list{z-index:10;background:var(--grain), var(--paper);border:1px solid var(--ink);min-width:96px;box-shadow:0 0 0 3px var(--paper), 0 0 0 4px var(--rule-2), 0 10px 28px #1e1a152e;flex-direction:column;padding:4px 0;display:flex;position:absolute;bottom:calc(100% + 6px);right:0}.export-list button{font-family:var(--mono);text-align:left;align-items:center;gap:8px;padding:6px 14px;font-size:12px;transition:background .15s;display:flex}.export-list button:hover{background:var(--paper-2)}.pop-enter-active,.pop-leave-active{transition:opacity .15s, transform .15s var(--ease)}.pop-enter-from,.pop-leave-to{opacity:0;transform:translateY(4px)}.sec{padding-top:22px}.sec h2{font-family:var(--cjk-serif);letter-spacing:.06em;align-items:baseline;gap:10px;margin:0 0 14px;font-size:15px;font-weight:600;display:flex}.sec h2:before{counter-increment:sec;content:counter(sec, decimal-leading-zero);font-family:var(--mono);color:var(--accent);letter-spacing:0;font-size:10.5px;font-weight:400}.sec h2:after{content:"";background:var(--rule-2);flex:1;height:1px;transform:translateY(-4px)}.sec>*+*{margin-top:12px}.sec>.scale+.scale{margin-top:4px}.sec h3{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin:0 0 8px;font-size:11px;font-weight:600}.field{flex-wrap:wrap;align-items:center;gap:6px 10px;display:flex}.field>.field-name{flex:0 0 var(--label-w)}.field>.field-body{flex:170px}.field-name,.scale-name{color:var(--ink-2);overflow-wrap:anywhere;font-size:12px;line-height:1.2}.field-body{min-width:0}.field+.field{margin-top:8px}input:not([type]),input[type=text]{border:0;border-bottom:1px solid var(--ink);width:100%;min-width:0;font-family:var(--mono);background:0 0;outline:none;padding:5px 0;font-size:12.5px;transition:border-color .2s}input:not([type]):focus,input[type=text]:focus{border-color:var(--accent);box-shadow:0 1px 0 var(--accent)}input::placeholder{color:var(--ink-3)}select{appearance:none;background:var(--caret) no-repeat right 1px center;border:0;border-bottom:1px solid var(--ink);cursor:pointer;outline:none;width:100%;padding:5px 16px 5px 0;font-size:12.5px}select:focus-visible{border-color:var(--accent);box-shadow:0 1px 0 var(--accent);outline:none}select.lang{width:auto;color:var(--ink-2);background-position:100%;border:0;padding:0 13px 0 0;font-size:11.5px}select.lang:hover{color:var(--ink)}.seed{align-items:flex-end;gap:12px;display:flex}.seed input{letter-spacing:.02em;flex:1;padding:3px 0 5px;font-size:17px}.dice{border:1px solid var(--ink);flex:none;align-items:center;gap:5px;padding:5px 10px;font-size:12px;transition:background .15s,color .15s;display:inline-flex}.dice:hover{background:var(--ink);color:var(--paper)}.dice:active{transform:translateY(1px)}.scale{grid-template-columns:var(--label-w) minmax(0, 1fr) 58px;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;min-height:26px;display:grid}.scale-name{cursor:default}.scale:not(.at-default) .scale-name{cursor:pointer}.scale-track{cursor:pointer;touch-action:none;outline:none;height:24px;position:relative}.scale.dragging .scale-track{cursor:grabbing}.scale-rail{background:linear-gradient(var(--rule-2), var(--rule-2)) 0 3px / 100% 1px no-repeat, linear-gradient(var(--ink-3), var(--ink-3)) 0 0 / 1px 7px no-repeat, linear-gradient(var(--rule-2), var(--rule-2)) 25% 1px / 1px 5px no-repeat, linear-gradient(var(--rule-2), var(--rule-2)) 50% 1px / 1px 5px no-repeat, linear-gradient(var(--rule-2), var(--rule-2)) 75% 1px / 1px 5px no-repeat, linear-gradient(var(--ink-3), var(--ink-3)) 100% 0 / 1px 7px no-repeat;height:7px;position:absolute;top:50%;left:0;right:0;transform:translateY(-3px)}.scale-fill{background:var(--ink);height:2px;position:absolute;top:50%;transform:translateY(-1px)}.scale-def{border:3.5px solid #0000;border-top:0;border-bottom:4px solid var(--ink-3);pointer-events:none;width:0;height:0;margin-left:-3.5px;transition:border-color .2s;position:absolute;top:calc(50% + 5px)}.scale.at-default .scale-def{border-bottom-color:var(--accent)}.scale-thumb{background:var(--accent);width:3px;height:15px;box-shadow:0 0 0 2px var(--paper);transition:height .15s var(--ease), width .15s var(--ease), margin .15s var(--ease);margin-left:-1.5px;position:absolute;top:50%;transform:translateY(-50%)}.scale-track:hover .scale-thumb,.scale.dragging .scale-thumb{height:19px}.scale.dragging .scale-thumb{width:4px;margin-left:-2px}.scale-track:focus-visible .scale-thumb{box-shadow:0 0 0 2px var(--paper), 0 0 0 3.5px var(--accent)}.scale-bubble{background:var(--ink);color:var(--paper);font-family:var(--mono);white-space:nowrap;pointer-events:none;z-index:2;padding:2px 6px 3px;font-size:10.5px;position:absolute;bottom:calc(50% + 13px);transform:translate(-50%)}.scale-bubble:after{content:"";border:3px solid #0000;border-top-color:var(--ink);margin-left:-3px;position:absolute;top:100%;left:50%}.bubble-enter-active,.bubble-leave-active{transition:opacity .15s, transform .15s var(--ease)}.bubble-enter-from,.bubble-leave-to{opacity:0;transform:translate(-50%,3px)}.scale output,.scale-input{font-family:var(--mono);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:11.5px}.scale output{text-overflow:ellipsis;cursor:text;border-bottom:1px solid #0000;padding:2px 0;transition:border-color .15s;overflow:hidden}.scale output:hover{border-bottom-color:var(--rule-2)}.scale .scale-input{border:0;border-bottom:1px solid var(--accent);-webkit-user-select:text;user-select:text;background:0 0;outline:none;width:100%;padding:2px 0}.seg{background:var(--rule-2);border:1px solid var(--ink);flex-wrap:wrap;gap:1px;min-width:0;display:flex}.seg button{background:var(--paper);min-width:0;color:var(--ink-2);white-space:nowrap;flex:auto;padding:5px 7px;font-size:12px;transition:background .15s,color .15s}.seg.cols button{flex:1 1 calc(100% / var(--cols) - 1px);white-space:normal;line-height:1.2}.seg button:hover{background:var(--paper-2);color:var(--ink)}.seg button.on{background:var(--ink);color:var(--paper)}.seg.iconic button{flex-direction:column;align-items:center;gap:3px;padding:7px 4px 6px;display:flex}.dd{border-bottom:1px solid var(--ink);text-align:left;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:5px 1px 5px 0;font-size:12.5px;transition:border-color .15s;display:flex}.dd span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.dd.empty span{color:var(--ink-3)}.dd i{background:var(--caret) no-repeat center;width:9px;height:6px;transition:transform .2s var(--ease);flex:none}.dd.open i{transform:rotate(180deg)}.dd:hover,.dd.open{border-color:var(--accent)}.dd:focus-visible{border-color:var(--accent);box-shadow:0 1px 0 var(--accent);outline:none}.dd-list{z-index:50;background:var(--grain), var(--paper);border:1px solid var(--ink);max-width:340px;box-shadow:0 0 0 3px var(--paper), 0 0 0 4px var(--rule-2), 0 10px 28px #1e1a152e;color:var(--ink);font-family:var(--ui);scrollbar-width:thin;padding:4px 0;position:fixed;overflow-y:auto}.dd-list.up{transform:translateY(-100%)}.dd-item{cursor:pointer;gap:2px;padding:6px 14px 6px 24px;display:grid;position:relative}.dd-item.active{background:var(--paper-2)}.dd-item.on:before{content:"";background:var(--accent);width:6px;height:6px;position:absolute;top:12px;left:10px}.dd-label{font-size:12.5px}.dd-item.on .dd-label{font-weight:600}.dd-desc{color:var(--ink-3);font-size:11px;line-height:1.45}.dd-enter-active,.dd-leave-active{transition:opacity .15s, margin .18s var(--ease)}.dd-enter-from,.dd-leave-to{opacity:0;margin-top:-4px}.dd-list.up.dd-enter-from,.dd-list.up.dd-leave-to{margin-top:4px}.legend{flex-wrap:wrap;gap:6px 16px;display:flex}.legend button{color:var(--ink-3);align-items:center;gap:7px;padding:2px 0;font-size:12.5px;transition:color .15s;display:inline-flex}.legend i{border:1.2px solid;width:10px;height:10px;transition:background .15s,box-shadow .15s}.legend button:hover,.legend button.on{color:var(--ink)}.legend button.on i{background:var(--ink);box-shadow:inset 0 0 0 1.5px var(--paper)}.legend.swatched{grid-template-columns:1fr 1fr;gap:4px 16px;display:grid}.legend.swatched button{width:100%}.legend.swatched button:not(.on){color:var(--ink-3)}.legend small{color:var(--ink-3);font-variant-numeric:tabular-nums;margin-left:auto;font-size:11px}.layout-picker{-webkit-user-select:none;user-select:none;padding:4px 0 0;position:relative}.layout-picker svg{cursor:crosshair;touch-action:none;outline:none;width:100%;height:auto;display:block;overflow:visible}.layout-picker svg:focus-visible .lp-tri{stroke:var(--accent)}.lp-grid{fill:none;stroke:var(--rule);stroke-width:1px}.lp-tri{fill:none;stroke:var(--ink);stroke-width:1px;transition:stroke .15s}.lp-corner{fill:var(--ink)}.lp-halo{fill:var(--accent);opacity:0;transition:opacity .15s}.layout-picker:hover .lp-halo,.layout-picker.dragging .lp-halo{opacity:.14}.lp-dot{fill:var(--accent);stroke:var(--paper);stroke-width:1.5px}.lp-read{font-family:var(--mono);justify-content:space-between;margin-top:4px;font-size:11px;display:flex}.lp-read span{align-items:baseline;gap:5px;display:inline-flex}.lp-read i{font-family:var(--ui);color:var(--ink-3);font-size:11px;font-style:normal}.feature-group+.feature-group{margin-top:12px}.feature-group h3{margin:0 0 4px}.counter{-webkit-user-select:none;user-select:none;align-items:center;gap:8px;min-height:24px;font-size:12.5px;display:flex}.counter-name{color:var(--ink);flex:none}.counter.zero:not(.manual) .counter-name,.counter.disabled .counter-name{color:var(--ink-3)}.counter-lead{border-bottom:1px dotted var(--rule-2);flex:1;min-width:12px;transform:translateY(3px)}.counter-note{color:var(--ink-3);font-size:11px}.counter-ctl{outline:none;align-items:center;display:inline-flex}.counter-ctl:focus-visible{box-shadow:0 1px 0 var(--accent)}.counter-ctl button{width:20px;height:20px;font-family:var(--mono);color:var(--ink-2);opacity:0;font-size:13px;line-height:1;transition:opacity .15s,background .15s}.counter:hover .counter-ctl button,.counter-ctl:focus-within button{opacity:1}.counter-ctl button:hover:not(:disabled){background:var(--paper-2);color:var(--ink)}.variant .counter-ctl button{opacity:1;justify-content:center;align-items:center;display:inline-flex}.variant .counter-ctl button:disabled{opacity:.25!important}.variant .counter-ctl b{cursor:default;width:auto;min-width:38px}.counter-ctl button:disabled{cursor:default;opacity:0!important}.counter-ctl b,.counter-ctl input{width:26px;font-family:var(--mono);text-align:center;font-variant-numeric:tabular-nums;font-size:12px;font-weight:400}.counter-ctl b{cursor:text;color:var(--ink-3)}.counter.manual .counter-ctl b{color:var(--ink);box-shadow:inset 0 -2px 0 var(--accent);font-weight:700}.counter-ctl input{border:0;border-bottom:1px solid var(--accent);background:0 0;outline:none;padding:0}.primary{background:var(--accent);width:100%;color:var(--accent-ink);letter-spacing:.18em;padding:11px 12px;font-size:13px;font-weight:600;transition:background .2s;display:block;position:relative;overflow:hidden}.primary:hover{background:var(--accent-2)}.primary:active{transform:translateY(1px)}.primary:disabled{cursor:progress;background:var(--ink-2)}.primary.dirty:before{content:"";background:repeating-linear-gradient(-45deg,#ffffff21 0 6px,#0000 6px 12px) 0 0/17px 17px;animation:.9s linear infinite hatch;position:absolute;inset:0}@keyframes hatch{to{background-position:17px 0}}.link{color:var(--ink-2);text-decoration:underline;-webkit-text-decoration-color:var(--rule-2);text-decoration-color:var(--rule-2);text-underline-offset:3px;font-size:11.5px;transition:color .15s,text-decoration-color .15s}.link:hover{color:var(--ink);-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.link:has(>.icon){align-items:center;gap:4px;display:inline-flex}.pair button,.wide,.danger{justify-content:center;align-items:center;gap:6px;display:flex}.pair button,.wide{border:1px solid var(--ink);padding:8px 10px;font-size:12.5px;transition:background .15s,color .15s}.pair button:hover,.wide:hover{background:var(--ink);color:var(--paper)}.pair{grid-template-columns:1fr 1fr;gap:8px;display:grid}.wide{width:100%}.danger{border:1px solid var(--accent);width:100%;color:var(--accent);margin-top:10px;padding:7px 10px;font-size:12.5px;transition:background .15s,color .15s}.danger:hover{background:var(--accent);color:var(--accent-ink)}.fold{border-top:1px solid var(--rule-2)}.fold-head{width:100%;color:var(--ink-2);letter-spacing:.04em;justify-content:space-between;align-items:center;padding:10px 0;font-size:12px;display:flex}.fold-head:hover{color:var(--ink)}.fold-head i{width:9px;height:9px;position:relative}.fold-head i:before,.fold-head i:after{content:"";width:9px;height:1.2px;transition:transform .3s var(--ease);background:currentColor;position:absolute;top:4px;left:0}.fold-head i:after{transform:rotate(90deg)}.fold.open .fold-head i:after{transform:rotate(0)}.fold-body{transition:grid-template-rows .35s var(--ease);grid-template-rows:0fr;display:grid}.fold.open .fold-body{grid-template-rows:1fr}.fold-inner{min-height:0;overflow:hidden}.fold-inner>:first-child{margin-top:2px}.fold-inner>*+*{margin-top:8px}.fold-inner>.scale+.scale{margin-top:2px}.fold-inner>:last-child{margin-bottom:14px}.area-panel>*+*{margin-top:14px}.area-actions{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.area-actions .field{width:100%}.area-group h3 small{font-family:var(--mono);letter-spacing:0;color:var(--ink-3);margin-left:4px;font-weight:400}.area-list{flex-wrap:wrap;gap:4px;display:flex}.area-list button{border:1px solid var(--rule-2);max-width:100%;color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;padding:3px 8px;font-size:12px;transition:background .15s,color .15s,border-color .15s;overflow:hidden}.area-list button:hover{border-color:var(--ink);color:var(--ink)}.area-list button.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}.cartouche{border:1px solid var(--ink);box-shadow:inset 0 0 0 3px var(--paper), inset 0 0 0 4px var(--rule-2);animation:rise .5s var(--ease);margin-top:22px;padding:14px 14px 12px}.cartouche-title{font-family:var(--display);justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:12px;font-size:23px;line-height:1.1;display:flex}.cartouche-title small{font-family:var(--mono);color:var(--ink-3);flex:none;font-size:10.5px}.cartouche dl{border-top:1px solid var(--rule);grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 8px;margin:0;padding-top:10px;display:grid}.cartouche dt{color:var(--ink-3);letter-spacing:.04em;font-size:10.5px}.cartouche dd{font-family:var(--mono);white-space:nowrap;margin:2px 0 0;font-size:12px}:root:lang(en) .cartouche dl{grid-template-columns:repeat(2,minmax(0,1fr))}.occupations{border-top:1px solid var(--rule);margin-top:12px;padding-top:10px}.occupations h4{color:var(--ink-3);letter-spacing:.04em;margin:0 0 6px;font-size:10.5px;font-weight:400}.occupations summary{grid-template-columns:var(--occ-w,6.5em) 1fr auto;cursor:pointer;align-items:center;gap:8px;padding:3px 0;font-size:12px;list-style:none;display:grid}.occupations summary::-webkit-details-marker{display:none}.occupations summary:hover .occ-name{text-underline-offset:2px;text-decoration:underline}.occ-name{overflow-wrap:anywhere;line-height:1.25}:root:lang(en) .occupations{--occ-w:8em}.occ-bar{background:var(--rule);height:5px}.occ-bar b{background:var(--ink-2);height:100%;display:block}.occ-num{font-family:var(--mono);color:var(--ink-2);white-space:nowrap;margin-left:auto;font-size:11px}.occupations ul{border-left:1px solid var(--rule);margin:2px 0 6px;padding:0 0 0 10px;list-style:none}.occupations li{color:var(--ink-2);flex-wrap:wrap;justify-content:space-between;gap:0 8px;padding:2px 0;font-size:11.5px;display:flex}.swatches{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.swatches button{background:var(--sw-paper);height:48px;color:var(--sw-ink);border:1px solid var(--rule-2);box-shadow:inset 0 0 0 3px var(--sw-paper), inset 0 0 0 4px var(--sw-ink);font-family:var(--cjk-serif);transition:transform .2s var(--ease), outline-color .2s;outline-offset:2px;outline:1.5px solid #0000;font-size:13px;font-weight:600}.swatches button:hover{transform:translateY(-1px)}.swatches button.on{outline-color:var(--ink)}.brush{transition:opacity .2s}.brush.dim{opacity:.35;pointer-events:none}.sub{border-top:1px solid var(--rule);padding:12px 0 2px}.sub>*+*{margin-top:10px}.plan{border-bottom:1px solid var(--rule);padding-bottom:14px}.plan>*+*{margin-top:10px}.plan-note{color:var(--ink-3);margin:0;font-size:12px;line-height:1.55}.world-head{border-bottom:1px solid var(--rule);padding:18px 0 16px}.world-head>*+*{margin-top:12px}.tool-group h3{letter-spacing:.14em;color:var(--ink-3);margin:0 0 8px;font-size:11px;font-weight:600}.tool-group>*+*{margin-top:10px}.human-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0;display:grid}.human-stats dt{color:var(--ink-3);letter-spacing:.04em;font-size:10.5px}.human-stats dd{font-family:var(--mono);margin:2px 0 0;font-size:13px}.realm-list{border-top:1px solid var(--rule);max-height:240px;margin:0;padding:0;list-style:none;overflow-y:auto}.realm-list button{border-bottom:1px solid var(--rule);text-align:left;justify-content:space-between;align-items:baseline;gap:8px;width:100%;padding:5px 2px;font-size:12.5px;display:flex}.realm-list button:hover{background:var(--paper-2)}.realm-list small{font-family:var(--mono);color:var(--ink-3);flex:none;font-size:10.5px}.inspector{border-top:1px solid var(--rule-2);animation:rise .35s var(--ease);padding-top:14px}.stage{background:var(--night);flex:1;min-width:0;position:relative;overflow:hidden}.view{position:absolute;inset:0}.view.hidden{visibility:hidden}.view canvas{display:block}.paper-view{cursor:grab;overflow:hidden}.paper-view.dragging{cursor:grabbing}.edit-view{background:var(--night-2);cursor:crosshair;overflow:hidden}.area-overlay{z-index:4;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.area-poly{fill:#46783c1a;stroke:#2e5428cc;stroke-width:1.4px;stroke-linejoin:round;transition:fill .12s,stroke .12s}.area-poly.water{fill:#2864a017;stroke:#184678cc}.area-poly.feature{fill:#8c64320f;stroke:#6e461ed9;stroke-dasharray:5 3}.area-poly.hover{fill:#46783c38;stroke-width:2px}.area-poly.feature.hover{fill:#8c64322e}.area-poly.water.hover{fill:#2864a033}.area-poly.sel,.area-poly.water.sel{fill:#3f6e623d}.area-sel-halo,.area-sel-line{fill:none;stroke-linejoin:round;pointer-events:none}.area-sel-halo{stroke:var(--paper);stroke-width:6px;stroke-opacity:.9}.area-sel-line{stroke:var(--accent);stroke-width:2.6px}.area-vertex,.area-mid,.area-label{pointer-events:all;cursor:grab}.area-vertex{fill:var(--paper);stroke:var(--accent-2);stroke-width:1.5px}.area-vertex:hover{fill:var(--accent)}.area-mid{fill:var(--paper);fill-opacity:.85;stroke:var(--accent);stroke-width:1.2px;stroke-opacity:.8}.area-mid:hover{fill:var(--accent);fill-opacity:1}.area-label circle{fill:var(--accent);stroke:var(--paper);stroke-width:2px}.area-label text{font-family:var(--ui);fill:var(--ink);paint-order:stroke;stroke:var(--paper);stroke-width:3px;stroke-linejoin:round;font-size:12.5px;font-weight:600}.no3d{z-index:3;background:var(--grain), var(--paper);border:1px solid var(--ink);width:min(420px,100% - 64px);box-shadow:inset 0 0 0 3px var(--paper), inset 0 0 0 4px var(--rule-2);padding:18px 22px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.no3d .icon{color:var(--ink-2);margin-bottom:10px}.no3d h3{font-family:var(--cjk-serif);margin:0 0 8px;font-size:16px}.no3d p{color:var(--ink-2);margin:0;font-size:12.5px;line-height:1.6}.neatline{border:1px solid var(--night-line);pointer-events:none;z-index:2;position:absolute;inset:14px}.neatline:before,.neatline:after{content:"";position:absolute}.neatline:before{background:repeating-linear-gradient(90deg, var(--night-line) 0 1px, transparent 1px 64px) top / 100% 6px no-repeat, repeating-linear-gradient(90deg, var(--night-line) 0 1px, transparent 1px 64px) bottom / 100% 6px no-repeat;inset:-7px -1px}.neatline:after{background:repeating-linear-gradient(180deg, var(--night-line) 0 1px, transparent 1px 64px) left / 6px 100% no-repeat, repeating-linear-gradient(180deg, var(--night-line) 0 1px, transparent 1px 64px) right / 6px 100% no-repeat;inset:-1px -7px}.tabs{z-index:3;background:var(--paper);border:1px solid var(--ink);box-shadow:0 0 0 4px var(--night);display:flex;position:absolute;top:14px;left:50%;transform:translate(-50%,-50%)}.tabs button{color:var(--ink-2);align-items:center;gap:6px;padding:6px 14px;font-size:12.5px;transition:background .15s,color .15s;display:inline-flex}.tabs button+button{box-shadow:-1px 0 0 var(--rule-2)}.tabs button:hover{color:var(--ink);background:var(--paper-2)}.tabs button.on{background:var(--ink);color:var(--paper);box-shadow:none}.timeline{z-index:3;height:28px;color:var(--night-text);-webkit-user-select:none;user-select:none;align-items:center;gap:14px;display:flex;position:absolute;bottom:44px;left:30px;right:30px}.tl-play{border:1px solid var(--night-line);width:26px;height:26px;color:var(--paper);flex:none;place-items:center;transition:background .15s,border-color .15s;display:grid}.tl-play:hover,.tl-play.on{border-color:var(--paper)}.tl-track{cursor:pointer;touch-action:none;outline:none;flex:1;min-width:0;height:100%;position:relative}.timeline.dragging .tl-track{cursor:grabbing}.tl-rail,.tl-fill{position:absolute;top:50%;left:0}.tl-rail{background:var(--night-line);height:1px;right:0}.tl-fill{background:var(--night-text);height:2px;transform:translateY(-.5px)}.tl-mark{white-space:nowrap;pointer-events:none;padding-top:6px;font-size:10px;line-height:1;position:absolute;top:50%;transform:translate(-50%)}.tl-mark:before{content:"";background:var(--night-text);width:1px;height:7px;position:absolute;top:-3px;left:50%}.tl-thumb{background:var(--paper);width:3px;height:16px;box-shadow:0 0 0 2px var(--night);margin-left:-1.5px;position:absolute;top:50%;transform:translateY(-50%)}.tl-track:focus-visible .tl-thumb{box-shadow:0 0 0 2px var(--night), 0 0 0 3.5px var(--paper)}.tl-read{min-width:11em;font-family:var(--mono);color:var(--paper);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;font-size:11px}.hint{z-index:3;font-family:var(--mono);color:var(--night-text);pointer-events:none;letter-spacing:.02em;font-size:10.5px;position:absolute;bottom:22px;left:30px}.status{z-index:4;background:var(--paper);border:1px solid var(--ink);padding:5px 10px;font-size:12px;position:absolute;top:30px;right:30px}.status:before{content:"";background:var(--accent);width:6px;height:6px;margin-right:8px;animation:1s steps(2,end) infinite blink;display:inline-block;transform:rotate(45deg)translateY(-1px)}@keyframes blink{50%{opacity:.2}}.tour{z-index:3;background:var(--paper);border:1px solid var(--ink);align-items:center;gap:8px;padding:6px 12px;font-size:12.5px;transition:background .15s,color .15s;display:inline-flex;position:absolute;top:30px;right:30px}.tour i{border:5px solid #0000;border-left:8px solid var(--accent);border-right:0;width:0;height:0}.tour.on i{background:var(--accent);border:0;width:8px;height:8px;animation:1.6s ease-in-out infinite breathe}@keyframes breathe{50%{opacity:.35}}.tour:hover{background:var(--paper-2)}.tour-fade{z-index:1;background:var(--night);opacity:0;pointer-events:none;position:absolute;inset:0}.probe{z-index:3;background:var(--grain), var(--paper);border:1px solid var(--ink);pointer-events:none;width:224px;padding:12px 14px 10px;position:absolute;bottom:30px;right:30px;box-shadow:0 0 0 4px #1a181580}.probe-title{border-bottom:1px solid var(--ink);font-family:var(--cjk-serif);margin-bottom:8px;padding-bottom:7px;font-size:15px;font-weight:600}.probe-row{align-items:baseline;gap:6px;font-size:12px;line-height:1.75;display:flex}.probe-row span{color:var(--ink-2)}.probe-row i{border-bottom:1px dotted var(--rule-2);flex:1;transform:translateY(-3px)}.probe-row b{font-family:var(--mono);font-size:11.5px;font-weight:400}.probe-enter-active,.probe-leave-active{transition:opacity .18s, transform .18s var(--ease)}.probe-enter-from,.probe-leave-to{opacity:0;transform:translateY(4px)}.loading{z-index:5;background:#1a18159e;place-items:center;display:grid;position:absolute;inset:0}.loading.fade-leave-active{pointer-events:none}.loading-card{background:var(--grain), var(--paper);border:1px solid var(--ink);width:320px;box-shadow:inset 0 0 0 4px var(--paper), inset 0 0 0 5px var(--rule-2);padding:22px 24px}.loading-title{font-family:var(--cjk-serif);letter-spacing:.04em;font-size:21px;font-weight:600}.loading-stage{min-height:1.4em;color:var(--ink-2);margin:6px 0 16px;font-size:12px}.loading-bar{border:1px solid var(--ink);height:7px;overflow:hidden}.loading-bar i{background:repeating-linear-gradient(90deg, var(--ink) 0 14px, var(--paper) 14px 28px);width:0;height:100%;transition:width .3s var(--ease);display:block}.loading-bar.indeterminate i{width:100%;animation:.8s linear infinite march}@keyframes march{0%{background-position:0 0}to{background-position:28px 0}}.fade-enter-active,.fade-leave-active{transition:opacity .3s}.fade-enter-from,.fade-leave-to{opacity:0}.perf{z-index:4;font-family:var(--mono);color:var(--paper);border:1px solid var(--night-line);pointer-events:none;white-space:pre;background:#1a1815cc;padding:4px 8px;font-size:11px;line-height:1.6;position:absolute;top:72px;right:30px}.edit-legend{z-index:3;background:var(--paper);border:1px solid var(--ink);pointer-events:none;width:220px;padding:9px 11px 19px;position:absolute;top:30px;left:30px}.lg-title{color:var(--ink-2);margin-bottom:7px;font-size:11.5px}.lg-bar{border:1px solid var(--ink);height:8px}.lg-ticks{height:10px;margin-top:3px;position:relative}.lg-ticks span{font-family:var(--mono);white-space:nowrap;font-size:10px;position:absolute;transform:translate(-50%)}.lg-ticks span:first-child{transform:none}.lg-ticks span:last-child{transform:translate(-100%)}.labels3d{pointer-events:none;position:absolute;inset:0;overflow:hidden}.l3{opacity:0;white-space:nowrap;font-family:"Cormorant Garamond", var(--cjk-serif);color:#f3efe4;text-shadow:0 1px 3px #000000bf,0 0 8px #00000059;will-change:transform;transition:opacity .25s;position:absolute;top:0;left:0}.l3-continent{letter-spacing:.4em;text-transform:uppercase;font-size:22px;font-weight:600}.l3-ocean,.l3-sea{color:#cfe3e6;letter-spacing:.25em;font-style:italic}.l3-ocean{text-transform:uppercase;font-size:20px}.l3-sea{font-size:15px}.l3-range{letter-spacing:.25em;text-transform:uppercase;color:#eadfcd;font-size:13px;font-style:italic}.l3-island,.l3-lake{font-size:13px;font-style:italic}.l3-city,.l3-capital{font-size:13px;font-weight:600}.l3-city:after,.l3-capital:after{content:"";background:#f3efe4;border-radius:50%;width:5px;height:5px;margin:3px auto 0;display:block;box-shadow:0 0 0 1.5px #141414b3}.l3-capital:after{background:#1c1c1c;width:7px;height:7px;box-shadow:0 0 0 2px #f3efe4}.l3-district{letter-spacing:.22em;text-transform:uppercase;color:#f6f1e4;font-size:13px;font-weight:600}.l3-landmark{color:#efe6cf;font-size:12px;font-style:italic}.home{background:var(--grain), var(--paper);position:fixed;inset:0;overflow-y:auto}.home-sheet{border:1px solid var(--ink);min-height:calc(100% - 48px);box-shadow:inset 0 0 0 5px var(--paper), inset 0 0 0 6px var(--ink);grid-template-rows:auto 1fr auto;gap:clamp(28px,5vh,56px);margin:24px;padding:clamp(28px,5vw,64px) clamp(24px,5vw,72px) 28px;display:grid;position:relative}.home-sheet:before,.home-sheet:after{content:"";pointer-events:none;position:absolute}.home-sheet:before{background:repeating-linear-gradient(90deg, var(--ink) 0 1px, transparent 1px 48px) top / 100% 7px no-repeat, repeating-linear-gradient(90deg, var(--ink) 0 1px, transparent 1px 48px) bottom / 100% 7px no-repeat;inset:-8px -1px}.home-sheet:after{background:repeating-linear-gradient(180deg, var(--ink) 0 1px, transparent 1px 48px) left / 7px 100% no-repeat, repeating-linear-gradient(180deg, var(--ink) 0 1px, transparent 1px 48px) right / 7px 100% no-repeat;inset:-1px -8px}.home-title{border-bottom:1px solid var(--ink);grid-template-columns:auto 1fr;align-items:end;gap:16px 48px;padding-bottom:clamp(16px,3vh,28px);display:grid}.home-title h1{font-family:var(--display);letter-spacing:-.02em;animation:rise .9s var(--ease) both;margin:0;font-size:clamp(60px,10.5vw,164px);font-weight:400;line-height:.86}.home-title p{max-width:19em;font-family:var(--cjk-serif);text-align:right;color:var(--ink-2);animation:rise .9s 80ms var(--ease) both;justify-self:end;margin:0 0 .5em;font-size:clamp(15px,1.35vw,19px);line-height:1.75}.plates{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-content:end;gap:clamp(28px,4vw,56px);display:grid}.plate{text-align:left;animation:rise .9s calc(.2s + var(--i) * .12s) var(--ease) both;flex-direction:column;gap:16px;display:flex}.plate-img{border:1px solid var(--ink);background:var(--paper-2);padding:7px;display:block}.plate-img img{object-fit:cover;filter:sepia(.12)contrast(1.02);width:100%;height:clamp(180px,100vh - 470px,560px);transition:transform .7s var(--ease), filter .4s;display:block}.plate-img{overflow:hidden}.plate:hover .plate-img img{filter:none;transform:scale(1.04)}.plate-cap{gap:4px;display:grid}.plate-no{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-size:11px}.plate-title{font-family:var(--cjk-serif);letter-spacing:.04em;align-items:center;gap:12px;font-size:26px;font-weight:600;display:flex}.plate-title .icon{opacity:0;transition:opacity .25s, transform .35s var(--ease);flex:none;transform:translate(-8px)}.plate:hover .plate-title .icon,.plate:focus-visible .plate-title .icon{opacity:1;color:var(--accent);transform:none}.plate-desc{max-width:38em;color:var(--ink-2);font-size:13px;line-height:1.75}.home-foot{border-top:1px solid var(--rule-2);animation:rise .9s .5s var(--ease) both;align-items:center;gap:20px;padding-top:14px;display:flex}@keyframes rise{0%{opacity:0;transform:translateY(12px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=760px){.app{flex-direction:column-reverse}.panel-resize{display:none}.panel{width:100%;height:48vh;box-shadow:inset 0 1px 0 var(--ink), inset 0 4px 0 var(--paper), inset 0 5px 0 var(--rule-2)}.home-title{grid-template-columns:1fr}.home-title p{text-align:left;justify-self:start}.home-sheet{min-height:calc(100% - 32px);margin:16px}.hint{display:none}}.holo-view canvas{display:block}.holo-hud{--hh-text:#dfe9f5;--hh-line:#7f9dbf;--hh-accent:#ff6a2a;z-index:1;pointer-events:none;font-family:var(--mono);color:var(--hh-text);text-transform:uppercase;letter-spacing:.04em;position:absolute;inset:26px}.holo-hud .hh-row{opacity:.82;align-items:flex-start;gap:28px;display:flex;position:absolute;left:18px;right:18px}.holo-hud .hh-top{top:18px}.holo-hud .hh-bottom{bottom:40px}.holo-hud .hh-spacer{flex:1}.holo-hud .hh-kv{white-space:nowrap;flex-direction:column;gap:3px;display:flex}.holo-hud .hh-kv>span{opacity:.6;font-size:8px}.holo-hud .hh-kv>b{text-shadow:0 0 6px color-mix(in srgb, var(--hh-text) 60%, transparent);font-size:12px;font-weight:400}.holo-hud .hh-kv.dim>b{opacity:.6}.holo-hud .hh-tiny{white-space:nowrap;grid-template-columns:auto auto;gap:1px 8px;font-size:7.5px;line-height:1.25;display:grid}.holo-hud .hh-tiny i{opacity:.55;font-style:normal}.holo-hud .hh-tiny em{font-style:normal}.holo-hud .hh-mini{border-collapse:collapse;opacity:.75;font-size:7.5px;line-height:1.3}.holo-hud .hh-mini td{padding:0 7px 0 0}.holo-hud .hh-mini u{background:color-mix(in srgb, var(--hh-line) 55%, transparent);color:#fff;padding:0 2px;text-decoration:none}.holo-hud .hh-side{opacity:.7;flex-direction:column;justify-content:space-between;display:flex;position:absolute;top:28%;bottom:22%}.holo-hud .hh-left{left:18px}.holo-hud .hh-right{align-items:flex-end;right:18px}.holo-hud .hh-cross-h,.holo-hud .hh-cross-v{opacity:.22;position:absolute}.holo-hud .hh-cross-h{border-top:1px dashed var(--hh-line);top:50%;left:6%;right:6%;-webkit-mask-image:linear-gradient(90deg,#000 calc(50% - 22px),#0000 calc(50% - 22px) calc(50% + 22px),#000 calc(50% + 22px));mask-image:linear-gradient(90deg,#000 calc(50% - 22px),#0000 calc(50% - 22px) calc(50% + 22px),#000 calc(50% + 22px))}.holo-hud .hh-cross-v{border-left:1px solid var(--hh-line);top:14%;bottom:14%;left:50%;-webkit-mask-image:linear-gradient(#000 calc(50% - 22px),#0000 calc(50% - 22px) calc(50% + 22px),#000 calc(50% + 22px));mask-image:linear-gradient(#000 calc(50% - 22px),#0000 calc(50% - 22px) calc(50% + 22px),#000 calc(50% + 22px))}.holo-hud .hh-cross-c{opacity:.6;background:linear-gradient(var(--hh-line), var(--hh-line)) center / 1px 100% no-repeat, linear-gradient(var(--hh-line), var(--hh-line)) center / 100% 1px no-repeat;width:13px;height:13px;position:absolute;top:50%;left:50%;transform:translate(-6px,-6px)}.holo-hud .hh-corner{border:0 solid var(--hh-line);opacity:.8;width:18px;height:18px;position:absolute}.holo-hud .hh-corner.tl{border-width:1px 0 0 1px;top:0;left:0}.holo-hud .hh-corner.tr{border-width:1px 1px 0 0;top:0;right:0}.holo-hud .hh-corner.bl{border-width:0 0 1px 1px;bottom:0;left:0}.holo-hud .hh-corner.br{border-width:0 1px 1px 0;bottom:0;right:0}.holo-hud .hh-target{border-left:2px solid var(--hh-line);width:230px;box-shadow:inset 0 1px 0 color-mix(in srgb, var(--hh-line) 50%, transparent), inset 0 -1px 0 color-mix(in srgb, var(--hh-line) 50%, transparent);opacity:0;background:#060a109e;padding:10px 12px 10px 14px;transition:opacity .18s,transform .18s;position:absolute;top:96px;right:64px;transform:translate(8px)}.holo-hud .hh-target.on{opacity:1;transform:none}.holo-hud .hh-target.pinned{border-left-color:var(--hh-accent)}.holo-hud .hh-target-head{opacity:.65;justify-content:space-between;font-size:8px;display:flex}.holo-hud .hh-target.pinned .hh-target-head span:first-child{color:var(--hh-accent);opacity:1}.holo-hud .hh-target-name{font-family:var(--ui);letter-spacing:.08em;text-shadow:0 0 10px color-mix(in srgb, var(--hh-text) 50%, transparent);margin:4px 0 8px;font-size:19px;font-weight:700;font-stretch:125%}.holo-hud .hh-target dl{margin:0;font-size:10px}.holo-hud .hh-target dl div{border-top:1px dotted color-mix(in srgb, var(--hh-line) 35%, transparent);justify-content:space-between;gap:12px;padding:2px 0;display:flex}.holo-hud .hh-target dt{opacity:.6}.holo-hud .hh-target dd{text-align:right;text-transform:none;margin:0}@media (width<=1100px){.holo-hud .hh-top .hh-wide,.holo-hud .hh-bottom .hh-mini{display:none}}@media (width<=760px){.holo-hud .hh-row,.holo-hud .hh-side{display:none}.holo-hud .hh-target{width:200px;top:40px;right:12px}}.icon{flex:none;display:block}.library{z-index:50;animation:rise .25s var(--ease);background:#14120f8c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.library-sheet{background:var(--paper);background-image:var(--grain);width:min(1120px,100%);max-height:min(720px,100%);color:var(--ink);flex-direction:column;padding:22px 24px 24px;display:flex;box-shadow:0 18px 60px #00000073}.library-head{border-bottom:1px solid var(--rule-2);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px 20px;padding-bottom:12px;display:flex}.library-head h2{font-family:var(--cjk-serif);letter-spacing:.06em;margin:0;font-size:18px;font-weight:600}.library-actions{align-items:center;gap:16px;display:flex}.library-close{color:var(--ink-2);padding:2px;display:inline-flex}.library-close:hover{color:var(--ink)}.library-body{flex:1;grid-template-columns:300px minmax(0,1fr);gap:28px;min-height:0;display:grid}.library-main{flex-direction:column;min-height:0;display:flex}.new-world{border-right:1px solid var(--rule-2);flex-direction:column;gap:10px;min-height:0;padding-right:28px;display:flex;overflow-y:auto}.new-world h2{font-family:var(--cjk-serif);letter-spacing:.06em;margin:0;font-size:18px;font-weight:600}.new-world-note{color:var(--ink-3);margin:0 0 4px;font-size:12px;line-height:1.55}.new-world-styles>span{letter-spacing:.14em;color:var(--ink-3);margin-bottom:6px;font-size:11px;font-weight:600;display:block}.new-world-styles>div{flex-wrap:wrap;gap:6px;display:flex}.new-world-styles button{border:1px solid var(--rule-2);padding:3px 9px;font-size:12px;transition:border-color .15s,background .15s}.new-world-styles button:hover{border-color:var(--ink)}.new-world-styles button.on{border-color:var(--ink);background:var(--ink);color:var(--paper)}.new-world-source{border:1px solid var(--rule-2);text-align:left;flex-direction:column;gap:3px;padding:9px 11px;transition:border-color .15s,background .15s;display:flex}.new-world-source:hover:not(:disabled){border-color:var(--ink);background:var(--paper-2)}.new-world-source strong{font-size:13.5px;font-weight:600}.new-world-source strong small{color:var(--ink-3);font-weight:400}.new-world-source span{color:var(--ink-3);font-size:11.5px;line-height:1.5}@media (width<=760px){.library-body{grid-template-columns:minmax(0,1fr);overflow-y:auto}.new-world{border-right:0;border-bottom:1px solid var(--rule-2);padding:0 0 20px;overflow:visible}}.source{color:var(--ink-3);justify-content:space-between;align-items:baseline;gap:8px;font-size:12px;display:flex}.source b{color:var(--ink);font-weight:600}.library-empty{color:var(--ink-3);margin:28px 0 8px;font-size:13px}.library-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px;margin:0;padding:18px 2px 2px;list-style:none;display:grid;overflow-y:auto}.library-card{flex-direction:column;gap:8px;min-width:0;display:flex}.library-thumb{aspect-ratio:1.6;background:var(--paper-3);border:1px solid var(--rule-2);transition:border-color .15s;display:block;position:relative;overflow:hidden}.library-thumb:hover,.library-card.current .library-thumb{border-color:var(--ink)}.library-thumb img{object-fit:cover;width:100%;height:100%;display:block}.library-badge{background:var(--accent);color:var(--accent-ink);padding:1px 6px;font-size:10.5px;position:absolute;top:6px;left:6px}.library-meta{flex-direction:column;gap:2px;min-width:0;display:flex}.library-meta strong{font-family:var(--cjk-serif);white-space:nowrap;text-overflow:ellipsis;cursor:text;font-size:14px;font-weight:600;overflow:hidden}.library-meta input{font-size:14px}.library-meta small{font-family:var(--mono);color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;overflow:hidden}.library-card-actions{gap:14px;display:flex}.danger-link:hover{color:#a3412c;text-decoration-color:#a3412c}.frozen-note{border-left:2px solid var(--accent);background:var(--paper-2);padding:10px 12px}.frozen-note h3{margin:0 0 4px}.frozen-note p{color:var(--ink-2);margin:0 0 8px;font-size:12px;line-height:1.55}.locked{opacity:.4;pointer-events:none}
