@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/Inter-Regular.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/Inter-Medium.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/Inter-Bold.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:900;font-display:swap;src:url(/fonts/Inter-Black.woff2)format("woff2")}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff;--panel:#fff;--muted-bg:#f2f2f2;--border:#000;--text:#000;--muted:#0000008c;--accent:#ff3000;--danger:#ff3000;--active:#ff3000;--radius:0px;font-family:Inter,Helvetica Neue,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{background:var(--bg);height:100%;color:var(--text);margin:0}body{position:relative}body:before{content:"";pointer-events:none;z-index:9999;opacity:.015;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.swiss-grid-pattern{background-color:var(--muted-bg);background-image:linear-gradient(#00000008 1px,#0000 1px),linear-gradient(90deg,#00000008 1px,#0000 1px);background-size:24px 24px}.swiss-dots{background-color:var(--muted-bg);background-image:radial-gradient(#0000000a 1px,#0000 1px);background-size:16px 16px}.swiss-diagonal{background-color:var(--muted-bg);background-image:repeating-linear-gradient(45deg,#00000005,#00000005 1px,#0000 1px 10px)}.app{flex-direction:column;height:100%;display:flex}.app-header{border-bottom:4px solid var(--border);background:var(--bg);align-items:center;gap:1.5rem;padding:.75rem 1rem;display:flex}.app-header h1{letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:.95rem;font-weight:900}.app-header nav{flex:1;gap:0;display:flex}.app-header .docs-link{border:2px solid var(--border);background:var(--bg);color:var(--text);letter-spacing:.08em;text-transform:uppercase;align-items:center;margin-left:auto;padding:.4rem .75rem;font-size:.72rem;font-weight:700;text-decoration:none;display:inline-flex}.app-header .docs-link:hover{background:var(--muted-bg)}.app-header .help-btn,.app-header .logout{margin-left:0}.login-gate{background-color:var(--muted-bg);background-image:linear-gradient(#00000008 1px,#0000 1px),linear-gradient(90deg,#00000008 1px,#0000 1px);background-size:24px 24px;place-items:center;min-height:100%;padding:2rem;display:grid}.login-card{background:var(--panel);border:4px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:.85rem;width:min(380px,100%);padding:2rem;display:flex}.login-card h1{letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:1.5rem;font-weight:900}.login-card .error{color:var(--danger);text-transform:uppercase;letter-spacing:.06em;margin:0;font-size:.8rem;font-weight:700}.playtest-overlay{z-index:50;background:var(--bg);flex-direction:column;display:flex;position:fixed;inset:0}.playtest-bar{border-bottom:4px solid var(--border);background:var(--muted-bg);align-items:center;gap:.75rem;padding:.6rem .85rem;display:flex}.playtest-frame{background:var(--bg);border:0;flex:1;width:100%}main{flex:1;min-height:0;overflow:hidden}button{background:var(--bg);color:var(--text);border:2px solid var(--border);border-radius:var(--radius);cursor:pointer;font:inherit;letter-spacing:.08em;text-transform:uppercase;min-height:36px;padding:.45rem .85rem;font-size:.75rem;font-weight:700;transition:background-color .15s ease-out,color .15s ease-out,border-color .15s ease-out}button:hover:not(:disabled){background:var(--accent);color:#fff;border-color:var(--accent)}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:disabled{opacity:.4;cursor:default}button.active,button.primary{background:var(--text);color:#fff;border-color:var(--text)}button.active:hover:not(:disabled),button.primary:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:#fff}button.danger{color:var(--danger);border-color:var(--danger)}button.danger:hover:not(:disabled){background:var(--danger);color:#fff}button.linkish{text-align:left;letter-spacing:.02em;text-transform:none;background:0 0;border:none;flex:1;min-height:0;padding:.25rem 0;font-weight:500}button.linkish:hover:not(:disabled){color:var(--accent);background:0 0}input,select,textarea{background:var(--bg);color:var(--text);border:2px solid var(--border);border-radius:var(--radius);font:inherit;width:100%;padding:.4rem .5rem;transition:border-color .15s ease-out}textarea{resize:vertical;text-transform:none;letter-spacing:normal;min-height:4.5rem;font-weight:500}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none}label{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);flex-direction:column;gap:.3rem;margin-bottom:.55rem;font-size:.7rem;font-weight:700;display:flex}label.check{text-transform:none;letter-spacing:.02em;color:var(--text);flex-direction:row;align-items:center;gap:.4rem;font-weight:500}.muted{color:var(--muted);font-size:.85rem}.hint{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.7rem;font-weight:500}.toolbar{border-bottom:2px solid var(--border);background:var(--muted-bg);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.55rem .85rem;display:flex}.toolbar .status{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin-left:.5rem;font-size:.75rem;font-weight:700}.room-editor,.campaign{flex-direction:column;height:100%;display:flex}.room-layout{flex:1;grid-template-columns:180px 200px 1fr 240px;gap:0;min-height:0;display:grid}.panel{border-right:2px solid var(--border);background:var(--panel);padding:.85rem;overflow:auto}.panel h2,.panel h3{letter-spacing:.14em;text-transform:uppercase;margin:0 0 .65rem;font-size:.75rem;font-weight:900}.panel-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.room-list ul{margin:.5rem 0 0;padding:0;list-style:none}.room-list li{border:1px solid #0000;align-items:center;gap:.25rem;padding:.2rem .35rem;display:flex}.room-list li.active{background:var(--text);border-color:var(--text)}.room-list li.active button.linkish{color:#fff}.room-list li.active button.linkish:hover:not(:disabled){color:var(--accent)}.filter{margin-top:.4rem}.row{gap:.35rem;display:flex}.tool-grid{border:2px solid var(--border);grid-template-columns:1fr 1fr;gap:0;margin-bottom:.75rem;display:grid}.tool-grid button{border:none;border-right:1px solid var(--border);border-bottom:1px solid var(--border);border-radius:0;flex-direction:column;align-items:center;gap:.25rem;min-height:52px;padding:.4rem .2rem;font-size:.62rem;line-height:1.15;display:flex}.tool-grid button:nth-child(2n){border-right:none}.tool-grid button span{text-overflow:ellipsis;max-width:100%;overflow:hidden}.glyph-icon{image-rendering:pixelated;border:1px solid var(--border);background:var(--muted-bg);border-radius:0;display:block}.grid-canvas{border:2px solid var(--border);cursor:default;touch-action:none;image-rendering:pixelated;flex-shrink:0;display:block}.tool-options{border-top:2px solid var(--border);padding-top:.65rem}.canvas{background-color:var(--muted-bg);background-image:linear-gradient(#00000008 1px,#0000 1px),linear-gradient(90deg,#00000008 1px,#0000 1px);background-size:24px 24px;justify-content:center;align-items:center;height:100%;min-height:0;padding:.75rem;display:flex;overflow:hidden}.canvas.empty{color:var(--muted);place-items:center;display:grid}.inspector{border-right:none;border-left:2px solid var(--border)}.inspector section{border-bottom:2px solid var(--border);margin-bottom:1rem;padding-bottom:.75rem}.warnings{background:var(--muted-bg);border-bottom:2px solid var(--border);padding:.75rem 1rem;font-size:.8rem}.warnings p{color:var(--accent);text-transform:uppercase;letter-spacing:.04em;margin:.25rem 0;font-weight:700}.chapters{border-top:2px solid var(--border);flex:1;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:0;padding:0;display:grid;overflow:auto}.chapter-card{background:var(--panel);border:none;border-right:2px solid var(--border);border-bottom:2px solid var(--border);border-radius:var(--radius);padding:1.25rem}.chapter-card header{justify-content:space-between;align-items:baseline;margin-bottom:.75rem;display:flex}.chapter-card h2{letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:.95rem;font-weight:900}.insert-row{flex-wrap:wrap;align-items:end;gap:.4rem;margin-bottom:.6rem;display:flex}.insert-row select{flex:1;min-width:120px}.insert-row label{width:90px;margin:0}.chapter-card ol{max-height:420px;margin:0;padding:0;list-style:none;overflow:auto}.chapter-card li{border-bottom:1px solid #0000001f;align-items:center;gap:.35rem;padding:.35rem 0;font-size:.85rem;display:flex}.chapter-card li.missing .rid{color:var(--danger)}.chapter-card .idx{width:1.5rem;color:var(--accent);font-variant-numeric:tabular-nums;font-weight:900}.chapter-card .rid{flex:1;font-family:ui-monospace,monospace}fieldset{border:2px solid var(--border);border-radius:var(--radius);margin:0 0 .5rem;padding:.5rem .6rem}legend{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;padding:0 .35rem;font-size:.68rem;font-weight:700}.field-help-label{align-items:center;gap:.35rem;display:inline-flex}.field-help{align-items:center;display:inline-flex;position:relative}.info-btn{border:1.5px solid var(--border);background:var(--bg);width:1.1rem;height:1.1rem;color:var(--text);letter-spacing:0;text-transform:lowercase;cursor:help;border-radius:0;padding:0;font-size:.65rem;font-weight:900;line-height:1}.info-btn:hover,.info-btn:focus-visible{background:var(--accent);color:#fff;border-color:var(--accent)}.field-help-popover{z-index:40;background:var(--bg);border:2px solid var(--border);flex-direction:column;gap:.4rem;min-width:180px;max-width:260px;padding:.55rem .65rem;display:flex;position:absolute;top:calc(100% + 4px);left:0;box-shadow:4px 4px #0000001f}.field-help-summary{letter-spacing:.01em;text-transform:none;color:var(--text);font-size:.72rem;font-weight:500;line-height:1.35}.field-help-open,button.linkish{color:var(--accent);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;align-self:flex-start;padding:0;font-size:.68rem;font-weight:700;text-decoration:underline}.tool-active-help{color:var(--muted);margin:0 0 .65rem;font-size:.72rem;line-height:1.35}.campaign-help-blurb{margin:0 1rem .75rem}.help-drawer-root{z-index:60;justify-content:flex-end;display:flex;position:fixed;inset:0}.help-drawer-backdrop{cursor:pointer;background:#00000059;border:none;margin:0;padding:0;position:absolute;inset:0}.help-drawer{background:var(--bg);border-left:4px solid var(--border);z-index:1;flex-direction:column;width:min(520px,100%);height:100%;display:flex;position:relative}.help-drawer-header{border-bottom:2px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;display:flex}.help-drawer-actions{align-items:center;gap:.75rem;display:flex}.docs-page{background:var(--bg);flex-direction:column;min-height:100%;display:flex}.docs-page-header{border-bottom:4px solid var(--border);background:var(--bg);z-index:2;justify-content:space-between;align-items:flex-end;gap:1rem;padding:1rem 1.25rem;display:flex;position:sticky;top:0}.docs-page-kicker{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 .25rem;font-size:.68rem;font-weight:700}.docs-page-header h1{letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:1.25rem;font-weight:900}.docs-page-nav{gap:1rem;display:flex}.docs-page-nav a{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:700}.docs-page-body{width:100%;max-width:720px;margin:0 auto;padding:1.25rem 1.25rem 3rem}.help-drawer-header h2{letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:.85rem;font-weight:900}.help-drawer-body{flex:1;padding:1rem 1.15rem 2rem;font-size:.82rem;line-height:1.45;overflow:auto}.help-drawer-body h1{letter-spacing:.06em;text-transform:uppercase;margin:0 0 .75rem;font-size:1.15rem;font-weight:900}.help-drawer-body h2{letter-spacing:.1em;text-transform:uppercase;border-top:2px solid var(--border);margin:1.5rem 0 .5rem;padding-top:.75rem;scroll-margin-top:.5rem;font-size:.85rem;font-weight:900}.help-drawer-body h3{letter-spacing:.04em;margin:1rem 0 .35rem;scroll-margin-top:.5rem;font-size:.78rem;font-weight:700}.help-drawer-body p,.help-drawer-body li{margin:.35rem 0}.help-drawer-body ul,.help-drawer-body ol{padding-left:1.25rem}.help-drawer-body table{border-collapse:collapse;width:100%;margin:.5rem 0 .75rem;font-size:.75rem}.help-drawer-body th,.help-drawer-body td{border:1px solid var(--border);text-align:left;vertical-align:top;padding:.3rem .45rem}.help-drawer-body th{background:var(--muted-bg);text-transform:uppercase;letter-spacing:.04em;font-size:.68rem;font-weight:700}.help-drawer-body code{background:var(--muted-bg);padding:.05em .25em;font-family:ui-monospace,monospace;font-size:.78em}.help-drawer-body hr{border:none;border-top:2px solid var(--border);margin:1rem 0}.help-drawer-body a{color:var(--accent);font-weight:600}@media (prefers-reduced-motion:reduce){button,input,select{transition:none}.help-drawer-body h2,.help-drawer-body h3{scroll-behavior:auto}}body{margin:0}
