@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap";:root{color:#173e37;font-synthesis:none;--ink:#173e37;--cream:#f5f0e4;--amber:#e9ac4c;--mint:#79b69c;background:#f5f0e4;font-family:DM Sans,system-ui,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 8% 12%,#fff9ec 0,#0000 28%),#f5f0e4;min-width:320px;min-height:100vh;margin:0}button,input,textarea{font:inherit}button{color:inherit}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:5;background:#faf6eddb;border-bottom:1px solid #173e3721;align-items:center;gap:40px;height:76px;padding:0 4.5vw;display:flex;position:relative}.brand{letter-spacing:.08em;cursor:pointer;background:0 0;border:0;align-items:center;gap:9px;font-size:15px;font-weight:800;display:flex}.brand em{letter-spacing:.12em;color:#718079;border-left:1px solid #9fa99e;padding-left:9px;font-size:9px;font-style:normal;font-weight:700}.brand-mark{background:var(--ink);color:#f2c164;border-radius:50%;place-items:center;width:30px;height:30px;display:grid}.mode-switch{background:#e9e5d9;border-radius:12px;margin:auto;padding:4px;display:flex}.mode-switch button{cursor:pointer;color:#74827c;background:0 0;border:0;border-radius:9px;align-items:center;gap:7px;padding:9px 15px;font-size:12px;font-weight:700;display:flex}.mode-switch button.active{color:var(--ink);background:#fffaf0;box-shadow:0 2px 8px #153b3212}.status{letter-spacing:.14em;color:#829087;align-items:center;gap:7px;font-size:9px;font-weight:800;display:flex}.status i{background:#6dc69b;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #6dc69b20}.create-layout{grid-template-columns:minmax(300px,.9fr) minmax(480px,1fr);align-items:center;gap:9vw;width:min(1110px,92vw);margin:auto;padding:70px 0;display:grid}.intro{align-self:start;padding-top:67px}.eyebrow{letter-spacing:.17em;color:#5a8675;align-items:center;gap:8px;font-size:10px;font-weight:800;display:flex}.intro h1{letter-spacing:-.035em;margin:23px 0;font-family:DM Serif Display,serif;font-size:clamp(48px,5vw,70px);font-weight:400;line-height:.98}.intro h1 span{color:#5e987f;font-style:italic}.intro p{color:#687970;max-width:470px;font-family:DM Serif Display,serif;font-size:18px;line-height:1.55}.tiny-proof{letter-spacing:.08em;color:#7e8982;text-transform:uppercase;margin-top:38px;font-size:10px}.tiny-proof span{color:var(--ink);margin-right:3px;font-family:DM Serif Display;font-size:19px}.tiny-proof b{color:#c7bba4;margin:0 10px;font-weight:400}.creator-card{background:#fffaf0;border:1px solid #2c4b3e1f;border-radius:22px;padding:32px;box-shadow:0 24px 70px #3144331a}.step-heading{align-items:center;gap:15px;display:flex}.step-heading>span{color:#59816f;background:#e7f0e8;border-radius:8px;padding:7px;font-size:9px;font-weight:800}.step-heading h2{margin:0;font-family:DM Serif Display;font-size:21px;font-weight:400}.step-heading p{color:#839087;margin:3px 0 0;font-size:11px}.step-heading.compact{margin-bottom:16px}.upload-zone{cursor:pointer;background:#f8f7ed;border:1.5px dashed #b9c7bd;border-radius:15px;flex-direction:column;justify-content:center;align-items:center;gap:7px;width:100%;height:160px;margin-top:20px;transition:all .2s;display:flex;position:relative;overflow:hidden}.upload-zone:hover{background:#f3f7ec;border-color:#5f9c81;transform:translateY(-1px)}.upload-icon{color:#568872;background:#e2eee5;border-radius:50%;place-items:center;width:45px;height:45px;display:grid}.upload-zone strong{font-size:12px}.upload-zone small{color:#8a958e;font-size:10px}.upload-zone.has-preview img{object-fit:contain;image-rendering:auto;width:100%;height:100%;padding:9px}.replace{color:#fff;background:#173e37;border-radius:8px;padding:6px 9px;font-size:9px;position:absolute;bottom:10px;right:10px}.divider{background:#e7e2d5;height:1px;margin:27px 0}.movement-options{grid-template-columns:1fr 1fr;gap:11px;display:grid}.movement-options button{text-align:left;cursor:pointer;background:#faf8ef;border:1px solid #d8d8cc;border-radius:13px;align-items:center;gap:10px;height:69px;padding:10px;display:flex;position:relative}.movement-options button.selected{background:#f1f7ed;border:1.5px solid #4a856e;box-shadow:0 0 0 3px #69a78913}.movement-options button>span:nth-child(2){flex-direction:column;gap:3px;display:flex}.movement-options strong{font-size:11px}.movement-options small{color:#849088;font-size:9px}.movement-options i{color:#fff;text-align:center;background:#4d8972;border-radius:50%;width:15px;height:15px;font-size:9px;font-style:normal;line-height:15px;display:none;position:absolute;top:8px;right:8px}.movement-options .selected i{display:block}.movement-art{color:#386e58;background:#e3eee4;border-radius:10px;place-items:center;width:46px;height:46px;font-family:serif;font-size:31px;display:grid}.movement-art.wings{color:#6d769b;background:#e9ecf4}.details-toggle{cursor:pointer;background:0 0;border:0;border-top:1px solid #e7e2d5;justify-content:space-between;width:100%;margin-top:24px;padding:20px 0 13px;display:flex}.details-toggle span{align-items:center;gap:8px;font-size:11px;font-weight:700;display:flex}.details-toggle small{letter-spacing:.08em;color:#9aa39d;font-size:8px;font-weight:600}.details{grid-template-columns:.8fr 1.2fr;gap:10px;margin-bottom:14px;display:grid}.details label{color:#64756c;flex-direction:column;gap:5px;font-size:9px;font-weight:700;display:flex}.details input,.details textarea{color:#173e37;background:#f9f7ef;border:1px solid #dadace;border-radius:9px;outline:none;width:100%;padding:9px;font-size:11px}.details textarea{resize:none;height:36px}.details input:focus,.details textarea:focus{border-color:#6c9d88}.generate{background:var(--ink);color:#fff7df;cursor:pointer;border:0;border-radius:12px;justify-content:space-between;align-items:center;width:100%;padding:15px 17px;font-size:12px;font-weight:700;transition:all .2s;display:flex;box-shadow:0 9px 24px #173e3730}.generate:hover{background:#205246;transform:translateY(-1px)}.generate span{align-items:center;gap:9px;display:flex}.generation-note{text-align:center;color:#929b95;justify-content:center;align-items:center;gap:5px;margin:10px 0 0;font-size:9px;display:flex}.play-layout{background:#ded9cb;flex:1;grid-template-columns:minmax(0,1fr) 300px;min-height:0;display:grid}.game-panel{min-width:0;padding:20px 0 20px 20px}.canvas-wrap{border-radius:18px;height:100%;min-height:600px;position:relative;overflow:hidden;box-shadow:0 18px 45px #28443c24}.game-canvas{width:100%;height:100%;image-rendering:pixelated;display:block}.canvas-top{color:#fff;background:linear-gradient(#133e385c,#0000);justify-content:space-between;align-items:flex-start;padding:20px;display:flex;position:absolute;top:0;left:0;right:0}.canvas-top div{flex-direction:column;display:flex}.canvas-top span{letter-spacing:.17em;font-size:10px;font-weight:800}.canvas-top small{color:#eff3d8;font-family:DM Serif Display;font-size:14px;font-style:italic}.canvas-top button{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#173e37c9;border:1px solid #ffffff49;border-radius:9px;align-items:center;gap:7px;padding:8px 11px;font-size:10px;display:flex}.controls-hint{color:#fff;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#173e37d9;border-radius:11px;align-items:center;gap:9px;padding:9px 12px;display:flex;position:absolute;bottom:20px;left:20px}kbd{color:#173e37;background:#f9f5e9;border-radius:4px;place-items:center;width:18px;height:16px;margin:1px;font:700 8px DM Sans;display:inline-grid;box-shadow:0 2px #a6afa5}.controls-hint>div{flex-direction:column;align-items:center;display:flex}.controls-hint p{color:#d2ddd5;margin:0 4px 0 0;font-size:8px}.controls-hint .space{width:39px}.roster{background:#f7f2e7;flex-direction:column;min-height:0;padding:31px 21px 20px;display:flex}.roster-heading{justify-content:space-between;align-items:center;margin:0 5px 21px;display:flex}.roster-heading span,.active-info>span{letter-spacing:.16em;color:#84938a;font-size:8px;font-weight:800}.roster-heading h2{margin:2px 0;font:400 26px DM Serif Display}.roster-heading em{background:#e2e9dd;border-radius:20px;padding:6px 9px;font:12px DM Sans}.character-list{flex-direction:column;gap:7px;padding:2px;display:flex;overflow:auto}.character-list>button{text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:13px;align-items:center;width:100%;height:66px;padding:7px;display:flex}.character-list>button.selected{background:#fffdf7;border-color:#d8d8cc;box-shadow:0 5px 14px #29483f0d}.character-list>button>span:nth-child(2){flex-direction:column;gap:3px;margin-left:10px;display:flex}.character-list strong{font:400 15px DM Serif Display}.character-list small{color:#8e9992;font-size:8px}.character-list b{color:#89958e;margin-left:auto;font-weight:400}.portrait{background:color-mix(in srgb,var(--accent) 30%,#eaf0df);border-radius:10px;flex:0 0 50px;place-items:center;width:50px;height:50px;display:grid;position:relative;overflow:hidden}.portrait i{color:#f1bd5c;background:#173e37;border-radius:50%;place-items:center;width:15px;height:15px;display:grid;position:absolute;top:3px;right:3px}.sprite-portrait{image-rendering:pixelated;background-position:0 0;background-repeat:no-repeat;display:block;transform:translateY(6px)}.active-info{border-top:1px solid #dedbce;margin-top:auto;padding:20px 5px}.active-info h3{margin:5px 0 11px;font:400 22px DM Serif Display}.active-info>div{gap:5px;display:flex}.tag{letter-spacing:.08em;background:#e2eadf;border-radius:4px;padding:5px 6px;font-size:7px;font-weight:800}.active-info p{color:#97a098;margin:12px 0 0;font-size:7px;line-height:1.4}.new-character{cursor:pointer;background:0 0;border:1px dashed #aebbb1;border-radius:11px;justify-content:center;align-items:center;gap:7px;padding:11px;font-size:9px;font-weight:700;display:flex}.new-character span{font-size:16px;font-weight:400}.touch-controls{display:none}footer{color:#c4d0c8;letter-spacing:.08em;background:#173e37;justify-content:space-between;align-items:center;height:35px;padding:0 4.5vw;font-size:8px;display:flex}@media (width<=850px){.topbar{height:65px;padding:0 18px}.brand em,.status{display:none}.mode-switch{margin-left:auto;margin-right:0}.create-layout{grid-template-columns:1fr;padding:35px 0}.intro{text-align:center;padding:0}.eyebrow{justify-content:center}.intro h1{font-size:48px}.intro p{margin-inline:auto}.tiny-proof{margin-top:20px}.creator-card{width:100%;max-width:590px;margin:auto}.play-layout{grid-template-rows:minmax(520px,1fr) auto;grid-template-columns:1fr}.game-panel{padding:10px}.canvas-wrap{min-height:520px}.roster{padding:15px;display:block}.roster-heading,.active-info{display:none}.character-list{flex-direction:row}.character-list>button{min-width:180px}.new-character,footer{display:none}}@media (width<=560px){.topbar{gap:10px}.brand>span:nth-child(2){display:none}.mode-switch button{padding:8px 10px}.create-layout{width:92vw}.intro h1{font-size:39px}.intro p{font-size:15px}.tiny-proof{display:none}.creator-card{padding:22px 18px}.movement-options,.details{grid-template-columns:1fr}.play-layout{grid-template-rows:minmax(470px,1fr) 92px}.game-panel{padding:0}.canvas-wrap{border-radius:0;min-height:470px}.canvas-top{padding:14px}.controls-hint{display:none}.touch-controls{justify-content:space-between;align-items:end;display:flex;position:absolute;bottom:14px;left:15px;right:15px}.dpad{grid-template-rows:repeat(2,34px);grid-template-columns:repeat(3,34px);width:105px;display:grid}.dpad button{color:#fff;touch-action:none;background:#173e37c9;border:1px solid #ffffff65;font-weight:700}.dpad button:first-child{grid-column:2}.dpad button:nth-child(2){grid-column:1}.dpad button:nth-child(3){grid-column:2}.dpad button:nth-child(4){grid-column:3}.hop-touch{color:#173e37;background:#e8ae50dd;border:2px solid #ffffff7a;border-radius:50%;width:56px;height:56px;font-size:9px;font-weight:800}.roster{padding:9px}.character-list>button{min-width:155px;height:60px}.portrait{flex-basis:44px;width:44px;height:44px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.app-shell{background:#eeeadd;min-height:100vh;padding-left:76px}.mode-rail{z-index:20;background:#143e37;border-right:4px solid #e5ad51;flex-direction:column;align-items:stretch;width:76px;padding-top:18px;display:flex;position:fixed;inset:0 auto 0 0}.mode-rail button{color:#99b4a9;cursor:pointer;text-transform:uppercase;letter-spacing:.08em;background:0 0;border:0;border-left:4px solid #0000;flex-direction:column;justify-content:center;align-items:center;gap:7px;height:72px;padding-right:4px;font:700 9px ui-monospace,SFMono-Regular,Consolas,monospace;display:flex}.mode-rail button:hover{color:#fff7df;background:#1a4a41}.mode-rail button.active{color:#143e37;background:#f4efdf;border-left-color:#e5ad51}.rail-line{background:#ffffff1c;height:1px;margin:3px 14px}.create-layout{background:0 0;grid-template-columns:minmax(330px,1fr) minmax(460px,560px);align-items:start;gap:clamp(28px,5vw,76px);width:auto;min-height:100vh;margin:0;padding:64px clamp(26px,5vw,80px) 42px;position:relative;overflow:hidden}.creation-animation{pointer-events:none;width:100vw;height:100vh;image-rendering:crisp-edges;image-rendering:pixelated;background:#06110e;display:block;position:fixed;inset:0}.creation-animation.background-layer{z-index:0}.creation-animation.foreground-layer{z-index:5;background:0 0}.video-reserve{background:#d8ddd0;border:1px solid #aab0a5;height:min(70vh,650px);min-height:470px;position:relative;overflow:hidden;box-shadow:10px 10px #c7c1b1}.video-grid{background-image:linear-gradient(#173e3710 1px,#0000 1px),linear-gradient(90deg,#173e3710 1px,#0000 1px);background-size:24px 24px;position:absolute;inset:0}.video-reserve:before,.video-reserve:after{content:"";border-color:#49685c;width:46px;height:46px;position:absolute}.video-reserve:before{border-top:2px solid;border-left:2px solid;top:20px;left:20px}.video-reserve:after{border-bottom:2px solid;border-right:2px solid;bottom:20px;right:20px}.video-placeholder{color:#49665b;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.play-mark{border:2px solid #49665b;place-items:center;width:58px;height:58px;margin-bottom:17px;padding-left:4px;display:grid}.video-placeholder strong,.video-caption span{letter-spacing:.17em;font:800 10px ui-monospace,SFMono-Regular,Consolas,monospace}.video-placeholder small{color:#738279;margin-top:7px;font-size:10px}.video-caption{position:absolute;bottom:25px;left:28px}.video-caption p{color:#68786f;margin:5px 0 0;font-size:11px}.creator-card{background:#eff2e4e0;border:1px solid #769084;border-radius:0;grid-column:2;padding:30px;position:relative;box-shadow:8px 8px #03110d6b}.step-heading>span,.upload-zone,.upload-icon,.movement-options button,.movement-art,.details-toggle,.details input,.details textarea,.generate,.canvas-wrap,.canvas-top button,.controls-hint,.roster-heading em,.character-list>button,.portrait,.tag,.new-character{border-radius:0}.step-heading h2,.roster-heading h2,.character-list strong,.active-info h3{font-family:DM Sans,system-ui,sans-serif;font-weight:700}.step-heading>span{background:#dfe9df;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.upload-zone{background:#f1f2e8;border-color:#9aaa9e}.upload-icon{background:0 0;border:1px solid #8eaa9e}.divider{background:#cfd0c5}.movement-options button.selected{box-shadow:4px 4px #c8d9c9}.movement-options i{border-radius:0}.generate{box-shadow:5px 5px #d3a454}.generate:hover{transform:translate(-1px,-1px);box-shadow:7px 7px #d3a454}.generation-note{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.play-layout{background:#06110e;min-height:100vh}.game-panel{border-right:1px solid #315a4c;padding:0}.canvas-wrap{min-height:100vh;box-shadow:none;background:#06110e}.roster{background:#f3eee1;border-left:4px solid #e5ad51}.roster-heading span,.active-info>span{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.character-list>button.selected{border:1px solid #8fa094;box-shadow:4px 4px #d5cfbf}.active-info{border-color:#c9c7bb}.new-character{border-color:#899b90}.touch-controls button{border-radius:0!important}@media (width<=850px){.app-shell{padding-left:64px}.mode-rail{width:64px}.mode-rail button{height:64px}.create-layout{grid-template-columns:1fr;width:auto;padding:26px}.creator-card{grid-column:1;justify-self:end}.play-layout{grid-template-rows:minmax(520px,1fr) auto}.canvas-wrap{min-height:520px}.roster{border-top:4px solid #e5ad51;border-left:0}}@media (width<=560px){.app-shell{min-height:100svh;padding-bottom:58px;padding-left:0}.mode-rail{border-top:3px solid #e5ad51;border-right:0;flex-direction:row;width:100%;height:58px;padding:0;inset:auto 0 0}.mode-rail button{border-top:3px solid #0000;border-left:0;flex-direction:row;flex:1;height:55px;padding:0;font-size:9px}.mode-rail button.active{border-top-color:#e5ad51;border-left:0}.rail-line{background:#ffffff2a;width:1px;height:30px;margin:12px 0}.create-layout{width:auto;min-height:calc(100svh - 58px);padding:12px 12px max(42vh,320px);display:block;overflow-y:auto}.creator-card{width:100%;max-width:none;padding:16px 14px;box-shadow:5px 5px #03110d6b}.creator-card .step-heading h2{font-size:17px}.creator-card .step-heading p{font-size:9px}.creator-card .upload-zone{height:118px;margin-top:13px}.creator-card .upload-icon{width:38px;height:38px}.creator-card .options-toggle{margin-top:14px;padding:12px 0}.creator-card .generate{padding:13px 14px}.movement-options,.details{grid-template-columns:1fr}.play-layout{grid-template-rows:minmax(0,1fr) 104px;grid-template-columns:1fr;width:100%;min-width:0;height:calc(100svh - 58px);min-height:0;overflow:hidden}.game-panel,.canvas-wrap,.roster,.character-list{min-width:0}.game-panel{min-height:0}.canvas-wrap{height:100%;min-height:0}.touch-controls{bottom:10px;left:10px;right:10px}.dpad{grid-template-rows:repeat(2,29px);grid-template-columns:repeat(3,29px);width:90px}.hop-touch{width:48px;height:48px}.roster{border-top-width:3px;height:104px;padding:7px}.character-list{gap:5px;width:100%;height:100%;overflow-x:auto}.character-list>button{flex:0 0 140px;min-width:140px;height:54px;padding:5px}.portrait{flex-basis:40px;width:40px;height:40px}}.game-canvas,.sprite-portrait{image-rendering:crisp-edges;image-rendering:pixelated}.creator-card .upload-zone{background:#f7f8edb8;border-color:#879f93}.options-toggle{border-top:1px solid #aebbb1;border-bottom:1px solid #aebbb1;margin-top:20px;padding:15px 0}.options-toggle>svg{transition:transform .16s}.options-toggle.open>svg{transform:rotate(180deg)}.generation-options{border-bottom:1px solid #aebbb1;margin-bottom:18px;padding:20px 0 4px}.generation-options .details{margin:14px 0 0}.generation-options .movement-options button{background:#f9f8edb3}.generation-options .movement-options button.selected{background:#e7f1e2d6}.generation-options .details input,.generation-options .details textarea{background:#faf9f0b8;border-color:#aeb9af}.app-shell.unified-shell{background:#06110e;min-height:100vh;padding:0}.screen-drop-target{z-index:100;pointer-events:none;color:#f4ead4;letter-spacing:.08em;text-transform:uppercase;background:#06110ed1;border:2px dashed #e5ad51;flex-direction:column;justify-content:center;align-items:center;gap:11px;font:800 12px ui-monospace,SFMono-Regular,Consolas,monospace;display:flex;position:fixed;inset:12px}.screen-drop-target>span{color:#e5ad51;background:#143e37;border:1px solid #e5ad51;place-items:center;width:48px;height:48px;display:grid}.studio-layout{background:#06110e;grid-template-columns:minmax(0,1fr) 340px;width:100%;height:100vh;min-height:620px;display:grid;overflow:hidden}.studio-layout .game-panel{border-right:1px solid #315a4c;min-width:0;min-height:0;padding:0}.studio-layout .canvas-wrap{height:100%;min-height:0;box-shadow:none;background:#06110e;border-radius:0}.studio-layout .roster{background:#f3eee1;border:0;border-left:4px solid #e5ad51;min-width:0;padding:25px 18px 16px}.studio-layout .roster-heading{margin:0 4px 17px}.studio-layout .roster-heading h2{margin:2px 0;font:700 24px DM Sans,system-ui,sans-serif}.studio-layout .roster-heading em{border-radius:0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.create-dock{flex:none}.studio-layout .character-list{overscroll-behavior:contain;flex:1;gap:8px;min-height:0;padding:2px 5px 7px 2px;overflow-y:auto}.studio-layout .character-list>button,.create-character{text-align:left;cursor:pointer;color:#173e37;background:0 0;border:1px solid #0000;align-items:center;width:100%;height:82px;padding:7px;display:flex}.studio-layout .character-list>button:hover,.create-character:hover{background:#ebe7d9;border-color:#bdc3b8}.studio-layout .character-list>button.selected{background:#fffdf7;border-color:#8fa094;box-shadow:4px 4px #d5cfbf}.studio-layout .character-list>button>strong,.create-character>strong{text-overflow:ellipsis;white-space:nowrap;margin-left:12px;font:700 14px DM Sans,system-ui,sans-serif;overflow:hidden}.studio-layout .character-list>button>b,.create-character>b{color:#77877e;margin-left:auto;font-weight:500}.studio-layout .portrait{background:color-mix(in srgb,var(--accent) 20%,#e8ecdf);border:1px solid #b7c0b5;border-radius:0;flex:0 0 66px;place-items:center;width:66px;height:66px;display:grid;overflow:hidden}.studio-layout .portrait img{object-fit:contain;image-rendering:auto;background:#fff;width:100%;height:100%;display:block}.portrait-fallback{color:#63786e;font:700 20px ui-monospace,SFMono-Regular,Consolas,monospace}.create-entry{border-bottom:1px solid #c8c9bd;margin-bottom:2px;padding-bottom:8px}.create-entry.open{background:#e8eadf;border:1px solid #91a297;padding:0 8px 10px;box-shadow:4px 4px #d3cdbd}.create-entry.open .create-character{height:70px;padding-inline:0}.create-character{height:82px}.studio-layout .create-portrait{flex-basis:66px;width:66px;height:66px;color:#a96e22!important;background:#ece8dc!important;border:1px dashed #84968c!important;font-size:0!important}.create-portrait:before{content:"+";background:#f8f3e6;border:1px solid #c5a66f;place-items:center;width:24px;height:24px;font:400 19px/1 ui-monospace,SFMono-Regular,Consolas,monospace;display:grid}.create-character:hover .create-portrait{background:#f2eee2!important;border-color:#526e61!important}.create-character:hover .create-portrait:before{border-color:#a96e22}.create-panel{border-top:1px solid #bac4b9;flex-direction:column;gap:12px;padding-top:12px;display:flex}.create-panel-heading{justify-content:space-between;align-items:center;min-height:32px;display:flex}.create-panel-heading>strong{font-size:15px}.create-panel-heading>button{color:#52675d;cursor:pointer;background:#f8f6eb;border:1px solid #98a79d;width:30px;height:30px;font-size:20px;line-height:1}.create-panel-heading>button:hover{color:#173e37;background:#e2e9df;border-color:#315f50}.create-panel .upload-zone{height:142px;box-shadow:none;background:#f6f4e9;border-color:#839a8e;border-radius:0;margin:0}.create-panel .upload-zone:hover{background:#faf9f0;transform:none}.create-panel .upload-zone.has-preview img{object-fit:contain;background:#fff;padding:5px}.create-panel .replace{background:#153f37;border-radius:0;bottom:5px;right:5px}.name-field{text-transform:uppercase;letter-spacing:.08em;flex-direction:column;gap:5px;font-size:9px;font-weight:800;display:flex}.name-field>span{justify-content:space-between;display:flex}.name-field small{color:#849087;font-size:8px;font-weight:500}.name-field input{text-transform:none;letter-spacing:0;background:#f8f6eb;border:1px solid #98a79d;border-radius:0;outline:none;width:100%;padding:10px;font-size:11px}.name-field input:focus{border-color:#315f50;box-shadow:2px 2px #b9cbbd}.workflow-options{border:0;margin:0;padding:0}.workflow-options legend{letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;padding:0;font-size:9px;font-weight:800}.workflow-options>div{grid-template-columns:repeat(2,1fr);gap:5px;display:grid}.workflow-options label{cursor:pointer;background:#f5f3e8;border:1px solid #9aa89f;flex-direction:column;align-items:center;gap:2px;min-width:0;padding:8px 5px;display:flex;position:relative}.workflow-options label.selected{background:#dfe9df;border-color:#315f50;box-shadow:2px 2px #b8c9bb}.workflow-options input{opacity:0;pointer-events:none;position:absolute}.workflow-options strong{white-space:nowrap;font-size:10px}.workflow-options small{color:#718078;text-transform:uppercase;letter-spacing:.04em;font-size:7px}.workflow-option-lock{text-transform:uppercase;background:#e9e8dd;border:1px solid #aab3ac;justify-content:space-between;align-items:center;padding:8px 10px;display:flex}.workflow-option-lock span{letter-spacing:.08em;font-size:9px;font-weight:800}.workflow-option-lock strong{color:#596a61;font-size:10px}.diagonal-option{cursor:pointer;background:#f5f3e8;border:1px solid #9aa89f;grid-template-columns:18px 1fr;align-items:start;gap:8px;padding:9px;display:grid}.diagonal-option input{accent-color:#315f50;margin:2px 0 0}.diagonal-option span{flex-direction:column;gap:2px;display:flex}.diagonal-option strong{font-size:10px}.diagonal-option small{color:#718078;font-size:8px;line-height:1.3}.create-panel .generate{border-radius:0;padding:12px 13px;box-shadow:4px 4px #d3a454}.create-panel .generate:hover{transform:none;box-shadow:4px 4px #d3a454}.create-panel .generate:disabled{cursor:not-allowed;color:#d8ddd7;background:#8c968f;box-shadow:4px 4px #c5c1b5}.create-panel .generate:disabled:hover{background:#8c968f;box-shadow:4px 4px #c5c1b5}.performance-toggle{cursor:pointer;border-top:1px solid #c9c7bb;grid-template-columns:18px 1fr;align-items:center;column-gap:8px;margin-top:auto;padding:15px 4px 2px;display:none}.performance-toggle input{accent-color:#173e37;margin:0}.performance-toggle span{font-size:10px;font-weight:800}.performance-toggle small{color:#7f8c84;grid-column:2;margin-top:2px;font-size:8px}.architecture-link{z-index:5;color:#d5e2db;text-shadow:0 1px 3px #06110e;background:linear-gradient(135deg,#06110ed9 0%,#06110e80 64%,#0000 100%);align-items:center;gap:10px;padding:15px 17px;text-decoration:none;display:flex;position:absolute;top:0;left:0}.architecture-link strong{letter-spacing:.02em;font:800 14px ui-monospace,SFMono-Regular,Consolas,monospace}.architecture-link:hover{color:#fff;text-underline-offset:3px;text-decoration:underline}.generation-create{flex-direction:column;gap:14px;height:100%;min-height:0;padding:2px 4px 4px;display:flex;overflow-y:auto}.generation-reference-lock{flex:none;margin:0}.generation-reference-heading{text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid #bac4b9;justify-content:space-between;align-items:center;height:38px;font:800 10px ui-monospace,SFMono-Regular,Consolas,monospace;display:flex}.generation-reference-heading span{color:#66776e;border:1px solid #87968e;padding:3px 5px;font-size:7px}.locked-upload{cursor:default!important;background:#f6f4e9!important;border-style:solid!important}.locked-upload img{object-fit:contain;background:#fff;width:100%;height:100%;padding:5px}.generation-reference-lock .name-field input:disabled{opacity:1;color:#596a61;cursor:not-allowed;background:#e9e8dd}.generation-create>.generation-state{flex:1;margin:0;padding:10px 5px 4px}.generation-state{color:#173e37;flex-direction:column;width:100%;margin:auto 0;padding:22px 5px;display:flex}.generation-title{align-items:center;gap:10px;display:flex}.generation-title strong{letter-spacing:.04em;text-transform:uppercase;font:800 17px ui-monospace,SFMono-Regular,Consolas,monospace}.generation-title>span{gap:4px;display:flex}.generation-title>span i{background:#3d7964;width:4px;height:4px;animation:1.05s steps(2,end) infinite generation-dot}.generation-title>span i:nth-child(2){animation-delay:.18s}.generation-title>span i:nth-child(3){animation-delay:.36s}.generation-progress{background:#dddccf;border:1px solid #82958a;height:15px;margin-top:15px;padding:2px;overflow:hidden}.generation-progress>i{background:#3d7964;width:50%;height:100%;display:block;position:relative;overflow:hidden}.generation-progress>i:after{content:"";background:#70a58d;width:28%;animation:1.2s steps(7,end) infinite generation-scan;position:absolute;inset:0}.generation-state>button{color:#70453d;cursor:pointer;background:#f0e7dc;border:1px solid #8a6258;margin-top:18px;padding:12px;font-size:10px;font-weight:800}.generation-state>button:hover{background:#ead8ca;border-color:#70453d}@keyframes generation-dot{0%,30%{opacity:.25;transform:translateY(1px)}45%,75%{opacity:1;transform:translateY(-1px)}to{opacity:.25;transform:translateY(1px)}}@keyframes generation-scan{0%{transform:translate(-110%)}to{transform:translate(360%)}}.generation-actions{gap:8px;margin-top:18px;display:grid}.generation-actions button{color:#27483f;cursor:pointer;background:#e5e7dd;border:1px solid #72877c;min-height:42px;padding:10px 12px;font:800 12px ui-monospace,SFMono-Regular,Consolas,monospace}.generation-actions button:hover{background:#dce4da;border-color:#3d7964}.generation-actions button.primary{color:#f7f3df;background:#3d7964;border-color:#2d6653}.generation-actions button.primary:hover{background:#326b58}.generation-actions button.quiet{color:#704f47;background:#eee7de;border-color:#9d8980}.final-actions{grid-template-columns:1fr 1fr}.studio-layout .controls-hint{background:#0d2d27dc;border:1px solid #ffffff38;border-radius:0;padding:8px 10px;display:flex}.studio-layout .controls-hint kbd{border-radius:0}.generation-error{z-index:4;color:#ffe2d7;background:#2b1715e6;border:1px solid #e08b75;margin:0;padding:9px 12px;font:700 10px ui-monospace,SFMono-Regular,Consolas,monospace;position:absolute;top:18px;left:18px}.spawn-library{z-index:5;color:#e6eee8;letter-spacing:.02em;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0d2d27dc;border:1px solid #ffffff45;border-radius:0;padding:11px 14px;font:800 12px ui-monospace,SFMono-Regular,Consolas,monospace;position:absolute;bottom:18px;right:18px}.spawn-library:hover{color:#fff;background:#173e37ed;border-color:#8fc2a9}.gpu-ready-backdrop{z-index:120;background:#020b08e8;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.gpu-ready-dialog{color:#173e37;background:#f3eee1;border:1px solid #789083;width:min(470px,100%);padding:27px;box-shadow:8px 8px #071b16,0 24px 80px #0008}.gpu-ready-mark{background:#e4e7db;border:1px solid #7e9186;justify-content:center;align-items:center;gap:4px;width:48px;height:38px;display:flex}.gpu-ready-mark i{background:#3d7964;width:6px;height:6px;animation:1.15s steps(2,end) infinite gpu-dot;display:block}.gpu-ready-mark i:nth-child(2){animation-delay:.18s}.gpu-ready-mark i:nth-child(3){animation-delay:.36s}.gpu-ready-dialog h2{letter-spacing:-.025em;margin:19px 0 9px;font:800 23px ui-monospace,SFMono-Regular,Consolas,monospace}.gpu-ready-dialog p{color:#536b60;margin:0;font-size:16px;line-height:1.55}.gpu-ready-dialog>div{grid-template-columns:1fr 1fr;gap:9px;margin-top:24px;display:grid}.gpu-ready-dialog button{color:#315247;cursor:pointer;background:#e7e7dc;border:1px solid #84978d;min-height:46px;font-size:15px;font-weight:800}.gpu-ready-dialog button:hover{background:#dce5dc;border-color:#315f50}.gpu-ready-dialog button.primary{color:#fff7df;background:#315f50;border-color:#245849;box-shadow:3px 3px #d1a04f}.gpu-ready-dialog button.primary:hover{background:#254f43}.gpu-session-status{z-index:7;color:#e9f1ec;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#0a241fdc;border:1px solid #ffffff3d;align-items:center;gap:10px;max-width:min(570px,100% - 28px);min-height:44px;padding:8px 9px 8px 12px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;display:flex;position:absolute;top:14px;right:14px;box-shadow:4px 4px #020a08aa}.gpu-session-light{background:#d6ac5a;border:1px solid #b8c9bf;flex:none;width:9px;height:9px}.gpu-session-status.ready .gpu-session-light{background:#64c491;border-color:#bde5ce;box-shadow:0 0 10px #64c49188}.gpu-session-status.failed .gpu-session-light{background:#c66756;border-color:#e8b3a7}.gpu-session-status strong{white-space:nowrap;font-size:13px}.gpu-session-status button{color:#173e37;white-space:nowrap;cursor:pointer;background:#dce8df;border:1px solid #81a092;padding:7px 9px;font:800 12px ui-monospace,SFMono-Regular,Consolas,monospace}.gpu-session-status button:hover{background:#f0f5ed;border-color:#b5d3c4}.gpu-session-status button.shutdown{color:#f3dcd5;background:#3b2522;border-color:#9a746b}.gpu-session-status button.shutdown:hover{background:#55302b}.gpu-session-status small{color:#f1b4a8;grid-column:1/-1;font-size:11px}.gpu-loading-dots{gap:3px;display:flex}.gpu-loading-dots i{background:#d6ac5a;width:4px;height:4px;animation:1.15s steps(2,end) infinite gpu-dot}.gpu-loading-dots i:nth-child(2){animation-delay:.18s}.gpu-loading-dots i:nth-child(3){animation-delay:.36s}@keyframes gpu-dot{0%,30%{opacity:.25;transform:translateY(1px)}45%,75%{opacity:1;transform:translateY(-1px)}to{opacity:.25;transform:translateY(1px)}}@media (width<=850px){.app-shell.unified-shell{padding:0}.studio-layout{grid-template-columns:minmax(0,1fr) 290px}.studio-layout .roster{padding-inline:12px}.studio-layout .portrait{flex-basis:58px;width:58px;height:58px}.studio-layout .character-list>button,.create-character{height:72px}}@media (width<=650px){.app-shell.unified-shell{min-height:100svh;padding:0}.studio-layout{grid-template:"game"minmax(0,1fr)"roster"112px/1fr;height:100svh;min-height:0}.studio-layout .game-panel{border:0;grid-area:game;min-height:0}.studio-layout .roster{border:0;border-top:3px solid #e5ad51;grid-area:roster;height:112px;padding:7px;display:block;overflow:hidden}.studio-layout .roster-heading,.performance-toggle{display:none}.architecture-link{padding:12px 13px}.architecture-link strong{font-size:13px}.studio-layout .roster{grid-template-columns:96px minmax(0,1fr);gap:6px;display:grid}.create-dock{border-right:1px solid #c8c9bd;width:96px;min-width:96px;padding-right:5px}.studio-layout .character-list{flex-direction:row;gap:6px;width:100%;height:100%;padding:0 2px 4px;overflow:auto hidden}.create-entry{border:0;min-width:0;margin:0;padding:0}.create-character{flex-direction:column;justify-content:center;gap:3px;height:96px;padding:4px}.create-character>strong{margin:0;font-size:10px}.create-character>b{display:none}.studio-layout .character-list>button{flex-direction:column;flex:0 0 96px;justify-content:center;gap:3px;min-width:96px;height:96px;padding:4px}.studio-layout .character-list>button>strong{text-align:center;max-width:88px;margin:0;font-size:9px}.studio-layout .character-list>button>b{display:none}.studio-layout .portrait{flex-basis:66px;width:66px;height:66px}.studio-layout .controls-hint{display:none}.touch-controls{display:flex;bottom:10px;left:10px;right:10px}.canvas-wrap{min-height:0}.spawn-library{padding:9px 11px;font-size:10px;bottom:78px;right:10px}.gpu-session-status{flex-wrap:wrap;gap:7px;max-width:none;min-height:40px;padding:6px 7px 6px 10px;top:9px;left:9px;right:9px}.gpu-session-status strong{font-size:11px}.gpu-session-status button{padding:6px 7px;font-size:10px}.gpu-ready-dialog{padding:21px}.gpu-ready-dialog h2{font-size:20px}.gpu-ready-dialog p{font-size:14px}.gpu-ready-dialog>div{grid-template-columns:1fr}.gpu-ready-dialog button{font-size:14px}.studio-layout .generation-state{grid-template-rows:auto auto;grid-template-columns:1fr auto;align-content:center;column-gap:12px;height:100%;padding:8px 7px;display:grid}.generation-title{grid-column:1}.generation-title strong{font-size:13px}.generation-progress{grid-column:1;margin-top:7px}.generation-state>button{grid-area:1/2/3;align-self:stretch;margin:0;padding:8px 12px}.studio-layout .generation-actions{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:10px}.studio-layout .final-actions{grid-template-columns:1fr 1fr}.studio-layout.creating{grid-template-rows:auto minmax(390px,1fr);grid-template-areas:"roster""game";height:auto;min-height:100svh;overflow-y:auto}.studio-layout.creating .roster{border-top:0;border-bottom:3px solid #e5ad51;height:auto;min-height:0;padding:10px 12px 14px;display:block;overflow:visible}.studio-layout.creating .create-dock{border:0;width:100%;min-width:0;padding:0}.studio-layout.creating .character-list{height:auto;display:block;overflow:visible}.studio-layout.creating .create-entry{border:1px solid #91a297;width:100%;min-width:0;padding:0 8px 10px}.studio-layout.creating .create-character{flex-direction:row;justify-content:flex-start;height:58px}.studio-layout.creating .create-character>strong{margin-left:10px;font-size:13px}.studio-layout.creating .create-character>b{display:block}.studio-layout.creating .create-portrait{flex-basis:38px;width:38px;height:38px}.studio-layout.creating .character-list>button{display:none}.studio-layout.creating .create-panel .upload-zone{height:130px}.studio-layout.creating .game-panel{min-height:390px}.studio-layout.creating .generation-create{height:auto;padding:0;overflow:visible}.studio-layout.creating .generation-reference-lock{width:100%;padding:0 8px 10px}.studio-layout.creating .generation-create>.generation-state{min-height:112px;padding:9px 7px}}.generation-progress>i{transition:width .75s cubic-bezier(.22,.75,.24,1)}.generation-progress>i:after{will-change:transform;animation-duration:1.4s;animation-timing-function:linear}.reference-guidance{color:#71847a;letter-spacing:.01em;margin:7px 0 13px;font-size:9px;line-height:1.35}.generation-message{color:#687c72;-webkit-text-fill-color:transparent;background:linear-gradient(105deg,#687c72 32%,#b8d2c3 48%,#687c72 64%) 110% 0/260% 100%;-webkit-background-clip:text;background-clip:text;min-height:2.7em;margin:12px 0 1px;font-size:17px;line-height:1.4;animation:3.4s ease-in-out infinite generation-message-shine}@keyframes generation-message-shine{0%,18%{background-position:110% 0}72%,to{background-position:-65% 0}}@media (prefers-reduced-motion:reduce){.generation-message{color:#687c72;-webkit-text-fill-color:currentColor;background:0 0;animation:none}}@media (width<=650px){.studio-layout .generation-state{grid-template-rows:auto auto auto}.studio-layout .generation-title strong{font-size:19px}.studio-layout .generation-message{white-space:nowrap;text-overflow:ellipsis;grid-column:1;max-width:100%;min-height:0;margin:3px 0;font-size:13px;overflow:hidden}.studio-layout .generation-state>button{grid-row:1/4}}.generation-state.server-down .generation-title{color:#8b392f}.generation-state.server-down .generation-message{color:#8b4a3d;-webkit-text-fill-color:currentColor;background:0 0;animation:none}.generation-state.server-down .generation-progress{border-color:#a45c50}.generation-state.server-down .generation-progress>i{background:#a45c50}.generation-state.server-down .generation-progress>i:after{display:none}.screen-drop-target{font-size:15px}.studio-layout .roster-heading span{font-size:12px}.studio-layout .roster-heading h2{font-size:26px}.studio-layout .roster-heading em{font-size:14px}.studio-layout .character-list>button>strong,.create-character>strong{font-size:17px}.create-panel .upload-zone strong{font-size:15px}.create-panel .upload-zone small{font-size:12px}.create-panel .replace{font-size:11px}.name-field{font-size:13px}.name-field small{font-size:11px}.name-field input{font-size:14px}.workflow-options legend{font-size:13px}.workflow-options strong{font-size:14px}.workflow-option-lock span{font-size:13px}.workflow-option-lock strong,.diagonal-option strong{font-size:14px}.diagonal-option small{font-size:12px}.create-panel .generate{font-size:15px}.reference-guidance{font-size:13px}.performance-toggle span{font-size:14px}.performance-toggle small{font-size:12px}.generation-reference-heading{font-size:14px}.generation-state>button{font-size:13px}.generation-title strong{font-size:29px}.generation-message{font-size:19px}.studio-layout .controls-hint kbd{font-size:11px}.studio-layout .controls-hint p{font-size:12px}.generation-error{font-size:13px}@media (width<=650px){.create-character>strong{font-size:13px}.studio-layout .character-list>button>strong{font-size:12px}.studio-layout .generation-title strong{font-size:21px}.studio-layout .generation-message{font-size:15px}}.roster>.gpu-session-status{flex-wrap:wrap;align-items:flex-start;row-gap:7px;width:100%;max-width:none;margin:0 0 18px;position:static}.roster>.gpu-session-status>strong{flex:1 0 calc(100% - 19px)}.roster>.gpu-session-status>.gpu-session-light{margin-top:4px}.gpu-session-status .gpu-eta{color:#d9b976;white-space:nowrap;font-size:12px}@media (width<=650px){.roster>.gpu-session-status{z-index:8;width:auto;margin:0;position:fixed;top:9px;left:9px;right:9px}}.gpu-ready-dialog>div.single{grid-template-columns:1fr}.character-list>button.download-sheet{color:#173e37;cursor:pointer;background:#e7eee6;border:1px solid #8fa094;align-self:flex-start;align-items:center;gap:7px;width:auto;height:auto;min-height:0;margin:-2px 0 4px 57px;padding:7px 11px;font:700 12px ui-monospace,SFMono-Regular,Consolas,monospace;display:inline-flex}.character-list>button.download-sheet:hover{background:#f2f7ef;border-color:#5f8a72}.character-list>button.download-sheet:disabled{opacity:.6;cursor:default}@media (width<=650px){.studio-layout .character-list>button.download-sheet{flex-direction:column;flex:none;justify-content:center;gap:4px;min-width:72px;height:96px;margin:0;font-size:10px}}.generation-actions button>small{opacity:.8;margin-top:2px;font-size:1em;font-weight:400;display:block}.generation-message{text-wrap:pretty}.generation-state .final-name-field{flex-direction:column;gap:5px;margin:16px 0 0;display:flex}.generation-state .final-name-field>span{color:#64756c;justify-content:space-between;align-items:baseline;font-size:12px;font-weight:700;display:flex}.generation-state .final-name-field>span small{color:#9aa39d;font-size:11px;font-weight:600}.generation-state .final-name-field input{color:#173e37;background:#f8f7ed;border:1px solid #9aaa9e;outline:none;width:100%;padding:10px 11px;font-size:15px}.generation-state .final-name-field input:focus{border-color:#5f9c81;box-shadow:0 0 0 3px #69a78920}.generation-state .final-actions{margin-top:12px}.character-list strong.character-id{letter-spacing:.02em;color:#416153;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px}
