@font-face{font-family:AuraSystem;src:local('Segoe UI')}
:root{font-family:AuraSystem,system-ui,sans-serif;color:#1f3034;background:#f4f4ef;font-synthesis:none;--ink:#1f3034;--muted:#52666b;--line:#d7ded9;--gold:#b08b35;--paper:#fff;--shell:#e23a2e}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-underline-offset:4px}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #077c9a;outline-offset:3px}button{border:1px solid var(--line);background:#fff;padding:9px 13px;border-radius:7px;color:var(--ink);min-height:40px}button:hover:not(:disabled){background:#eef2ef}button.active,button[aria-pressed=true]{border-color:var(--ink);background:#e8efeb}button.primary{background:var(--ink);border-color:var(--ink);color:#fff}button.primary:hover{background:#365154}button.quiet{background:transparent;border-color:transparent}.skip{position:absolute;top:-100px}.skip:focus{top:8px;left:8px;background:white;padding:12px;z-index:9}
header{height:79px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px;gap:20px}.brand{display:flex;gap:13px;align-items:center;text-decoration:none}.brand img{width:43px;height:43px}.brand strong{font-size:26px;letter-spacing:.12em;font-weight:500}.brand span{display:block;font-size:12px;color:var(--muted);letter-spacing:.04em}.main-nav{display:flex;gap:6px}.main-nav a{font-size:14px;text-decoration:none;padding:11px 14px;border-radius:6px}.main-nav a[aria-current=page]{background:#f0f2ee;box-shadow:inset 0 -2px var(--gold)}main{max-width:1640px;margin:auto;padding:24px 30px 35px}.page-title{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:18px}h1{font-size:26px;letter-spacing:-.025em;margin:0 0 6px;font-weight:600}h2{font-size:19px;margin:0 0 12px}h3{font-size:16px;margin:0 0 9px}p{line-height:1.55;margin:7px 0 15px}.subtle,.hint{font-size:13px;color:var(--muted)}.page-title p{margin:0}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 335px;gap:20px;align-items:start}.drawing{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fafaf7}.stage{position:relative;height:475px;min-width:0;overflow:hidden}.stage canvas{display:block;width:100%;height:100%;touch-action:none}.stage-label{position:absolute;top:20px;left:21px;pointer-events:none;max-width:70%}.stage-label strong{font-size:14px;font-weight:600}.stage-label span{display:block;font-size:12px;color:var(--muted);margin-top:6px}.shell-rail{position:absolute;right:15px;top:65px;display:flex;flex-direction:column;gap:8px}.shell-rail button{background:var(--colour);border:3px solid #ffffffc9;border-radius:50%;min-height:29px;width:29px;padding:0;box-shadow:0 1px 5px #1526302a}.shell-rail button[aria-pressed=true]{outline:2px solid #28363d;outline-offset:3px}.stage-note{position:absolute;bottom:14px;left:21px;color:var(--muted);font-size:12px;pointer-events:none}.stage-toolbar{padding:12px 16px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:8px;background:#fff;flex-wrap:wrap}.shapes{display:flex;gap:4px;flex-wrap:wrap}.shapes button{font-size:13px;padding:7px 10px;min-height:35px}.shape-index{font-size:11px;opacity:.7;margin-right:5px}.secondary-controls{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:12px 16px;border-top:1px solid var(--line)}.secondary-controls button{font-size:13px}.panel{background:#fff;border:1px solid var(--line);border-radius:10px;padding:20px}.address-line{border-left:4px solid var(--shell);padding-left:11px;margin-bottom:16px}.address-line h2{margin:0}.address-line p{margin:5px 0 0;font-size:12px;color:var(--muted)}label{display:block;font-size:13px;margin-bottom:6px}input:not([type=checkbox]):not([type=range]),select,textarea{width:100%;padding:10px;border:1px solid #cbd4d0;background:#fff;border-radius:6px;color:var(--ink)}textarea{resize:vertical;min-height:95px;line-height:1.5}.field{margin-bottom:13px}input[type=range]{width:100%;accent-color:#354f50}input[type=checkbox]{accent-color:#354f50}fieldset{border:0;padding:0;margin:0}.record-item{display:block;text-align:left;width:100%;margin:7px 0;padding:10px 12px;overflow-wrap:anywhere}.record-item small{display:block;font-size:11px;color:var(--muted);margin-top:3px}.empty{color:var(--muted);font-size:13px;padding:13px 0;line-height:1.5}.divider{border-top:1px solid var(--line);margin-top:18px;padding-top:18px}.record-fields{font-size:12px;overflow-wrap:anywhere}.record-fields dt{font-weight:600}.record-fields dd{margin:2px 0 10px}.connection{font-size:13px;border-left:2px solid var(--gold);padding:9px;margin:8px 0;overflow-wrap:anywhere}.connection button{font-size:11px;padding:4px 7px;min-height:27px;float:right}.matrix-panel{margin-top:17px}.matrix-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;gap:10px}.matrix-head h2{margin:0;font-size:15px}.grid-scroll{overflow:auto;padding:4px}.matrix{display:grid;grid-template-columns:repeat(24,minmax(24px,1fr));gap:2px;min-width:630px}.matrix button{border-radius:2px;padding:3px 0;min-height:24px;font-size:10px;border-color:#e0e4df;background:white;color:#586566}.matrix button.occupied{background:#d5e5e0;color:#103a37;font-weight:700}.matrix button[aria-pressed=true]{background:var(--shell);color:white;border-color:var(--ink)}.matrix-help{font-size:12px;color:var(--muted);margin:9px 0 0}.bottom-bar{margin-top:22px;border-top:1px solid var(--line);padding-top:15px;display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap}.bottom-bar p{margin:0;font-size:12px;color:var(--muted)}.bottom-bar a{font-size:12px}.status{min-height:20px;font-size:12px;color:var(--muted)}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#1f3034;color:#fff;box-shadow:0 6px 30px #15263030;padding:13px 22px;border-radius:8px;max-width:90vw;z-index:20;font-size:14px}.toast:empty{display:none}.caption{position:absolute;left:24px;right:58px;bottom:25px;background:#fafaf7ed;padding:13px 17px;font-size:17px;line-height:1.5;pointer-events:none;border-left:2px solid var(--gold);max-width:690px}.story-stage .stage{height:510px}.playbar{padding:18px;background:#fff;border-top:1px solid var(--line)}.play-top{display:flex;gap:12px;align-items:center;margin-bottom:13px}.time-label{font-size:13px;font-variant-numeric:tabular-nums;color:var(--muted);margin-left:auto}.shot-list{list-style:none;margin:0 0 18px;padding:0}.shot-list li{margin:5px 0}.shot-list button{display:flex;gap:12px;align-items:center;text-align:left;width:100%;padding:10px}.shot-number{width:27px;height:27px;display:grid;place-items:center;background:#edf0eb;border-radius:50%;font-size:12px}.shot-list span:last-child{font-size:13px}.shot-list small{display:block;color:var(--muted);font-size:11px;margin-top:2px}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.export-panel{margin-top:18px}.export-panel h2{font-size:16px}.export-panel .hint{margin-top:10px}.recording{border-color:#b94230;background:#fff0ed!important;color:#892a1c!important}.check-label{display:flex;gap:8px;align-items:flex-start;margin:13px 0}.check-label input{margin-top:3px}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:10px}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;padding:15px;border-bottom:1px solid #e5e9e4;vertical-align:top}th{font-size:12px;font-weight:600;background:#f8f9f5}td.note-cell{max-width:430px;overflow-wrap:anywhere}td button{font-size:12px;white-space:nowrap}.inventory-tools{display:flex;gap:12px;margin:20px 0;align-items:center}.inventory-tools input{max-width:500px}.reading{max-width:900px}.reading h1{font-size:34px;margin:15px 0}.reading h2{margin-top:35px}.reading ol,.reading ul{line-height:1.7;padding-left:23px}.reading li{margin:12px 0}.reading .intro{font-size:20px;line-height:1.65}.reading nav{display:flex;justify-content:space-between;margin:40px 0 20px}.reading table{border:1px solid var(--line);background:#fff}.reading code{font-size:13px}.reading .callout{border-left:3px solid var(--gold);padding:10px 20px;background:#fff;margin:24px 0}.error-banner{padding:18px;color:#8c281c;background:#fff2ee}.error-banner:empty{display:none}dialog{border:1px solid var(--line);border-radius:12px;max-width:620px;width:calc(100% - 30px);padding:26px;color:var(--ink)}dialog::backdrop{background:#16262d85}dialog .actions{margin-top:22px}.csv-preview{max-height:190px;overflow:auto;background:#f5f6f2;padding:12px;font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}.record-form .actions button{flex:1}.form-state{font-size:12px;color:var(--muted);margin-bottom:10px}footer{max-width:1640px;padding:0 30px 26px;margin:auto;font-size:12px;color:var(--muted)}
@media(min-width:1600px){.stage{height:535px}}
@media(max-width:1000px){header{padding:0 20px}.main-nav a{padding:10px;font-size:13px}main{padding:20px}.workspace{grid-template-columns:minmax(0,1fr) 285px;gap:14px}.panel{padding:16px}.stage{height:440px}.page-title{align-items:flex-start}h1{font-size:23px}}
@media(max-width:760px){header{height:auto;min-height:73px;padding:12px 15px;flex-wrap:wrap;gap:10px}.brand img{width:34px;height:34px}.brand strong{font-size:22px}.main-nav{width:100%;justify-content:space-between;border-top:1px solid #eef0ec;padding-top:8px}.main-nav a{padding:8px 10px}.workspace{grid-template-columns:1fr}main{padding:18px 12px}.page-title{display:block}.page-title .actions{margin-top:14px}.stage{height:370px}.story-stage .stage{height:430px}.stage-label{left:15px;top:15px}.shell-rail{right:13px;top:62px;gap:10px}.shell-rail button{width:27px;min-height:27px}.stage-note{left:15px;bottom:14px;max-width:70%}.stage-toolbar{padding:10px}.shapes button{font-size:12px;padding:6px 8px}.secondary-controls{padding:10px}.matrix-panel{padding:12px}.matrix-head{align-items:start}.matrix-head .hint{font-size:11px;max-width:140px}.caption{font-size:14px;left:14px;right:45px;bottom:16px;padding:9px 12px}.reading h1{font-size:27px}.reading .intro{font-size:18px}.two-fields{gap:9px}.inventory-tools{flex-wrap:wrap}footer{padding:0 15px 25px}.stage-label span{max-width:230px}.panel.record-panel{margin-top:3px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.spatial-controls{padding:14px 17px;background:#fff;border-top:1px solid var(--line)}.spatial-controls .actions{margin-top:12px}.spatial-controls select{font-size:12px}.spatial-panels{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}.stack-panel{margin-top:16px}.stack-panel .actions{margin-bottom:12px}.stack-panel input[type=number],#address-number{width:120px}.stack-panel form.actions{align-items:end}.stack-panel #stack-count{width:200px}.matrix button{position:relative}.stack-badge{position:absolute;right:0;top:-3px;font-size:8px;line-height:10px;padding:0 2px;background:#fff1b7;color:#273639;border:1px solid #b8a155;border-radius:3px;max-width:100%;overflow:hidden}.asset-link{display:block;font-size:13px;margin:-3px 0 13px 12px}.xyz-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}.compact-list{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:15px;max-height:180px;overflow:auto}.compact-list button{font-size:12px;max-width:100%;overflow-wrap:anywhere;text-align:left}.program-steps{padding-left:22px;max-height:450px;overflow:auto}.program-steps li{margin:12px 0;font-size:12px;overflow-wrap:anywhere}.program-steps .actions{gap:5px;margin-top:5px}.program-steps input{max-width:68px}.program-steps select{max-width:95px}.program-steps button{padding:4px 7px;font-size:11px;min-height:34px}.program-trace{max-height:250px;overflow:auto;font-size:12px;overflow-wrap:anywhere;margin:10px 0}.program-trace>div{padding:10px 0;border-bottom:1px solid var(--line)}.program-trace p{margin:6px 0}.program-trace pre{white-space:pre-wrap}.stack-panel+.spatial-panels{margin-top:14px}#append-step{margin-top:12px}#program-form{margin-top:12px}.spatial-panels h2,.stack-panel h2{font-size:17px}.spatial-panels textarea{min-height:75px}@media(max-width:1100px){.spatial-panels{grid-template-columns:1fr}}

.explode-control{display:flex;align-items:center;gap:12px;margin:18px 0}.explode-control label{min-width:155px;margin:0}.explode-control input{max-width:300px}.stack-cards>button{display:block;width:100%;text-align:left;font-size:12px;margin:5px 0}.stack-cards>.actions{margin-top:10px}@media(max-width:600px){.explode-control{flex-wrap:wrap}}


/* Fixed programmer workspace. Long user content scrolls only inside its editor. */
[hidden]{display:none!important}
body.compact-studio{height:100dvh;overflow:hidden;display:flex;flex-direction:column;background:#edf1f4}
body.embedded-studio>header{display:none}
@media(max-height:480px){.compact-studio .tool-rail{gap:2px;padding:2px}.compact-studio .tool-button{min-height:27px;padding:2px;flex-direction:row;gap:2px}.compact-studio .tool-button svg{width:15px;height:15px}.compact-studio .tool-button span{font-size:9px}}
.compact-studio>header{height:54px;min-height:54px;padding:0 16px;flex-wrap:nowrap;gap:12px}
.compact-studio .brand img{width:30px;height:30px}.compact-studio .brand strong{font-size:18px}.compact-studio .brand span{font-size:12px}
.compact-studio .main-nav{width:auto;border:0;padding:0;gap:2px}.compact-studio .main-nav a{font-size:14px;padding:8px 10px}
.compact-studio main{flex:1;min-height:0;width:100%;max-width:none;padding:8px;display:flex;flex-direction:column;gap:6px;overflow:hidden}
.compact-studio .workspace{--dock:370px;display:grid;grid-template-columns:68px minmax(0,1fr) var(--dock);grid-template-rows:minmax(0,1fr);align-items:stretch;flex:1;min-height:0;gap:8px;position:relative}
.compact-studio .workspace[data-tool=""]{--dock:0px;gap:8px}.compact-studio .workspace[data-tool="matrix"]{--dock:min(660px,57vw)}
.model-column{min-width:0;min-height:0;overflow:hidden}.compact-studio .drawing{height:100%;display:flex;flex-direction:column;border-radius:8px;background:#fafaf7}
.compact-studio .stage{height:auto;min-height:0;flex:1}.compact-studio .stage canvas{height:100%;width:100%}
.compact-studio .stage-label{top:12px;left:14px}.compact-studio .stage-label strong{font-size:14px}.compact-studio .stage-label span{font-size:12px}
.compact-studio .stage-note{font-size:12px;bottom:12px;left:14px}.compact-studio .shell-rail{right:14px;top:70px;gap:10px}
.compact-studio .secondary-controls{padding:8px;gap:5px;flex-shrink:0;background:#fff}.compact-studio .secondary-controls button{min-height:34px;padding:5px 10px;font-size:14px}
.compact-studio .shape-choice{width:170px;min-width:0;padding:6px;font-size:14px;margin-right:auto}
.tool-rail{display:flex;flex-direction:column;gap:4px;padding:4px;background:#fff;border:1px solid var(--line);border-radius:8px;overflow:auto}
.tool-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:57px;padding:5px 1px;border-color:transparent;border-radius:6px}
.tool-button svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.tool-button span{font-size:12px}
.tool-button[aria-pressed=true]{background:#17394d;color:#fff;border-color:#17394d}
.tool-dock{display:flex;flex-direction:column;min-width:0;min-height:0;border:1px solid var(--line);border-radius:8px;background:white;overflow:hidden}
.tool-dock-head{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;border-bottom:1px solid var(--line);min-height:44px;flex-shrink:0}
.tool-dock-head h2{font-size:16px;margin:0}.tool-close{font-size:25px;min-height:30px;padding:0 7px;border:0}
.compact-studio .tool-content{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;border:0;border-radius:0;margin:0;padding:12px}
.compact-studio .tool-content>h2{display:none}.compact-studio .tool-content h3{font-size:14px}.compact-studio .tool-content p{line-height:1.35;margin:0 0 10px}
.compact-studio .tool-content label{font-size:14px;margin-bottom:4px}.compact-studio .tool-content button{font-size:14px;min-height:33px;padding:6px 9px}
.compact-studio .tool-content input:not([type=checkbox]):not([type=range]),.compact-studio .tool-content select,.compact-studio .tool-content textarea{font-size:14px;padding:7px 9px}
.compact-studio .tool-content textarea{min-height:90px;max-height:30dvh}.compact-studio .field{margin-bottom:10px}.compact-studio .check-label{margin:8px 0}.compact-studio .hint{font-size:12px}
.compact-studio .spatial-controls .two-fields{grid-template-columns:1fr}.compact-studio .spatial-controls .actions{margin-top:8px}.compact-studio #address-number{width:75px}
.compact-studio .address-line{margin-bottom:10px;padding-left:8px}.compact-studio .address-line h2{font-size:15px}.compact-studio .empty{padding:4px 0}
.editor-tabs{display:flex;gap:3px;flex-wrap:wrap;margin:0 0 12px}.editor-tabs button{flex:1;font-size:13px!important;padding:6px!important}
.editor-tabs button[aria-pressed=true]{background:#17394d;color:white;border-color:#17394d}.editor-page{min-width:0}
.compact-studio #cell-records{max-height:90px;overflow:auto}.compact-studio .record-item{padding:6px 9px;margin:3px 0}.compact-studio .record-form .actions{margin-top:12px}
.compact-studio .explode-control{flex-wrap:wrap;gap:6px;margin:8px 0}.compact-studio .explode-control label{width:100%;min-width:0}.compact-studio .explode-control input{max-width:none;flex:1}
.compact-studio .stack-panel #stack-count{width:130px}.compact-studio .stack-panel input[type=number]{width:95px}.compact-studio .stack-panel .actions{gap:6px;margin-bottom:8px}
.compact-studio .stack-cards>button{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin:3px 0;font-size:12px}.compact-studio .stack-panel>p.hint:last-child{display:none}
.compact-studio .matrix-panel .matrix-head{display:none}.compact-studio .matrix-panel .grid-scroll{padding:0;overflow:auto}.compact-studio .matrix{min-width:600px;gap:2px}.compact-studio .matrix button{font-size:11px;min-height:28px;padding:2px 0}
.compact-studio .file-panel>.actions{margin-bottom:18px;display:grid;grid-template-columns:1fr}.compact-studio .program-steps{max-height:none;margin:0;padding-left:23px}.compact-studio .program-trace{max-height:35dvh}
.compact-studio .workspace-status{margin:0;padding:0 8px;border:0;min-height:22px;display:block;flex-shrink:0}.workspace-status>div:first-child{display:flex;justify-content:space-between;gap:12px}.workspace-status p{font-size:12px;line-height:20px;margin:0;min-height:0}
@media(max-width:1000px){.compact-studio .workspace{--dock:320px;grid-template-columns:62px minmax(0,1fr) var(--dock)}.compact-studio .secondary-controls{flex-wrap:wrap}.compact-studio .shape-choice{width:145px}.compact-studio .tool-content{padding:10px}}
@media(max-width:700px){.compact-studio>header{padding:0 8px;height:48px;min-height:48px}.compact-studio .brand strong,.compact-studio .brand span{display:none}.compact-studio .brand img{width:27px;height:27px}.compact-studio .main-nav a{font-size:12px;padding:7px}.compact-studio main{padding:4px;gap:3px}.compact-studio .workspace{grid-template-columns:52px minmax(0,1fr);gap:4px}.tool-rail{padding:2px;gap:2px}.tool-button{min-height:52px}.tool-button span{font-size:10px}.tool-button svg{width:21px;height:21px}.tool-dock{position:absolute;z-index:10;left:56px;right:0;bottom:0;height:55%;box-shadow:0 -4px 18px #16314324}.compact-studio .workspace:not([data-tool=""]) .model-column{padding-bottom:calc((100dvh - 90px)*.55 + 4px)}.compact-studio .stage-label span,.compact-studio .stage-note{display:none}.compact-studio .stage-label{left:8px;top:8px;max-width:65%}.compact-studio .stage-label strong{font-size:12px}.compact-studio .shell-rail{top:38px;right:7px;gap:4px}.compact-studio .shell-rail button{width:20px;min-height:20px;border-width:2px}.compact-studio .secondary-controls{padding:4px;gap:3px}.compact-studio .secondary-controls button{font-size:12px;padding:4px 6px;min-height:29px}.compact-studio .shape-choice{width:110px;font-size:12px;padding:5px}.compact-studio .workspace-status p{font-size:10px}.compact-studio .tool-content{padding:9px}.compact-studio .workspace[data-tool="matrix"]{--dock:0px}}

.compact-studio .tool-content .actions:empty,.compact-studio .tool-content .two-fields:empty{display:none}
.compact-studio .tool-content .editor-page>form.actions{margin-top:10px}.compact-studio #clear-selection{margin-top:10px}
.compact-studio .tool-content #stack-cards{margin-top:9px}.compact-studio .tool-content #stack-render-status{margin-top:10px}
.map-pages{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-bottom:10px}.map-pages span{max-width:135px;text-align:center}
@media(max-width:700px){.compact-studio .workspace[data-tool=""]{grid-template-columns:52px minmax(0,1fr);gap:4px}.compact-studio .tool-content .matrix{grid-template-columns:repeat(8,minmax(0,1fr));min-width:0}.compact-studio .tool-content .matrix button{min-height:28px;font-size:12px}.compact-studio .matrix-panel .grid-scroll{overflow:visible}.compact-studio .matrix-help{font-size:11px}.compact-studio .tool-content p.empty{display:none}.compact-studio .record-panel #address-detail{display:none}.compact-studio .record-panel textarea{min-height:68px;height:68px}.compact-studio .record-panel #cell-records{margin-bottom:7px;max-height:65px}.compact-studio .record-panel .form-state{display:none}.compact-studio .record-panel .address-line h2{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}.compact-studio .tool-content .editor-page button{min-height:30px}.compact-studio .editor-tabs{margin-bottom:8px}.compact-studio .tool-dock-head{min-height:36px;padding:3px 9px}}
