:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--color-bg: oklch(.975 .012 292);--color-surface: oklch(1 0 0);--color-surface-raised: oklch(.95 .028 292);--color-surface-hover: oklch(.925 .045 292);--color-ink: oklch(.25 .055 285);--color-muted: oklch(.44 .045 284);--color-primary: oklch(.49 .205 291);--color-primary-hover: oklch(.43 .215 291);--color-primary-dark: oklch(.3 .15 291);--color-accent: oklch(.66 .195 28);--color-sun: oklch(.88 .17 92);--color-mint: oklch(.84 .13 158);--color-sky: oklch(.79 .135 228);--color-success: oklch(.52 .145 151);--color-danger: oklch(.53 .205 25);--color-line: oklch(.85 .038 292);--color-line-strong: oklch(.72 .07 292);--color-focus: oklch(.53 .18 245);--nav-height: 72px;--z-canvas: 0;--z-content: 10;--z-sticky: 20;--z-nav: 40;--z-toast: 60;background:var(--color-bg);color:var(--color-ink)}*{box-sizing:border-box}html{min-width:320px;min-height:100%;background:var(--color-bg)}body,#root{min-width:320px;min-height:100dvh;margin:0}body{overflow-x:hidden;background:var(--color-bg);color:var(--color-ink)}button,textarea{font:inherit}button{color:inherit}button:not(:disabled){cursor:pointer}button:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}button:disabled,textarea:disabled{cursor:not-allowed;opacity:.52}h1,h2,h3,p{margin:0}h1,h2,h3{letter-spacing:-.028em;text-wrap:balance}p{text-wrap:pretty}.app-shell{min-height:100dvh;background:var(--color-bg);color:var(--color-ink)}.content-layer,.player-layer{min-height:100dvh;padding-top:var(--nav-height)}.player-layer[data-visible=false]{display:none}.button{min-height:46px;padding:0 18px;border:0;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-weight:760;line-height:1;transition:background-color .18s cubic-bezier(.25,1,.5,1),color .18s cubic-bezier(.25,1,.5,1),box-shadow .18s cubic-bezier(.25,1,.5,1),transform .18s cubic-bezier(.25,1,.5,1)}.button.primary{background:var(--color-primary);color:#fff;box-shadow:0 3px 0 var(--color-primary-dark)}.button.primary:not(:disabled):hover{background:var(--color-primary-hover);box-shadow:0 4px 0 var(--color-primary-dark);transform:translateY(-1px)}.button.primary:not(:disabled):active{box-shadow:0 1px 0 var(--color-primary-dark);transform:translateY(2px)}.button.secondary{background:var(--color-surface-raised);color:var(--color-ink);box-shadow:0 3px #b7b2d8}.button.secondary:not(:disabled):hover{background:var(--color-surface-hover)}.button.secondary:not(:disabled):active{box-shadow:0 1px #b7b2d8;transform:translateY(2px)}.button.quiet{background:transparent;color:var(--color-muted)}.button.quiet:not(:disabled):hover{background:var(--color-surface-raised);color:var(--color-ink)}.icon-button{width:44px;height:44px;padding:0;border:0;border-radius:10px;display:inline-grid;place-items:center;background:transparent;color:var(--color-muted);transition:background-color .18s cubic-bezier(.25,1,.5,1),color .18s cubic-bezier(.25,1,.5,1)}.icon-button:hover{background:var(--color-surface-raised);color:var(--color-ink)}.app-nav{position:fixed;z-index:var(--z-nav);inset:0 0 auto;height:calc(var(--nav-height) + env(safe-area-inset-top));padding:env(safe-area-inset-top) max(24px,env(safe-area-inset-right)) 0 max(24px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:space-between;gap:24px;background:#fffffff7;border-bottom:2px solid var(--color-line)}.nav-brand{min-height:48px;padding:0;border:0;display:inline-flex;align-items:center;gap:11px;background:transparent;color:var(--color-ink)}.nav-brand-name{font-size:1.02rem;font-weight:830;letter-spacing:-.025em}.nav-destinations{display:flex;align-items:center;gap:6px}.nav-item{position:relative;min-height:46px;padding:0 14px;border:0;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:transparent;color:var(--color-ink);font-weight:720;transition:background-color .18s cubic-bezier(.25,1,.5,1),color .18s cubic-bezier(.25,1,.5,1),transform .18s cubic-bezier(.25,1,.5,1)}.nav-item:hover{background:var(--color-surface-raised);color:var(--color-ink)}.nav-item[data-active=true]{background:var(--color-primary-dark);color:#fff}.nav-item:not(:disabled):active{transform:translateY(1px)}.bloom-mark{position:relative;width:34px;height:34px;display:block;flex:0 0 auto}.bloom-mark>span,.bloom-mark>i{position:absolute;display:block}.bloom-mark>span{width:14px;height:14px;border-radius:6px;background:var(--color-primary)}.bloom-mark>span:nth-child(1){top:0;left:10px}.bloom-mark>span:nth-child(2){top:10px;right:0}.bloom-mark>span:nth-child(3){right:10px;bottom:0}.bloom-mark>span:nth-child(4){top:10px;left:0}.bloom-mark>i{z-index:1;top:11px;left:11px;width:12px;height:12px;border:2px solid var(--color-ink);border-radius:50%;background:var(--color-sun)}.bloom-mark.mini{width:24px;height:24px;transform:scale(.71);transform-origin:left center}.wordmark-mobile{display:none}.page-shell{width:min(1180px,100%);min-height:calc(100dvh - var(--nav-height));margin:0 auto;padding:34px 32px 72px}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.page-header h1{color:var(--color-ink);font-size:3rem;line-height:1.04}.page-header>div>p:last-child{max-width:62ch;margin-top:12px;color:var(--color-muted);font-size:1.04rem;line-height:1.65}.offline-banner{position:fixed;z-index:var(--z-sticky);top:calc(var(--nav-height) + env(safe-area-inset-top) + 10px);left:50%;min-height:40px;padding:8px 14px;border-radius:999px;display:flex;align-items:center;gap:8px;background:var(--color-sun);color:#3b2700;color:oklch(.29 .07 80);font-size:.78rem;font-weight:740;transform:translate(-50%)}.create-intro{max-width:790px;margin:0 auto 20px;align-items:center;text-align:center}.create-intro>div{margin:0 auto}.create-intro h1{font-size:3.35rem}.create-intro>div>p:last-child{max-width:54ch;margin-inline:auto}.create-intro>.button{flex:0 0 auto}.creator-layout{display:flex;align-items:flex-start;justify-content:center;gap:24px}.prompt-composer{width:100%;max-width:790px;padding:22px;border-radius:16px;display:flex;flex:1 1 690px;flex-direction:column;background:var(--color-surface);box-shadow:0 5px #c4bee6}.prompt-composer>label{margin-bottom:10px;color:var(--color-ink);font-size:1rem;font-weight:790}.prompt-composer textarea{width:100%;min-height:112px;resize:vertical;padding:18px;border:2px solid var(--color-line-strong);border-radius:12px;background:#fcfbff;color:var(--color-ink);font-size:1.04rem;line-height:1.55;transition:border-color .18s cubic-bezier(.25,1,.5,1),background-color .18s cubic-bezier(.25,1,.5,1)}.prompt-composer textarea::placeholder{color:#4d4d65;opacity:1}.prompt-composer textarea:hover:not(:disabled){border-color:var(--color-primary)}.prompt-composer textarea:focus-visible{border-color:var(--color-primary);background:#fff}.composer-meta{min-height:30px;padding-top:8px;display:flex;justify-content:space-between;gap:16px;color:var(--color-muted);font-size:.76rem;font-weight:620}.supported-families{margin:-2px 0 8px;color:var(--color-muted);font-size:.76rem;font-weight:620;line-height:1.45}.example-heading{margin:15px 0 10px;display:flex;align-items:center;justify-content:space-between;gap:16px}.example-heading>span{display:inline-flex;align-items:center;gap:7px;color:var(--color-ink);font-size:.86rem;font-weight:760}.example-heading small{color:var(--color-muted);font-size:.73rem}.prompt-examples{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;overflow:hidden;border:2px solid var(--color-line);border-radius:12px}.prompt-examples.create-examples{grid-template-columns:repeat(2,minmax(0,1fr))}.prompt-examples.create-examples button{border-bottom:1px solid var(--color-line)}.prompt-examples.create-examples button:nth-child(2n){border-right:0}.prompt-examples.create-examples button:nth-last-child(-n+2){border-bottom:0}.prompt-examples button{min-height:66px;padding:10px 12px;border:0;border-right:1px solid var(--color-line);border-radius:0;display:flex;align-items:flex-start;gap:10px;background:var(--color-surface);color:var(--color-ink);text-align:left;transition:border-color .18s cubic-bezier(.25,1,.5,1),background-color .18s cubic-bezier(.25,1,.5,1),transform .18s cubic-bezier(.25,1,.5,1)}.prompt-examples button:hover:not(:disabled){background:var(--color-surface-raised);transform:none}.prompt-examples button:last-child{border-right:0}.prompt-examples button>span:last-child{min-width:0;display:flex;flex-direction:column;gap:5px}.prompt-examples strong{font-size:.8rem;line-height:1.2}.prompt-examples small{display:-webkit-box;overflow:hidden;color:var(--color-muted);font-size:.7rem;line-height:1.4;-webkit-box-orient:vertical;-webkit-line-clamp:2}.example-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex:0 0 auto;background:var(--color-sky);color:#002f49;color:oklch(.29 .09 240)}.prompt-examples button:nth-child(2) .example-icon{background:var(--color-sun);color:#432b00;color:oklch(.31 .08 80)}.prompt-examples button:nth-child(3) .example-icon{background:var(--color-mint);color:#00331a;color:oklch(.28 .085 158)}.generate-button{min-height:52px;margin-top:4px;align-self:stretch;font-size:.96rem}.build-status{margin-top:12px;padding:12px 14px;border:2px solid var(--color-line);border-radius:12px;display:flex;align-items:center;gap:12px;background:var(--color-surface-raised)}.build-status .bloom-loader{transform:scale(.82)}.build-status>span:last-child{min-width:0;display:flex;flex-direction:column;gap:2px}.build-status strong{color:var(--color-ink);font-size:.84rem}.build-status small{color:var(--color-muted);font-size:.72rem;line-height:1.4}.form-error{margin-top:13px;padding:11px 13px;border-radius:10px;background:#ffe3e0;background:oklch(.94 .045 25);color:#7e0c15;font-size:.82rem;font-weight:660;line-height:1.45}.remix-parent{width:min(790px,100%);margin:0 auto 18px;padding:14px;border:2px solid var(--color-line);border-radius:14px;display:flex;align-items:center;gap:14px;background:var(--color-surface)}.remix-parent>div:last-child{min-width:0;display:flex;flex-direction:column;gap:3px}.remix-parent>div:last-child>span{color:var(--color-primary);font-size:.72rem;font-weight:760}.remix-parent strong{font-size:.96rem}.remix-parent p{overflow:hidden;color:var(--color-muted);font-size:.77rem;text-overflow:ellipsis;white-space:nowrap}.parent-art{position:relative;width:82px;height:58px;border-radius:10px;flex:0 0 auto;overflow:hidden;background:var(--color-primary)}.parent-art[data-archetype=Runner]{background:var(--color-accent)}.parent-art[data-archetype="Grid puzzle"]{background:var(--color-success)}.parent-art span{position:absolute;bottom:9px;width:12px;border-radius:4px 4px 2px 2px;background:#fff}.parent-art span:nth-child(1){left:14px;height:18px}.parent-art span:nth-child(2){left:35px;height:29px}.parent-art span:nth-child(3){right:13px;height:13px}.bloom-loader{position:relative;width:42px;height:42px;display:block;flex:0 0 auto}.bloom-loader i,.bloom-loader b{position:absolute;display:block}.bloom-loader i{width:15px;height:15px;border-radius:6px;background:var(--color-primary);animation:petal-pulse .9s cubic-bezier(.25,1,.5,1) infinite alternate}.bloom-loader i:nth-child(1){top:1px;left:14px}.bloom-loader i:nth-child(2){top:14px;right:1px;animation-delay:.12s}.bloom-loader i:nth-child(3){right:14px;bottom:1px;animation-delay:.24s}.bloom-loader i:nth-child(4){top:14px;left:1px;animation-delay:.36s}.bloom-loader b{z-index:1;top:14px;left:14px;width:14px;height:14px;border-radius:50%;background:var(--color-sun)}.bloom-loader[data-complete=true] i{animation:none;background:var(--color-success)}.spin{animation:spin .82s linear infinite}.player-page{width:min(1120px,100%);min-height:calc(100dvh - var(--nav-height));margin:0 auto;padding:34px 32px 80px}.player-header{width:min(1040px,100%);margin:0 auto 20px;display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.player-heading{min-width:0}.game-kind{width:fit-content;margin-bottom:6px;padding:5px 9px;border-radius:999px;display:block;background:var(--color-sky);color:#002f49;color:oklch(.29 .09 240);font-size:.7rem;font-weight:780}.player-heading h1{font-size:2.45rem;line-height:1.08}.player-description{max-width:64ch;margin-top:7px;color:var(--color-muted);font-size:.9rem;line-height:1.5}.player-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex:0 0 auto}.runtime-status-chip{min-height:36px;padding:0 11px;border-radius:999px;display:inline-flex;align-items:center;gap:7px;background:var(--color-mint);color:#00351d;color:oklch(.29 .095 158);font-size:.72rem;font-weight:760}.player-stage{width:min(1040px,100%);margin:0 auto}.player-canvas-frame{width:100%;aspect-ratio:16 / 10;overflow:hidden;border:4px solid var(--color-ink);border-radius:14px;background:#0b0b1c}.game-surface,.surface-fallback{position:relative;width:100%;height:100%}.game-canvas{width:100%;height:100%;display:block;background:#0b0b1c;touch-action:none}.game-hud{position:absolute;z-index:var(--z-content);top:14px;left:14px;display:flex;align-items:center;flex-wrap:wrap;gap:7px;pointer-events:none}.game-hud span{min-height:30px;padding:5px 9px;border-radius:999px;background:#fcfbfff0;background:oklch(.99 .008 292 / .94);color:var(--color-muted);font-size:.69rem;font-weight:680}.game-hud b{color:var(--color-ink);font-variant-numeric:tabular-nums}.surface-status,.start-gate,.paused-label,.round-result{position:absolute;z-index:var(--z-sticky);top:50%;left:50%;max-width:min(86%,440px);padding:14px 17px;border-radius:12px;display:flex;align-items:center;justify-content:center;gap:11px;background:var(--color-surface);color:var(--color-ink);box-shadow:0 4px 0 var(--color-primary-dark);font-size:.84rem;font-weight:680;text-align:center;transform:translate(-50%,-50%)}.start-gate{min-width:min(310px,calc(100% - 28px));padding:20px;flex-direction:column;gap:7px}.start-gate-icon{width:48px;height:48px;margin-bottom:3px;border-radius:50%;display:grid;place-items:center;background:var(--color-sun);color:var(--color-ink)}.start-gate strong{font-size:1.15rem}.start-gate small{max-width:32ch;color:var(--color-muted);font-size:.72rem;font-weight:580;line-height:1.45}.start-gate .button{margin-top:7px}.surface-status.runtime-startup{justify-content:flex-start;text-align:left}.runtime-startup>span:last-child,.surface-status.error>span{display:flex;flex-direction:column;gap:3px}.runtime-startup strong{font-size:.85rem}.runtime-startup small,.surface-status.error small{color:var(--color-muted);font-size:.7rem;font-weight:580;line-height:1.4}.surface-status.error{flex-wrap:wrap;color:var(--color-danger);box-shadow:0 4px #8a0314}.surface-status.error button,.round-result button{min-height:42px;padding:0 13px;border:0;border-radius:9px;display:inline-flex;align-items:center;gap:7px;background:var(--color-primary);color:#fff;font-weight:740}.paused-label{min-height:42px;padding-inline:20px}.round-result{min-width:218px;padding:20px;flex-direction:column}.round-result strong{font-size:1.18rem}.round-result small{max-width:30ch;color:var(--color-muted);font-size:.72rem;font-weight:580;line-height:1.45}.round-result[data-result=won]{box-shadow:0 4px #005d36;box-shadow:0 4px oklch(.42 .12 158)}.result-sparkles{position:absolute;inset:-20px -18px auto;height:34px;pointer-events:none}.result-sparkles i{position:absolute;width:9px;height:9px;border-radius:3px;background:var(--color-sun);transform:rotate(45deg);animation:result-pop .62s cubic-bezier(.25,1,.5,1) both}.result-sparkles i:nth-child(1){top:16px;left:14%}.result-sparkles i:nth-child(2){top:0;left:50%;width:12px;height:12px;background:var(--color-accent);animation-delay:80ms}.result-sparkles i:nth-child(3){top:18px;right:13%;background:var(--color-sky);animation-delay:.14s}.surface-loader{transform:scale(.82)}.surface-fallback{padding:28px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:var(--color-surface-raised);color:var(--color-muted);text-align:center}.surface-fallback h2{color:var(--color-ink);font-size:1.35rem}.surface-fallback p{max-width:46ch;margin-bottom:8px;line-height:1.5}.touch-controls{position:absolute;z-index:var(--z-sticky);right:18px;bottom:18px;left:18px;display:flex;align-items:flex-end;justify-content:space-between;pointer-events:none}.touch-controls.runner-controls{justify-content:flex-end}.touch-dpad{width:144px;height:144px;display:grid;grid-template:repeat(3,48px) / repeat(3,48px);pointer-events:auto}.touch-control{width:48px;height:48px;padding:0;border:2px solid oklch(.96 .01 292 / .7);border-radius:11px;display:grid;place-items:center;background:#1f1d3bd1;color:#fff;touch-action:none;user-select:none;-webkit-user-select:none}.touch-control:active{background:var(--color-primary);transform:scale(.96)}.control-up{grid-area:1 / 2}.control-left{grid-area:2 / 1}.control-down{grid-area:2 / 2}.control-right{grid-area:2 / 3}.action-control{width:72px;height:72px;border-radius:50%;display:flex;flex-direction:column;gap:1px;background:#d4302ef0;font-size:.62rem;font-weight:780;pointer-events:auto}.tic-tac-toe-board{position:absolute;z-index:var(--z-content);top:50%;left:50%;width:52%;aspect-ratio:1;display:grid;grid-template-rows:repeat(3,minmax(0,1fr));overflow:hidden;border:3px solid oklch(.98 .01 292 / .94);border-radius:18px;background:#1f1e38;box-shadow:0 12px 36px #02010947;transform:translate(-50%,-50%)}.tic-tac-toe-row{min-width:0;min-height:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.tic-tac-toe-cell{min-width:44px;min-height:44px;padding:0;border:0;border-right:2px solid oklch(.98 .01 292 / .72);border-bottom:2px solid oklch(.98 .01 292 / .72);border-radius:0;display:grid;place-items:center;background:#f8f7ff1f;color:#fff;cursor:pointer;font-size:clamp(2rem,8vw,5.5rem);font-weight:850;line-height:1;touch-action:manipulation;transition:background-color .15s cubic-bezier(.25,1,.5,1),color .15s cubic-bezier(.25,1,.5,1),transform .15s cubic-bezier(.25,1,.5,1)}.tic-tac-toe-row .tic-tac-toe-cell:last-child{border-right:0}.tic-tac-toe-row:last-child .tic-tac-toe-cell{border-bottom:0}.tic-tac-toe-cell[data-mark=X]{background:#7e6cf7db;color:#fff}.tic-tac-toe-cell[data-mark=O]{background:#fa7a45e6;color:#270d07}.tic-tac-toe-cell[aria-disabled=false]:hover{background:#f8f7ff42}.tic-tac-toe-cell[aria-disabled=false]:active{transform:scale(.94)}.tic-tac-toe-cell[aria-selected=true]{box-shadow:inset 0 0 0 4px var(--color-sun)}.tic-tac-toe-cell[aria-disabled=true]{opacity:1;cursor:default}.diagnostics-panel{position:absolute;z-index:var(--z-sticky);top:58px;right:14px;width:min(320px,calc(100% - 28px));max-height:calc(100% - 74px);overflow-y:auto;padding:14px;border:2px solid var(--color-line-strong);border-radius:12px;background:#fcfbfffa;background:oklch(.99 .008 292 / .98);color:var(--color-ink);pointer-events:auto}.diagnostics-panel header{padding-bottom:10px;display:flex;flex-direction:column;gap:3px;border-bottom:2px solid var(--color-line)}.diagnostics-panel header span{color:var(--color-muted);font-size:.66rem}.diagnostics-panel header strong{font-size:.82rem;line-height:1.3}.diagnostics-panel dl{margin:0}.diagnostics-panel dl div{min-height:29px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--color-line);font-size:.7rem}.diagnostics-panel dt{color:var(--color-muted)}.diagnostics-panel dd{margin:0;text-align:right}.diagnostics-panel strong,.diagnostics-panel dd{font-variant-numeric:tabular-nums;font-weight:720}.diagnostics-panel p{padding-top:10px;color:var(--color-muted);font-size:.66rem;line-height:1.4}.player-toolbar{min-height:66px;padding:12px 0;display:flex;align-items:center;justify-content:space-between;gap:16px}.player-control-group{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.player-action{min-height:44px;padding:0 11px;border:0;border-radius:10px;display:inline-flex;align-items:center;gap:7px;background:transparent;color:var(--color-muted);font-size:.76rem;font-weight:700;transition:background-color .18s cubic-bezier(.25,1,.5,1),color .18s cubic-bezier(.25,1,.5,1)}.player-action:hover,.player-action[aria-pressed=true]{background:var(--color-surface-raised);color:var(--color-ink)}.player-action:disabled{background:transparent;color:var(--color-muted)}.player-primary-action{flex:0 0 auto}.player-meta{width:min(1040px,100%);margin:4px auto 0;padding:16px 18px;border:2px solid var(--color-line);border-radius:14px;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);gap:24px;background:var(--color-surface)}.player-meta>div:first-child{display:flex;align-items:flex-start;gap:9px;color:var(--color-primary)}.player-help{color:var(--color-ink);font-size:.8rem;font-weight:650;line-height:1.5}.patch-summary{min-width:0}.patch-summary strong{display:block;margin-bottom:6px;font-size:.74rem}.patch-summary ul{margin:0;padding-left:18px;color:var(--color-muted);font-size:.72rem;line-height:1.55}.player-notice,.undo-toast{position:fixed;z-index:var(--z-toast);right:20px;bottom:20px;max-width:min(520px,calc(100vw - 40px));min-height:54px;padding:10px 11px 10px 14px;border-radius:12px;display:flex;align-items:center;gap:10px;background:var(--color-ink);color:#fff;font-size:.78rem;animation:notice-arrive .24s cubic-bezier(.25,1,.5,1) both}.player-notice>span,.undo-toast>span{flex:1}.player-notice button,.undo-toast button{min-height:38px;padding:0 10px;border:0;border-radius:8px;display:inline-flex;align-items:center;gap:6px;background:var(--color-primary-dark);color:#fff;font-weight:720}.library-page{width:min(980px,100%)}.library-header{margin-bottom:30px}.library-list{margin:0;padding:0;display:flex;flex-direction:column;gap:12px;list-style:none}.library-row,.library-skeleton{min-height:122px;border:2px solid var(--color-line);border-radius:14px;display:flex;align-items:stretch;background:var(--color-surface)}.library-row{transition:border-color .18s cubic-bezier(.25,1,.5,1),transform .18s cubic-bezier(.25,1,.5,1)}.library-row:hover{border-color:var(--color-primary);transform:translateY(-1px)}.library-open{min-width:0;padding:12px;border:0;display:flex;align-items:center;gap:16px;flex:1;background:transparent;color:var(--color-ink);text-align:left}.library-art{position:relative;width:144px;height:92px;border-radius:10px;display:block;flex:0 0 auto;overflow:hidden;background:var(--color-primary)}.library-art[data-archetype=Runner]{background:var(--color-accent)}.library-art[data-archetype="Grid puzzle"]{background:var(--color-success)}.library-art>i{position:absolute;bottom:13px;width:20px;border-radius:5px 5px 2px 2px;display:block;background:#f8f7ffd1}.library-art>i:nth-child(1){left:18px;height:29px}.library-art>i:nth-child(2){left:52px;height:48px}.library-art>i:nth-child(3){right:22px;height:21px}.library-play-cue{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:6px;background:#14122bc7;color:#fff;font-size:.73rem;font-weight:760;opacity:0;transition:opacity .18s cubic-bezier(.25,1,.5,1)}.library-open:hover .library-play-cue,.library-open:focus-visible .library-play-cue{opacity:1}.library-copy{min-width:0;display:flex;flex-direction:column;gap:7px;flex:1}.library-title-line{display:flex;align-items:center;gap:9px}.library-title-line strong{overflow:hidden;font-size:1rem;text-overflow:ellipsis;white-space:nowrap}.library-title-line em{padding:4px 7px;border-radius:999px;flex:0 0 auto;background:var(--color-surface-raised);color:var(--color-primary);font-size:.65rem;font-style:normal;font-weight:740}.library-prompt{display:-webkit-box;overflow:hidden;color:var(--color-muted);font-size:.78rem;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}.library-meta{display:inline-flex;align-items:center;gap:5px;color:var(--color-muted);font-size:.68rem;font-weight:630}.library-delete{align-self:center;margin-right:12px;color:var(--color-muted)}.library-delete:hover{background:#ffe3e0;background:oklch(.94 .045 25);color:var(--color-danger)}.library-skeleton{padding:13px;gap:16px;overflow:hidden}.library-skeleton>span{width:144px;border-radius:10px;flex:0 0 auto;background:var(--color-surface-raised);animation:skeleton-pulse 1s ease-in-out infinite alternate}.library-skeleton>div{padding-top:10px;display:flex;flex:1;flex-direction:column;gap:12px}.library-skeleton i{height:15px;border-radius:6px;display:block;background:var(--color-surface-raised);animation:skeleton-pulse 1s ease-in-out infinite alternate}.library-skeleton i:first-child{width:42%}.library-skeleton i:last-child{width:78%}.state-panel{min-height:330px;padding:36px;border:2px solid var(--color-line);border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:11px;background:var(--color-surface);color:var(--color-muted);text-align:center}.state-panel h2{color:var(--color-ink);font-size:1.45rem}.state-panel p{max-width:50ch;margin-bottom:8px;line-height:1.55}.empty-glyph{position:relative;width:78px;height:78px;margin-bottom:6px;border-radius:14px;display:grid;place-items:center;background:var(--color-sun);color:var(--color-ink)}.empty-glyph>.bloom-mark{position:absolute;top:7px;right:7px;transform:scale(.65);transform-origin:top right}@keyframes spin{to{transform:rotate(1turn)}}@keyframes petal-pulse{0%{opacity:.52;transform:scale(.78)}to{opacity:1;transform:scale(1)}}@keyframes result-pop{0%{opacity:0;transform:translateY(8px) rotate(45deg) scale(.5)}to{opacity:1;transform:translateY(0) rotate(45deg) scale(1)}}@keyframes notice-arrive{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes skeleton-pulse{0%{opacity:.55}to{opacity:1}}@media(hover:hover)and (pointer:fine){.touch-controls{display:none}}@media(max-width:980px){.creator-layout{flex-direction:column;align-items:stretch}.prompt-composer{max-width:790px;margin-inline:auto}}@media(hover:hover)and (pointer:fine)and (max-height:820px)and (min-width:761px){.player-page{padding-top:18px}.player-header{margin-bottom:12px}.player-heading h1{font-size:2.1rem}.player-description{margin-top:4px;font-size:.82rem}.player-stage{width:min(1040px,100%,calc((100dvh - var(--nav-height) - 202px) * 1.6))}.player-toolbar{min-height:56px;padding-block:7px}}@media(max-width:760px){:root{--nav-height: 66px}.app-nav{padding-inline:max(12px,env(safe-area-inset-left));gap:8px}.nav-destinations{gap:2px}.nav-item{min-width:58px;padding-inline:9px;flex-direction:column;gap:1px}.nav-item svg{width:19px;height:19px}.nav-item span{color:var(--color-ink);font-size:.62rem}.nav-item[data-active=true] span{color:#fff}.page-shell,.player-page{padding:30px 18px 64px}.page-header,.player-header{align-items:flex-start;flex-direction:column;gap:16px}.page-header h1,.create-intro h1{font-size:2.45rem}.create-intro{margin-bottom:24px;text-align:left}.create-intro>div,.create-intro>div>p:last-child{margin-inline:0}.prompt-composer{padding:20px}.prompt-examples,.prompt-examples.create-examples{grid-template-columns:1fr}.prompt-examples button{min-height:58px;border-right:0;border-bottom:1px solid var(--color-line)}.prompt-examples button:last-child{border-bottom:0}.prompt-examples.create-examples button{border-right:0;border-bottom:1px solid var(--color-line)}.prompt-examples.create-examples button:last-child{border-bottom:0}.player-heading h1{font-size:2rem}.player-header-actions{width:100%;justify-content:space-between}.player-canvas-frame{border-width:3px;border-radius:12px}.player-toolbar{align-items:stretch;flex-direction:column}.player-control-group{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.player-action{padding-inline:6px;flex-direction:column;gap:2px;font-size:.65rem}.player-primary-action{width:100%}.player-meta{grid-template-columns:1fr;gap:14px}.library-header .button{width:100%}}@media(max-width:520px){.nav-brand-name{display:none}.nav-brand{width:42px}.page-shell,.player-page{padding-inline:12px}.page-header h1,.create-intro h1{font-size:2.15rem}.page-header>div>p:last-child{font-size:.93rem;line-height:1.55}.prompt-composer{padding:16px}.prompt-composer textarea{min-height:112px;padding:15px;font-size:1rem}.example-heading{align-items:flex-start;flex-direction:column;gap:3px}.composer-meta{font-size:.7rem}.remix-parent{align-items:flex-start}.parent-art{width:68px;height:54px}.player-header-actions{align-items:stretch;flex-direction:column}.runtime-status-chip{width:fit-content}.game-hud{top:8px;left:8px;gap:4px}.game-hud span{min-height:25px;padding:4px 7px;font-size:.59rem}.tic-tac-toe-board{border-width:2px;border-radius:12px}.tic-tac-toe-cell{font-size:2rem}.touch-controls{right:10px;bottom:10px;left:10px}.touch-dpad{width:132px;height:132px;grid-template:repeat(3,44px) / repeat(3,44px)}.touch-control{width:44px;height:44px;border-radius:9px}.action-control{width:58px;height:58px}.surface-status,.start-gate,.paused-label,.round-result{max-width:90%}.round-result{min-width:190px;padding:15px}.diagnostics-panel{top:42px;right:8px;width:calc(100% - 16px);max-height:calc(100% - 50px)}.library-row{position:relative;min-height:148px}.library-open{align-items:flex-start}.library-art{width:100px;height:76px}.library-delete{position:absolute;right:4px;bottom:4px;margin:0}.library-title-line{align-items:flex-start;flex-direction:column;gap:4px}.library-title-line strong{max-width:calc(100vw - 170px)}.player-notice,.undo-toast{right:10px;bottom:10px;left:10px;max-width:none}}@media(max-width:380px){.app-nav{padding-inline:8px}.nav-item{min-width:52px;padding-inline:6px}.nav-brand{width:36px}.player-control-group{grid-template-columns:repeat(2,minmax(0,1fr))}.library-open{gap:11px}.library-art{width:84px}.library-title-line strong{max-width:calc(100vw - 148px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.generated-game-surface{position:relative;width:100%;height:100%;min-height:0;overflow:hidden;background:var(--color-surface-raised)}.generated-game-frame{width:100%;height:100%;border:0;display:block;background:var(--color-surface-raised)}.generated-game-frame[data-interactive=false]{pointer-events:none}.generated-game-overlay{position:absolute;z-index:var(--z-sticky);top:50%;left:50%;max-width:min(88%,440px);padding:16px 18px;border-radius:12px;display:flex;align-items:center;justify-content:center;gap:11px;background:var(--color-surface);color:var(--color-ink);box-shadow:0 4px 0 var(--color-primary-dark);font-size:.84rem;font-weight:680;text-align:center;transform:translate(-50%,-50%)}.generated-game-loading{justify-content:flex-start;text-align:left}.generated-game-loading>span:last-child,.generated-game-error>span{display:flex;flex-direction:column;gap:3px}.generated-game-loading small,.generated-game-error small,.generated-game-start small,.generated-game-result small{max-width:32ch;color:var(--color-muted);font-size:.72rem;font-weight:580;line-height:1.45}.generated-game-start,.generated-game-result{min-width:min(310px,calc(100% - 28px));padding:20px;flex-direction:column;gap:7px}.generated-game-start-icon{width:48px;height:48px;margin-bottom:3px;border-radius:50%;display:grid;place-items:center;background:var(--color-sun);color:var(--color-ink)}.generated-game-start>strong,.generated-game-result>strong{font-size:1.15rem}.generated-game-start .button,.generated-game-result .button{margin-top:7px}.generated-game-error{flex-wrap:wrap;color:var(--color-danger);box-shadow:0 4px #8a0314}.generated-game-paused{min-height:44px;padding-inline:20px}.generated-game-diagnostics{position:absolute;z-index:var(--z-sticky);top:14px;right:14px;width:min(292px,calc(100% - 28px));max-height:calc(100% - 28px);overflow-y:auto;padding:14px;border:2px solid var(--color-line-strong);border-radius:12px;background:#fcfbfffa;background:oklch(.99 .008 292 / .98);color:var(--color-ink)}.generated-game-diagnostics header{padding-bottom:9px;display:flex;flex-direction:column;gap:3px;border-bottom:2px solid var(--color-line)}.generated-game-diagnostics header span,.generated-game-diagnostics dt,.generated-game-diagnostics p{color:var(--color-muted)}.generated-game-diagnostics header span{font-size:.66rem}.generated-game-diagnostics header strong{font-size:.82rem}.generated-game-diagnostics dl{margin:0}.generated-game-diagnostics dl div{min-height:29px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--color-line);font-size:.7rem}.generated-game-diagnostics dd{margin:0;font-variant-numeric:tabular-nums;font-weight:720;text-align:right}.generated-game-diagnostics p{padding-top:10px;font-size:.66rem;line-height:1.4}@media(max-width:520px){.generated-game-overlay{max-width:90%}.generated-game-start,.generated-game-result{min-width:min(270px,calc(100% - 22px));padding:16px}.generated-game-diagnostics{top:8px;right:8px;width:calc(100% - 16px);max-height:calc(100% - 16px)}}
