:root{--ink: #181916;--muted: #74766f;--line: #d7d8d1;--line-strong: #bfc1b9;--panel: #f7f7f3;--panel-raised: #fff;--stage: #292b2a;--accent: #e6ff2f;--accent-dark: #b8cf00;color:var(--ink);background:#e6e7e2;font-family:Inter,Microsoft YaHei,PingFang SC,system-ui,sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;overflow:hidden;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[role=slider]:focus-visible{outline:2px solid #7290ff;outline-offset:2px}.app-shell{height:100vh;min-height:660px;background:#e6e7e2}.topbar{position:relative;z-index:30;height:60px;padding:0 16px 0 20px;display:grid;grid-template-columns:minmax(250px,1fr) minmax(220px,280px) auto auto auto auto;align-items:center;gap:8px;color:#f5f5ef;background:#171816;border-bottom:1px solid #050505;box-shadow:0 4px 18px #00000024}.brand{min-width:0;display:flex;align-items:center;gap:10px;white-space:nowrap}.brand b{font-size:15px;letter-spacing:.055em}.brand>span:not(.access-badge){overflow:hidden;color:#969990;font-size:10px;text-overflow:ellipsis}.brand .access-badge{flex:0 0 auto;padding:3px 7px;border:1px solid #5a5c56;border-radius:999px;background:transparent;color:#c9cbc3;font-size:8px;letter-spacing:.05em;cursor:pointer}.brand .access-badge:hover{border-color:var(--accent);color:var(--accent)}.brand .access-badge.is-pro{border-color:var(--accent);background:var(--accent);color:#151612;cursor:default}.run-state{display:flex;align-items:center;gap:7px;padding:0 4px;color:#a9aba4;font-size:10px;white-space:nowrap}.run-state i{width:7px;height:7px;border-radius:50%;background:#74766f}.run-state.is-manual i{background:var(--accent);box-shadow:0 0 0 4px #e6ff2f1a}.language-button,.mode-button,.ghost-button,.primary-button{height:34px;padding:0 12px;border:1px solid #41433e;border-radius:6px;background:#252724;color:#f1f2eb;font-size:10px;cursor:pointer;white-space:nowrap}.language-button{min-width:42px;padding:0 9px;color:var(--accent)}.mode-button{color:#d0d1ca}.mode-button:hover,.ghost-button:hover,.language-button:hover{border-color:#656860;background:#2f312e}.primary-button{border-color:var(--accent);background:var(--accent);color:#141510;font-weight:760}.primary-button:hover{background:#eeff68}.primary-button:disabled{cursor:wait;opacity:.72}kbd{margin-left:6px;padding:2px 5px;border:1px solid #555851;border-radius:3px;color:#aeb0aa;font-family:inherit;font-size:8px}.promo-redeem-top{min-width:0;display:grid;grid-template-columns:1fr auto;gap:4px;padding:3px;border:1px solid #3a3c38;border-radius:7px;background:#20221f}.promo-redeem-top input{min-width:0;height:26px;padding:0 8px;border:0;outline:0;background:transparent;color:#f4f5ee;font-size:9px;letter-spacing:.035em;text-transform:uppercase}.promo-redeem-top input::placeholder{color:#73766e;text-transform:none}.promo-redeem-top input:focus-visible{outline:0}.promo-redeem-top:focus-within{border-color:#6f7369;box-shadow:0 0 0 2px #e6ff2f14}.promo-redeem-top button{height:26px;padding:0 10px;border:0;border-radius:4px;background:#3a3d37;color:#e6e8df;font-size:9px;cursor:pointer}.promo-redeem-top button:not(:disabled):hover{background:var(--accent);color:#151612}.promo-redeem-top button:disabled{color:#696c65;cursor:default}.workspace{--controls-width: 308px;position:relative;height:calc(100vh - 60px);min-height:600px;display:grid;grid-template-columns:var(--controls-width) minmax(500px,1fr) 188px}.panel{overflow:auto;background:var(--panel);scrollbar-color:#b9bbb3 transparent;scrollbar-width:thin}.panel::-webkit-scrollbar{width:7px}.panel::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:10px;background:#b9bbb3;background-clip:content-box}.controls-panel{border-right:1px solid var(--line-strong)}.templates-panel{padding-bottom:16px;border-left:1px solid var(--line-strong)}.panel-heading{position:sticky;top:0;z-index:5;height:42px;padding:0 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#f7f7f3f0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.panel-heading span{font-size:11px;font-weight:760}.panel-heading small{color:#969990;font-size:7px;letter-spacing:.12em}.control-section{padding:15px 14px;border-bottom:1px solid var(--line);background:var(--panel)}.control-section h2{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 11px;font-size:11px}.control-section h2 em{overflow:hidden;color:#8a8c85;font-style:normal;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.section-actions{display:flex;align-items:center;gap:5px}.control-hint{margin:3px 0 0;color:var(--muted);font-size:8px;line-height:1.55}.selection-summary{margin:0 0 8px;padding:8px 9px;border:1px solid var(--line);border-radius:6px;background:#eeefeb;color:#666961;font-size:8px;line-height:1.45}.canvas-primary{width:100%;min-height:31px;margin-bottom:7px;border:1px solid #242622;border-radius:6px;background:#242622;color:#f7f8f1;font-size:9px;cursor:pointer}.canvas-primary:hover{background:#343631}.canvas-primary:disabled{border-color:#d0d1ca;background:#ddded8;color:#94978f;cursor:default}.canvas-text-editor{margin-top:11px;padding-top:11px;border-top:1px solid var(--line)}.canvas-text-editor h3{display:flex;justify-content:space-between;margin:0 0 7px;font-size:9px}.canvas-text-editor h3 span,.canvas-copy span,.canvas-number-grid span{color:var(--muted);font-size:8px;font-weight:500}.canvas-copy span,.canvas-number-grid span{display:block;margin-bottom:4px}.canvas-copy textarea{resize:vertical;width:100%;min-height:58px;padding:7px 8px;border:1px solid var(--line-strong);border-radius:6px;background:var(--panel-raised);font-size:9px;line-height:1.4}.canvas-number-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:7px 0}.canvas-number-grid input,.grid-number-grid input,.number-pair input{width:100%;height:29px;padding:0 7px;border:1px solid var(--line-strong);border-radius:5px;background:var(--panel-raised);font-size:9px}.inline-action{min-height:24px;padding:0 7px;border:1px solid var(--line-strong);border-radius:5px;background:var(--panel-raised);color:#555850;font-size:8px;cursor:pointer;white-space:nowrap}.inline-action:hover{border-color:#6e7168;color:var(--ink)}.size-controls select,.control-select{width:100%;height:31px;padding:0 8px;border:1px solid var(--line-strong);border-radius:6px;background:var(--panel-raised);font-size:9px}.control-select{margin-bottom:7px}.grid-number-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:7px 0}.grid-count-grid{grid-template-columns:repeat(2,1fr);margin-bottom:8px}.grid-number-grid span,.number-pair label span{display:block;margin-bottom:4px;color:var(--muted);font-size:8px}.export-section{background:#f0f1ec}.select-row{display:grid;grid-template-columns:78px 1fr;align-items:center;min-height:33px;gap:8px;font-size:9px}.select-row select{min-width:0;height:29px;padding:0 6px;border:1px solid var(--line-strong);border-radius:5px;background:var(--panel-raised);font-size:9px}.number-pair{margin-top:8px;display:grid;grid-template-columns:repeat(2,1fr);align-items:end;gap:6px}.orientation-button{width:100%;height:29px;margin-top:7px;padding:0 8px;border:1px solid var(--line-strong);border-radius:6px;background:#ecede8;color:#555850;font-size:9px;cursor:pointer}.orientation-button:hover{border-color:#70736b;background:var(--panel-raised)}.orientation-button:disabled{color:#9a9d95;border-color:var(--line);cursor:default}.color-section{background:var(--panel)}.style-section{background:#fbfbf8}.type-style-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-bottom:6px}.type-style{min-width:0;height:52px;padding:5px 4px 4px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;border:1px solid var(--line-strong);border-radius:6px;background:var(--panel-raised);color:var(--ink);cursor:pointer}.type-style b{font-size:19px;line-height:1;font-synthesis:none}.type-style span{max-width:100%;overflow:hidden;color:#666961;font-size:7.5px;text-overflow:ellipsis;white-space:nowrap}.type-style:hover{border-color:#6e7168}.type-style.is-active{border-color:#242622;background:#242622;color:var(--accent)}.type-style.is-active span{color:#e4e6de}.color-randomize{border-color:#292b27;background:#292b27;color:var(--accent)}.color-randomize:hover{border-color:#292b27;background:#3a3d36;color:#f0ff75}.range-row{display:grid;grid-template-columns:78px 1fr 60px;align-items:center;min-height:34px;gap:8px;font-size:9px}.range-slider{position:relative;height:24px;cursor:ew-resize;touch-action:none;-webkit-user-select:none;user-select:none}.range-slider:before{content:"";position:absolute;left:0;right:0;top:10px;height:4px;border-radius:999px;background:linear-gradient(to right,#242622 0 var(--range-progress),#d7d9d2 var(--range-progress) 100%)}.range-slider>i{position:absolute;z-index:1;top:5px;left:var(--range-progress);width:14px;height:14px;border:2px solid #f8f8f4;border-radius:50%;background:#242622;box-shadow:0 1px 3px #00000047;transform:translate(-50%)}.range-slider:hover>i,.range-slider:focus-visible>i{background:var(--accent);border-color:#242622}.range-number-wrap{display:flex;align-items:center;justify-content:flex-end;gap:2px}.range-number{width:50px;height:26px;padding:0 5px;border:1px solid var(--line-strong);border-radius:5px;background:var(--panel-raised);font-size:8px;font-variant-numeric:tabular-nums;text-align:right}.range-number-wrap i{color:var(--muted);font-size:8px;font-style:normal}.toggle-row{position:relative;min-height:31px;display:flex;align-items:center;justify-content:space-between;font-size:9px}.toggle-row input{position:absolute;opacity:0}.toggle-row i{position:relative;width:28px;height:16px;border-radius:999px;background:#c2c4bd;transition:background .16s ease}.toggle-row i:after{content:"";position:absolute;left:2px;top:2px;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:transform .16s ease}.toggle-row input:checked+i{background:#242622}.toggle-row input:checked+i:after{transform:translate(12px)}.toggle-row input:focus-visible+i{outline:2px solid #7290ff;outline-offset:2px}.copy-controls label{display:block;margin-top:8px}.copy-controls label span{display:block;margin-bottom:5px;color:var(--muted);font-size:8px}.copy-controls textarea,.copy-controls input{resize:vertical;width:100%;min-height:33px;padding:7px 8px;border:1px solid var(--line-strong);border-radius:6px;background:var(--panel-raised);font-size:9px;line-height:1.4}.copy-controls label:last-child textarea{min-height:58px}.custom-copy-heading{margin-top:14px;padding-top:12px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);font-size:9px}.custom-copy-heading span{color:var(--muted);font-size:8px}.add-custom-copy{width:100%;height:30px;margin-top:8px;border:1px dashed #9b9e95;border-radius:6px;background:#f0f1ec;color:#4f524b;font-size:9px;cursor:pointer}.add-custom-copy:hover{border-color:#292b27;background:#fff;color:#181916}.add-custom-copy:disabled{opacity:.5;cursor:default}.custom-copy-list{display:flex;flex-direction:column;gap:7px;margin-top:8px}.custom-copy-item{padding:7px;border:1px solid var(--line);border-radius:6px;background:#eeefe9}.custom-copy-row{display:grid;grid-template-columns:1fr auto;gap:5px}.custom-copy-row select{min-width:0;height:27px;padding:0 6px;border:1px solid var(--line-strong);border-radius:5px;background:#fff;font-size:8px}.custom-copy-row button{height:27px;padding:0 7px;border:1px solid var(--line-strong);border-radius:5px;background:transparent;color:#666961;font-size:8px;cursor:pointer}.custom-copy-item textarea{min-height:48px;margin-top:6px;background:#fff}.upload-section{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.upload-section h2{width:100%;margin-bottom:2px}.upload-button{padding:7px 9px;border:1px solid var(--line-strong);border-radius:6px;background:var(--panel-raised);font-size:9px;cursor:pointer}.upload-button input{display:none}.upload-button:hover{border-color:#6e7168}.asset-sources{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.asset-sources .upload-button{min-width:0;min-height:31px;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.sample-button{border-color:#242622;background:#242622;color:#f7f8f1}.sample-button:hover{border-color:#242622;background:#343631}.sample-button em{margin-left:3px;color:var(--accent);font-style:normal}.asset-actions{width:100%;display:flex;flex-wrap:wrap;gap:4px 10px}.asset-license{width:100%;margin:0}.text-button{padding:0;border:0;background:transparent;color:#666961;font-size:8px;text-decoration:underline;cursor:pointer}.text-button:disabled,.hint-action:disabled{opacity:.5;cursor:wait}.hint-action{padding:0;border:0;background:transparent;color:var(--ink);font-size:8px;font-weight:700;text-decoration:underline;cursor:pointer}.align-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin:7px 0}.align-grid button{min-height:27px;padding:3px;border:1px solid var(--line-strong);border-radius:5px;background:var(--panel-raised);font-size:8px;cursor:pointer}.align-grid button:hover{border-color:#6e7168}.reset-element{padding:3px 0}.image-options{width:100%;margin-top:4px;padding-top:8px;border-top:1px solid var(--line)}.image-list{width:100%;display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.image-chip{position:relative;aspect-ratio:1;overflow:hidden;border:1px solid var(--line-strong);border-radius:5px;background:#ddd}.image-chip img{width:100%;height:100%;object-fit:cover}.image-chip span{position:absolute;left:3px;bottom:3px;min-width:14px;padding:1px 3px;border-radius:3px;background:#111;color:#fff;font-size:7px;text-align:center}.image-chip-actions{position:absolute;top:2px;right:2px;display:flex;gap:2px}.image-chip-actions button{width:16px;height:16px;padding:0;border:0;border-radius:50%;background:#000000b3;color:#fff;font-size:8px;line-height:16px;cursor:pointer}.image-chip-actions button:disabled{opacity:.3;cursor:default}.multi-image-button{margin-top:7px}.image-swap-button{margin:4px 0 6px}.size-set{margin-top:12px;padding-top:11px;border-top:1px solid var(--line)}.size-set h3{display:flex;align-items:center;gap:6px;margin:0 0 8px;font-size:10px}.pro-tag{padding:1px 5px;border-radius:999px;background:#1d1f1c;color:var(--accent);font-size:7px;letter-spacing:.08em}.size-set-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin-bottom:8px}.size-set-options label{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:6px;align-items:center;padding:5px 7px;border:1px solid var(--line);border-radius:5px;background:var(--panel-raised);font-size:8px;cursor:pointer}.size-set-options label:has(input:checked){border-color:#6e7168}.size-set-options input{grid-row:span 2;margin:0;accent-color:#242622}.size-set-options span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.size-set-options em{color:var(--muted);font-size:7px;font-style:normal}.stage{position:relative;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;overflow:hidden;background-color:var(--stage);background-image:radial-gradient(#434642 1px,transparent 1px);background-size:16px 16px}.stage:after{content:"";pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0;box-shadow:inset 0 0 90px #0003}.share-strip,.stage-meta,.paper-wrap,.stage-toolbar,.dice-bar,.stage-status{z-index:1}.share-strip{width:min(100% - 32px,640px);min-height:34px;display:grid;grid-template-columns:auto minmax(120px,1fr) auto;gap:5px;padding:4px;border:1px solid #50534d;border-radius:7px;background:#1d1f1c;box-shadow:0 8px 18px #0000002e}.share-strip input{min-width:0;height:25px;padding:0 8px;border:1px solid #3f423c;border-radius:4px;outline:0;background:#292b28;color:#e8eae2;font-size:8px}.share-strip input::placeholder{color:#777a72}.share-strip:focus-within{border-color:#6f7369}.share-strip button{height:25px;padding:0 9px;border:1px solid #4d504a;border-radius:4px;background:#292b28;color:#d4d6ce;font-size:8px;cursor:pointer;white-space:nowrap}.share-strip button:hover{border-color:var(--accent);color:var(--accent)}.share-strip .share-apply{border-color:var(--accent);background:var(--accent);color:#151612;font-weight:700}.share-strip .share-apply:disabled{border-color:#3e403b;background:#333530;color:#686b63;cursor:default}.stage-meta{width:min(100% - 40px,max(330px,(100vh - 250px) * var(--ratio)));display:flex;justify-content:space-between;color:#9c9f97;font-size:7px;letter-spacing:.1em}.paper-wrap{position:relative;width:min(100% - 40px,760px,(100vh - 250px) * var(--ratio));aspect-ratio:var(--ratio);filter:drop-shadow(0 22px 42px rgb(0 0 0 / 38%))}.sheet{container-type:inline-size;position:relative;width:100%;height:100%;overflow:hidden;background:var(--paper)}.sheet-rect,.sheet-image,.sheet-image-slot,.sheet-text,.sheet-ellipse,.sheet-image-cell{position:absolute;transform-origin:center;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.sheet-rect:active,.sheet-image:active,.sheet-image-slot:active,.sheet-text:active,.sheet-ellipse:active,.sheet-image-cell:active{cursor:grabbing}.sheet-ellipse{box-sizing:border-box;border-radius:50%}.sheet-ellipse.shape-half{border-radius:50% 50% 0 0/100% 100% 0 0}.sheet-image-cell{overflow:hidden}.sheet-image-cell img{position:absolute;max-width:none;object-fit:cover;pointer-events:none}.sheet .is-selected{z-index:25;outline:2px solid var(--accent);outline-offset:2px}.sheet-image{object-fit:cover;filter:grayscale(15%) contrast(1.06)}.sheet-image-slot{background-image:repeating-linear-gradient(135deg,rgb(255 255 255 / 10%) 0 6px,transparent 6px 12px)}.sheet-text{overflow:visible;font-family:Noto Sans SC,Source Han Sans CN,Microsoft YaHei,PingFang SC,Inter,sans-serif;letter-spacing:-.035em;white-space:pre-line}.role-meta{letter-spacing:.08em;white-space:nowrap}.grid-overlay{pointer-events:none;z-index:20;position:absolute;inset:var(--margin-y) var(--margin-x);color:#4367db;opacity:.24}.grid-axis{position:absolute;top:0;right:0;bottom:0;left:0;display:grid}.grid-columns{grid-template-columns:repeat(var(--columns),minmax(0,1fr));gap:var(--gutter)}.grid-rows{grid-template-rows:repeat(var(--rows),minmax(0,1fr));gap:var(--gutter)}.grid-columns i{border-left:1px solid currentColor;border-right:1px solid currentColor}.grid-rows i{border-top:1px solid currentColor;border-bottom:1px solid currentColor}.grid-overlay.line-single .grid-columns i{border-right:0}.grid-overlay.line-single .grid-rows i{border-bottom:0}.grid-frame{position:absolute;border:1px solid currentColor}.grid-frame.outer{top:0;right:0;bottom:0;left:0}.grid-frame.inner{inset:var(--gutter)}.stage-toolbar{width:min(100% - 32px,640px);min-height:37px;display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:0 6px 0 0;border:1px solid #50534d;border-radius:7px;background:#1d1f1c;color:#aeb1a9;box-shadow:0 8px 18px #0003;font-size:8px}.shuffle-button{align-self:stretch;padding:0 14px;border:0;border-radius:6px 0 0 6px;background:var(--accent);color:#151612;font-size:9px;font-weight:700;cursor:pointer}.reset-template-button,.remix-button{height:27px;padding:0 8px;border:1px solid #555851;border-radius:5px;background:#292b27;color:#e4e6de;font-size:8px;cursor:pointer;white-space:nowrap}.reset-template-button{background:transparent;color:#bfc1ba}.reset-template-button:hover,.remix-button:hover{border-color:var(--accent);color:var(--accent)}.stage-toolbar .remix-button{margin-left:auto}.history-buttons{display:flex;gap:2px}.tool-button{height:27px;min-width:27px;padding:0 8px;border:1px solid #555851;border-radius:5px;background:#292b27;color:#e4e6de;font-size:8px;cursor:pointer;white-space:nowrap}.history-buttons .tool-button{padding:0;font-size:14px;line-height:1}.tool-button:not(:disabled):hover{border-color:var(--accent);color:var(--accent)}.tool-button:disabled{opacity:.35;cursor:default}.tool-button.is-strong{border-color:#767a35;color:var(--accent)}.dice-bar{width:min(100% - 32px,640px);min-height:36px;display:flex;align-items:center;gap:5px;padding:0 10px;border:1px solid #50534d;border-radius:7px;background:#1d1f1c;color:#aeb1a9;box-shadow:0 8px 18px #0003;font-size:8px}.dice-label{margin-right:3px;color:#8d9088;white-space:nowrap}.lock-chip{height:24px;display:inline-flex;align-items:center;gap:4px;padding:0 7px;border:1px solid #4d504a;border-radius:999px;background:transparent;color:#c9cbc3;font-size:8px;cursor:pointer;white-space:nowrap}.lock-chip svg{flex:0 0 auto;opacity:.5}.lock-chip:hover{border-color:#8a8d84;color:#fff}.lock-chip.is-locked{border-color:var(--accent);background:var(--accent);color:#151612}.lock-chip.is-locked svg{opacity:1}.chaos-control{flex:1;min-width:0;margin-left:8px;padding-left:12px;border-left:1px solid #3c3f39}.dice-bar .range-row{grid-template-columns:auto minmax(60px,1fr) 52px;min-height:30px;gap:8px;color:#c9cbc3;font-size:8px;white-space:nowrap}.dice-bar .range-slider:before{background:linear-gradient(to right,#d9dbd3 0 var(--range-progress),#464943 var(--range-progress) 100%)}.dice-bar .range-slider>i{border-color:#1d1f1c;background:#eceee6}.dice-bar .range-slider:hover>i,.dice-bar .range-slider:focus-visible>i{background:var(--accent)}.dice-bar .range-number{width:50px;border-color:#44473f;background:#292b28;color:#e8eae2}.stage-status{width:min(100% - 32px,640px);min-height:14px;margin:0;overflow:hidden;color:#9c9f97;font-size:9px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.variations{position:absolute;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;grid-template-rows:auto minmax(0,1fr);gap:12px;padding:14px 16px 16px;background:#171816f7}.variations-head{display:flex;align-items:center;gap:10px;color:#aeb1a9;font-size:8px}.variations-head b{color:#f5f5ef;font-size:11px;white-space:nowrap}.variations-head span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.variations-head button{height:27px;padding:0 10px;border:1px solid #555851;border-radius:5px;background:#292b27;color:#e4e6de;font-size:8px;cursor:pointer;white-space:nowrap}.variations-head button:hover{border-color:var(--accent);color:var(--accent)}.variations-grid{min-height:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:10px}.variation{min-width:0;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:5px;padding:6px;border:1px solid transparent;border-radius:7px;background:#232522;color:#9c9f97;cursor:pointer}.variation:hover,.variation:focus-visible{border-color:var(--accent);background:#2a2c28;color:#e8eae2}.variation small{overflow:hidden;font-size:7px;letter-spacing:.06em;text-align:left;text-overflow:ellipsis;white-space:nowrap}.variation-frame,.favorite-frame{container-type:size;min-width:0;min-height:0;display:grid;place-items:center}.variation-paper,.favorite-paper{display:block;width:min(100cqw,100cqh * var(--ratio));aspect-ratio:var(--ratio);box-shadow:0 6px 16px #0000004d}.sheet.is-preview{pointer-events:none}.template-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;padding:1px;background:var(--line)}.template-grid button{min-width:0;padding:7px 7px 6px;display:flex;flex-direction:column;align-items:stretch;gap:5px;border:0;background:#fbfbf8;cursor:pointer}.template-thumb{display:block;width:100%;aspect-ratio:var(--ratio);overflow:hidden;box-shadow:0 1px 3px #0000002e}.template-label{overflow:hidden;color:#4d5049;font-size:8px;text-align:left;text-overflow:ellipsis;white-space:nowrap}.template-label b{color:var(--ink);font-size:9px}.template-grid button.active .template-label,.template-grid button.active .template-label b{color:#fff}.template-grid button:hover{position:relative;z-index:1;background:#fff;box-shadow:inset 0 0 0 1px #9a9d95}.template-grid button.active{color:#fff;background:#1d1f1c;box-shadow:inset 3px 0 0 var(--accent)}.favorites-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:10px 12px 12px}.favorite{position:relative;min-width:0}.favorite-open{width:100%;aspect-ratio:1;display:grid;grid-template:minmax(0,1fr) / minmax(0,1fr);padding:7px;border:1px solid var(--line);border-radius:6px;background:#e9eae4;cursor:pointer}.favorite-open:hover{border-color:#6e7168;background:#fff}.favorite-remove{position:absolute;top:3px;right:3px;width:17px;height:17px;padding:0;border:0;border-radius:50%;background:#000000ad;color:#fff;font-size:11px;line-height:17px;cursor:pointer;opacity:0}.favorite:hover .favorite-remove,.favorite-remove:focus-visible{opacity:1}.favorites-empty{margin:0;padding:10px 14px 14px;color:var(--muted);font-size:8px;line-height:1.55}.tip-card{margin:12px;padding:12px;border-radius:7px;background:var(--accent);color:#20211d}.tip-card b{font-size:9px}.tip-card p{margin:7px 0 0;font-size:8px;line-height:1.55}.legend{padding:0 12px;display:flex;flex-direction:column;gap:8px;color:#74776f;font-size:8px}.legend span{display:flex;align-items:center;gap:7px}.legend i{width:8px;height:8px;border-radius:2px;background:#1747d1}.legend i.red{background:#f13824}.legend i.line{background:transparent;border:1px solid #5573d5}@media(max-width:1080px){.topbar{grid-template-columns:minmax(210px,1fr) minmax(180px,230px) auto auto auto auto}.run-state{display:none}}@media(max-width:940px){.topbar{grid-template-columns:1fr minmax(170px,220px) auto auto auto}.brand>span:not(.access-badge),.mode-button{display:none}.workspace{--controls-width: 276px;grid-template-columns:var(--controls-width) 1fr}.templates-panel{display:none}}@media(max-height:700px){.stage-toolbar{min-height:32px}.share-strip{min-height:30px}}.app-shell.is-inspector{min-height:560px}.app-shell.is-inspector .topbar{grid-template-columns:1fr auto auto auto auto;gap:5px;padding:0 8px}.app-shell.is-inspector .brand{gap:5px}.app-shell.is-inspector .brand b{font-size:12px}.app-shell.is-inspector .brand>span:not(.access-badge),.app-shell.is-inspector .run-state,.app-shell.is-inspector .promo-redeem-top{display:none}.app-shell.is-inspector .mode-button,.app-shell.is-inspector .language-button,.app-shell.is-inspector .ghost-button,.app-shell.is-inspector .primary-button{padding:0 8px;font-size:9px}.app-shell.is-inspector kbd{display:none}.app-shell.is-inspector .workspace{grid-template-columns:1fr;min-height:500px}.app-shell.is-inspector .controls-panel{width:100%;border-right:0}.app-shell.is-inspector .stage,.app-shell.is-inspector .templates-panel{display:none}.app-shell.is-inspector .sample-picker{left:0}.poster-only{position:fixed;top:0;right:0;bottom:0;left:0}.poster-only .sheet{width:100%;height:100%}.swatches{display:flex;gap:4px;margin:0 0 8px}.swatches i{flex:1;height:16px;border:1px solid rgb(0 0 0 / 12%);border-radius:4px}.grid-overlay.look-print{mix-blend-mode:normal}.fx-controls{margin:4px 0 6px;padding:8px 8px 4px;border:1px solid var(--line);border-radius:6px;background:#f4f4f0}.photo-poster-button{width:100%;min-height:44px;margin:6px 0 4px;padding:6px 9px;display:flex;align-items:center;gap:9px;border:1px solid #242622;border-radius:7px;background:#242622;color:#f7f8f1;text-align:left;cursor:pointer}.photo-poster-button:hover{background:#343631}.photo-poster-button:disabled{opacity:.6;cursor:wait}.photo-poster-button.is-active{border-color:#242622;background:var(--accent);color:#151612}.photo-poster-button i{flex:0 0 auto;width:30px;height:30px;border-radius:4px;background:linear-gradient(160deg,#6d8fb3 0,#6d8fb3 45%,#2f3b4a 45%,#2f3b4a);box-shadow:inset 0 0 0 1px #fff3;background-image:linear-gradient(rgb(255 255 255 / 55%) 1px,transparent 1px),linear-gradient(90deg,rgb(255 255 255 / 55%) 1px,transparent 1px),linear-gradient(160deg,#6d8fb3 0,#6d8fb3 45%,#2f3b4a 45%,#2f3b4a);background-size:10px 10px,10px 10px,auto}.photo-poster-button span{min-width:0;display:flex;flex-direction:column;gap:2px}.photo-poster-button b{font-size:10px}.photo-poster-button small{overflow:hidden;color:#b9bcb2;font-size:7.5px;text-overflow:ellipsis;white-space:nowrap}.photo-poster-button.is-active small{color:#3d4220}.style-subhead{display:flex;align-items:baseline;justify-content:space-between;margin:9px 0 5px;font-size:9px}.style-subhead span{color:var(--muted);font-size:8px}.block-style-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.block-style{min-width:0;height:44px;padding:5px 3px 4px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;border:1px solid var(--line-strong);border-radius:6px;background:var(--panel-raised);color:#555850;cursor:pointer}.block-style span{max-width:100%;overflow:hidden;font-size:7.5px;text-overflow:ellipsis;white-space:nowrap}.block-style:hover{border-color:#6e7168;color:var(--ink)}.block-style.is-active{border-color:#242622;background:#242622;color:var(--accent)}.block-style.is-active span{color:#e4e6de}.block-icon{position:relative;width:22px;height:16px;border-radius:2px;--icon: #e2582f}.block-style.is-active .block-icon{--icon: var(--accent)}.block-icon-solid{background:var(--icon)}.block-icon-tint{background:var(--icon);opacity:.45}.block-icon-multiply{background:linear-gradient(90deg,var(--icon) 0 60%,transparent 60%)}.block-icon-multiply:after{content:"";position:absolute;top:4px;right:0;bottom:0;left:8px;background:#1747d1;mix-blend-mode:multiply;opacity:.85}.block-icon-outline{border:1.5px solid var(--icon)}.block-icon-pattern{background-image:radial-gradient(var(--icon) 1.3px,transparent 1.5px);background-size:4.5px 4.5px}.block-icon-grid{background:linear-gradient(90deg,var(--icon) 0 46%,transparent 46% 54%,transparent 54%),linear-gradient(var(--icon) 0 0);background-size:100% 46%,46% 46%;background-position:0 0,100% 100%;background-repeat:no-repeat;box-shadow:inset 0 0 0 1px currentColor}.block-icon-mix{background:linear-gradient(135deg,var(--icon) 0 50%,transparent 50%);box-shadow:inset 0 0 0 1.5px var(--icon)}.segmented{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;padding:2px;border:1px solid var(--line-strong);border-radius:6px;background:var(--panel-raised);margin-bottom:4px}.segmented button{height:24px;border:0;border-radius:4px;background:transparent;color:#555850;font-size:8px;cursor:pointer}.segmented button:hover{color:var(--ink)}.segmented button.is-active{background:#242622;color:var(--accent)}.swap-images-button{display:inline-flex;align-items:center;gap:5px}.sheet-pattern svg{display:block;width:100%;height:100%;overflow:hidden}.fx-kinds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin:4px 0 6px}.fx-kinds button{height:24px;border:1px solid var(--line-strong);border-radius:5px;background:var(--panel-raised);color:#555850;font-size:8px;cursor:pointer}.fx-kinds button.is-active{border-color:#242622;background:#242622;color:var(--accent)}.format-chips{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.format-chips button{min-width:0;height:46px;padding:5px 3px 4px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;border:1px solid var(--line-strong);border-radius:6px;background:var(--panel-raised);color:#555850;cursor:pointer}.format-chips i{display:block;height:20px;max-width:30px;border:1.5px solid currentColor;border-radius:2px}.format-chips span{max-width:100%;overflow:hidden;font-size:7.5px;text-overflow:ellipsis;white-space:nowrap}.format-chips button:hover{border-color:#6e7168;color:var(--ink)}.format-chips button.is-active{border-color:#242622;background:#242622;color:var(--accent)}.sample-picker{position:absolute;inset:0 0 0 var(--controls-width);z-index:45;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:10px;padding:14px 16px 12px;background:#171816;color:#aeb1a9;font-size:8px}.sample-head,.sample-foot{min-width:0;display:flex;align-items:center;gap:8px}.sample-head b{color:#f5f5ef;font-size:11px;white-space:nowrap}.sample-license{flex:0 0 auto;padding:3px 8px;border:1px solid var(--accent);border-radius:999px;color:var(--accent);font-size:7.5px;font-style:normal;font-weight:600;white-space:nowrap}.sample-head span,.sample-foot span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sample-head button,.sample-foot button{height:27px;padding:0 10px;border:1px solid #555851;border-radius:5px;background:#292b27;color:#e4e6de;font-size:8px;cursor:pointer;white-space:nowrap}.sample-head button:not(:disabled):hover,.sample-foot button:not(:disabled):hover{border-color:var(--accent);color:var(--accent)}.sample-head button:disabled{opacity:.4;cursor:default}.sample-filters{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.sample-group{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px}.sample-kind{margin:0 1px 0 7px;color:#7d8078;font-size:7px;letter-spacing:.1em;text-transform:uppercase}.sample-chip{height:24px;padding:0 8px;border:1px solid #4d504a;border-radius:999px;background:transparent;color:#c9cbc3;font-size:8px;cursor:pointer;white-space:nowrap}.sample-chip em{margin-left:4px;color:#7d8078;font-style:normal;font-variant-numeric:tabular-nums}.sample-chip:not(:disabled):hover{border-color:#8a8d84;color:#fff}.sample-chip.is-active{border-color:var(--accent);background:var(--accent);color:#151612}.sample-chip.is-active em{color:#4b5226}.sample-chip:disabled{opacity:.3;cursor:default}.sample-orientation{margin-left:auto;display:inline-flex;gap:2px;padding:2px;border:1px solid #4d504a;border-radius:6px}.sample-orientation button{height:20px;padding:0 8px;border:0;border-radius:4px;background:transparent;color:#c9cbc3;font-size:8px;cursor:pointer}.sample-orientation button.is-active{background:#3a3d37;color:var(--accent)}.sample-grid{min-height:0;overflow:auto;display:flex;flex-wrap:wrap;align-content:flex-start;gap:8px;padding:2px;scrollbar-color:#555851 transparent;scrollbar-width:thin}.sample-grid:after{content:"";flex-grow:999}.sample-thumb{position:relative;height:118px;min-width:0;padding:0;overflow:hidden;border:0;border-radius:6px;cursor:pointer}.sample-thumb img{display:block;width:100%;height:100%;object-fit:cover}.sample-thumb small{position:absolute;left:0;right:0;bottom:0;padding:16px 7px 6px;overflow:hidden;background:linear-gradient(transparent,#000000a8);color:#f2f3ec;font-size:8px;text-align:left;text-overflow:ellipsis;white-space:nowrap;opacity:0;transition:opacity .12s ease}.sample-thumb:hover small,.sample-thumb:focus-visible small,.sample-thumb[aria-pressed=true] small,.sample-thumb.is-added small{opacity:1}.sample-thumb:not(:disabled):hover{box-shadow:0 0 0 2px #8a8d84}.sample-thumb[aria-pressed=true],.sample-thumb[aria-pressed=true]:hover{box-shadow:0 0 0 2px var(--accent)}.sample-thumb i{position:absolute;top:6px;right:6px;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:var(--accent);color:#151612;font-size:9px;font-style:normal;font-weight:760;line-height:19px;text-align:center}.sample-thumb.is-added{cursor:default}.sample-thumb.is-added:after{content:attr(data-added);position:absolute;top:6px;left:6px;padding:2px 6px;border-radius:999px;background:#141513c7;color:#f2f3ec;font-size:7.5px}.sample-thumb.is-added img{opacity:.55}.sample-thumb:disabled:not(.is-added){opacity:.4;cursor:not-allowed}.sample-foot{padding-top:10px;border-top:1px solid #3a3c38}.sample-foot .sample-add{border-color:var(--accent);background:var(--accent);color:#151612;font-weight:700}.sample-foot .sample-add:not(:disabled):hover{background:#eeff68;color:#151612}.sample-foot .sample-add:disabled{border-color:#3e403b;background:#333530;color:#686b63;cursor:default}.app-shell.is-web .access-badge,.app-shell.is-web .promo-redeem-top,.app-shell.is-web .mode-button,.app-shell.is-web .canvas-selection{display:none}.app-shell.is-web .topbar{grid-template-columns:minmax(0,1fr) auto auto auto}@media(max-width:760px){body:has(.app-shell.is-web){overflow:auto}.app-shell.is-web{height:auto;min-height:0}.app-shell.is-web .topbar{position:sticky;top:0;height:auto;min-height:52px;padding:8px 10px;gap:6px}.app-shell.is-web .brand>span:not(.access-badge){display:none}.app-shell.is-web .workspace{height:auto;min-height:0;display:flex;flex-direction:column}.app-shell.is-web .stage{order:-1;padding:14px 0 18px;overflow:visible}.app-shell.is-web .stage-meta{width:calc(100% - 32px)}.app-shell.is-web .dice-bar{flex-wrap:wrap;row-gap:4px;padding:6px 10px}.app-shell.is-web .chaos-control{flex:1 1 100%;margin-left:0;padding:4px 0 0;border-left:0;border-top:1px solid #3c3f39}.app-shell.is-web .panel{overflow:visible;border:0;border-top:1px solid var(--line-strong)}.app-shell.is-web .templates-panel{display:block}.app-shell.is-web .panel-heading{position:static}}@media(max-width:420px){.app-shell.is-web .language-button{display:none}}
