:root{--background:oklch(14.5% .007 35);--surface:oklch(18% .008 35);--surface-raised:oklch(22.4% .009 35);--surface-hover:oklch(26% .01 35);--workspace:oklch(12% .006 35);--border:oklch(31% .009 35/.7);--border-strong:oklch(40% .011 35/.85);--text:oklch(93% .008 70);--text-muted:oklch(70% .01 55);--text-subtle:oklch(55% .01 55);--accent:oklch(69% .16 35);--accent-hover:oklch(74% .15 35);--accent-soft:oklch(79% .11 35);--ink:oklch(16% .018 35);--accent-muted:oklch(30% .05 35/.5);--accent-border:oklch(57% .12 35/.5);--danger:oklch(66% .2 28);--danger-soft:oklch(80% .1 28);--danger-muted:oklch(28% .06 25/.7);--danger-border:oklch(55% .16 28/.55);--focus:oklch(78% .15 38);background:var(--background);color:var(--text);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Avenir Next,Avenir,Segoe UI,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html{background:var(--background)}body{min-width:320px;margin:0}body:has(dialog[open]){overflow:hidden}::selection{background:var(--accent);color:var(--accent-ink)}#root{min-height:100dvh}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--focus);outline-offset:4px}button:disabled{cursor:wait;opacity:.55}.public-shell,.dashboard-shell{min-height:100dvh}.topbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;max-width:1600px;height:68px;margin:0 auto;padding:0 clamp(1.25rem,4vw,4rem);display:flex}.brand{color:var(--text);letter-spacing:-.045em;align-items:center;gap:.7rem;font-size:1.05rem;font-weight:700;text-decoration:none;display:inline-flex}.brand-mark{background:var(--accent);border-radius:6px;width:18px;height:18px;display:inline-block;position:relative;transform:rotate(45deg)}.brand-mark:before,.brand-mark span{border:1.5px solid var(--ink);content:"";width:5px;height:5px;position:absolute}.brand-mark:before{top:3px;left:3px}.brand-mark span{bottom:3px;right:3px}.topbar-actions,.welcome-actions,.account-area{align-items:center;display:flex}.topbar-actions{gap:.55rem}.primary-button,.secondary-button,.text-button,.text-action,.danger-button,.menu-action,.icon-button{cursor:pointer;border:0;justify-content:center;align-items:center;transition:background-color .18s,border-color .18s,color .18s,transform .18s;display:inline-flex}.primary-button:active,.secondary-button:active,.text-button:active,.text-action:active,.danger-button:active,.menu-action:active,.icon-button:active{transform:translateY(1px)scale(.985)}.primary-button{background:var(--accent);color:var(--ink);border-radius:7px;gap:.55rem;min-height:45px;padding:.7rem 1rem;font-size:.9rem;font-weight:700}.primary-button:hover{background:var(--accent-hover)}.primary-button.compact{min-height:38px;padding:.48rem .8rem}.secondary-button{border:1px solid var(--border-strong);color:var(--text);background:0 0;border-radius:7px;gap:.5rem;min-height:45px;padding:.68rem .95rem;font-weight:650}.secondary-button:hover{background:var(--surface-hover);border-color:var(--text-subtle)}.text-button,.text-action{color:var(--text-muted);background:0 0;min-height:40px;padding:.5rem .6rem;font-size:.88rem;font-weight:600}.text-button:hover,.text-action:hover{color:var(--text)}.text-action{color:var(--text);text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:5px;padding-inline:0;text-decoration-thickness:1px}.icon-button{color:var(--text-muted);background:0 0;border-radius:7px;width:38px;height:38px;padding:0}.icon-button:hover{background:var(--surface-hover);color:var(--text)}.danger-button{background:var(--danger);color:var(--ink);border:0;border-radius:6px;min-height:34px;padding:.45rem .7rem;font-size:.8rem;font-weight:700}.menu-action{color:var(--text);background:0 0;border:0;border-radius:5px;justify-content:flex-start;align-items:center;gap:.6rem;width:100%;min-height:38px;padding:.5rem .6rem;font-size:.84rem}.menu-action:hover{background:var(--surface-hover)}.public-main{grid-template-columns:minmax(0,.82fr) minmax(20rem,.72fr);align-items:center;gap:clamp(2rem,7vw,8rem);max-width:1400px;min-height:calc(100dvh - 68px);margin:0 auto;padding:clamp(3rem,8vh,6.5rem) clamp(1.25rem,5vw,4rem) clamp(4rem,8vh,7rem);display:grid}.welcome-copy{max-width:39rem}.section-label{color:var(--accent-soft);letter-spacing:.05em;margin:0 0 1.5rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.68rem;font-weight:650}.welcome-copy h1,.library-heading h1{color:var(--text);letter-spacing:-.065em;text-wrap:balance;margin:0}.welcome-copy h1{max-width:8.7ch;font-size:clamp(3.1rem,5.5vw,5.9rem);font-weight:650;line-height:.94}.welcome-text{color:var(--text-muted);max-width:35rem;margin:1.7rem 0 2rem;font-size:clamp(1rem,1.25vw,1.15rem);line-height:1.62}.welcome-actions{flex-wrap:wrap;gap:1.15rem}.studio-feature{width:100%;max-width:455px;margin-left:auto;position:relative}.studio-image-wrap{background:var(--surface-raised);clip-path:polygon(8% 0,100% 0,92% 100%,0 100%);padding:1px;overflow:hidden}.studio-image-wrap img{filter:saturate(.82)contrast(1.06);object-fit:cover;object-position:center;width:100%;height:min(63vh,680px);display:block}.studio-note{background:var(--surface);border-left:2px solid var(--accent);align-items:flex-start;gap:.7rem;max-width:255px;padding:1rem 1.1rem;display:flex;position:absolute;bottom:2.25rem;left:-3.5rem}.studio-note svg{color:var(--accent-soft);flex:none;margin-top:.1rem}.studio-note p{color:var(--text-muted);margin:0;font-size:.82rem;line-height:1.48}.auth-dialog{background:var(--surface);border:1px solid var(--border-strong);color:var(--text);border-radius:12px;width:460px;max-width:calc(100vw - 2rem);max-height:calc(100dvh - 2rem);margin:auto;padding:0;overflow:auto;box-shadow:0 24px 90px oklch(4% .01 30/.65)}.auth-dialog::backdrop{background:oklch(8% .008 35/.84)}.dialog-topline{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1rem 1.1rem 1rem 1.25rem;display:flex}.auth-heading{align-items:flex-start;gap:.95rem;padding:1.65rem 1.5rem 1.3rem;display:flex}.auth-symbol{background:var(--accent-muted);border:1px solid var(--accent-border);color:var(--accent-soft);border-radius:7px;flex:none;justify-content:center;align-items:center;width:42px;height:42px;display:inline-flex}.auth-heading h2{letter-spacing:-.045em;margin:0;font-size:1.45rem}.auth-heading p{color:var(--text-muted);margin:.35rem 0 0;line-height:1.5}.auth-tabs{background:var(--workspace);border-radius:7px;grid-template-columns:1fr 1fr;gap:3px;margin:0 1.5rem 1.35rem;padding:3px;display:grid}.auth-tabs button{color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:5px;min-height:38px;font-weight:650}.auth-tabs button.is-active{background:var(--surface-raised);color:var(--text)}.auth-form{gap:1rem;padding:0 1.5rem;display:grid}.auth-form label{gap:.45rem;display:grid}.auth-form label>span{color:var(--text);font-size:.88rem;font-weight:650}.auth-form input{background:var(--workspace);border:1px solid var(--border-strong);color:var(--text);border-radius:7px;width:100%;min-height:46px;padding:.75rem .85rem;transition:border-color .16s,background-color .16s}.auth-form input::placeholder{color:var(--text-subtle)}.auth-form input:hover{border-color:var(--text-subtle)}.auth-form input:focus{background:var(--surface-raised);border-color:var(--accent)}.auth-form input[aria-invalid=true]{border-color:var(--danger)}.field-error,.form-error{color:var(--danger-soft)}.field-error{font-size:.78rem}.form-error{background:var(--danger-muted);border:1px solid var(--danger-border);border-radius:7px;margin:0;padding:.75rem .85rem;line-height:1.45}.auth-submit{width:100%;margin-top:.25rem}.auth-footnote{color:var(--text-subtle);text-align:center;margin:1.15rem 1.5rem 1.5rem;font-size:.75rem;line-height:1.45}.dashboard-topbar{grid-template-columns:1fr auto 1fr;display:grid}.dashboard-topbar nav{align-self:stretch;display:flex}.nav-link{color:var(--text-muted);border-bottom:2px solid #0000;align-items:center;padding:0 .5rem;font-size:.88rem;font-weight:650;text-decoration:none;display:inline-flex}.nav-link.is-current{border-color:var(--accent);color:var(--text)}.account-area{justify-self:end}.account-menu{position:relative}.account-menu summary{color:var(--text-subtle);cursor:pointer;align-items:center;gap:.35rem;list-style:none;display:flex}.account-menu summary::-webkit-details-marker{display:none}.account-menu summary:focus-visible{outline:2px solid var(--focus);outline-offset:4px;border-radius:7px}.account-menu[open] summary>svg{transform:rotate(180deg)}.account-menu summary>svg{transition:transform .16s}.account-popover{background:var(--surface-raised);border:1px solid var(--border-strong);z-index:10;width:min(19rem,100vw - 2rem);padding:.5rem;position:absolute;top:calc(100% + .75rem);right:0;box-shadow:0 18px 45px oklch(4% .01 30/.42)}.account-identity{border-bottom:1px solid var(--border);align-items:center;gap:.65rem;margin-bottom:.5rem;padding:.55rem .5rem .9rem;display:flex}.account-identity>div{gap:.18rem;min-width:0;display:grid}.account-identity strong{font-size:.86rem}.account-identity span:not(.avatar){color:var(--text-subtle);text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;overflow:hidden}.logout-confirmation{gap:.7rem;padding:.35rem .5rem .25rem;display:grid}.logout-confirmation p{color:var(--text-muted);margin:0;font-size:.8rem;line-height:1.4}.logout-confirmation>div{justify-content:flex-end;align-items:center;gap:.45rem;display:flex}.logout-confirmation .text-button{min-height:34px;padding:.4rem .55rem}.avatar{background:var(--accent-muted);border:1px solid var(--accent-border);color:var(--accent-soft);border-radius:7px;justify-content:center;align-items:center;width:34px;height:34px;font-size:.82rem;font-weight:800;display:inline-flex}.account-copy{line-height:1.25;display:grid}.account-copy strong{font-size:.82rem}.account-copy span{color:var(--text-subtle);font-size:.72rem}.dashboard-main{max-width:1240px;margin:0 auto;padding:clamp(3rem,7vw,6rem) clamp(1.25rem,4vw,3rem) 6rem}.library-heading{justify-content:space-between;align-items:flex-end;gap:2rem;display:flex}.library-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.6rem;display:flex}.library-heading h1{font-size:clamp(2.5rem,5vw,4.8rem);font-weight:650}.library-heading>div>p:last-child{color:var(--text-muted);margin:.8rem 0 0;font-size:1.04rem}.project-section{margin-top:clamp(3.5rem,7vw,6.5rem)}.project-section-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;padding-bottom:1rem;display:flex}.project-section-heading h2{margin:0;font-size:1.15rem}.project-section-heading span{color:var(--text-subtle);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.75rem}.empty-library{text-align:center;flex-direction:column;align-items:center;min-height:330px;padding:4.5rem 1.5rem;display:flex}.empty-icon{border:1px solid var(--border-strong);color:var(--accent-soft);border-radius:7px;justify-content:center;align-items:center;width:54px;height:54px;display:inline-flex}.empty-library h3{letter-spacing:-.035em;margin:1.2rem 0 .5rem;font-size:1.25rem}.empty-library p{color:var(--text-muted);max-width:31rem;margin:0 0 1.4rem;line-height:1.55}.empty-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;display:flex}.project-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));grid-auto-rows:1fr;gap:1.25rem;padding-top:1.5rem;display:grid}.project-card{min-width:0;position:relative}.project-card-main{color:var(--text);cursor:pointer;text-align:left;background:0 0;border:0;gap:.7rem;width:100%;height:100%;padding:0;text-decoration:none;display:grid}.project-card-preview{aspect-ratio:4/3;background:var(--surface-raised);border:1px solid var(--border-strong);justify-content:center;align-items:center;transition:border-color .18s,transform .18s;display:flex;overflow:hidden}.project-card-preview:after{content:"";background:oklch(100% 0 0/.95);position:absolute;inset:11%}.project-card-preview{position:relative}.project-card-preview img{object-fit:cover;z-index:1;width:100%;height:100%;position:relative}.project-card:hover .project-card-preview{border-color:var(--accent);transform:translateY(-2px)}.project-card-copy{gap:.25rem;min-height:2.7rem;padding-right:2rem;display:grid}.project-card-copy strong{letter-spacing:-.02em;font-size:.9rem}.project-card-copy small{color:var(--text-subtle);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.7rem}.project-card-menu{z-index:4;position:absolute;top:calc(75% + .45rem);right:0}.project-card-menu summary{background:var(--surface);border:1px solid var(--border-strong);color:var(--text-subtle);cursor:pointer;border-radius:5px;justify-content:center;align-items:center;width:32px;height:32px;list-style:none;transition:background-color .16s,color .16s,border-color .16s;display:inline-flex}.project-card-menu summary::-webkit-details-marker{display:none}.project-card-menu summary:hover,.project-card-menu[open] summary{background:var(--surface-raised);color:var(--text)}.project-card-menu>div{background:var(--surface-raised);border:1px solid var(--border-strong);min-width:170px;padding:.3rem;display:grid;position:absolute;top:calc(100% + .35rem);right:0;box-shadow:0 16px 40px oklch(4% .01 35/.5)}.project-card-menu button{color:var(--text-muted);cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:0;align-items:center;gap:.55rem;padding:.62rem;font-size:.74rem;display:flex}.project-card-menu button:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.project-card-menu button.is-danger:hover{background:var(--danger-muted);color:var(--danger-soft)}.project-card-menu button:disabled{cursor:not-allowed;opacity:.42}.rename-dialog-backdrop{z-index:50;background:oklch(6% .006 35/.78);justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.rename-dialog{background:var(--surface);border:1px solid var(--border-strong);border-radius:12px;width:min(420px,100%);padding:1.6rem;position:relative;box-shadow:0 24px 80px oklch(4% .01 35/.62)}.rename-dialog h2{margin:.45rem 0 1.25rem;font-size:1.3rem}.rename-dialog>label{gap:.45rem;display:grid}.rename-dialog>label span{color:var(--text-muted);font-size:.72rem}.rename-dialog input{background:var(--workspace);border:1px solid var(--border-strong);color:var(--text);border-radius:6px;min-height:42px;padding:.65rem .75rem}.rename-dialog>div{justify-content:flex-end;gap:.65rem;margin-top:1.4rem;display:flex}.rename-dialog-close{position:absolute;top:.75rem;right:.75rem}.delete-project-dialog{background:var(--surface);border:1px solid var(--border-strong);color:var(--text);border-radius:12px;width:min(420px,100%);max-width:calc(100vw - 2rem);margin:auto;padding:2rem;position:relative;box-shadow:0 24px 90px oklch(4% .01 30/.65)}.delete-project-dialog::backdrop{background:oklch(8% .008 35/.84)}.delete-dialog-close{position:absolute;top:.9rem;right:.9rem}.delete-dialog-icon{background:var(--danger-muted);border:1px solid var(--danger-border);color:var(--danger-soft);border-radius:7px;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.delete-project-dialog h2{letter-spacing:-.04em;margin:1.25rem 0 .55rem;font-size:1.35rem}.delete-project-dialog p{color:var(--text-muted);margin:0;line-height:1.55}.delete-project-dialog p strong{color:var(--text)}.delete-dialog-actions{justify-content:flex-end;align-items:center;gap:.7rem;margin-top:1.6rem;display:flex}.project-dialog{background:var(--surface);border:1px solid var(--border-strong);color:var(--text);border-radius:12px;width:min(680px,100%);max-width:calc(100vw - 2rem);max-height:calc(100dvh - 2rem);margin:auto;padding:0;overflow:auto;box-shadow:0 24px 90px oklch(4% .01 30/.65)}.project-dialog::backdrop{background:oklch(8% .008 35/.84)}.project-dialog-body{padding:2rem}.dialog-heading h2{letter-spacing:-.045em;margin:0;font-size:1.65rem}.dialog-heading>p:last-child{color:var(--text-muted);max-width:36rem;margin:.55rem 0 0;line-height:1.55}.project-tabs{background:var(--workspace);grid-template-columns:1fr 1fr;gap:3px;margin:1.6rem 0;padding:3px;display:grid}.project-tabs button{color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:5px;min-height:38px;font-size:.84rem;font-weight:650}.project-tabs button.is-active{background:var(--surface-raised);color:var(--text)}.project-form{gap:1.35rem;display:grid}.format-fieldset{border:0;margin:0;padding:0}.format-fieldset legend,.project-name-field>span{color:var(--text);padding:0;font-size:.86rem;font-weight:650}.format-picker{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin-top:.7rem;display:grid}.format-picker label{background:var(--workspace);border:1px solid var(--border);cursor:pointer;align-items:center;gap:.75rem;min-height:96px;padding:.8rem;transition:background-color .16s,border-color .16s;display:flex}.format-picker label:hover,.format-picker label.is-selected{background:var(--surface-raised);border-color:var(--accent)}.format-picker input{opacity:0;position:absolute}.format-picker label>span:last-child{gap:.12rem;display:grid}.format-picker strong{font-size:.86rem}.format-picker small,.format-picker em{color:var(--text-subtle);font-size:.72rem;font-style:normal}.format-picker em{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.format-shape{border:1px solid var(--text-muted);flex:none;width:42px;height:42px;display:inline-flex}.format-shape.square{aspect-ratio:1;width:38px;height:38px}.format-shape.portrait{width:35px;height:44px}.format-shape.story{width:28px;height:48px}.format-shape.landscape{width:48px;height:28px}.format-shape.custom{justify-content:center;align-items:center}.dimension-inputs{align-items:end;gap:.55rem;margin-top:.85rem;display:flex}.dimension-inputs label{gap:.35rem;display:grid}.dimension-inputs label span,.dimension-inputs>small{color:var(--text-subtle);font-size:.72rem}.dimension-inputs input,.project-name-field input{background:var(--workspace);border:1px solid var(--border-strong);color:var(--text);border-radius:7px;min-height:42px;padding:.6rem .7rem}.dimension-inputs input{width:8rem}.project-name-field{gap:.45rem;display:grid}.project-name-field small{color:var(--text-subtle);font-size:.72rem}.drop-zone{border:1px dashed var(--border-strong);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.55rem;min-height:270px;padding:1.5rem;display:flex}.drop-zone:hover{border-color:var(--accent)}.drop-zone.is-loading{background:var(--surface-raised);border-color:var(--accent-border);cursor:wait}.drop-zone>input{display:none}.drop-zone>strong{font-size:.96rem}.drop-zone>span{color:var(--text-subtle);font-size:.78rem}.drop-zone-icon{background:var(--accent-muted);color:var(--accent-soft);justify-content:center;align-items:center;width:46px;height:46px;display:inline-flex}.operation-loader{white-space:nowrap;justify-content:center;align-items:center;gap:.45rem;display:inline-flex}.operation-loader>svg{flex:none;animation:.8s linear infinite editor-spin}.drop-zone>.operation-loader{color:var(--text);font-size:.9rem;font-weight:650}.import-preview{text-align:left;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:1rem;width:100%;display:grid}.import-preview img{object-fit:cover;width:72px;height:72px}.import-preview div{gap:.3rem;min-width:0;display:grid}.import-preview strong{text-overflow:ellipsis;white-space:nowrap;font-size:.84rem;overflow:hidden}.import-preview span{color:var(--text-subtle);font-size:.74rem}.project-dialog-actions{justify-content:flex-end;align-items:center;gap:.8rem;display:flex}.editor-shell{background:var(--workspace);height:100dvh;overflow:hidden}.editor-topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:20;grid-template-columns:1fr auto 1fr;align-items:center;height:62px;min-height:62px;padding:0 1rem;display:grid;position:relative}.editor-back{color:var(--text-muted);cursor:pointer;background:0 0;border:0;justify-self:start;align-items:center;gap:.45rem;padding:.5rem;font-size:.84rem;display:inline-flex}.editor-back:hover{color:var(--text)}.editor-project-name{text-align:center;gap:.1rem;display:grid}.editor-project-name span{color:var(--text-subtle);font-size:.65rem}.editor-project-name strong{text-overflow:ellipsis;white-space:nowrap;max-width:28ch;font-size:.86rem;font-weight:650;overflow:hidden}.editor-actions{justify-self:end;position:relative}.editor-actions-trigger{min-height:36px}.editor-actions-menu{background:var(--surface-raised);border:1px solid var(--border-strong);z-index:10;gap:.25rem;min-width:246px;padding:.35rem;display:grid;position:absolute;top:calc(100% + .5rem);right:0;box-shadow:0 14px 32px oklch(4% .01 30/.36)}.editor-actions-menu button{color:var(--text-muted);cursor:pointer;text-align:left;background:0 0;border:0;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.75rem;width:100%;padding:.7rem;display:grid}.editor-actions-menu button:hover:not(:disabled),.editor-actions-menu button:focus-visible{background:var(--surface-hover);color:var(--text);outline:none}.editor-actions-menu button:disabled{cursor:wait;opacity:.65}.editor-actions-menu button>span{gap:.15rem;display:grid}.editor-actions-menu strong{font-size:.78rem;font-weight:650}.editor-actions-menu small{color:var(--text-subtle);font-size:.68rem}.editor-action-spinner{animation:.8s linear infinite editor-spin}.editor-menu-separator{background:var(--border);height:1px;margin:.2rem 0}.editor-quit-action:hover:not(:disabled),.editor-quit-action:focus-visible{color:var(--danger-soft)}@keyframes editor-spin{to{transform:rotate(360deg)}}.unsaved-changes-dialog{background:var(--surface);border:1px solid var(--border-strong);color:var(--text);border-radius:12px;width:min(470px,100%);max-width:calc(100vw - 2rem);margin:auto;padding:2rem;position:relative;box-shadow:0 24px 90px oklch(4% .01 30/.65)}.unsaved-changes-dialog::backdrop{background:oklch(8% .008 35/.84)}.unsaved-dialog-close{position:absolute;top:.9rem;right:.9rem}.unsaved-dialog-icon{background:var(--accent-muted);border:1px solid var(--accent-border);color:var(--accent-soft);justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.unsaved-changes-dialog h2{letter-spacing:-.04em;margin:1.25rem 0 .55rem;font-size:1.35rem}.unsaved-changes-dialog p{color:var(--text-muted);margin:0;line-height:1.55}.unsaved-changes-dialog p strong{color:var(--text)}.unsaved-dialog-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.7rem;margin-top:1.6rem;display:flex}.editor-layout{grid-template-columns:82px minmax(0,1fr);height:calc(100dvh - 62px);min-height:0;display:grid}.editor-layout.has-panel{grid-template-columns:82px 276px minmax(0,1fr)}.editor-tools{background:var(--surface);border-right:1px solid var(--border);grid-template-rows:repeat(7,minmax(0,1fr));gap:.35rem;min-height:0;padding:.75rem .45rem;display:grid;overflow:hidden}.editor-tools button{color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:.35rem;min-height:0;padding:.35rem;font-size:.65rem;display:flex}.editor-tools button:hover{background:var(--surface-hover);color:var(--text)}.editor-tools button.is-active{background:var(--accent-muted);color:var(--accent-soft)}.editor-color-tool{color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:.35rem;min-height:0;padding:.35rem;font-size:.65rem;display:flex;position:relative}.editor-color-tool:hover{background:var(--surface-hover);color:var(--text)}.editor-color-tool input{cursor:pointer;opacity:0;width:100%;height:18px;position:absolute}.editor-file-input{display:none}.editor-stage{background:oklch(25.5% .008 35);justify-content:center;align-items:center;min-width:0;min-height:0;padding:clamp(.75rem,2vw,2rem);display:flex;overflow:hidden}.canvas-viewport{overscroll-behavior:contain;touch-action:pan-x pan-y;background:oklch(25.5% .008 35);width:100%;height:100%;overflow:auto}.canvas-space{place-items:center;width:max-content;min-width:100%;min-height:100%;padding:clamp(1rem,3vw,3rem);display:grid}.canvas-wrap{flex:none;justify-content:center;align-items:center;min-width:0;max-width:none;display:flex}.canvas-viewport.is-pan-mode{cursor:grab;touch-action:none}.canvas-viewport.is-panning{cursor:grabbing;-webkit-user-select:none;user-select:none}.canvas-viewport.is-pan-mode .canvas-wrap{pointer-events:none}.editor-canvas{max-width:min(68vw,820px);height:min(100dvh - 180px,720px);max-height:calc(100dvh - 180px);display:flex;position:relative;overflow:hidden;box-shadow:0 18px 55px oklch(4% .01 30/.35)}.editor-canvas.has-background{background:oklch(100% 0 0)}.editor-canvas.no-background{background:0 0}.editor-canvas img{object-fit:contain;width:100%;height:100%}.canvas-empty{color:oklch(70% .008 35);align-self:flex-end;margin:1rem;font-size:.7rem}.editor-fabric-canvas,.editor-fabric-canvas .canvas-container,.editor-fabric-canvas canvas{width:100%!important;height:100%!important}.editor-fabric-canvas{overflow:hidden;box-shadow:0 18px 55px oklch(4% .01 30/.35)}.zoom-control{background:var(--surface-raised);border:1px solid var(--border-strong);z-index:3;align-items:center;gap:.3rem;padding:.35rem;display:flex;position:absolute;bottom:1.25rem;left:1.25rem}.editor-stage{position:relative}.zoom-control label{align-items:center;gap:.45rem;display:flex}.zoom-control span{color:var(--text-muted);text-align:right;min-width:34px;font-size:.7rem}.zoom-control input{accent-color:var(--accent);width:108px}.zoom-control button{color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex}.zoom-control button:hover,.zoom-control button.is-active{background:var(--accent-muted);color:var(--accent-soft)}.editor-fabric-canvas .canvas-container{display:block}.editor-inspector{background:var(--surface);border-right:1px solid var(--border);min-width:0;min-height:0;padding:1rem;overflow-y:auto}.editor-inspector.is-layers{flex-direction:column;display:flex}.editor-inspector.is-layers .layer-list{flex:1;min-height:0;max-height:none}.inspector-heading{align-items:center;gap:.55rem;display:flex}.inspector-heading .icon-button{margin-left:auto}.inspector-heading svg{color:var(--accent-soft)}.inspector-heading h2{letter-spacing:-.02em;margin:0;font-size:.95rem}.inspector-heading>span{color:var(--text-subtle);margin-left:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.68rem}.layer-list{border-bottom:1px solid var(--border);max-height:min(30dvh,270px);margin:.9rem -.35rem 0;padding:0 .35rem .9rem;overflow:auto}.layer-row{color:var(--text-muted);text-align:left;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:.25rem;width:100%;min-width:0;min-height:42px;margin-top:.35rem;padding:.2rem;display:flex}.layer-row:hover{background:var(--surface-hover);color:var(--text)}.layer-row.is-selected{background:var(--accent-muted);border-color:var(--accent-border);color:var(--text)}.layer-select{color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:.55rem;min-width:0;padding:.3rem;display:flex}.layer-select>svg{color:var(--text-muted);flex:none}.layer-row.is-selected .layer-select>svg{color:var(--accent-soft)}.layer-select>span{gap:.1rem;min-width:0;display:grid}.layer-select strong{text-overflow:ellipsis;white-space:nowrap;font-size:.73rem;font-weight:600;overflow:hidden}.layer-select small{color:var(--text-subtle);font-size:.66rem}.layer-row-actions{flex:none;align-items:center;gap:.1rem;display:flex}.layer-row-actions button{color:var(--text-subtle);cursor:pointer;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;width:24px;height:28px;display:inline-flex}.layer-row-actions button:hover:not(:disabled){background:var(--surface-raised);color:var(--text)}.layer-row-actions button:disabled{opacity:.25}.layer-delete{color:var(--text-subtle);cursor:pointer;background:0 0;border:0;border-radius:4px;flex:none;justify-content:center;align-items:center;width:26px;height:28px;display:inline-flex}.layer-delete:hover{background:var(--danger-muted);color:var(--danger-soft)}.layer-row[draggable=true]{cursor:grab}.layer-row[draggable=true]:active{cursor:grabbing}.background-swatch{border:1px solid var(--border-strong);background:oklch(100% 0 0);width:15px;height:15px;display:inline-block}.inspector-section{padding-top:1rem}.layers-heading{align-items:center;gap:.45rem;display:flex}.layers-heading h3{margin:0;font-size:.75rem}.layers-heading span{color:var(--text-subtle);font-size:.7rem}.inspector-delete{color:var(--text-subtle);cursor:pointer;background:0 0;border:0;border-radius:5px;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.inspector-delete:hover{background:var(--danger-muted);color:var(--danger-soft)}.layer-order-actions button,.filter-actions button{background:var(--workspace);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;font:inherit;justify-content:center;align-items:center;gap:.35rem;min-height:34px;padding:.4rem .55rem;font-size:.72rem;display:inline-flex}.layer-order-actions button:hover,.filter-actions button:hover{border-color:var(--accent);color:var(--text)}.inspector-fields{gap:.75rem;margin-top:.9rem;display:grid}.inspector-fields label,.inspector-field{gap:.35rem;display:grid}.inspector-fields label>span,.inspector-field>span{color:var(--text-subtle);font-size:.68rem}.inspector-fields select,.inspector-fields input[type=number]{background:var(--workspace);border:1px solid var(--border-strong);color:var(--text);border-radius:5px;width:100%;min-height:36px;padding:.35rem .45rem}.color-field{justify-content:space-between;align-items:center;display:flex!important}.color-field input{cursor:pointer;background:0 0;border:0;width:42px;height:30px;padding:0}.document-details{gap:.9rem;margin:1rem 0 0;display:grid}.document-details div{gap:.25rem;display:grid}.document-details dt{color:var(--text-subtle);font-size:.68rem}.document-details dd{align-items:center;gap:.45rem;margin:0;font-size:.78rem;display:flex}.inspector-hint{color:var(--text-subtle);margin:.85rem 0;font-size:.72rem;line-height:1.45}.filter-actions{gap:.45rem;display:grid}.text-preset-grid{grid-template-columns:1fr 1fr;gap:.45rem;margin-top:1rem;display:grid}.text-preset-grid button{background:var(--workspace);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;text-align:left;align-items:stretch;gap:.45rem;padding:.55rem;display:grid}.text-preset-grid button:hover{border-color:var(--accent);color:var(--text)}.text-preset-grid strong{font-size:.68rem;font-weight:600}.text-preset-sample{color:oklch(18% .008 35);background:oklch(90% .008 70);justify-content:center;align-items:center;height:44px;font-family:Arial,sans-serif;display:flex}.text-preset-sample.is-title{font-size:1.15rem;font-weight:800}.text-preset-sample.is-subtitle{color:var(--accent);font-family:Georgia,serif;font-style:italic}.text-preset-sample.is-outline{color:#fff;letter-spacing:.04em;text-shadow:-1px -1px #201d1b,1px -1px #201d1b,-1px 1px #201d1b,1px 1px #201d1b;font-family:Impact,sans-serif}.text-properties{border-top:1px solid var(--border);margin-top:1rem;padding-top:1rem}.text-properties input[type=range],.filter-intensity input{accent-color:var(--accent);width:100%}.filter-panel{margin-top:.9rem}.filter-card-grid{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.filter-card-grid button{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;text-align:left;background:0 0;gap:.4rem;padding:.35rem;display:grid}.filter-card-grid button:hover,.filter-card-grid button.is-active{background:var(--accent-muted);border-color:var(--accent-border);color:var(--text)}.filter-card-grid strong{padding:0 .2rem .15rem;font-size:.68rem}.filter-preview{background:oklch(30% .01 35);width:100%;height:62px;display:block;overflow:hidden}.filter-preview img{object-fit:cover;width:100%;height:100%}.filter-preview-placeholder{background:linear-gradient(135deg,oklch(74% .13 35),oklch(34% .04 35) 52%,oklch(82% .06 80));width:100%;height:100%;display:block}.filter-intensity{border-top:1px solid var(--border);gap:.6rem;margin-top:1rem;padding-top:1rem;display:grid}.filter-intensity>span{color:var(--text-muted);justify-content:space-between;align-items:center;font-size:.7rem;display:flex}.filter-intensity output{color:var(--accent-soft);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.adjustment-panel{gap:.95rem;margin-top:.9rem;display:grid}.adjustment-control{gap:.45rem;display:grid}.adjustment-control>span{color:var(--text-muted);justify-content:space-between;align-items:center;font-size:.7rem;display:flex}.adjustment-control output{color:var(--accent-soft);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.adjustment-control input{accent-color:var(--accent);width:100%}.reset-adjustments{background:var(--workspace);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;min-height:36px;padding:.5rem .65rem;font-size:.72rem}.reset-adjustments:hover{border-color:var(--accent);color:var(--text)}.shape-actions{border-bottom:1px solid var(--border);gap:.55rem;margin:.85rem -.35rem 0;padding:0 .35rem .85rem;display:grid}.shape-actions>span{color:var(--text-subtle);font-size:.68rem}.shape-actions>div,.style-actions,.field-pair{flex-wrap:wrap;gap:.4rem;display:flex}.shape-actions button,.style-actions button,.crop-button{background:var(--workspace);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;min-height:32px;padding:.35rem .45rem;font-size:.7rem}.shape-actions button:hover,.style-actions button:hover,.style-actions button.is-active,.crop-button:hover{border-color:var(--accent);color:var(--text)}.style-actions button{min-width:32px;font-size:.8rem;font-weight:700}.field-pair>label{flex:1;min-width:0}.crop-button{align-items:center;gap:.4rem;margin-top:.9rem;display:inline-flex}.image-crop-actions{margin-top:.7rem}.image-crop-actions>div{flex-wrap:wrap;gap:.4rem;margin-top:.4rem;display:flex}.image-crop-actions button{background:var(--workspace);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;align-items:center;gap:.35rem;min-height:34px;padding:.4rem .55rem;font-size:.7rem;display:inline-flex}.image-crop-actions button:hover{border-color:var(--accent);color:var(--text)}.format-list{gap:.5rem;margin-top:1rem;display:grid}.format-list button{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;text-align:left;background:0 0;align-items:center;gap:.7rem;padding:.65rem;display:flex}.format-list button:hover,.format-list button.is-active{background:var(--accent-muted);border-color:var(--accent-border);color:var(--text)}.format-list button>span:last-child{gap:.15rem;display:grid}.format-list small{color:var(--text-subtle);font-size:.68rem}.loading-screen{flex-direction:column;justify-content:center;align-items:center;gap:1.4rem;min-height:100dvh;display:flex}.not-found{flex-direction:column;justify-content:center;align-items:flex-start;gap:1rem;width:min(560px,100%);min-height:100dvh;margin:0 auto;padding:2rem;display:flex}.not-found h1{letter-spacing:-.06em;margin:0 0 1rem;font-size:clamp(2.2rem,8vw,4.5rem);line-height:.95}.loading-line{background:var(--border);width:120px;height:2px;position:relative;overflow:hidden}.loading-line:after{background:var(--accent);content:"";animation:1.1s ease-in-out infinite loading;position:absolute;inset:0;transform:translate(-100%)}@keyframes loading{to{transform:translate(100%)}}@media (width<=900px){.public-main{grid-template-columns:1fr}.welcome-copy{max-width:42rem}.studio-feature{max-width:min(470px,85vw);margin-left:8vw}.editor-layout.has-panel{grid-template-columns:72px 238px minmax(0,1fr)}.editor-canvas{max-width:min(61vw,650px)}}@media (width<=720px){.topbar{height:62px;padding-inline:1rem}.topbar-actions .text-button,.account-copy,.dashboard-topbar nav{display:none}.public-main{min-height:auto;padding-block:3.5rem 4.5rem}.welcome-copy h1{font-size:clamp(2.75rem,14vw,4.25rem)}.studio-feature{max-width:none;margin-left:0}.studio-image-wrap img{height:min(70vh,580px)}.studio-note{max-width:calc(100% - 2rem);bottom:1rem;left:1rem}.dashboard-topbar{display:flex}.library-heading{flex-direction:column;align-items:flex-start;gap:1.5rem}.library-actions{flex-direction:column-reverse;align-items:stretch;width:100%}.library-actions .primary-button,.library-actions .secondary-button{width:100%}.format-picker{grid-template-columns:1fr}.project-dialog-body{padding:1.35rem}.project-dialog{border-radius:10px;max-width:calc(100vw - 1rem);max-height:calc(100dvh - 1rem)}.project-dialog-actions{flex-direction:column-reverse;align-items:stretch}.project-dialog-actions .primary-button,.project-dialog-actions .text-button{width:100%}.unsaved-dialog-actions{flex-direction:column-reverse;align-items:stretch}.unsaved-dialog-actions .primary-button,.unsaved-dialog-actions .secondary-button,.unsaved-dialog-actions .text-button{justify-content:center;width:100%}.import-preview{grid-template-columns:56px minmax(0,1fr)}.import-preview img{width:56px;height:56px}.import-preview .text-button{grid-column:1/-1;justify-self:start;padding-left:0}.editor-topbar{grid-template-columns:1fr auto}.editor-project-name{display:none}.editor-layout,.editor-layout.has-panel{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:1fr;height:calc(100dvh - 62px);min-height:0}.editor-layout.has-panel{grid-template-rows:minmax(180px,1fr) auto minmax(0,38dvh)}.editor-stage{grid-row:1;padding:.5rem}.editor-canvas{max-width:calc(100vw - 2.5rem);height:min(100dvh - 290px,560px);max-height:calc(100dvh - 290px)}.editor-tools{border-bottom:1px solid var(--border);border-right:0;flex-direction:row;grid-row:2;justify-content:space-around;height:61px;min-height:61px;padding:.4rem;display:flex;overflow:auto hidden}.editor-tools button,.editor-color-tool{flex:0 0 62px;min-height:52px}.editor-inspector{border-right:0;border-top:1px solid var(--border);grid-row:3;grid-template-columns:1fr;gap:1rem;max-height:38dvh;padding:.8rem 1rem;display:grid;overflow:auto}.editor-inspector.is-layers{display:block}.editor-inspector.is-layers .layer-list{max-height:min(30dvh,270px)}.canvas-space{padding:1rem}.canvas-wrap{min-width:0}.zoom-control{bottom:.75rem;left:.75rem}.zoom-control input{width:76px}.auth-dialog{border-radius:10px;width:100%;max-width:calc(100vw - 1rem);max-height:calc(100dvh - 1rem)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
