:root{color:#20211f;font-synthesis:none;text-rendering:optimizelegibility;--ink:#20211f;--muted:#77746c;--line:#dcd8ce;--paper:#faf8f2;--white:#fffefa;--accent:#ea5574;--lime:#cde95a;background:#f3f0e8;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}body{background:#f3f0e8;min-width:320px;margin:0}.app-loader{min-height:100vh;color:var(--muted);place-content:center;justify-items:center;gap:14px;font-size:13px;display:grid}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.login-shell{background:radial-gradient(circle at 12% 12%,#cde95a7a,#0000 30%),linear-gradient(145deg,#eeece4 0%,#f7f4eb 55%,#e9e5da 100%);grid-template-columns:minmax(0,1.15fr) minmax(400px,.85fr);min-height:100vh;display:grid;position:relative;overflow:hidden}.grain{pointer-events:none;opacity:.11;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E");position:absolute;inset:0}.login-brand,.login-card{z-index:1;position:relative}.login-brand{border-right:1px solid #20211f1f;flex-direction:column;justify-content:center;padding:9vw;display:flex}.brand-mark{color:#fdfdf8;background:var(--ink);border-radius:11px;place-items:center;width:38px;height:38px;display:grid;transform:rotate(-3deg)}.brand-mark.large{border-radius:16px;width:54px;height:54px;margin-bottom:48px}.eyebrow{letter-spacing:.19em;text-transform:uppercase;color:#858178;margin:0;font-size:10px;font-weight:800}.login-brand h1{letter-spacing:-.055em;max-width:790px;margin:24px 0 28px;font:500 clamp(46px,6.4vw,92px)/.98 Georgia,Times New Roman,serif}.login-lede{color:#66625a;max-width:570px;font-size:clamp(15px,1.4vw,19px);line-height:1.7}.login-model{letter-spacing:.11em;border:1px solid #cbc7bc;border-radius:999px;align-items:center;gap:9px;width:fit-content;margin-top:48px;padding:11px 15px;font-size:11px;font-weight:800;display:flex}.login-model span{color:var(--accent)}.login-card{place-items:center;padding:40px;display:grid}.login-card-inner{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffefadb;border:1px solid #20211f1f;border-radius:26px;width:min(440px,100%);padding:42px;box-shadow:0 30px 90px #2c2a251f}.login-card h2{letter-spacing:-.025em;margin:14px 0 10px;font:500 34px/1.1 Georgia,serif}.login-card p{color:#6e6a62;line-height:1.65}.login-card strong{color:var(--ink)}.field-label{margin:28px 0 8px;font-size:12px;font-weight:750;display:block}.text-input{width:100%;color:var(--ink);background:#fff;border:1px solid #d7d3c9;border-radius:12px;outline:none;padding:14px 15px}.text-input:focus{border-color:#6e6b63;box-shadow:0 0 0 3px #20211f14}.success-icon{background:var(--lime);border-radius:50%;place-items:center;width:52px;height:52px;margin-bottom:28px;display:grid}.privacy-note{text-align:center;font-size:10px;margin:18px 0 0!important}.text-button{color:#68655e;cursor:pointer;background:0 0;border:0;width:100%;padding:12px;font-size:12px}.primary-button,.secondary-button,.generate-button{border:1px solid var(--ink);cursor:pointer;border-radius:11px;justify-content:center;align-items:center;gap:9px;font-weight:750;text-decoration:none;display:inline-flex}.primary-button{background:var(--ink);color:#fff;padding:11px 16px}.secondary-button{color:var(--ink);background:#fff;padding:11px 16px}.primary-button:hover,.generate-button:hover{background:#050605}.secondary-button:hover{background:#f3f1eb}.primary-button.full,.secondary-button.full{width:100%;min-height:49px;margin-top:18px}button:disabled{cursor:not-allowed;opacity:.45}.app-shell{background:#f3f0e8;min-height:100vh}.topbar{z-index:30;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#faf8f2ed;justify-content:space-between;align-items:center;height:70px;padding:0 22px;display:flex;position:sticky;top:0}.brand-lockup{align-items:center;gap:12px;display:flex}.brand-lockup>div:last-child{flex-direction:column;gap:2px;display:flex}.brand-lockup strong{letter-spacing:.1em;font-size:13px}.brand-lockup span{color:#858178;letter-spacing:.2em;font-size:8px}.topbar-actions{align-items:center;gap:10px;display:flex}.model-chip,.balance-chip,.account-menu{border:1px solid var(--line);background:#fffefa;border-radius:12px;align-items:center;height:42px;display:flex}.model-chip{gap:8px;padding:0 14px;font-size:11px;font-weight:700}.status-dot{background:#78af4b;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #e6f0db}.balance-chip{cursor:pointer;gap:9px;padding:0 12px}.balance-chip>span{flex-direction:column;align-items:flex-start;min-width:64px;display:flex}.balance-chip strong{font-size:12px}.balance-chip small{color:var(--muted);font-size:8px}.account-menu{color:var(--muted);padding-left:12px;font-size:10px}.account-menu button{border:0;border-left:1px solid var(--line);cursor:pointer;background:0 0;height:100%;margin-left:10px;padding:0 11px}.workspace{grid-template-columns:330px minmax(450px,1fr) 250px;min-height:calc(100vh - 70px);display:grid}.control-panel,.history-panel{background:var(--paper)}.control-panel{border-right:1px solid var(--line);padding:26px 22px;overflow-y:auto}.history-panel{border-left:1px solid var(--line);padding:26px 16px;overflow:hidden}.panel-heading{align-items:flex-start;gap:12px;margin-bottom:18px;display:flex}.panel-heading>span,.section-label>span{color:#9b978e;font:italic 500 11px Georgia,serif}.panel-heading p{color:#8b877e;letter-spacing:.15em;text-transform:uppercase;margin:0 0 4px;font-size:9px;font-weight:800}.panel-heading h2,.history-heading h2{margin:0;font:500 22px Georgia,serif}.mode-switch{grid-template-columns:1fr 1fr;gap:8px;display:grid}.mode-switch button{border:1px solid var(--line);cursor:pointer;text-align:left;background:#f8f6ef;border-radius:12px;align-items:flex-start;gap:8px;min-height:80px;padding:13px 11px;display:flex}.mode-switch button.active{color:#fff;background:var(--ink);border-color:var(--ink);box-shadow:0 7px 18px #20211f29}.mode-switch button>span{flex-direction:column;gap:4px;font-size:11px;font-weight:750;display:flex}.mode-switch small{color:#908d84;font-size:9px;font-weight:450;line-height:1.3}.mode-switch .active small{color:#bcbdb9}.control-section,.mask-tools{padding-top:25px}.section-label{align-items:center;gap:9px;margin-bottom:9px;display:flex}.section-label label{font-size:11px;font-weight:750}.prompt-box{position:relative}.prompt-box textarea{resize:vertical;background:#fff;border:1px solid #d5d1c7;border-radius:13px;outline:none;width:100%;min-height:132px;padding:14px 14px 30px;font-size:12px;line-height:1.65}.prompt-box textarea:focus{border-color:#77736b;box-shadow:0 0 0 3px #20211f0e}.prompt-box>span{color:#aaa69d;font-size:8px;position:absolute;bottom:9px;right:10px}.idea-row{gap:5px;margin-top:8px;display:flex;overflow:hidden}.idea-row button{color:#7f7b73;cursor:pointer;background:0 0;border:1px solid #dedad1;border-radius:999px;flex:none;padding:6px 8px;font-size:8px}.idea-row button:hover{color:var(--ink);border-color:#aaa69d}.tool-row{grid-template-columns:1fr 1fr 38px 38px;gap:6px;display:grid}.tool-row button{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:9px;justify-content:center;align-items:center;gap:6px;height:36px;font-size:10px;display:flex}.tool-row button.active{color:#af3850;background:#f8dfe5;border-color:#eaa1b0}.range-row{color:var(--muted);grid-template-columns:auto 1fr 40px;align-items:center;gap:9px;margin-top:14px;font-size:9px;display:grid}.range-row input{width:100%;accent-color:var(--accent)}.range-row output{text-align:right}.mask-hint{color:#918d84;align-items:center;gap:7px;margin:10px 0 0;font-size:9px;line-height:1.4;display:flex}.mask-hint span{background:var(--accent);border-radius:50%;width:8px;height:8px}.advanced-controls{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:22px}.advanced-controls summary{cursor:pointer;justify-content:space-between;align-items:center;height:45px;font-size:10px;font-weight:750;list-style:none;display:flex}.advanced-controls summary::-webkit-details-marker{display:none}.advanced-controls[open] summary svg{transform:rotate(180deg)}.select-grid{grid-template-columns:1fr 1fr;gap:9px;padding-bottom:14px;display:grid}.select-grid label{color:#817d74;flex-direction:column;gap:5px;font-size:9px;display:flex}.select-grid label:last-child{grid-column:1/-1}.select-grid select{border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;padding:9px;font-size:10px}.toggle-list{gap:8px;padding:0 0 14px;display:grid}.setting-toggle{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;align-items:center;gap:10px;min-height:48px;padding:9px 10px;display:flex;position:relative}.setting-toggle>span{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.setting-toggle strong{color:var(--ink);font-size:10px}.setting-toggle small{color:#918d84;font-size:8px;line-height:1.35}.setting-toggle input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.setting-toggle i{background:#d5d1c8;border-radius:999px;flex:none;width:32px;height:18px;transition:background .18s;position:relative}.setting-toggle i:after{content:"";background:#fff;border-radius:50%;width:12px;height:12px;transition:transform .18s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0003}.setting-toggle input:checked+i{background:var(--ink)}.setting-toggle input:checked+i:after{transform:translate(14px)}.setting-toggle input:focus-visible+i{outline:2px solid var(--accent);outline-offset:2px}.inline-error{color:#9c3434;background:#fff0f0;border:1px solid #f0c9c9;border-radius:9px;margin-top:12px;padding:10px 12px;font-size:10px;line-height:1.5}.inline-error.closable{justify-content:space-between;gap:8px;display:flex}.inline-error button{cursor:pointer;color:inherit;background:0 0;border:0}.generate-button{color:#fff;background:var(--ink);width:100%;min-height:52px;margin-top:18px;padding:0 16px}.generate-button svg:last-child{margin-left:auto}.cost-note{text-align:center;color:#9b978e;margin:9px 0 0;font-size:8px}.canvas-panel{background:#e9e6de;flex-direction:column;min-width:0;display:flex}.canvas-toolbar{background:#f4f1e9c7;border-bottom:1px solid #d2cec5;flex:none;justify-content:space-between;align-items:center;height:70px;padding:0 22px;display:flex}.canvas-toolbar>div:first-child{flex-direction:column;gap:4px;display:flex}.canvas-toolbar strong{font-size:10px}.canvas-actions{align-items:center;gap:9px;display:flex}.compare-switch{background:#dcd8cf;border-radius:9px;padding:3px;display:flex}.compare-switch button{color:#77736b;cursor:pointer;background:0 0;border:0;border-radius:7px;padding:6px 10px;font-size:9px}.compare-switch button.active{color:var(--ink);background:#fff;box-shadow:0 2px 7px #00000012}.icon-button{cursor:pointer;background:#f8f6f0;border:1px solid #cfcbc2;border-radius:9px;align-items:center;gap:7px;height:34px;font-size:9px;display:flex}.canvas-area{background-image:radial-gradient(#bbb7ae 1px,#0000 1px);background-size:22px 22px;flex:1;place-items:center;min-height:430px;padding:28px;display:grid;position:relative;overflow:hidden}.canvas-area.is-empty{padding:48px}.canvas-loading{color:#8e8a81;flex-direction:column;align-items:center;gap:10px;font-size:10px;display:flex}.empty-canvas{cursor:pointer;background:#faf8f2b8;border:1px dashed #bdb8ae;border-radius:22px;flex-direction:column;justify-content:center;align-items:center;gap:9px;width:min(560px,100%);min-height:330px;display:flex}.empty-canvas:hover{background:#fffefaeb;border-color:#918d84}.empty-canvas strong{margin-top:10px;font:500 24px Georgia,serif}.empty-canvas span{color:#7c786f;font-size:11px}.empty-canvas small{color:#a29e95;font-size:9px}.upload-orbit{background:var(--lime);border:1px solid #c8c4bb;border-radius:50%;place-items:center;width:64px;height:64px;display:grid;box-shadow:0 0 0 11px #cde95a3d;color:var(--ink)!important}.image-stage-frame,.result-stage{max-width:100%;line-height:0;display:inline-block;position:relative;box-shadow:0 22px 60px #22211d30}.source-image,.result-stage img{object-fit:contain;-webkit-user-select:none;user-select:none;max-width:100%;max-height:calc(100vh - 245px);display:block}.mask-canvas{pointer-events:none;touch-action:none;width:100%;height:100%;position:absolute;inset:0}.mask-canvas.is-active{pointer-events:auto;cursor:none}.brush-cursor{z-index:3;pointer-events:none;border:1.5px solid #ffffffe6;border-radius:50%;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #eb4366cc}.brush-cursor.is-eraser{border-style:dashed;box-shadow:0 0 0 1px #20211fd9}.result-badge{color:var(--ink);background:var(--lime);border-radius:999px;align-items:center;gap:6px;padding:9px 11px;font-size:9px;font-weight:800;line-height:1;display:flex;position:absolute;bottom:12px;right:12px;box-shadow:0 4px 14px #00000026}.generation-overlay{z-index:5;color:#fff;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#181917b8;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.generation-overlay strong{margin-top:17px;font:500 23px Georgia,serif}.generation-overlay span{color:#cacbc6;margin-top:7px;font-size:10px}.generation-pulse{width:62px;height:62px;color:var(--ink);background:var(--lime);border-radius:50%;place-items:center;animation:1.8s ease-in-out infinite pulse;display:grid}@keyframes pulse{50%{transform:scale(1.09);box-shadow:0 0 0 16px #cde95a1a}}.result-actions{background:#faf8f2;border-top:1px solid #d1cdc4;align-items:center;gap:9px;min-height:76px;padding:12px 18px;display:flex}.result-actions>div:first-child{align-items:center;gap:9px;margin-right:auto;display:flex}.save-check{background:var(--lime);border-radius:50%;place-items:center;width:31px;height:31px;display:grid}.result-actions p{flex-direction:column;gap:3px;margin:0;display:flex}.result-actions strong{font-size:10px}.result-actions small{color:var(--muted);font-size:8px}.history-heading{justify-content:space-between;align-items:flex-end;display:flex}.history-heading .eyebrow{margin-bottom:5px}.history-heading>span{color:#8b877e;font:italic 11px Georgia,serif}.history-note{color:#918d84;align-items:center;gap:6px;margin:13px 0 18px;font-size:9px;display:flex}.history-list{scrollbar-width:thin;height:calc(100vh - 185px);padding-right:3px;overflow-y:auto}.history-card{border:1px solid var(--line);background:#fff;border-radius:12px;margin-bottom:13px;transition:border .2s,transform .2s;overflow:hidden}.history-card:hover{border-color:#b7b2a8;transform:translateY(-1px)}.history-card.selected{border-color:#373835;box-shadow:0 0 0 1px #373835}.history-preview{aspect-ratio:4/3;cursor:pointer;background:#dedbd3;border:0;width:100%;padding:0;display:block;position:relative;overflow:hidden}.history-preview img{object-fit:cover;width:100%;height:100%;display:block}.history-preview>span{color:#fff;background:#141513b8;border-radius:5px;padding:4px 6px;font-size:7px;position:absolute;top:7px;right:7px}.history-meta{padding:9px}.history-meta p{white-space:nowrap;text-overflow:ellipsis;margin:0 0 8px;font-size:9px;font-weight:650;overflow:hidden}.history-meta>div{align-items:center;gap:5px;display:flex}.history-meta span{color:#99958c;margin-right:auto;font-size:7px}.history-meta button,.history-meta a{color:#6d6961;cursor:pointer;background:0 0;border:1px solid #e0ddd5;border-radius:7px;place-items:center;width:25px;height:25px;display:grid}.history-empty{color:#aaa69d;text-align:center;border:1px dashed #d1cdc4;border-radius:12px;place-content:center;justify-items:center;height:200px;display:grid}.history-empty p{max-width:120px;font-size:9px;line-height:1.5}.drop-overlay{z-index:100;color:#fff;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#191a18db;border:2px dashed #ffffffa6;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:fixed;inset:12px}@media (width<=1180px){.workspace{grid-template-columns:310px minmax(420px,1fr)}.history-panel{border-left:0;border-top:1px solid var(--line);grid-column:1/-1}.history-list{grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px;height:auto;display:grid;overflow-x:auto}.history-card{margin:0}.history-empty{grid-column:1/-1}}@media (width<=760px){.login-shell{grid-template-columns:1fr}.login-brand{border-bottom:1px solid #20211f1f;border-right:0;min-height:56vh;padding:50px 28px}.login-card{padding:26px 18px 50px}.login-card-inner{padding:30px 24px}.model-chip,.account-menu>span{display:none}.account-menu{padding-left:0}.account-menu button{border-left:0;margin:0}.workspace{flex-direction:column;display:flex}.control-panel{border-right:0;border-bottom:1px solid var(--line)}.canvas-area{min-height:390px;padding:16px}.canvas-toolbar{height:auto;min-height:66px;padding:10px 14px}.icon-button{justify-content:center;width:34px;padding:0;font-size:0}.result-actions{flex-wrap:wrap}.result-actions>div:first-child{width:100%}.result-actions .primary-button,.result-actions .secondary-button{flex:1;font-size:10px}.history-list{grid-template-columns:repeat(2,minmax(130px,1fr))}.topbar{padding:0 12px}.brand-lockup span{display:none}}.mark-row{grid-template-columns:1fr 1fr}.mark-crosshair{z-index:3;pointer-events:none;background:linear-gradient(var(--mark-color),var(--mark-color)) center/100% 1.5px no-repeat, linear-gradient(var(--mark-color),var(--mark-color)) center/1.5px 100% no-repeat;filter:drop-shadow(0 0 1px #000000bf);width:15px;height:15px;position:absolute;transform:translate(-50%,-50%)}.region-chips{flex-wrap:wrap;gap:5px;margin-top:9px;display:flex}.region-chips button{color:#106b3d;cursor:pointer;background:#edfff5;border:1px solid #6fe0a2;border-radius:7px;padding:4px 8px;font-size:10px;font-weight:700}.mask-hint code{color:#106b3d;background:#edfff5;border:1px solid #c6f0d8;border-radius:4px;padding:0 3px}.mark-colors{gap:6px;margin-top:9px;display:flex}.mark-colors button,.mark-color-custom{cursor:pointer;border:1px solid #00000029;border-radius:8px;justify-content:center;align-items:center;width:30px;height:30px;padding:0;display:flex}.mark-colors button.active{box-shadow:0 0 0 2px var(--ink,#20221f)}.mark-color-custom{position:relative;overflow:hidden}.mark-color-custom input{opacity:0;cursor:pointer;position:absolute;inset:0}
