/* TechNova Game Development I — Game Studio X v4 */
.tn-gd1{--gd-blue:#4c97ff;--gd-blue-d:#3373cc;--gd-purple:#9966ff;--gd-purple-d:#774dcb;--gd-pink:#cf63cf;--gd-pink-d:#a74da7;--gd-yellow:#ffbf00;--gd-yellow-d:#cf9800;--gd-orange:#ffab19;--gd-orange-d:#cf8310;--gd-cyan:#5cb1d6;--gd-cyan-d:#3d8fad;--gd-green:#59c059;--gd-green-d:#3b963b;--gd-op:#59c059;--gd-red:#ff6680;--gd-red-d:#cf405b;--gd-list:#ff661a;--gd-list-d:#cb4c0c;--gd-magenta:#ff6680;--gd-teal:#0fbd8c;--gd-ink:#17324f;--gd-line:#d8e2ee;--gd-panel:#fff;--gd-soft:#f5f8fc;background:linear-gradient(180deg,#f9fbff,#f4f8ff);border:1px solid var(--gd-line);border-radius:24px;overflow:hidden;box-shadow:0 18px 45px rgba(31,62,101,.10);color:var(--gd-ink)}
.tn-gd1 *{box-sizing:border-box}.tn-gd1 button,.tn-gd1 input,.tn-gd1 select{font:inherit}.tn-gd1-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:#fff;border-bottom:1px solid var(--gd-line)}
.tn-gd1-tabs{display:flex;gap:6px;padding:4px;border-radius:14px;background:#eef3fb}.tn-gd1-tabs button{border:0;background:transparent;color:#35506d;border-radius:10px;padding:9px 16px;font-weight:800;cursor:pointer}.tn-gd1-tabs button.active{background:#3155d9;color:#fff;box-shadow:0 6px 14px rgba(49,85,217,.22)}.tn-gd1-status{font-size:12px;font-weight:750;color:#5a6f87}.tn-gd1-status.good{color:#16855d}.tn-gd1-status.warn{color:#b05a00}
.tn-gd1-main{display:grid;grid-template-columns:minmax(560px,1.12fr) minmax(380px,.88fr);min-height:610px}.tn-gd1-author{min-width:0;border-right:1px solid var(--gd-line);background:#fff}.tn-gd1-stage-col{min-width:0;background:#f6f9fd;padding:14px;display:flex;flex-direction:column;gap:12px}
.tn-gd1-block-ui{display:grid;grid-template-columns:94px 168px minmax(0,1fr);min-height:560px}.tn-gd1-category-rail{padding:8px 6px;border-right:1px solid var(--gd-line);background:#f3f6fb;overflow:auto}.tn-gd1-category{width:100%;border:0;background:transparent;color:#506982;border-radius:10px;padding:7px 5px;margin:2px 0;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:8px;font-weight:850;cursor:pointer;line-height:1.15}.tn-gd1-category span{font-size:17px}.tn-gd1-category:hover{background:#e7eef8}.tn-gd1-category.active{background:#fff;color:#243f5d;box-shadow:0 3px 10px rgba(35,61,91,.10);outline:1px solid #d8e3ef}
.tn-gd1-palette{padding:10px 8px;border-right:1px solid var(--gd-line);background:#f8fbff;overflow:auto}.tn-gd1-search{display:flex;align-items:center;gap:5px;background:#fff;border:1px solid #cdd9e5;border-radius:10px;padding:6px 8px;margin-bottom:8px}.tn-gd1-search input{width:100%;min-width:0;border:0;outline:0;color:#29455f;background:transparent;font-size:11px}.tn-gd1-cat-title{font-size:10px;font-weight:900;letter-spacing:.08em;color:#66809b;text-transform:uppercase;margin:7px 5px 8px}.tn-gd1-no-blocks{padding:12px;color:#7890a8;font-size:10px;text-align:center}
.tn-gd1-palette-block{--block:#4c97ff;--block-dark:#3373cc;width:100%;position:relative;display:flex;align-items:flex-start;gap:6px;border:2px solid var(--block-dark);background:var(--block);color:#fff;border-radius:9px;padding:8px 7px;margin:7px 0;font-weight:800;font-size:10px;line-height:1.25;text-align:left;cursor:grab;box-shadow:inset 0 -2px 0 rgba(0,0,0,.09),0 2px 3px rgba(27,55,84,.08)}.tn-gd1-palette-block:active{cursor:grabbing}.tn-gd1-palette-block>span{font-size:11px}.tn-gd1-palette-block>b{font-weight:800}
.tn-gd1-work-area{display:flex;flex-direction:column;min-width:0}.tn-gd1-work-head{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid #edf1f6}.tn-gd1-work-head strong{font-size:13px}.tn-gd1-work-head span{font-size:9px;color:#7b90a7;font-weight:800}.tn-gd1-work-head button{margin-left:auto;border:1px solid #cdd9e6;background:#fff;border-radius:9px;padding:7px 10px;font-weight:750;color:#435d78;cursor:pointer}.tn-gd1-workspace{position:relative;flex:1;min-height:500px;padding:24px;background-color:#f8fbff;background-image:radial-gradient(#dce7f3 1px,transparent 1px);background-size:18px 18px;overflow:auto}.tn-gd1-workspace.drag-over{outline:3px dashed #3155d9;outline-offset:-8px}
.tn-gd1-block{--block:#4c97ff;--block-dark:#3373cc;position:relative;display:flex;align-items:center;gap:7px;width:max-content;max-width:calc(100% - 18px);min-height:38px;margin:-2px 0 0;padding:8px 38px 8px 13px;border:2px solid var(--block-dark);background:var(--block);border-radius:9px;color:#fff;font-weight:800;font-size:12px;box-shadow:inset 0 -3px 0 rgba(0,0,0,.10),0 2px 4px rgba(31,60,90,.10);cursor:grab;isolation:isolate;transition:transform .08s ease,filter .08s ease}.tn-gd1-block:hover{filter:brightness(1.03)}.tn-gd1-block.dragging{opacity:.28;transform:scale(.98)}.tn-gd1-block-content{display:flex;align-items:center;gap:5px;flex-wrap:wrap;min-width:0}.tn-gd1-block input,.tn-gd1-block select{border:1px solid rgba(0,0,0,.20);border-radius:999px;background:#fff;color:#243f5d;padding:3px 7px;font-size:11px;font-weight:800;min-width:46px;max-width:126px;outline:0}.tn-gd1-block input[type=number]{width:62px}.tn-gd1-block input[type=text]{width:94px}.tn-gd1-remove{position:absolute;right:7px;top:50%;transform:translateY(-50%);border:0;background:rgba(255,255,255,.18);color:inherit;width:23px;height:23px;border-radius:50%;cursor:pointer;font-weight:900}
/* Original puzzle grammar: strong outline + visible stack connectors */
.tn-gd1-block.shape-stack::before,.tn-gd1-palette-block.shape-stack::before{content:"";position:absolute;top:-2px;left:18px;width:24px;height:7px;background:var(--block);border:2px solid var(--block-dark);border-bottom:0;border-radius:5px 5px 0 0;z-index:2}.tn-gd1-block.shape-stack::after,.tn-gd1-palette-block.shape-stack::after{content:"";position:absolute;bottom:-7px;left:18px;width:24px;height:7px;background:var(--block);border:2px solid var(--block-dark);border-top:0;border-radius:0 0 5px 5px;z-index:3}.tn-gd1-block.shape-hat,.tn-gd1-palette-block.shape-hat{border-radius:24px 12px 9px 9px;padding-top:12px}.tn-gd1-block.shape-hat::before,.tn-gd1-palette-block.shape-hat::before{content:"";position:absolute;left:7px;top:-9px;width:66px;height:20px;border-radius:50% 50% 0 0;background:var(--block);border:2px solid var(--block-dark);border-bottom:0;z-index:-1}.tn-gd1-block.shape-hat::after,.tn-gd1-palette-block.shape-hat::after{content:"";position:absolute;bottom:-7px;left:18px;width:24px;height:7px;background:var(--block);border:2px solid var(--block-dark);border-top:0;border-radius:0 0 5px 5px}.tn-gd1-block.shape-reporter,.tn-gd1-palette-block.shape-reporter{border-radius:999px;padding-left:16px;padding-right:16px}.tn-gd1-block.shape-boolean,.tn-gd1-palette-block.shape-boolean{clip-path:polygon(10px 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,10px 100%,0 50%);border-radius:0;padding-left:18px;padding-right:18px}.tn-gd1-block.shape-cap,.tn-gd1-palette-block.shape-cap{border-radius:9px 9px 22px 22px;padding-bottom:11px}.tn-gd1-block.shape-cap::before,.tn-gd1-palette-block.shape-cap::before{content:"";position:absolute;top:-2px;left:18px;width:24px;height:7px;background:var(--block);border:2px solid var(--block-dark);border-bottom:0;border-radius:5px 5px 0 0}.tn-gd1-block.shape-c,.tn-gd1-palette-block.shape-c{min-height:54px;padding-bottom:22px;border-radius:9px 9px 9px 17px}.tn-gd1-block.shape-c::after,.tn-gd1-palette-block.shape-c::after{content:"";position:absolute;left:18px;right:10px;bottom:6px;height:9px;border-radius:6px;background:rgba(255,255,255,.34);box-shadow:inset 0 0 0 2px rgba(0,0,0,.12)}
.tn-gd1-block.drop-before{margin-top:20px}.tn-gd1-block.drop-before::marker{display:none}.tn-gd1-block.drop-before{box-shadow:0 -13px 0 -10px #3155d9,inset 0 -3px 0 rgba(0,0,0,.1)}.tn-gd1-block.drop-after{margin-bottom:20px;box-shadow:0 13px 0 -10px #3155d9,inset 0 -3px 0 rgba(0,0,0,.1)}.tn-gd1-drag-ghost{position:fixed!important;left:-9999px!important;top:-9999px!important;z-index:999999!important;opacity:.92!important;transform:rotate(2deg) scale(1.03)!important;pointer-events:none!important;box-shadow:0 14px 25px rgba(16,42,75,.25)!important}.tn-gd1-insert-marker{height:0}.tn-gd1-empty{color:#7890a9;font-size:13px;padding:24px;border:2px dashed #cbd8e6;border-radius:14px;text-align:center;background:#fff}
/* Category colors */
.tn-gd1 .motion{--block:var(--gd-blue);--block-dark:var(--gd-blue-d)}.tn-gd1 .looks{--block:var(--gd-purple);--block-dark:var(--gd-purple-d)}.tn-gd1 .sound{--block:var(--gd-pink);--block-dark:var(--gd-pink-d)}.tn-gd1 .events{--block:var(--gd-yellow);--block-dark:var(--gd-yellow-d);color:#4b3500}.tn-gd1 .control{--block:var(--gd-orange);--block-dark:var(--gd-orange-d);color:#513300}.tn-gd1 .sensing{--block:var(--gd-cyan);--block-dark:var(--gd-cyan-d)}.tn-gd1 .operators{--block:var(--gd-green);--block-dark:var(--gd-green-d)}.tn-gd1 .variables{--block:#ff8c1a;--block-dark:#d66d00}.tn-gd1 .lists{--block:var(--gd-list);--block-dark:var(--gd-list-d)}.tn-gd1 .myblocks{--block:#ff6680;--block-dark:#c9455c}.tn-gd1 .pen{--block:#0fbd8c;--block-dark:#078463}.tn-gd1 .music{--block:#cf63cf;--block-dark:#984198}.tn-gd1 .tts{--block:#9966ff;--block-dark:#6844bf}.tn-gd1 .translate{--block:#5cb1d6;--block-dark:#367f9e}.tn-gd1 .video{--block:#0fbd8c;--block-dark:#087c5c}.tn-gd1 .technova{--block:#3155d9;--block-dark:#203da8}
.tn-gd1-code-panel{padding:12px;min-height:560px;background:#fff}.tn-gd1-code-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 10px}.tn-gd1-code-actions button{border:1px solid #cbd7e5;background:#fff;color:#29455f;padding:8px 11px;border-radius:9px;font-weight:800;cursor:pointer}.tn-gd1-code-actions button.primary{background:#3155d9;color:#fff;border-color:#3155d9}.tn-gd1-code-panel textarea{width:100%;min-height:430px}
.tn-gd1-stage-wrap{position:relative;border-radius:18px;overflow:hidden;background:#102845;border:1px solid #cdd8e5;box-shadow:0 10px 25px rgba(24,52,84,.12);aspect-ratio:16/9;display:grid;place-items:center}.tn-gd1-stage{display:block;width:100%;height:100%;aspect-ratio:16/9;object-fit:contain;background:#102845}.tn-gd1-stage-hud{position:absolute;left:10px;top:10px;display:flex;gap:6px;pointer-events:none;flex-wrap:wrap}.tn-gd1-stage-hud span{background:rgba(10,24,45,.72);color:#fff;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:850;backdrop-filter:blur(5px)}.tn-gd1-stage-actions{position:absolute;right:10px;top:10px;display:flex;gap:6px}.tn-gd1-stage-actions button{border:0;border-radius:10px;padding:7px 10px;background:rgba(255,255,255,.92);color:#24415f;font-weight:900;cursor:pointer}.tn-gd1-stage-actions .run{background:#21b47b;color:#fff}.tn-gd1-speech{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);max-width:72%;padding:9px 13px;border:2px solid #263c56;border-radius:16px;background:#fff;color:#20344e;font-weight:800;font-size:12px;box-shadow:0 8px 25px rgba(20,42,65,.18)}
.tn-gd1-stage-wrap:fullscreen{width:100vw;height:100vh;aspect-ratio:auto;border-radius:0;border:0;background:#091827;padding:2vh 2vw}.tn-gd1-stage-wrap:fullscreen .tn-gd1-stage{width:min(96vw,calc(96vh * 16 / 9));height:min(96vh,calc(96vw * 9 / 16));max-width:96vw;max-height:96vh;object-fit:contain;border-radius:16px}.tn-gd1-stage-wrap.pseudo-fullscreen{position:fixed!important;inset:0!important;width:100vw!important;height:100vh!important;z-index:99999!important;aspect-ratio:auto!important;border-radius:0!important;padding:2vh 2vw;background:#091827}.tn-gd1-stage-wrap.pseudo-fullscreen .tn-gd1-stage{width:min(96vw,calc(96vh * 16 / 9));height:min(96vh,calc(96vw * 9 / 16));object-fit:contain}
.tn-gd1-assets{background:#fff;border:1px solid var(--gd-line);border-radius:16px;padding:11px}.tn-gd1-assets h4{margin:0 0 8px;font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:#5a738d}.tn-gd1-sprite-list,.tn-gd1-bg-list,.tn-gd1-music-list,.tn-gd1-upload-row{display:flex;flex-wrap:wrap;gap:7px}.tn-gd1-sprite,.tn-gd1-bg,.tn-gd1-music,.tn-gd1-upload{border:1px solid #ccd8e5;background:#fff;color:#35506c;border-radius:11px;padding:6px 8px;cursor:pointer;font-weight:750;font-size:10px}.tn-gd1-sprite{width:64px;display:flex;flex-direction:column;align-items:center;gap:3px}.tn-gd1-sprite img{width:40px;height:40px;object-fit:contain;image-rendering:pixelated;image-rendering:crisp-edges}.tn-gd1-sprite.active,.tn-gd1-bg.active,.tn-gd1-music.active{border-color:#3155d9;box-shadow:0 0 0 2px rgba(49,85,217,.15);background:#f0f4ff}.tn-gd1-bg i{display:inline-block;width:18px;height:12px;border-radius:3px;vertical-align:-2px;margin-right:4px}.tn-gd1-asset-row+.tn-gd1-asset-row{margin-top:10px}.tn-gd1-audio-note{font-size:9px;color:#71869c;margin-top:6px}.tn-gd1-upload{display:inline-flex;align-items:center;gap:5px;margin-top:7px;background:#f7f9fc}.tn-gd1-upload input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.tn-gd1-convert-bar{display:flex;flex-wrap:wrap;gap:8px;padding:10px 12px;background:#eef4ff;border-top:1px solid #d6e2f1}.tn-gd1-convert-bar button{border:0;border-radius:9px;padding:8px 11px;font-weight:850;cursor:pointer;background:#3155d9;color:#fff}.tn-gd1-convert-bar button.secondary{background:#fff;color:#3155d9;border:1px solid #bfccec}.tn-gd1-help{font-size:10px;color:#647d96;margin-left:auto;align-self:center}
.tn-gd1.compact .tn-gd1-main{grid-template-columns:1fr 1fr;min-height:490px}.tn-gd1.compact .tn-gd1-block-ui{grid-template-columns:72px 128px 1fr;min-height:440px}.tn-gd1.compact .tn-gd1-workspace{min-height:390px;padding:18px}.tn-gd1.compact .tn-gd1-code-panel{min-height:440px}.tn-gd1.compact .tn-gd1-code-panel textarea{min-height:330px}.tn-gd1.compact .tn-gd1-category{font-size:7px;padding:5px 2px}.tn-gd1.compact .tn-gd1-category span{font-size:14px}.tn-gd1.compact .tn-gd1-palette-block{font-size:9px;padding:7px 6px}.tn-gd1.compact .tn-gd1-sprite{width:54px;padding:4px}.tn-gd1.compact .tn-gd1-sprite img{width:31px;height:31px}
@media(max-width:1180px){.tn-gd1-main,.tn-gd1.compact .tn-gd1-main{grid-template-columns:1fr}.tn-gd1-author{border-right:0;border-bottom:1px solid var(--gd-line)}.tn-gd1-block-ui{grid-template-columns:86px 155px 1fr}.tn-gd1-stage-col{max-width:900px;width:100%;margin:auto}.tn-gd1-stage-wrap{max-height:none}}
@media(max-width:720px){.tn-gd1-block-ui,.tn-gd1.compact .tn-gd1-block-ui{grid-template-columns:70px minmax(115px,145px) minmax(260px,1fr);overflow:auto}.tn-gd1-top{align-items:flex-start;flex-direction:column}.tn-gd1-tabs{width:100%}.tn-gd1-tabs button{flex:1;padding:8px}.tn-gd1-help{width:100%;margin:0}.tn-gd1-workspace{min-height:360px}.tn-gd1-main{min-height:0}.tn-gd1-stage-col{padding:9px}.tn-gd1-stage-actions button{padding:6px 8px}}
@media(prefers-reduced-motion:reduce){.tn-gd1-block{transition:none}}
