@font-face{font-family:DotGothic16;src:url(/fonts/DotGothic16-Regular.ttf) format("truetype");font-display:swap}@font-face{font-family:Handjet;src:url(/fonts/Handjet.ttf) format("truetype");font-weight:100 900;font-display:swap}:root{font-family:Handjet,DotGothic16,monospace;font-size:24px;color:#ececf5;background:#171b2b;font-synthesis:none;--panel: #242a40;--muted: #a9b1cb;--mint: #a6f1cf;--yellow: #ffe38a;--edge: #414c6c}*{box-sizing:border-box}html,body,#root{margin:0;width:100%;height:100%;overflow:hidden}.app{height:100dvh;display:flex;flex-direction:column;padding:12px 46px 6px;gap:10px;overflow:hidden}header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0;border-top:4px solid var(--mint);padding:8px 0}h1{font-size:32px;margin:0;white-space:nowrap}h2{font-size:23px;letter-spacing:1px;margin:0;color:var(--muted)}h3{font-size:26px;margin:0;color:var(--yellow)}button,select,input,textarea{font:inherit;line-height:1.1}button{background:#343e59;color:#fff;border:1px solid #66718f;border-bottom-width:3px;padding:7px 12px;cursor:pointer}button:hover{background:#465573}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--mint);color:#132c27;border-color:#76b79b;font-weight:650}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}button[aria-pressed=true]{border-color:var(--mint);color:var(--mint)}input,select,textarea{background:#151a2c;color:#fff;padding:6px;border:1px solid #66718f;max-width:100%}.actions,nav{display:flex;gap:8px;flex-wrap:wrap}.workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;flex:1;min-height:0}.workspace section{background:var(--panel);border:1px solid var(--edge);padding:14px;min-width:0;min-height:0}.story-panel{overflow:auto}.story{padding:16px 10px;max-width:760px}.story h2{color:var(--yellow);font-size:32px}.story p{line-height:1.45;font-size:28px}.story .eyebrow{font-size:22px;color:var(--mint)}.story nav{margin-top:24px}.story .actions{margin:20px 0}.machine{display:grid;grid-template-rows:minmax(180px,1.1fr) minmax(170px,1fr);gap:12px;min-height:0;min-width:0}.screen-panel{display:flex;flex-direction:column;position:relative;gap:5px;overflow:hidden}.screen-view{flex:1;min-height:0;min-width:0;container-type:size;display:grid;place-items:center}.bezel{width:min(100cqw,calc((100cqh - 24px) * 4 / 3 + 24px));padding:10px;border:2px solid #101421;box-shadow:0 0 0 1px #515a73}canvas{display:block;width:100%;height:auto;aspect-ratio:4/3;image-rendering:pixelated;background:#000}.console{font-size:20px;white-space:pre-wrap;overflow:auto;max-height:52px;flex-shrink:0;overflow-wrap:anywhere}.console:empty{display:none}.input-prompt{position:absolute;inset:auto 12px 12px;background:#171b2bf5;border:2px solid var(--mint);padding:10px;display:flex;gap:8px;align-items:end}.input-prompt label{flex:1;min-width:0}.input-prompt input{display:block;width:100%;margin-top:4px}.code-panel{display:flex;flex-direction:column;gap:7px;overflow:hidden}.code-heading{display:flex;justify-content:space-between;align-items:center;gap:6px}.runtime-controls{flex-wrap:nowrap}.editor-host{flex:1;min-height:0;overflow:hidden}.cm-editor{height:100%;font-size:19px;border:1px solid var(--edge)}.cm-scroller{font-family:ui-monospace,SFMono-Regular,Consolas,monospace!important}.cm-gutters{font-family:Handjet,DotGothic16,monospace}.status{font-size:20px;color:var(--mint);flex-shrink:0;max-height:60px;overflow:auto;overflow-wrap:anywhere}.status button{font-size:20px;text-align:left;padding:2px 6px}.error{color:#ffc0ae}.muted{color:var(--muted)}.progress{color:var(--mint)}footer{font-size:18px;color:var(--muted);flex-shrink:0}.drawer-handles{position:absolute;top:28%;left:3px;z-index:40;display:flex;flex-direction:column;align-items:flex-start;gap:10px}.drawer-handle{transform:rotate(180deg);writing-mode:vertical-rl;padding:12px 5px;z-index:40;font-size:23px;letter-spacing:1px}.drawer{position:absolute;top:78px;bottom:32px;width:min(520px,calc(100% - 92px));background:#1c2336;border:2px solid var(--edge);box-shadow:8px 8px #080c1790;z-index:30;display:flex;flex-direction:column;overflow:hidden}.drawer.spellbook,.drawer.examples,.drawer.inventory{left:43px}.drawer-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px;border-bottom:1px solid var(--edge)}.drawer-content{overflow:auto;flex:1;min-height:0;padding:12px}.drawer-content>nav{margin:10px 0}.cards{display:grid;gap:12px}.card{padding:16px;border:1px solid var(--edge);background:#242a40;min-width:0}.card p{line-height:1.35;margin:12px 0}.card code{overflow-wrap:anywhere;font-family:Handjet,DotGothic16,monospace}.card pre{font:17px/1.5 ui-monospace,monospace;color:var(--yellow);background:#121726;padding:12px;overflow:auto}.card .actions{margin-top:12px}.eyebrow{color:var(--mint);font-size:20px}.small{font-size:20px}@media(max-width:1000px){.app{padding:8px 38px 4px}.actions{gap:5px}header button,header select{font-size:20px}h1{font-size:27px}.workspace{gap:8px}.workspace section{padding:10px}.machine{gap:8px}.runtime-controls button{padding:5px 7px;font-size:21px}.story{padding:8px 0}.story p{font-size:25px}.cm-editor{font-size:17px}.drawer.spellbook,.drawer.examples,.drawer.inventory{left:35px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}.project-actions{justify-content:flex-end;align-items:center}.project-title{width:160px}.mode-controls{display:flex;gap:0}.sandbox-layout{display:block}.sandbox-layout .machine{height:100%;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr)}[hidden]{display:none!important}@media(max-width:1100px){header{align-items:flex-start}.project-actions{max-width:75%}.project-title{width:130px}}canvas:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}.game-controls{color:var(--mint);line-height:1.25}.workspace-controls{margin:0;font-size:19px;max-height:72px;overflow:auto;flex-shrink:0}.inventory-category{margin-top:20px}.inventory-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.inventory-heading button{font-size:20px}.inventory-title{display:flex;align-items:center;gap:16px}.asset-preview{width:64px;height:64px;padding:6px;flex-shrink:0;background:#080c17;image-rendering:pixelated}.asset-id{color:var(--mint)}.inventory-card pre{margin-bottom:8px}.code-heading{flex-wrap:wrap}.runtime-controls{max-width:100%;flex-wrap:wrap}.runtime-controls button{white-space:nowrap}.drawer-handle{max-height:31vh;padding:9px 5px;font-size:21px}.inventory-heading{flex-wrap:wrap}.drawer-content>input[type=search]{width:100%}:lang(ja) .story p{line-height:1.7}@media(max-width:1000px){header{flex-wrap:wrap;gap:5px}.project-actions{max-width:100%}.runtime-controls button{font-size:19px;padding:5px 6px}}:lang(ja) .drawer-handle{transform:none;text-orientation:upright}.account-dialog{color:inherit;background:var(--panel);border:2px solid var(--mint);width:min(560px,92vw);max-height:90dvh;padding:22px;overflow:auto}.account-dialog::backdrop{background:#0a0e1cbb}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.dialog-heading h2{margin:0}.account-dialog form,.account-dialog label{display:flex;flex-direction:column;gap:8px}.account-dialog form{gap:16px}.account-dialog input,.account-dialog select{width:100%;min-width:0}.account-dialog input[type=email],.account-dialog input[type=password]{font:18px/1.5 system-ui,sans-serif;padding:8px}.account-dialog small,.account-email{color:var(--muted);overflow-wrap:anywhere}.account-dialog nav{margin-top:18px}.account-dialog .checkbox-label{display:block}.account-dialog input[type=checkbox]{width:auto}.account-dialog button{white-space:normal}.account-error{color:#ffb5b5}.account-notice{color:var(--mint)}.account-dialog section>*+*{margin-top:16px}.account-avatar{display:inline-grid;place-items:center;width:42px;height:42px;color:#171b2b;background:var(--mint);border:4px double var(--panel)}.library-dialog{width:min(820px,94vw)}.library-filters{margin:16px 0}.library-card{border-top:1px solid var(--edge);padding:16px 0;overflow:hidden}.library-card h3{margin:0;overflow-wrap:anywhere}.library-card p{margin:8px 0}.project-preview{float:left;margin:0 14px 12px 0;width:96px;height:72px;background:repeating-linear-gradient(135deg,#171b2b 0 8px,#333d62 8px 16px);border:6px solid var(--mint);image-rendering:pixelated}.cloud-status{color:var(--mint);font-size:.85rem}.cloud-recovery{background:var(--panel);border:1px solid var(--yellow);padding:8px;max-width:680px}.cloud-recovery p{margin:0 0 6px}.revision-source{font:15px/1.5 monospace;white-space:pre-wrap;overflow-wrap:anywhere;background:#171b2b;padding:14px;max-height:45dvh;overflow:auto}.revision-summary{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:.7rem}.shared-viewer .mode-controls,.shared-viewer .edit-only,.shared-viewer .drawer-handles{display:none}.viewer-info{max-height:25dvh;flex-shrink:0;overflow:auto;padding:10px 16px;background:var(--panel);border:1px solid var(--edge)}.viewer-info h2,.viewer-info p{margin:0 0 6px;overflow-wrap:anywhere}.viewer-info p{font-size:.85rem}.public-loading{padding:32px}.account-dialog textarea{width:100%;min-height:90px;font:inherit;color:inherit;background:#171b2b;border:1px solid var(--edge);padding:8px}a{color:var(--mint)}.shared-viewer .project-title{display:none}.brand-link{color:inherit;text-decoration:none}.public-home{height:100dvh;overflow-y:auto;overflow-x:hidden;padding:24px}.home-content{max-width:1280px;margin:0 auto;border-top:4px solid var(--mint)}.home-header{align-items:flex-start;flex-wrap:wrap;padding:24px 0;gap:22px}.home-header h1{font-size:2.1rem;margin:0}.home-header p{max-width:650px;margin:10px 0 0}.home-header nav{flex-wrap:wrap}.home-section{margin:24px 0 48px}.section-heading{margin:0 0 20px}.section-heading h2{margin-bottom:6px}.section-heading p{margin:0;color:var(--muted)}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}.gallery-card{min-width:0;overflow:hidden;border:1px solid var(--edge);background:var(--panel);display:flex;flex-direction:column}.gallery-card-copy{padding:18px;display:flex;flex:1;flex-direction:column;gap:12px}.gallery-card-copy h3,.gallery-card-copy p{margin:0;overflow-wrap:anywhere}.gallery-card-copy>.button-link,.gallery-card-copy>.actions{margin-top:auto}.gallery-preview{display:block;width:100%;aspect-ratio:4/3;background:#000;image-rendering:pixelated}.preview-link{display:block}.button-link{border:1px solid var(--edge);padding:6px 12px;background:#343e5c;color:inherit;text-decoration:none;display:inline-block;text-align:center}.primary-link{background:var(--mint);color:#171b2b}.public-home a:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}.gallery-search{align-items:flex-end;flex-wrap:wrap;margin-bottom:16px}.gallery-search label{display:flex;flex-direction:column;gap:6px;min-width:0}.gallery-search input{max-width:100%}.gallery-order{margin-bottom:20px}@media(max-width:700px){.public-home{padding:16px}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.home-header nav{width:100%}}.class-form{display:grid;gap:12px;max-width:560px;margin-bottom:20px}.class-form label,.class-code label{display:grid;gap:4px}.class-form textarea{min-height:80px;resize:vertical}.class-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.class-card,.class-code{padding:16px;border:1px solid var(--edge);background:var(--panel);overflow-wrap:anywhere}.class-card h3{margin-top:0}.class-code{max-width:560px}.class-code input{font:1.5rem monospace;letter-spacing:.15em;width:100%}.roster{list-style:none;padding:0;max-width:700px}.roster li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--edge)}.roster span{overflow-wrap:anywhere;min-width:0}.assignment-form fieldset{display:grid;gap:14px;border:0;padding:0;min-width:0}.assignment-form label{display:grid;gap:5px}.assignment-form .checkbox-label{display:flex}.assignment-form textarea{min-height:120px}.plain-prose{white-space:pre-wrap;overflow-wrap:anywhere}.submission-table{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.assignment-control{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px;max-width:360px}.assignment-control>a{overflow:hidden;text-overflow:ellipsis;max-width:160px;white-space:nowrap}.home-header nav>a{padding:6px}.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;margin:20px 0}.admin-filters{margin:20px 0;align-items:end}.admin-filters label{display:grid;gap:6px;max-width:230px}.admin-detail{border:2px solid var(--mint);padding:20px;margin:24px 0;overflow-wrap:anywhere}.admin-detail fieldset{display:grid;gap:14px;border:0;padding:0;min-width:0}.admin-stats{display:flex;flex-wrap:wrap;gap:22px}.admin-stats dd{margin:4px 0 0;font-size:1.5rem;color:var(--mint)}.audit-list{display:grid;gap:14px;margin:20px 0}.audit-list pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.8rem}button.danger{border-color:#f2a0a8;color:#ffd6df}.usage-control{position:fixed;z-index:30;bottom:12px;right:12px;max-width:calc(100vw - 24px);max-height:45dvh;overflow:auto;background:var(--panel);border:1px solid var(--edge);padding:10px;font-size:20px}.usage-control summary{cursor:pointer}.usage-control:has(details[open]){width:min(560px,calc(100vw - 24px))}.health-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.health-grid>div{padding:10px;border:1px solid var(--edge)}.health-grid dt{color:var(--muted)}.health-grid dd{margin:0;font-size:32px}.product-health table{width:100%;text-align:left}.gallery-preview{height:auto}.project-preview>.gallery-preview{height:100%;object-fit:contain}
