@font-face{font-family:Orbitron;src:url('../assets/orbitron-variable.ttf') format('truetype');font-weight:400 900;font-display:swap}
@font-face{font-family:Roboto;src:url('../assets/roboto-variable.ttf') format('truetype');font-weight:100 900;font-display:swap}
:root{color-scheme:dark;--bg:#050d09;--surface:#0b1711;--line:#24382c;--fg:#e1eadb;--soft:#a1b49e;--lime:#daff38;--green:#77a66f;--amber:#e9b64f;--header:108px;font-family:Roboto,Arial,sans-serif;background:var(--bg);color:var(--fg)}
*{box-sizing:border-box}body{margin:0;min-width:300px;background:var(--bg)}[hidden]{display:none!important}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--lime);outline-offset:5px}button{border:0}h1,h2,h3{font-family:Orbitron,sans-serif;font-weight:500}h1{font-size:clamp(22px,4vw,34px);letter-spacing:.02em;margin:8px 0 12px}h2{font-size:19px}h3{font-size:15px}p{line-height:1.65}input,textarea,select{width:100%;color:var(--fg);background:#07110c;border:1px solid #3b503e;border-radius:9px;padding:13px 14px;min-height:48px;font-size:16px}textarea{min-height:125px;resize:vertical}label{display:block;font-size:14px;color:var(--soft);margin:20px 0 8px}input[type=file]{font-size:14px}input[type=file]::file-selector-button{border:1px solid #41633e;border-radius:6px;background:#182b1c;color:#d4e7cc;padding:9px 12px;margin-right:15px}input[type=search]{appearance:none}summary{cursor:pointer;min-height:50px;padding:14px 4px;line-height:1.5}summary::marker{color:#779a48}details{border-bottom:1px solid var(--line)}details>div{padding:0 10px 16px 18px}details p{margin-top:7px}.subtle{font-size:13px;color:var(--soft)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip{position:absolute;top:-80px;left:16px;padding:12px;z-index:100;background:var(--lime);color:#050d09}.skip:focus{top:8px}
.topbar{height:var(--header);position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:center;background:#050d09f7;border-bottom:1px solid #14251a}.brand{display:flex;align-items:center;gap:14px}.brand img{width:56px;height:56px;object-fit:contain}.wordmark{font-family:Orbitron,sans-serif;font-weight:600;font-size:25px;letter-spacing:2px}.wordmark>span,.entry-name>span,.footer-name>span{color:var(--lime)}.wordmark small{display:block;font-family:Roboto,sans-serif;font-size:8px;color:#91a38a;letter-spacing:4.1px;text-align:center;margin-top:8px}.language{position:absolute;right:30px;top:33px;border:1px solid #30422c;border-radius:22px;padding:3px;display:flex;gap:3px;background:#0a160e}.language button{background:transparent;border-radius:18px;padding:7px 10px;min-height:34px;font-size:11px;font-family:Orbitron,sans-serif;color:#9fae96;display:flex;align-items:center;gap:6px}.language button[aria-pressed=true]{background:#203021;color:#e2f0c0;box-shadow:inset 0 1px 0 #546c44}.language span{font-family:Arial,sans-serif;font-size:14px}
main{min-height:calc(100svh - 220px);padding:0 24px}#home{max-width:780px;margin:0 auto}.intro{height:83px;display:flex;align-items:center;justify-content:center}.typing{color:#90ac72;font-family:Orbitron,sans-serif;font-size:12px;letter-spacing:.1em;text-align:center;margin:0;min-height:22px;max-width:100%}.caret{display:inline-block;width:6px;height:13px;background:#a3bc5c;margin-left:5px;vertical-align:-2px;animation:blink 1s steps(1) infinite}@keyframes blink{50%{opacity:0}}
.instrument-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;width:min(100%,716px);margin:0 auto;padding:4px 0 20px}.module-key{display:block;position:relative;aspect-ratio:1;border-radius:25px;background:linear-gradient(145deg,#51624b 0%,#213426 2%,#08110c 6%,#0d1c13 72%,#020603 100%);padding:7px;box-shadow:0 10px 19px #0007,inset 0 1px 0 #6a7d5d,inset 0 -2px 0 #010603;isolation:isolate}.module-key::after{position:absolute;content:'';inset:0;border-radius:inherit;border:1px solid #33452f;pointer-events:none}.key-edge{display:block;height:100%;padding:4px;border-radius:19px;background:linear-gradient(135deg,#354c32,#819078 17%,#243d29 30%,#09120b 47%,#223422 72%,#526348 90%,#172515);box-shadow:inset 0 1px 2px #d0e2b61f,0 0 0 1px #020903}.key-glass{position:relative;display:block;height:100%;overflow:hidden;border-radius:15px;background:#06110a;box-shadow:inset 0 2px 8px #000,inset 0 0 0 1px #829c5144;transition:transform .14s,box-shadow .14s}.key-glass>img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.82) brightness(.72);transition:filter .2s,transform .3s}.key-shade{position:absolute;inset:0;background:linear-gradient(to bottom,#0210060a 0%,#020a0400 43%,#030d0780 65%,#030a06f5 84%,#020905 100%)}.key-reflection{position:absolute;inset:0;border-radius:inherit;background:linear-gradient(132deg,#ecffd914 0%,#d6f8c307 26%,transparent 27%,transparent 67%,#bad68806 68%,transparent 86%);box-shadow:inset 0 1px 1px #e5ffbd3b,inset 1px 0 1px #b9d98d24;pointer-events:none}.key-caption{position:absolute;bottom:8.5%;left:7%;right:6%;display:flex;align-items:center;gap:12px}.key-led{display:block;flex:none;width:17px;height:17px;border-radius:50%;background:radial-gradient(circle at 31% 25%,#bed9b54d 0 6%,#34542d 12%,#0a200b 35%,#020b03 72%);border:1px solid #48613a;box-shadow:0 0 0 3px #020a04,inset 0 -2px 4px #000,0 1px 1px #81a46a66;transition:box-shadow .15s,background .15s}.key-name{font-family:Orbitron,sans-serif;font-weight:600;font-size:clamp(14px,2.2vw,23px);letter-spacing:.035em;color:#7c9b70;text-shadow:0 1px 0 #b6d29215,0 -1px 1px #000;transition:color .15s,text-shadow .15s;line-height:1.4}.module-key.is-active .key-led,.module-key:active .key-led{background:radial-gradient(circle at 36% 28%,#f1ffb1 0 7%,#acff30 12%,#51e413 40%,#156014 80%);border-color:#6ec647;box-shadow:0 0 0 3px #091908,0 0 13px #75ff2670,inset 0 1px 2px #eaff9f}.module-key.is-active .key-name,.module-key:active .key-name{color:#deff45;text-shadow:0 0 11px #b5e92255,0 1px 0 #000}.module-key.is-active .key-glass{box-shadow:inset 0 2px 8px #000,0 0 0 1px #9cc92a88}.module-key.is-active .key-glass>img{filter:saturate(.9) brightness(.9)}.module-key:active .key-glass,.module-key.is-pressed .key-glass{transform:translateY(3px) scale(.988);box-shadow:inset 0 6px 15px #000,0 0 0 1px #75a228}.module-key:active,.module-key.is-pressed{box-shadow:0 3px 8px #0009,inset 0 1px 4px #000}.module-key:hover .key-reflection{background:linear-gradient(132deg,#efffdc18,transparent 46%,transparent 68%,#b7d79d08)}
.footer{max-width:900px;margin:24px auto 0;padding:22px 18px 26px;text-align:center;color:#87977e}.footer-name{font-family:Orbitron,sans-serif;font-size:9px;letter-spacing:1.5px}.footer nav{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:1px 5px;margin:6px 0}.footer nav button{font-size:11px;background:none;color:#8a9a81;min-height:44px;padding:8px}.footer nav>span{font-size:9px}.footer small{font-size:10px;color:#6e8169}
#workspace{max-width:950px;margin:0 auto;padding-top:28px}.workspace-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.back-link,.text-button{font-size:13px;color:var(--soft);background:none;min-height:44px;padding:10px 0}.module-intro{margin-bottom:28px}.module-intro p{max-width:620px;color:var(--soft);font-size:15px}.eyebrow{font-family:Orbitron,sans-serif;font-size:10px;letter-spacing:2px;color:#9cba6c}.rooms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:22px 0}.room{background:linear-gradient(145deg,#132319,#0a160f);border:1px solid #314730;border-radius:14px;text-align:left;padding:25px 23px;min-height:133px;box-shadow:inset 0 1px 0 #7184591a}.room b{display:block;font-family:Orbitron,sans-serif;font-size:17px;color:#c4dbb1;margin-bottom:12px;font-weight:500}.room small{color:var(--soft);font-size:13px;line-height:1.5}.warning{background:#26180d;border:1px solid #68432266;border-radius:10px;color:#f0b263;padding:15px 18px;font-size:14px;line-height:1.65;margin:20px 0}.warning strong{font-weight:600}.notice{border-left:2px solid #779c40;padding:4px 0 4px 16px;color:var(--soft);font-size:14px;line-height:1.7}.primary,.secondary{border:1px solid #506539;border-radius:8px;padding:12px 19px;min-height:46px;font-size:14px;background:#d5f247;color:#10200c}.secondary{background:#122017;color:#c7d5ba;border-color:#3b5036}.button-row{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0 8px}.status-badge{display:inline-flex;align-items:center;gap:7px;border-radius:15px;border:1px solid #705127;color:#e0af60;background:#211a10;padding:5px 10px;font-size:11px}.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin:24px 0}.toolbar button{background:#101e15;border:1px solid #354b30;border-radius:20px;padding:9px 16px;min-height:44px;color:#b7c9a9;font-size:13px}.toolbar button[aria-pressed=true]{background:#2b3b19;color:#e3f2b3;border-color:#8fa63e}.ready-area{border:1px solid var(--line);border-radius:14px;padding:24px;margin:20px 0;background:#09140d}.file-result{font-size:14px;color:#bdceae;word-break:break-word}.recommend{display:flex;justify-content:center;margin:50px 0 24px}.capsule{background:#101c13;border:1px solid #35482d;border-radius:22px;padding:9px 16px;min-height:44px;color:#acbf9d;font-size:11px;display:flex;gap:9px;align-items:center}.capsule>span:first-child{font-size:17px;color:#b6d382}.construction-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:24px}.construction-grid button{background:#0d1811;border:1px solid #29382c;border-radius:9px;padding:15px;color:#94a18d;text-align:left;line-height:1.5;opacity:.7}.construction-grid small{display:block;color:#bd9d68;font-size:11px;margin-top:8px}.resource-list{margin:26px 0}.resource-list p{font-size:14px;color:var(--soft)}.resource-list summary{font-family:Orbitron,sans-serif;font-size:13px}.resource-list details details{margin-left:12px}.source{font-size:9pt;color:#92a28c;line-height:1.6}.empty{text-align:center;padding:24px;color:var(--soft)}
dialog{border:1px solid #405236;border-radius:18px;background:#0a160f;color:var(--fg);padding:24px;max-width:min(94vw,620px);max-height:88svh;overflow:auto;box-shadow:0 24px 100px #000a}dialog::backdrop{background:#020704db;backdrop-filter:blur(9px)}.dialog-top{display:flex;gap:20px;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:18px}.dialog-top h2{font-size:16px;line-height:1.5;margin:0}.close{background:transparent;color:#b6c4ac;font-size:26px;min-width:44px;min-height:44px}.dialog-body p,#info-body p{font-size:14px;color:#c3d0b9}#entry{max-width:100vw;width:100vw;height:100svh;max-height:100svh;border:0;border-radius:0;background:#050d09;margin:0;padding:24px}#entry::backdrop{background:#050d09}.entry-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding-bottom:40px}.entry-inner>img{filter:drop-shadow(0 0 24px #9fd02b22);margin-bottom:25px}.entry-name{font-family:Orbitron,sans-serif;font-size:clamp(22px,5vw,36px);letter-spacing:3px;font-weight:600}.entry-inner>p{font-size:9px;letter-spacing:4px;color:#a1b18b;margin:16px 0 42px}.entry-languages{display:flex;gap:6px;padding:6px;border-radius:40px;border:1px solid #526239;background:linear-gradient(#142015,#0a130c);box-shadow:inset 0 1px 1px #7c8c3a33,0 15px 50px #0005}.entry-languages button{background:transparent;border-radius:30px;padding:15px 25px;min-height:60px;font-family:Orbitron,sans-serif;color:#c3d3b6;font-size:16px;display:flex;align-items:center;gap:12px}.entry-languages button:hover{background:#24351a;color:var(--lime)}.entry-languages button+button{border-left:1px solid #394a2a}.entry-languages span{font-family:Arial,sans-serif;font-size:22px}#share-canvas{display:block;width:min(100%,270px);height:auto;margin:auto;border-radius:6px}#sharing .button-row{justify-content:center}#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:60;background:#213218;color:#e1ecca;border:1px solid #6d8147;padding:12px 20px;border-radius:10px;font-size:14px;max-width:90vw;text-align:center}
.bio p{font-size:14px}.shell-note{margin:30px 0;font-size:13px;color:#9aad8d}.template-preview{height:180px;background:#e7e9db;color:#14231a;border-radius:4px;padding:18px;display:flex;flex-direction:column;justify-content:flex-end;position:relative}.template-preview:before{content:'';position:absolute;top:20px;left:20px;width:40%;height:70px;background:linear-gradient(120deg,#28432b,#96a57e);border-radius:2px}.template-preview b{font-size:22px;font-family:Roboto,sans-serif;font-weight:700;color:#1f3525}.template-preview small{color:#4b5d47;font-size:11px}.room-template{min-height:280px}.room-template>b{margin-top:20px;font-size:13px}.room-template:disabled{opacity:.65}.pet-frame{width:100%;height:450px;border:1px solid #344a30;border-radius:16px;background:#0c180d}.status-line{color:#a4be85;font-size:12px;line-height:1.8}.quota-value{font-family:Orbitron,sans-serif;font-size:12px}.is-workspace #home{display:none}
@media(min-width:1100px){.instrument-panel{width:min(100%,620px);gap:24px}.key-name{font-size:20px}.is-workspace .topbar{justify-content:flex-start;padding-left:40px}.is-workspace .wordmark{font-size:21px}}
@media(max-width:600px){:root{--header:116px}.topbar{padding-bottom:17px}.brand{gap:9px}.brand img{width:42px;height:42px}.wordmark{font-size:19px;letter-spacing:1px}.wordmark small{font-size:7px;letter-spacing:2.8px;margin-top:6px}.language{right:12px;top:81px;padding:2px;gap:2px}.language button{font-size:9px;padding:3px 8px;min-height:27px;gap:4px}.language span{font-size:11px}main{padding:0 16px}.intro{height:68px}.typing{font-size:10px;letter-spacing:.02em}.instrument-panel{gap:17px;padding-top:3px}.module-key{padding:5px;border-radius:17px}.key-edge{padding:3px;border-radius:13px}.key-glass{border-radius:10px}.key-caption{bottom:9%;left:7%;right:4%;gap:7px}.key-led{width:11px;height:11px;box-shadow:0 0 0 2px #020a04,inset 0 -2px 4px #000}.key-name{font-size:clamp(11px,2.7vw,16px);letter-spacing:0}.footer{margin-top:18px;padding-top:16px}.footer nav{gap:0}.footer nav button{padding:5px 6px;font-size:10px}.rooms{gap:10px}.room{padding:20px 14px;min-height:118px}.room b{font-size:13px}.room small{font-size:12px}.ready-area{padding:18px}.construction-grid{grid-template-columns:1fr}.warning{font-size:13px;padding:13px}.template-preview{padding:12px;height:150px}.pet-frame{height:380px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.caret{display:none}}

.download-ready{position:fixed;bottom:18px;right:18px;z-index:70;max-width:calc(100vw - 36px);display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:12px 16px;background:#13251a;border:1px solid #7d9b49;border-radius:12px;box-shadow:0 8px 35px #0009}.download-ready>span{overflow-wrap:anywhere;font-size:13px;flex:1;min-width:120px}.download-ready>a{display:inline-flex;align-items:center;font-size:13px}.download-ready>.close{flex:none}.studio-recent>div{min-width:0;overflow-wrap:anywhere}.studio-recent>button{flex:none}

.resource-list .source{font-size:9pt}
.knowledge-controls{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:12px}.knowledge-topic>summary{display:flex;align-items:center;justify-content:space-between;gap:15px}.knowledge-topic>summary:before{content:'▸';color:#8caf59}.knowledge-topic[open]>summary:before{content:'▾'}.knowledge-topic>summary>small{margin-left:auto;font:11px Roboto,sans-serif;color:#95ad81}.knowledge-entry{max-width:700px;padding:5px 0 18px}.knowledge-entry .knowledge-copy p{font-size:15px;line-height:1.85;color:#c0d0b5}.knowledge-example{padding:14px 17px;background:#13231a;border:1px solid #32482d;border-radius:8px;margin:20px 0}.knowledge-example>b,.knowledge-task>b{font-size:12px;font-weight:600;color:#cce590}.knowledge-example p,.knowledge-task p{font-size:14px;line-height:1.8}.knowledge-pitfall{border-left:2px solid #c19448;padding:4px 0 4px 15px}.knowledge-entry .knowledge-pitfall{color:#cdb37f;font-size:13px;line-height:1.8}.knowledge-task{margin:18px 0;padding:15px 0;border-top:1px solid #2a3e29}.knowledge-task details summary{font-family:Roboto,sans-serif;font-size:13px}.knowledge-entry .source{font-size:9pt;color:#95a68b;line-height:1.8;overflow-wrap:anywhere}.knowledge-entry .source a{text-decoration:underline;text-underline-offset:3px}.knowledge-entry .source a:hover{color:#d5ed9e}@media(max-width:600px){.knowledge-controls{grid-template-columns:1fr}.resource-list details details{margin-left:0}.resource-list details>div{padding-left:8px}.knowledge-entry .knowledge-copy p{font-size:14px}}

.knowledge-meta{font:12px Roboto,sans-serif!important;color:#92a282!important}.knowledge-subtopic>summary{display:flex;align-items:center;gap:12px}.knowledge-subtopic>summary>small{margin-left:auto;color:#7e9272;font:11px Roboto,sans-serif}.knowledge-related{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.knowledge-related>span{width:100%;color:#94ac7e;font-size:11px}.knowledge-related .knowledge-link{font:12px Roboto,sans-serif;background:transparent;border:0;border-bottom:1px solid #3b5033;border-radius:0;padding:9px 0;margin-right:15px;color:#b5c99d;text-align:left;max-width:100%;white-space:normal;line-height:1.5}.knowledge-item>summary{scroll-margin-top:125px}.knowledge-item>summary:focus-visible{outline:1px solid #b7d27b;outline-offset:3px}

/* Revision 30 · section 1: concise module descriptions */
.key-caption{flex-wrap:wrap;row-gap:4px}.key-description{flex-basis:100%;font:400 clamp(11px,1.3vw,14px)/1.4 Roboto,Arial,sans-serif;color:#d2ddbf;letter-spacing:0;margin-left:29px}.key-name{max-width:calc(100% - 29px)}
@media(max-width:480px){.key-caption{gap:5px}.key-description{margin-left:0;font-size:11px}.key-name{font-size:clamp(10px,3.2vw,15px);max-width:calc(100% - 18px)}}
