:root{color-scheme:dark;--bg:#101214;--surface:#191c1e;--line:#343839;--text:#e8e9e3;--muted:#989f9a;--accent:#f59b65;--green:#b3cca3;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,a,input{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit;border:1px solid var(--line);background:#222629;border-radius:7px;padding:11px 17px;transition:background .18s,transform .18s}button:hover{background:#303638}button:active{transform:translateY(1px)}button:disabled{opacity:.48;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:4px}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.topbar{height:93px;padding:0 4.5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:25px}.brand{display:flex;align-items:center;gap:11px;font-size:23px;font-weight:760;letter-spacing:-1.2px;white-space:nowrap}.brand svg{width:33px;height:33px;fill:var(--accent)}.beta{font-size:9px;font-weight:600;letter-spacing:1px;color:var(--accent);background:#34271f;padding:5px 6px;border-radius:4px;margin-left:1px}.topbar nav{display:flex;align-items:center;gap:32px;font-size:13px;color:var(--muted)}.topbar nav .active{color:var(--text)}.text-button{border:0;background:none;padding:0;font-size:inherit}.text-button:hover{background:none;color:var(--accent)}.connection{font-size:11px;color:var(--muted);white-space:nowrap}.connection i,.eyebrow i{display:inline-block;width:6px;height:6px;background:var(--green);border-radius:100%;margin-right:8px;box-shadow:0 0 12px #b3cca342}main{max-width:1536px;margin:auto;padding:35px 4.5% 0}.section-label{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1.8px;color:#8f9690;margin-bottom:24px}.hero{min-height:450px;border:1px solid #41483e;border-radius:13px;display:grid;grid-template-columns:1.08fr 1fr;overflow:hidden;position:relative;background:radial-gradient(ellipse at 84% 10%,#3c4837 0,transparent 52%),#202720}.hero-copy{padding:50px 0 44px 45px;z-index:1}.eyebrow{font-size:9px;letter-spacing:1.6px;color:#b7c1b0;font-weight:550}.hero h1{font-size:clamp(36px,4.1vw,63px);line-height:1.08;letter-spacing:-2.8px;font-weight:640;margin:27px 0 19px}.hero h1 em{font-family:Georgia,serif;font-weight:400;color:var(--green);letter-spacing:-2px}.hero-copy>p{max-width:383px;line-height:1.8;font-size:12px;color:#b9c1b5;margin-bottom:27px}.hero-actions{display:flex;gap:10px;align-items:center}.primary{background:var(--accent);border-color:var(--accent);color:#241b14;font-weight:650;display:inline-flex;justify-content:space-between;align-items:center;gap:30px;padding:14px 17px;font-size:12px}.primary:hover{background:#ffad7f}.primary b{font-size:19px;font-weight:400}.secondary{background:transparent;color:#d5dace;border-color:#586151;font-size:11px;padding:14px 15px}.secondary span{margin-left:8px}.hero-meta{display:flex;gap:21px;margin-top:29px;color:#98a68f;font-size:9px}.hero-meta b{font-size:13px;color:#becab1;font-weight:400;margin-right:5px}.world-art{position:relative;min-height:420px;isolation:isolate}.mountain{position:absolute;width:112%;max-width:640px;height:98%;right:-6%;bottom:-3%;z-index:2;filter:drop-shadow(0 30px 17px #09181177)}.orbit{position:absolute;width:410px;height:410px;border:1px solid #b9c5ac21;border-radius:50%;top:13px;left:18px;transform:rotateX(60deg) rotateZ(-20deg);z-index:0}.orbit-two{width:540px;height:540px;top:-48px;left:-44px}.orbit-three{width:655px;height:655px;top:-105px;left:-103px}.art-coordinate{position:absolute;right:22px;top:24px;font-size:8px;letter-spacing:2px;color:#8a9b7e;writing-mode:vertical-rl}.art-tag{position:absolute;bottom:26px;right:25px;font-size:8px;letter-spacing:2px;line-height:2;color:#819279;z-index:4}.art-tag b{font-weight:500;color:#c5d1ba}.art-dot{position:absolute;top:16%;left:22%;width:7px;height:7px;background:var(--accent);border-radius:50%;box-shadow:0 0 20px #f59b6577}.status-line{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:49px;font-size:11px;color:var(--muted);padding:6px 1px}.status-line.error{color:#ffab98}progress{height:4px;width:180px;accent-color:var(--accent)}.library-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin:16px 0 42px}.game-card{border:1px solid var(--line);border-radius:10px;background:linear-gradient(115deg,#23282a,#1b1e20 70%);overflow:hidden;position:relative;padding:22px 25px 0}.card-top{display:flex;justify-content:space-between;align-items:center}.game-number{font-size:11px;color:#69726d;font-family:monospace}.badge{color:#c0c9bb;font-size:8px;letter-spacing:1.2px;border:1px solid #434d42;border-radius:4px;padding:6px 8px}.game-icon{height:113px;display:flex;align-items:center;justify-content:center;font:italic 95px Georgia;color:#b6c8c7;letter-spacing:-8px;text-shadow:2px 2px #0a1114;position:relative}.game-icon span{font-size:63px;padding-top:23px}.game-icon i{position:absolute;left:calc(50% + 47px);top:19px;font-size:26px;font-style:normal;color:var(--accent)}.card-info{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:22px 0 24px}.card-info .eyebrow{font-size:8px;color:#89948e;letter-spacing:1.4px}.card-info h2{font-size:25px;letter-spacing:-.8px;font-weight:550;margin:9px 0}.card-info p{font-size:11px;color:var(--muted);margin:0}.round-button{border-radius:50%;width:45px;height:45px;padding:0;font-size:24px;border-color:#5a6459;color:var(--accent);background:transparent}.card-bottom{border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:9px;color:#7c877e;padding:15px 0}.features{padding:11px 18px 0 8px}.features h2{font-size:24px;font-weight:520;letter-spacing:-.7px;margin:0 0 22px}.features>div{display:flex;gap:17px;align-items:flex-start;margin:24px 0}.feature-mark{color:#768873;font:10px monospace;border:1px solid #374136;border-radius:5px;padding:8px 7px;margin-top:2px}.features p{color:#949e94;font-size:11px;line-height:1.7;margin:0}.features b{display:block;color:#d6dbd2;font-weight:500;font-size:13px;margin-bottom:4px}footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:23px 0 28px;font-size:8px;letter-spacing:.6px;color:#717d74}footer b{color:var(--accent);padding:0 5px}.player-toolbar{min-height:54px;display:flex;align-items:center;gap:23px;padding:7px 20px;border-bottom:1px solid var(--line)}.compact{font-size:17px}.player-title{font-size:11px;letter-spacing:1.5px;flex:1;color:var(--green)}#frame-status{font-size:10px;letter-spacing:0;color:var(--muted);margin-left:12px}.player-toolbar>div{display:flex;gap:6px}.player-toolbar button{font-size:11px;padding:8px 10px}body.playing>.topbar,body.playing>main{display:none}#player{height:100dvh;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);background:#080b0c}#canvas-wrap{min-height:0;flex:1;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}#canvas{width:100%;height:100%;display:block;outline:0;image-rendering:pixelated;touch-action:none}#paused-overlay{position:absolute;inset:0;background:#101214cb;backdrop-filter:blur(6px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:23px}#paused-overlay b{font-size:40px;font-weight:500;letter-spacing:-2px}#touch-controls{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:13px max(25px,env(safe-area-inset-left)) 5px;max-width:750px;width:100%;margin:0 auto;user-select:none;-webkit-user-select:none;touch-action:none}#touch-controls button{touch-action:none;user-select:none;-webkit-user-select:none;min-width:44px;min-height:40px;border-radius:10px;padding:8px;color:#d5dfd1;background:#1c2424;border-color:#36413b}#touch-controls button.held{background:#a77653;color:#fff}.dpad{display:grid;grid-template-columns:repeat(3,43px);grid-template-rows:repeat(3,32px);gap:3px}.dpad button:first-child{grid-column:2}.dpad button:nth-child(2){grid-row:2;grid-column:1}.dpad span{grid-column:2;grid-row:2;background:#192020}.dpad button:nth-child(4){grid-column:3;grid-row:2}.dpad button:last-child{grid-column:2;grid-row:3}.dpad button{min-height:32px!important}.abxy{display:grid;grid-template-columns:repeat(3,43px);grid-template-rows:repeat(3,32px);gap:3px}.abxy button:first-child{grid-column:2}.abxy button:nth-child(2){grid-column:1;grid-row:2}.abxy button:nth-child(3){grid-column:3;grid-row:2;background:#795a43!important}.abxy button:last-child{grid-column:2;grid-row:3}.abxy button{border-radius:50%!important;min-height:38px!important}.center-controls{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.center-controls button{font-size:10px;min-width:35px!important;padding:5px 9px!important;min-height:31px!important}.player-hint{display:flex;justify-content:space-between;gap:10px;padding:13px 20px;font-size:9px;color:var(--muted)}dialog{border:1px solid #485047;background:#1b201d;color:var(--text);border-radius:15px;padding:34px;width:min(470px,calc(100% - 32px));box-shadow:0 40px 100px #0008}dialog::backdrop{background:#050907b9;backdrop-filter:blur(8px)}dialog h2{font-size:29px;font-weight:500;letter-spacing:-1px;margin:14px 0}dialog p,dialog li{font-size:12px;color:#a9b6a7;line-height:1.8}dialog li{padding:7px 0}dialog ol{padding-left:19px}dialog b{color:#e3e9dc}dialog .small{font-size:10px;color:#7e8f7d}.dialog-close{position:absolute;right:14px;top:12px;border:none;background:none;padding:0;font-size:25px;color:#80907d}dialog label{display:block;margin:25px 0;font-size:12px}dialog output{float:right;color:var(--accent)}input[type=range]{width:100%;accent-color:var(--accent);display:block;margin-top:15px}.preset-row{display:flex;gap:5px;margin:22px 0}.preset-row button{font-size:10px;padding:10px}.save-actions{display:grid;gap:10px;margin:25px 0}.save-actions button{width:100%;justify-content:center}.agent-page{max-width:860px;line-height:1.8;padding-bottom:60px}.agent-page h1{font-size:43px;letter-spacing:-2px}.agent-page pre{padding:20px;background:#1b2320;border:1px solid #394239;border-radius:9px;overflow:auto;font-size:12px}.agent-page code{color:var(--green)}
@media(min-width:1600px){.hero{min-height:510px}.hero-copy{padding-top:65px}.world-art{min-height:510px}.hero-copy>p{font-size:14px}.hero h1{font-size:68px}}
@media(max-width:900px){.topbar{height:76px}.connection{display:none}.topbar nav{gap:17px}.hero-copy{padding:35px 0 30px 28px}.hero h1{letter-spacing:-1.8px}.hero-actions{align-items:stretch;flex-direction:column;max-width:230px}.hero-meta{gap:12px;font-size:8px;flex-wrap:wrap}.hero-copy>p{font-size:11px;max-width:300px}.world-art{min-height:450px}.mountain{width:145%;right:-20%;height:92%}.library-grid{gap:20px}.features h2{font-size:21px}}
@media(max-width:600px){.topbar{height:70px;padding:0 20px;gap:10px}.brand{font-size:20px;gap:7px}.brand svg{width:28px}.topbar nav a:first-child,.beta{display:none}.topbar nav{font-size:10px;gap:14px}main{padding:25px 18px 0}.section-label{font-size:7px;letter-spacing:1.3px}.hero{display:flex;flex-direction:column}.hero-copy{padding:29px 25px 0}.hero h1{font-size:42px;margin-top:20px}.hero-copy>p{max-width:330px;font-size:12px}.hero-actions{flex-direction:row;max-width:none;gap:8px}.hero-actions .primary{gap:15px;padding:12px}.hero-actions .secondary{font-size:9px;padding:12px 10px}.hero-meta{margin-top:23px;gap:18px}.world-art{min-height:265px;margin-top:-15px}.mountain{width:100%;height:120%;bottom:-14%;right:0}.orbit{width:330px;height:330px;left:20px;top:-10px}.orbit-two{width:450px;height:450px;left:-40px;top:-67px}.orbit-three{display:none}.art-coordinate{font-size:6px}.art-tag{font-size:6px;bottom:16px;right:17px}.art-dot{display:none}.status-line{font-size:10px;padding:10px 2px}.library-grid{grid-template-columns:1fr;gap:26px;margin-top:7px}.game-card{padding:20px 22px 0}.features{padding:0 5px}.features>div{margin:20px 0}.features h2{font-size:24px}.card-info h2{font-size:27px}footer{font-size:7px;line-height:1.9;flex-direction:column;gap:7px}.player-toolbar{padding:7px 9px;gap:6px;flex-wrap:wrap}.compact{font-size:15px;margin-right:8px}.player-title{font-size:9px}.player-toolbar>div{margin-left:auto}.player-toolbar button{padding:7px;font-size:9px}#frame-status{display:none}.player-hint{padding:12px 10px;font-size:8px}.player-hint #save-status{max-width:155px;text-align:center}#touch-controls{padding:15px 17px 7px;gap:10px}.center-controls{max-width:100px}dialog{padding:28px 23px}.agent-page h1{font-size:34px}}
@media(max-height:520px) and (orientation:landscape){#touch-controls{position:absolute;bottom:35px;max-width:none;pointer-events:none;padding:0 25px}#touch-controls button{pointer-events:auto;opacity:.76}.center-controls{position:absolute;bottom:0;left:50%;transform:translateX(-50%)}.player-hint{height:30px;padding:7px 15px}.player-toolbar{min-height:40px}.player-toolbar button{padding:6px 10px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

#diagnostic-output{font:11px/1.5 ui-monospace,monospace;white-space:pre-wrap;overflow-wrap:anywhere;max-height:45vh;overflow:auto;user-select:text}

#render-quality{display:block;width:100%;margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--text);font:inherit}#render-quality:focus-visible{outline:2px solid var(--accent);outline-offset:4px}

/* Battle controls occupy the same reserved input row; turns never resize the game. */
#touch-controls{position:relative;min-height:176px;flex-shrink:0}
#battle-controls{position:absolute;inset:7px 20px 5px;pointer-events:auto;touch-action:manipulation}
.battle-mode>.dpad,.battle-mode>.center-controls,.battle-mode>.abxy{visibility:hidden}
.battle-menu-heading{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#a9b9b9;margin:0 0 7px}
.battle-menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
#battle-controls .battle-choice{min-height:47px;padding:7px 13px;text-align:left;border:1px solid #3b5057;background:linear-gradient(115deg,#263638,#172224);border-radius:9px;display:flex;flex-direction:column;justify-content:center;touch-action:manipulation;opacity:1}
.battle-choice-name{font-size:14px;font-weight:650;line-height:1.2;color:#f5f7f2}
.battle-choice-detail{font-size:11px;color:#c2d0ce;line-height:1.35}
.battle-choice-detail:empty{display:none}
#battle-controls .battle-cancel{grid-column:1/-1;min-height:31px;padding:5px 13px;align-items:center;background:#171e20}
#battle-controls .battle-choice:hover,#battle-controls .battle-choice:focus-visible,#battle-controls .battle-choice.game-selected{border-color:#f5bc85;box-shadow:inset 3px 0 #f5bc85;outline:0}
#battle-controls .battle-choice:active{background:#405153}
#battle-controls [data-move-type="10"]{border-left:3px solid #e69a6a}
#battle-controls [data-move-type="11"]{border-left:3px solid #76b7e1}
#battle-controls [data-move-type="12"]{border-left:3px solid #a4cc83}
#battle-controls [data-move-type="13"]{border-left:3px solid #e3ca68}
@media(max-width:600px){#battle-controls{inset:7px 17px 5px}}
@media(orientation:landscape) and (max-height:520px){
 #touch-controls{position:absolute}
 #battle-controls{left:max(12px,env(safe-area-inset-left));right:auto;width:clamp(112px,calc((100vw - (100dvh - 72px)*1.333333)/2 - 24px),250px);top:auto;bottom:0;padding:8px;background:#0c1315ed;border-radius:12px;box-shadow:0 4px 20px #0007;max-height:calc(100dvh - 88px);overflow:auto}
 .battle-menu-grid{grid-template-columns:1fr}
 #battle-controls .battle-choice{padding:6px 8px}
 .battle-choice-name{font-size:12px;overflow-wrap:anywhere}
 .battle-choice-detail{font-size:10px}
 .battle-menu-heading{font-size:10px}
}
