:root{font-family:Trebuchet MS,system-ui,sans-serif;color:#173554;background:#f4efd8;touch-action:none;overscroll-behavior:none;--control-scale: 1;--control-opacity: .82;--neon-cyan: #00cfe8;--neon-magenta: #ff2d9a;--neon-violet: #7658ff}*{box-sizing:border-box}[hidden]{display:none!important}body:not(.playing) #touch-controls{display:none}#multiplayer-menu{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));overflow:auto;touch-action:pan-y;background:linear-gradient(90deg,transparent 7%,#be526c44 7%,#be526c44 calc(7% + 2px),transparent calc(7% + 2px)),repeating-linear-gradient(0deg,transparent 0 29px,#6ba9cf33 29px 30px),repeating-linear-gradient(90deg,#f4efd8 0 29px,#6ba9cf33 29px 30px)}.notebook-card{width:min(540px,92vw);text-align:center;padding:20px 30px;background:#fffbe8e8;border:2px solid #00aeca66;border-radius:4px 15px 6px 12px;box-shadow:0 0 24px #00cfe817,5px 6px #7658ff0c}.menu-card{position:relative;width:min(540px,90vw);padding:12px 18px 16px;overflow:hidden}.menu-brand{width:min(500px,100%);margin:-3px auto 2px}.menu-logo-image{display:block;width:100%;height:auto;object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;filter:drop-shadow(0 3px 4px rgba(20,64,94,.12))}.menu-footnote{display:block;margin-top:14px;font-size:10px;letter-spacing:.16em;opacity:.48}h1{margin:12px 0;font-size:clamp(30px,5vw,54px);letter-spacing:.08em;transform:rotate(-2deg);text-shadow:-2px 1px 0 #00cfe84d,2px -1px 0 #ff2d9a36}h1 span{display:block;font-size:13px;font-weight:400;letter-spacing:.05em;margin-top:4px}.mode-card{display:grid;gap:3px;width:min(400px,96%);margin:4px auto 8px;padding:9px 14px;border:1.5px dashed #234f7870;border-radius:6px 10px 5px 9px;background:#f4efd86b;transform:rotate(-.3deg)}.mode-card small{font-size:9px;letter-spacing:.14em;opacity:.6}.mode-card strong{font-size:16px;letter-spacing:.07em}.mode-card span{font-size:11px;opacity:.72}.level-choice{width:min(456px,96%);margin:8px auto 5px}.room-level-choice{margin-top:3px;margin-bottom:5px}.level-choice>small{display:block;margin-bottom:6px;font-size:9px;font-weight:700;letter-spacing:.15em;opacity:.62}.level-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.notebook-card .level-card{min-width:0;min-height:66px;display:grid;align-content:center;gap:2px;margin:0;padding:6px 4px;border:1.5px dashed #234f7870;border-radius:6px 9px 5px 8px;background:#fffdf2a6;color:#234f78;box-shadow:none}.level-card .level-number{font:700 10px ui-monospace,monospace;letter-spacing:.08em;opacity:.55}.level-card strong{overflow:hidden;font-size:11px;line-height:1.08;text-overflow:ellipsis;white-space:nowrap}.level-card small{font-size:7px;letter-spacing:.08em;opacity:.55}.notebook-card .level-card.is-selected{border-style:solid;border-color:#4d985a;color:#27683a;background:#dff3d5;box-shadow:0 0 0 2px #80bd7f35,inset 0 -3px #79b87a38;transform:translateY(-1px) rotate(-.4deg)}.level-card.is-selected small{opacity:.9}.notebook-card .level-card:disabled{cursor:not-allowed;color:#69747d;background:#ece9dc8f;opacity:.48;filter:grayscale(.6)}.main-menu-actions{display:flex;justify-content:center;flex-wrap:wrap;margin-top:2px}.notebook-card button,#interact,#game-menu-toggle,#fullscreen-toggle,#settings-toggle,#profile-toggle{font:700 16px Trebuchet MS,sans-serif;border:2px solid #234f78;color:#234f78;background:#fffbe8;border-radius:5px 9px 4px 8px;padding:13px 22px;cursor:pointer;touch-action:manipulation}.notebook-card button{margin:5px}.notebook-card button:active{transform:translateY(2px)}.notebook-card .text-button{border:0;background:transparent;font-size:12px;padding:8px}#room-code{display:block;width:180px;margin:12px auto;background:transparent;color:#234f78;text-align:center;font:34px monospace;letter-spacing:.2em;border:0;border-bottom:2px dashed #234f78;border-radius:0;padding:8px;user-select:text;-webkit-user-select:text;touch-action:manipulation}#room-number{font:700 48px monospace;letter-spacing:.22em;padding-left:.22em}.invite-actions{display:flex;justify-content:center;flex-wrap:nowrap;gap:3px;margin-top:1px}.invite-actions button{font-size:10px;padding:7px 10px;margin:2px}#solo-start{margin-top:1px}#solo-start button{font-size:13px;padding:8px 18px;margin:2px}#room-panel>p{margin:7px 0}#room-panel+#finish-panel{margin-top:0}#menu-message{color:#a43453;font-size:13px;margin:8px 0}#network-status{position:fixed;z-index:22;top:max(14px,env(safe-area-inset-top));left:50%;width:max-content;max-width:min(76vw,520px);transform:translate(-50%);padding:0;background:transparent;color:#a43453;font-size:14px;font-weight:700;line-height:1.25;text-align:center;text-shadow:0 1px 0 #fffbe8,1px 0 0 #fffbe8,-1px 0 0 #fffbe8,0 -1px 0 #fffbe8,0 2px 6px #17355426;pointer-events:none}#network-status.room-watermark{color:#687078;opacity:.32;font-size:12px;font-weight:600;letter-spacing:.08em;text-shadow:none}#game-menu-toggle{position:fixed;z-index:12;top:max(12px,env(safe-area-inset-top));left:max(16px,env(safe-area-inset-left));font-size:11px;padding:7px 10px;opacity:.86}#top-menu-actions{position:fixed;z-index:25;top:max(12px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right));display:flex;align-items:center;gap:8px}#fullscreen-toggle{font-size:11px;padding:8px 11px;background:#fffbe8e8}#settings-toggle{width:38px;height:36px;padding:0;display:grid;place-items:center;font-size:19px;line-height:1;background:#fffbe8e8}#profile-toggle{width:38px;height:36px;padding:0;display:grid;place-items:center;border-color:var(--player-color, #00cfe8);color:var(--player-color, #00cfe8);background:#fffbe8e8;font-size:15px;text-transform:uppercase;box-shadow:inset 0 0 0 1px #fff,0 0 10px color-mix(in srgb,var(--player-color, #00cfe8) 22%,transparent)}#interact{position:fixed;z-index:14;bottom:max(132px,calc(env(safe-area-inset-bottom) + 110px));right:max(25px,env(safe-area-inset-right));max-width:185px;font-size:11px;padding:10px 13px}#settings-panel{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:16px;background:#f4efd8e8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);touch-action:pan-y}.menu-profile-summary{display:inline-grid;grid-template-columns:12px auto auto;align-items:center;gap:6px;margin:0 auto 3px!important;padding:4px 8px!important;border:0!important;background:transparent!important;font-size:11px!important}.menu-profile-summary span{width:10px;height:10px;border-radius:50%;box-shadow:0 0 7px currentColor}.menu-profile-summary strong{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-profile-summary small{font-size:7px;letter-spacing:.13em;opacity:.48}#profile-panel{position:fixed;inset:0;z-index:54;display:grid;place-items:center;padding:max(10px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));background:#17355473;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);overflow:auto;touch-action:pan-y}.profile-card{width:min(590px,94vw);max-height:calc(var(--app-height, 100vh) - 20px);padding:14px 20px;overflow:auto;text-align:left}.profile-header{display:flex;align-items:center;gap:13px;padding-bottom:8px;border-bottom:1px dashed #7ba7ba}.profile-header>div:last-child{display:grid;gap:1px;min-width:0}.profile-header small{font-size:8px;letter-spacing:.16em;opacity:.55}.profile-header h2{margin:0;overflow:hidden;font-size:22px;line-height:1;text-overflow:ellipsis;white-space:nowrap}.profile-header span{font:8px ui-monospace,monospace;letter-spacing:.08em;opacity:.45}.profile-avatar{position:relative;flex:0 0 54px;width:54px;height:62px;color:var(--player-color, #00cfe8);filter:drop-shadow(0 0 5px color-mix(in srgb,currentColor 35%,transparent))}.profile-avatar i{position:absolute;left:20px;top:3px;width:17px;height:17px;border:3px solid currentColor;border-radius:50%}.profile-avatar b{position:absolute;left:27px;top:21px;width:3px;height:23px;background:currentColor;transform:rotate(-3deg);transform-origin:top}.profile-avatar b:before,.profile-avatar b:after,.profile-avatar em:before,.profile-avatar em:after{content:"";position:absolute;width:3px;height:24px;border-radius:3px;background:currentColor;transform-origin:top}.profile-avatar b:before{left:0;top:4px;transform:rotate(52deg)}.profile-avatar b:after{left:0;top:4px;transform:rotate(-49deg)}.profile-avatar em{position:absolute;left:28px;top:41px;width:1px;height:1px;color:inherit}.profile-avatar em:before{transform:rotate(28deg)}.profile-avatar em:after{transform:rotate(-31deg)}.profile-identity{display:grid;grid-template-columns:52px minmax(0,1fr);align-items:center;gap:5px 9px;margin-top:10px}.profile-identity label{font-size:11px;font-weight:800}.profile-identity input{width:100%;min-width:0;padding:8px 10px;border:1.5px solid #7ba7ba;border-radius:5px 8px 4px 7px;background:#fffdf4;color:#173554;font:700 15px Trebuchet MS,sans-serif;user-select:text;-webkit-user-select:text;touch-action:manipulation}.profile-identity small{grid-column:2;font-size:8px;opacity:.58}.profile-colors{margin:9px 0;padding:7px 10px 9px;border:1px dashed #7ba7ba}.profile-colors legend,.profile-statistics h3,.profile-achievements h3{margin:0;font-size:9px;letter-spacing:.13em}#profile-color-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;margin-top:6px}#profile-color-grid button{min-width:0;height:31px;margin:0;padding:0;border:2px solid #fffbe8;border-radius:50%;background:var(--player-color);box-shadow:0 0 0 1px #7894a1,0 0 8px color-mix(in srgb,var(--player-color) 35%,transparent)}#profile-color-grid button.is-selected{transform:translateY(-2px) scale(1.08);box-shadow:0 0 0 3px #173554,0 0 12px var(--player-color)}.profile-statistics h3,.profile-achievements h3{margin:9px 0 5px}#profile-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}#profile-stats div{display:grid;min-width:0;padding:6px;text-align:center;border:1px dashed #8ab1be;background:#f4efd86e}#profile-stats strong{font-size:14px}#profile-stats small{overflow:hidden;font-size:7px;letter-spacing:.05em;text-overflow:ellipsis;white-space:nowrap;opacity:.63}.profile-achievements h3{display:flex;justify-content:space-between}#achievement-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.achievement-card{display:grid;grid-template-columns:24px minmax(0,1fr) 12px;align-items:center;gap:4px;min-width:0;padding:5px;border:1px dashed #9aa9ac;border-radius:5px 8px 4px 7px;opacity:.42;filter:grayscale(1)}.achievement-card.is-unlocked{border-color:#4b9a65;background:#dcf4d4a6;opacity:1;filter:none}.achievement-card>span{font-size:18px;text-align:center}.achievement-card>div{display:grid;min-width:0}.achievement-card strong{overflow:hidden;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.achievement-card small{font-size:7px;line-height:1.15;opacity:.7}.achievement-card>b{color:#31804b}#profile-error{min-height:14px;margin:5px 0 0;color:#a43453;font-size:10px;text-align:center}.profile-actions{display:flex;justify-content:center}.profile-actions button{padding:8px 13px;font-size:11px}#profile-admin-claim{margin-top:9px;padding:8px 10px;border:1px dashed #7ba7ba;border-radius:7px}#profile-admin-claim summary{cursor:pointer;font-size:11px;font-weight:750}#profile-admin-claim p{margin:6px 0;font-size:10px;line-height:1.35}#admin-claim-code{width:min(100%,330px);padding:8px;border:1.5px solid #7ba7ba;border-radius:6px;background:#fffdf4;color:#173554;font-size:12px}#admin-claim-submit{padding:8px 10px;font-size:10px}#admin-claim-message{color:#a43453}.share-card{width:min(430px,92vw);max-height:calc(var(--app-height, 100vh) - 24px);overflow:auto}#share-panel{position:fixed;inset:0;z-index:55;display:grid;place-items:center;padding:max(12px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));background:#17355473;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);touch-action:pan-y}#share-panel h2{margin:2px 0 4px;font-size:18px}#share-panel p{margin:4px 0 8px;font-size:12px}.share-targets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.share-targets a,.share-targets button{display:grid;place-items:center;min-height:43px;margin:0;padding:8px;border:1.5px solid #234f78;border-radius:6px 9px 5px 8px;color:#234f78;background:#fffbe8;font:700 11px Trebuchet MS,sans-serif;text-decoration:none;touch-action:manipulation}#game-menu-panel{position:fixed;inset:0;z-index:52;display:grid;place-items:center;padding:max(12px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));background:#17355459;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);touch-action:none}.game-menu-card{width:min(320px,88vw);padding:16px 20px}.game-menu-card h2{margin:0 0 10px;font-size:20px;letter-spacing:.08em}.game-menu-actions{display:grid;gap:7px}.game-menu-actions button{width:100%;margin:0;padding:11px 14px;font-size:13px}.game-menu-actions .danger-button{color:#a43453;border-color:#a43453}.editor-entry{margin:5px 0 0;font-size:11px;opacity:.76}#level-editor{position:fixed;inset:0;z-index:80;color:#173554;background-color:#f4efd8;background-image:linear-gradient(rgba(107,169,207,.2) 1px,transparent 1px),linear-gradient(90deg,rgba(107,169,207,.2) 1px,transparent 1px);background-size:30px 30px;font-family:Trebuchet MS,sans-serif;-webkit-user-select:none;user-select:none}#level-editor button,#level-editor input,#level-editor select,#level-editor textarea{font:inherit;color:#173554}.editor-topbar{height:58px;display:flex;align-items:center;gap:8px;padding:max(7px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) 7px max(10px,env(safe-area-inset-left));box-sizing:border-box;background:#fffbe8f5;border-bottom:2px solid #79cad1;box-shadow:0 3px 12px #17355420}.editor-topbar>div{display:grid;margin-right:auto;line-height:1.05;white-space:nowrap}.editor-topbar strong{font-size:15px;letter-spacing:.06em}.editor-topbar small{font-size:9px;color:#a43453}.editor-topbar button,.editor-menu-card button,.editor-palette button,.editor-ruler button,.editor-properties button{border:1.5px solid #234f78;border-radius:5px 8px 4px 7px;padding:7px 9px;background:#fffbe8;font-weight:750;font-size:10px;cursor:pointer;touch-action:manipulation}.editor-topbar button{flex:0 0 auto}.editor-topbar #editor-menu-toggle{background:#173554;color:#fffbe8;font-size:12px}.editor-menu-overlay{position:absolute;inset:0;z-index:12;display:grid;place-items:center;box-sizing:border-box;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));background:#142e46a8}.editor-menu-overlay[hidden]{display:none}.editor-menu-card{width:min(680px,100%);max-height:min(690px,calc(var(--app-height,100vh) - 24px));display:flex;flex-direction:column;overflow:hidden;box-sizing:border-box;border:2px solid #79cad1;border-radius:10px 14px 9px 13px;background:#fffbea;box-shadow:0 16px 50px #102d4970}.editor-menu-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none;padding:14px 18px 10px;border-bottom:1px solid #bad5d8}.editor-menu-heading small{color:#728da0;font-size:9px;font-weight:800;letter-spacing:.15em}.editor-menu-heading h2{margin:2px 0 0;font-size:21px;letter-spacing:.06em}.editor-menu-card #editor-menu-dismiss{min-width:34px;font-size:15px}.editor-menu-content{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:12px 18px;overflow:auto;overscroll-behavior:contain;padding:14px 18px}.editor-menu-section{min-width:0}.editor-menu-section h3{margin:0 0 4px;font-size:12px;letter-spacing:.08em}.editor-menu-section p{margin:0 0 9px;color:#547084;font-size:10px;line-height:1.3}.editor-menu-section>button,.editor-menu-row button{width:100%;min-height:32px}.editor-menu-section>button{margin-top:6px}.editor-menu-section select{display:block;width:100%;min-height:33px;padding:5px 8px;border:1px solid #8db1c1;border-radius:5px;background:#fffdf2}.editor-menu-row{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:6px}.editor-menu-actions{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;align-items:end;padding-top:10px;border-top:1px dashed #a2c2cb}.editor-menu-actions h3{grid-column:1/-1}.editor-menu-actions>button{margin:0}#level-editor .editor-menu-card .editor-play-button{color:#145b38;border-color:#2a9a61;background:#dcf4d4;box-shadow:inset 0 0 0 1px #7bcf92}#level-editor .editor-menu-card .editor-publish-button{color:#fff;border-color:#187449;background:#258b57}.editor-menu-card .editor-publish-button:disabled{opacity:.55;cursor:wait}#level-editor .editor-menu-card #editor-close{color:#a43453;border-color:#a43453}#level-editor .editor-menu-card #editor-menu-return{background:#173554;color:#fffbe8}.editor-menu-feedback{min-height:16px;margin:0;padding:8px 18px 11px;border-top:1px solid #bad5d8;color:#547084;font-size:10px;line-height:1.3}.editor-menu-feedback.has-errors{color:#9a2941;background:#ffe5e7}.editor-layout{height:calc(var(--app-height,100vh) - 58px);display:grid;grid-template-columns:174px minmax(0,1fr) 245px;min-height:0}.editor-palette,.editor-properties{min-height:0;overflow:auto;padding:10px;background:#fffbe8e9}.editor-palette{border-right:2px solid #79cad1}.editor-palette-nav{position:sticky;z-index:2;top:-10px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;margin:-10px -10px 10px;padding:9px 8px 7px;background:#fffbe8f5;border-bottom:1px solid #a8c5cf}.editor-palette .editor-palette-nav button{min-width:0;padding:5px 2px;font-size:8px}.editor-properties{border-left:2px solid #79cad1}.editor-palette h3,.editor-properties h3{margin:0 0 8px;font-size:12px;letter-spacing:.1em}.editor-palette>button,.editor-palette details button{display:block;width:100%;margin:0 0 5px;text-align:left;padding:7px 8px}.editor-palette button.is-active{color:#176548;border-color:#42a86f;background:#dcf4d4;box-shadow:inset 0 0 0 1px #42a86f}.editor-palette details{margin-top:7px;font-size:10px}.editor-palette summary{cursor:pointer;margin-bottom:6px;font-weight:700}.editor-preset-tools{display:grid;grid-template-columns:1fr;gap:1px}.editor-preset-tools .editor-tool{border-style:dashed;color:#654484;background:#f6efff}.editor-palette button.editor-model-card{display:grid;grid-template-columns:52px minmax(0,1fr);align-items:center;gap:5px;min-height:46px;padding:3px 5px;line-height:1.15}.editor-model-card span{overflow:hidden;text-overflow:ellipsis}.object-visual-preview{display:block;width:52px;height:34px;overflow:visible;color:var(--preview-stroke)}.object-visual-preview.editor-stage-model{width:auto;height:auto;overflow:hidden}.editor-stage-model .preview-sway,.editor-stage-model .preview-spin,.editor-stage-model .preview-pulse,.editor-stage-model .preview-bob,.editor-stage-model .preview-bounce,.editor-stage-model .preview-flow{animation:none}.object-visual-preview *{vector-effect:non-scaling-stroke;transform-box:fill-box;transform-origin:center}.object-visual-preview path,.object-visual-preview rect,.object-visual-preview circle,.object-visual-preview ellipse{fill:transparent;stroke:var(--preview-stroke);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.object-visual-preview .preview-fill{fill:var(--preview-fill);fill-opacity:.48}.object-visual-preview.is-large{width:min(180px,100%);height:96px;margin:2px auto 0;filter:drop-shadow(0 5px 7px #17355418)}.editor-live-preview{margin:0 0 9px;padding:7px 8px 4px;text-align:center;border:1px dashed #79aebb;border-radius:7px 10px 6px 9px;background:linear-gradient(#fffdf5e8,#edf8f1b8)}.editor-live-preview>div{display:grid;gap:1px;text-align:left}.editor-live-preview strong{font-size:9px;letter-spacing:.08em}.editor-live-preview small{font-size:8px;opacity:.62}.editor-style-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin:5px 0 10px}.editor-properties .editor-style-card{display:grid;place-items:center;gap:1px;min-width:0;min-height:60px;padding:3px 2px 4px;border:1px dashed #8aa9b5;background:#fffdf3;font-size:8px}.editor-properties .editor-style-card .object-visual-preview{width:58px;height:35px}.editor-properties .editor-style-card.is-selected{color:#145b38;border:2px solid #35a66a;background:#dcf4d4;box-shadow:0 0 0 2px #42e88928,inset 0 0 12px #42e88924}.preview-sway{animation:editor-preview-sway 1.7s ease-in-out infinite alternate}.preview-spin{animation:editor-preview-spin 2.8s linear infinite}.preview-pulse{animation:editor-preview-pulse 1.35s ease-in-out infinite alternate}.preview-bob{animation:editor-preview-bob 1.6s ease-in-out infinite alternate}.preview-bounce{animation:editor-preview-bounce .85s ease-in-out infinite alternate}.preview-flow{animation:editor-preview-flow 1.4s linear infinite}@keyframes editor-preview-sway{to{transform:rotate(3deg) translate(1px)}}@keyframes editor-preview-spin{to{transform:rotate(360deg)}}@keyframes editor-preview-pulse{to{opacity:.45;transform:scale(.92)}}@keyframes editor-preview-bob{to{transform:translateY(-4px)}}@keyframes editor-preview-bounce{to{transform:scaleY(.7) translateY(7px)}}@keyframes editor-preview-flow{to{transform:translate(13px);opacity:.45}}.editor-public-levels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.editor-menu-card .editor-template-button{display:grid;width:100%;min-width:0;margin:0;padding:6px 4px;text-align:center;border-color:#3d9164;background:#edf8e7}.editor-menu-card .editor-template-button.is-active{box-shadow:inset 0 0 0 2px #288a55}.editor-template-button strong{font:800 10px ui-monospace,monospace;color:#27724b}.editor-template-button span{overflow:hidden;font-size:10px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.editor-template-button small{font-size:7px;letter-spacing:.04em;opacity:.62}.editor-workspace{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;min-width:0;min-height:0;background:#cad9d766}.editor-ruler{display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:4px 8px;background:#fffbe8e8;border-bottom:1px solid #94bdca;font-size:10px}.editor-ruler button.is-active{color:#176548;background:#dcf4d4;border-color:#42a86f}#editor-tool-hint{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:auto}.editor-ruler label{display:flex;align-items:center;gap:4px;white-space:nowrap}.editor-ruler input[type=range]{width:82px}.editor-stage-scroll{min-height:0;overflow:auto;overscroll-behavior:contain;padding:12px}#editor-stage{display:block;flex:none;border:2px solid #173554;box-shadow:0 4px 18px #17355426;touch-action:none;cursor:grab}#editor-stage:active{cursor:grabbing}#editor-stage.is-placing{cursor:crosshair}#editor-stage .editor-item{cursor:grab}#editor-stage .editor-item:active{cursor:grabbing}#editor-stage .editor-item.is-selected{filter:drop-shadow(0 0 10px #42e889)}#editor-stage .editor-item.is-selected>rect,#editor-stage rect.editor-item.is-selected{stroke:#18a85f;stroke-width:9px}.editor-validation{padding:6px 10px;min-height:15px;border-top:1px solid #94bdca;background:#e3f5def2;color:#176548;font-size:10px;line-height:1.3}.editor-validation.has-errors{color:#9a2941;background:#ffe5e7f2}.editor-public-state{padding:4px 10px;background:#fffbe8;color:#285a75;border-top:1px solid #b5d8d8;font-size:10px}.editor-public-state.has-errors{color:#9a2941;background:#ffe5e7}.editor-properties label{display:grid;grid-template-columns:minmax(0,1fr) 92px;align-items:center;gap:7px;margin-bottom:7px;font-size:10px}.editor-properties input:not([type=checkbox]),.editor-properties select,.editor-properties textarea{width:100%;min-width:0;box-sizing:border-box;padding:5px 6px;border:1px solid #9bb5be;border-radius:4px;background:#fffdf4}.editor-properties textarea{min-height:72px;resize:vertical}.editor-properties input[type=checkbox]{accent-color:#19a660}.editor-property-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-size:11px}.editor-angle-presets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin:-1px 0 9px}.editor-properties .editor-angle-presets button{min-width:0;padding:5px 3px;font-size:8px;border-style:dashed}.editor-links{margin:10px 0;padding:8px;border:1px dashed #7ba7ba}.editor-links legend{font-size:9px;font-weight:800}.editor-links label{grid-template-columns:auto 1fr;justify-content:start}.editor-links small{opacity:.6}.editor-help{font-size:10px;line-height:1.4;opacity:.72}.editor-image-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin:5px 0 9px}.editor-palette .editor-image-grid button,.editor-properties .editor-image-grid button{display:grid;place-items:center;min-width:0;margin:0;padding:3px;font-size:9px;text-align:center;border-style:dashed}.editor-image-grid img{width:100%;height:48px;object-fit:contain;background:#f4efd8;border-radius:3px}.editor-image-grid span{overflow:hidden;max-width:100%;text-overflow:ellipsis;white-space:nowrap}.editor-image-preview{display:block;width:100%;max-height:140px;object-fit:contain;margin:4px auto}.editor-properties .danger-button{width:100%;margin-top:12px;color:#a43453;border-color:#a43453}.editing-level #rotate-overlay{display:none!important}@media(max-width:900px){.editor-layout{grid-template-columns:128px minmax(0,1fr) 190px}.editor-topbar{gap:3px}.editor-topbar button{padding:6px;font-size:8px}.editor-topbar strong{font-size:11px}.editor-menu-content{gap:9px 12px;padding:10px 12px}.editor-menu-heading{padding:9px 12px 7px}.editor-menu-heading h2{font-size:15px}#editor-tool-hint{display:none}.editor-palette,.editor-properties{padding:6px}.editor-palette-nav{top:-6px;margin:-6px -6px 8px;padding:5px 4px}.editor-palette>button,.editor-palette details button{font-size:8px;padding:6px}.editor-palette button.editor-model-card{grid-template-columns:38px minmax(0,1fr);padding:2px 3px}.editor-model-card .object-visual-preview{width:38px;height:30px}.editor-style-grid{grid-template-columns:1fr}.editor-properties label{grid-template-columns:minmax(0,1fr) 72px}}@media(max-width:560px){.editor-menu-content{grid-template-columns:1fr}.editor-menu-actions{grid-column:auto}}.settings-card{max-height:calc(var(--app-height, 100vh) - 24px);overflow:auto}.settings-card label{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:10px 0;text-align:left;font-size:13px}.settings-card input[type=range]{width:min(230px,45vw);accent-color:#234f78}#gesture-panel{position:fixed;z-index:15;left:50%;bottom:max(9px,env(safe-area-inset-bottom));transform:translate(-50%);display:flex;gap:5px}#gesture-panel button{min-width:52px;padding:7px 8px;border:1.5px solid #234f78;border-radius:6px 9px 5px 8px;color:#234f78;background:#fffbe8bd;font:700 9px Trebuchet MS,sans-serif;opacity:.75;touch-action:manipulation}#gesture-panel button:active{transform:translateY(2px);opacity:1}#network-tools{position:fixed;z-index:24;top:max(94px,calc(env(safe-area-inset-top) + 86px));right:max(12px,env(safe-area-inset-right));background:#fffbe8ec;padding:6px;font-size:11px}#network-tools label,#network-tools small{display:block;margin:6px}@media(max-width:760px){.menu-card{padding:10px 14px 14px}.menu-brand{width:min(470px,100%)}}@media(max-height:460px){.notebook-card{padding:7px 18px}.menu-card{width:min(540px,94vw);padding:6px 13px 7px}.menu-brand{width:min(420px,100%);margin-top:-5px}h1{font-size:30px;margin:4px 0}.menu-footnote{margin-top:2px}.notebook-card p{margin:4px 0}#room-number{font-size:32px;line-height:1}.room-level-choice{margin:1px auto 2px}.notebook-card .level-card{min-height:52px;padding-block:3px}.invite-actions button{padding-block:6px}#solo-start button{padding-block:7px}.share-card{width:min(620px,94vw)}.share-targets{grid-template-columns:repeat(5,minmax(0,1fr))}.share-targets a,.share-targets button{min-height:38px;font-size:9px;padding:6px}}html,body,#app,#game{width:var(--app-width, 100%);height:100%;margin:0;overflow:hidden}@supports (height: 100dvh){html,body,#app,#game{height:100dvh}}html,body,#app,#game{height:var(--app-height, 100%)}body{position:fixed;inset:0;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}canvas{display:block;background:#f4efd8}html:fullscreen,html:fullscreen body,html:fullscreen #app,html:fullscreen #game,html:-webkit-full-screen,html:-webkit-full-screen body,html:-webkit-full-screen #app,html:-webkit-full-screen #game{width:100vw;height:100vh}#touch-controls{position:fixed;inset:0;z-index:10;pointer-events:none;display:none;padding:max(10px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));touch-action:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.control-cluster{position:absolute;bottom:max(8px,env(safe-area-inset-bottom));display:flex;align-items:flex-end;gap:14px;pointer-events:auto}.control-cluster--move{left:max(14px,env(safe-area-inset-left));transform:scale(var(--control-scale));transform-origin:left bottom}.control-cluster--action{right:max(14px,env(safe-area-inset-right));transform:scale(var(--control-scale));transform-origin:right bottom}.virtual-stick{position:relative;width:clamp(92px,11vw,108px);height:clamp(92px,11vw,108px);border:2px solid rgba(23,53,84,.38);border-radius:18px 23px 16px 21px;background:linear-gradient(145deg,#fffcec8f,#f7f2da4d 68%,#417ba71f);box-shadow:inset 0 0 0 4px #ffffff2b,0 4px 14px #17355424;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);pointer-events:auto;touch-action:none}.virtual-stick__guide{position:absolute;left:17%;right:17%;top:50%;height:0;border:1px dashed rgba(23,53,84,.2);pointer-events:none}.virtual-stick__thumb{position:absolute;left:50%;top:50%;width:clamp(42px,5vw,52px);height:clamp(42px,5vw,52px);border:2px solid rgba(23,53,84,.6);border-radius:50%;background:#f7f2dac2;box-shadow:inset 0 0 0 4px #fff3,0 3px 8px #1735542e;transform:translate(-50%,-50%);pointer-events:none;transition:background .12s ease,box-shadow .12s ease}.virtual-stick.is-pressed .virtual-stick__thumb{background:#417ba74d;box-shadow:inset 0 0 0 4px #fff3,0 2px 5px #17355433}.virtual-stick__direction{position:absolute;top:50%;width:18px;height:13px;color:#1735548c;background:currentColor;clip-path:polygon(0 50%,43% 0,43% 31%,100% 31%,100% 69%,43% 69%,43% 100%);font-size:0;transform:translateY(-50%);pointer-events:none}.virtual-stick__direction--left{left:7%}.virtual-stick__direction--right{right:7%;transform:translateY(-50%) scaleX(-1)}.virtual-stick--action{overflow:hidden}.action-stick__half{position:absolute;left:0;width:100%;height:50%;display:flex;align-items:center;justify-content:center;gap:5px;color:#173554ad;font:800 clamp(9px,1.35vw,13px)/1 system-ui,sans-serif;letter-spacing:.04em;pointer-events:none;-webkit-user-select:none;-webkit-touch-callout:none}.action-stick__half span{font-size:1.35em}.action-stick__half--jump{top:0;padding-bottom:20%}.action-stick__half--slide{bottom:0;padding-top:20%}.action-stick__divider{position:absolute;left:9%;right:9%;top:50%;border-top:1px dashed rgba(23,53,84,.25);pointer-events:none}.action-stick__thumb{width:clamp(38px,4.6vw,48px);height:clamp(38px,4.6vw,48px)}.virtual-stick--action.is-jump .action-stick__half--jump,.virtual-stick--action.is-slide .action-stick__half--slide{background:#417ba729;color:#173554f2}.control-button{width:clamp(58px,9vw,78px);height:clamp(58px,9vw,78px);border:2px solid rgba(23,53,84,.47);border-radius:50%;color:#173554;background:#f7f2da8a;box-shadow:inset 0 0 0 3px #ffffff2e,0 3px 10px #1735541f;font:800 clamp(20px,3vw,28px)/1 system-ui,sans-serif;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);-webkit-tap-highlight-color:transparent;opacity:var(--control-opacity);touch-action:none}.control-button--jump{width:clamp(70px,11vw,92px);height:clamp(70px,11vw,92px);font-size:clamp(13px,2vw,17px)}.control-button.is-pressed{transform:scale(.94);background:#417ba747;border-color:#173554d1}#rotate-overlay{position:fixed;inset:0;z-index:30;display:none;place-items:center;padding:max(24px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));background-color:#f4efd8;background-image:linear-gradient(rgba(107,169,207,.22) 1px,transparent 1px),linear-gradient(90deg,rgba(107,169,207,.22) 1px,transparent 1px);background-size:30px 30px;-webkit-tap-highlight-color:transparent}.rotate-card{display:grid;gap:8px;justify-items:center;text-align:center;padding:28px 34px;border:3px solid #173554;border-radius:8px 13px 7px 11px;background:#fffcece0;transform:rotate(-1deg)}.rotate-icon{font-size:42px}.rotate-card strong{font-size:20px}.rotate-card small{opacity:.75}@media(hover:none),(pointer:coarse),(max-width:1024px){#touch-controls{display:block}}@media screen and (orientation:portrait)and (max-width:820px){#rotate-overlay{display:grid}}@media(max-width:820px){html[data-orientation=portrait] #rotate-overlay{display:grid}html[data-orientation=landscape] #rotate-overlay{display:none}}.reduced-motion *,.reduced-motion *:before,.reduced-motion *:after{animation-duration:.001ms!important;transition-duration:.001ms!important}
