@import"https://fonts.googleapis.com/css2?family=Epilogue:wght@400;600;700;800&family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap";:root{--surface: #fbf9f6;--surface-dim: #dbdad7;--surface-lowest: #ffffff;--surface-low: #f5f3f0;--surface-container: #efeeeb;--surface-high: #eae8e5;--surface-highest: #e4e2df;--on-surface: #1b1c1a;--on-variant: #3f4948;--outline: #6f7979;--outline-variant: #bec9c8;--primary: #016464;--primary-container: #2d7d7d;--on-primary: #ffffff;--secondary: #845400;--secondary-container: #ffbd66;--on-secondary-container: #653e00;--tertiary: #605089;--on-tertiary: #ffffff;--error: #ba1a1a;--shadow: 0 4px 24px rgba(1, 100, 100, .08);color:var(--on-surface);background:var(--surface);font-family:Plus Jakarta Sans,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--surface)}.app-shell{min-height:100vh;--ui-font-scale: 1;--ui-density-scale: 1;--control-min-height: 44px;--control-padding-x: 14px;--panel-gap-scale: 1;font-size:calc(1rem * var(--ui-font-scale));background:var(--surface);color:var(--on-surface)}.app-shell.theme-dark{--surface: #101615;--surface-dim: #080d0d;--surface-lowest: #18201f;--surface-low: #1d2726;--surface-container: #24302f;--surface-high: #2c3837;--surface-highest: #374342;--on-surface: #edf2ef;--on-variant: #c2cecb;--outline: #92a09d;--outline-variant: #465452;--primary: #77d7d3;--primary-container: #135f5d;--on-primary: #062322;--secondary: #ffc673;--secondary-container: var(--primary);--on-secondary-container: var(--on-primary);--tertiary: #cfc0ff;--on-tertiary: #251d43;--error: #ffb4ab;--shadow: 0 4px 24px rgba(0, 0, 0, .28)}.app-shell.ui-scale-compact{--ui-font-scale: .94;--ui-density-scale: .9;--control-min-height: 38px;--control-padding-x: 12px;--panel-gap-scale: .88}.app-shell.ui-scale-default{--ui-font-scale: 1;--ui-density-scale: 1;--control-min-height: 44px;--control-padding-x: 14px;--panel-gap-scale: 1}.app-shell.ui-scale-large{--ui-font-scale: 1.08;--ui-density-scale: 1.12;--control-min-height: 50px;--control-padding-x: 16px;--panel-gap-scale: 1.12}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.52}h1,h2,h3,.brand-lockup{font-family:Epilogue,system-ui,sans-serif;letter-spacing:0}img{display:block;max-width:100%}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;padding:0}.page{min-height:100vh}.gallery-page{height:100dvh;overflow-y:auto;overscroll-behavior:contain}.primary-button,.outline-button,.ghost-button,.tertiary-button,.amber-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:var(--control-min-height);border-radius:8px;border:1px solid transparent;padding:0 calc(var(--control-padding-x) + 4px);font-weight:700;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease}.primary-button{background:var(--primary);color:var(--on-primary);box-shadow:0 8px 18px #01646424}.primary-button:hover{background:var(--primary-container)}.outline-button{background:transparent;border-color:var(--outline-variant);color:var(--on-surface)}.outline-button:hover,.ghost-button:hover{background:var(--surface-container);border-color:var(--outline)}.ghost-button{background:transparent;border-color:transparent;color:var(--on-variant)}.tertiary-button{background:var(--tertiary);color:var(--on-tertiary);box-shadow:0 10px 20px #6050892e}.amber-button{width:100%;background:var(--secondary-container);color:var(--on-secondary-container)}.slim{min-height:38px;padding-inline:14px}.full{width:100%}.icon-only{width:42px;min-height:42px;padding:0}.danger{color:var(--error)}.danger-button{background:var(--error);color:#fff;box-shadow:none}.danger-button:hover{background:#8f1212}.confirmation-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;padding:24px;background:#1b1c1a6b}.confirmation-dialog{display:grid;width:min(420px,100%);gap:18px;border:1px solid var(--outline-variant);border-radius:8px;background:var(--surface-lowest);box-shadow:0 18px 48px #1b1c1a33;padding:26px}.confirmation-dialog h2,.confirmation-dialog p{margin:0}.confirmation-dialog p{color:var(--on-variant);line-height:1.5;overflow-wrap:anywhere;word-break:break-word;white-space:normal}.confirmation-actions{display:flex;justify-content:flex-end;gap:10px}.signin-page{display:grid;min-height:100vh;place-items:center;padding:24px}.signin-card{width:min(430px,100%);padding:38px;border:1px solid var(--surface-variant, #e4e2df);border-radius:12px;background:var(--surface-lowest);box-shadow:var(--shadow);text-align:center}.brand-lockup{display:flex;align-items:center;gap:12px;border:0;background:transparent;color:var(--primary);font-weight:800}.brand-lockup.centered{justify-content:center;margin-bottom:32px}.brand-lockup h1,.brand-lockup span{margin:0;font-size:1.5em}.brand-mark{display:grid;width:56px;height:56px;place-items:center;border-radius:12px;background:var(--surface-low);color:var(--primary)}.brand-mark-icon{width:100%;height:100%;object-fit:contain}.brand-mark.small{width:40px;height:40px}.signin-copy h2{margin:0 0 12px;color:var(--on-surface);font-size:2rem}.signin-copy p{margin:0 0 30px;color:var(--on-variant);line-height:1.65}.stack{display:grid;gap:14px}.divider{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;color:var(--on-variant);font-size:.86rem}.divider span{height:1px;background:var(--surface-highest)}.google-logo{width:22px;height:22px;border-radius:999px;background:#fff;padding:2px}.signin-theme-setting{display:grid;grid-template-columns:1fr 1fr;gap:4px;border:1px solid var(--outline-variant);border-radius:8px;background:var(--surface-low);padding:4px}.theme-choice{min-height:36px;border:0;border-radius:6px;background:transparent;color:var(--on-variant);font-weight:700}.theme-choice.active{background:var(--surface-lowest);color:var(--primary);box-shadow:0 2px 8px #1b1c1a14}.signin-footer{position:fixed;bottom:24px;display:flex;align-items:center;gap:22px}.signin-footer span{color:var(--on-variant);font-size:.86rem;font-weight:700}.signin-footer button{border:0;background:transparent;color:var(--on-variant);text-decoration:underline;text-underline-offset:4px}.top-nav{position:sticky;top:0;z-index:10;display:grid;grid-template-columns:auto minmax(0,1fr) auto;height:76px;align-items:center;gap:28px;border-bottom:1px solid var(--outline-variant);background:color-mix(in srgb,var(--surface) 94%,transparent);padding:0 32px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.top-nav.compact{height:64px}.top-nav-main{display:contents}.nav-brand{padding:0}.nav-links,.nav-actions{display:flex;align-items:center;gap:12px}.nav-links{grid-column:2;grid-row:1;justify-self:end}.header-actions{grid-column:3;grid-row:1;justify-self:end}.nav-link{display:inline-flex;align-items:center;gap:8px;min-height:40px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--on-variant);font-weight:700}.nav-link.active{border-bottom-color:var(--primary);color:var(--primary)}.avatar{display:grid;width:42px;height:42px;place-items:center;overflow:hidden;border:2px solid var(--surface-highest);border-radius:999px;background:var(--surface-container);color:var(--primary);font-weight:800}.avatar img{width:100%;height:100%;object-fit:cover}.profile-menu{position:relative;justify-self:end}.profile-menu-trigger{display:inline-flex;align-items:center;justify-content:center;width:42px;min-width:42px;min-height:42px;border:1px solid var(--surface-highest);border-radius:999px;background:var(--surface-lowest);color:var(--primary);padding:0}.profile-menu-trigger:hover{border-color:var(--outline-variant);background:var(--surface-low)}.header-cart-button{position:relative;display:inline-flex;align-items:center;justify-content:center;width:42px;min-width:42px;min-height:42px;border:1px solid var(--surface-highest);border-radius:999px;background:var(--surface-lowest);color:var(--primary);padding:0}.header-cart-button:hover{border-color:var(--outline-variant);background:var(--surface-low)}.header-cart-button span{position:absolute;right:-4px;bottom:-4px;display:grid;min-width:18px;height:18px;place-items:center;border:2px solid var(--surface);border-radius:999px;background:var(--secondary-container);color:var(--on-secondary-container);font-size:.68rem;font-weight:900;line-height:1}.profile-menu-avatar{width:100%;height:100%;border-radius:inherit;object-fit:cover}.profile-menu-initial{color:var(--primary);font-size:.92rem;font-weight:800}.profile-menu-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:90;display:grid;min-width:180px;gap:4px;border:1px solid var(--outline-variant);border-radius:8px;background:var(--surface-lowest);box-shadow:0 16px 34px #30312f29;padding:8px}.profile-menu-item{display:flex;align-items:center;gap:10px;min-height:42px;border:0;border-radius:8px;background:transparent;color:var(--on-surface);padding:0 10px;font-weight:800;text-align:left}.profile-menu-item:hover{background:var(--surface-container);color:var(--primary)}.profile-menu-item.exit{margin-top:4px;border-top:1px solid var(--surface-highest);border-radius:0 0 8px 8px;color:var(--error)}.studio-page,.setup-page{width:min(1320px,100%);margin:0 auto;padding:48px 32px 64px}.page-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:38px}.page-heading h1,.setup-heading h1,.settings-heading h1{margin:0 0 10px;font-size:calc(clamp(2.2rem,6vw,3.5rem) * var(--ui-font-scale));line-height:1.05}.heading-title-row{display:flex;align-items:center;gap:16px}.heading-brand-icon{width:clamp(42px,7vw,64px);height:clamp(42px,7vw,64px);flex:0 0 auto;object-fit:contain}.heading-title-row h1{margin-bottom:10px}.page-heading p,.setup-heading p,.settings-heading p{margin:0;color:var(--on-variant);font-size:calc(1.08rem * var(--ui-font-scale))}.search-box{display:flex;align-items:center;gap:10px;min-width:min(340px,100%);border:1px solid var(--outline-variant);border-radius:999px;background:var(--surface-lowest);padding:0 16px}.search-box input{width:100%;min-height:44px;border:0;outline:0;background:transparent}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:24px}.new-project-card,.project-card{min-height:360px;border-radius:16px}.new-project-card{display:grid;place-items:center;align-content:center;gap:12px;border:2px dashed var(--outline-variant);background:var(--surface-lowest);color:var(--primary)}.add-orb{display:grid;width:64px;height:64px;place-items:center;border-radius:999px;background:var(--primary-container);color:#dafffe;font-size:2rem;font-weight:700}.new-project-card span:last-child{color:var(--on-variant)}.project-card{display:flex;flex-direction:column;min-width:0;overflow:hidden;border:1px solid var(--surface-highest);background:var(--surface-lowest);box-shadow:0 4px 20px #0164640f}.project-card:hover{box-shadow:0 8px 30px #0164641f}.project-image-button{position:relative;display:block;width:100%;height:210px;border:0;padding:0;overflow:hidden;background:var(--surface-container)}.project-image-button img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.project-card:hover .project-image-button img{transform:scale(1.04)}.sync-floater{position:absolute;top:14px;right:14px;display:grid;width:34px;height:34px;place-items:center;border-radius:999px;background:color-mix(in srgb,var(--surface-lowest) 90%,transparent);color:var(--primary)}.local-save-floater{color:var(--primary)}.order-status-floater{position:absolute;top:14px;left:14px;z-index:2;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:999px;box-shadow:0 8px 20px #0000002e}.order-status-pending{background:#f7c948;color:#10201f}.order-status-paid{background:#4ade80;color:#10201f}.order-status-failed{background:#f87171;color:#10201f}.project-card-body{display:grid;flex:1 1 auto;min-width:0;grid-template-rows:minmax(0,1fr) auto;gap:18px;padding:20px}.project-card-body h2{max-width:100%;margin:0 0 6px;font-size:1.22rem;overflow-wrap:anywhere;word-break:break-word;white-space:normal}.project-card-body>div:first-child{min-width:0}.project-card-body p{margin:0;color:var(--on-variant);font-size:.9rem}.project-actions{display:grid;grid-template-columns:minmax(0,max-content) 42px;min-width:0;align-items:center;justify-content:space-between;gap:10px}.project-open-button{justify-self:start;min-height:36px;padding-inline:12px}.project-delete-button{justify-self:end}.empty-state{max-width:440px;margin:40px auto 0;text-align:center}.empty-state h2{margin-bottom:8px}.setup-heading{margin:0 auto 34px;max-width:760px;text-align:center}.setup-card{display:grid;gap:36px;max-width:900px;margin:0 auto;border:1px solid var(--surface-highest);border-radius:12px;background:var(--surface-lowest);box-shadow:var(--shadow);padding:clamp(24px,5vw,46px)}.field-group{display:grid;gap:14px;color:var(--on-surface);font-weight:800;text-transform:uppercase}.field-group input[type=text]{min-height:48px;border:0;border-bottom:2px solid var(--surface-highest);outline:0;background:transparent;color:var(--on-surface);font-size:1.08rem;font-weight:500;text-transform:none}.field-group input:focus{border-color:var(--primary)}.section-label-row{display:flex;justify-content:space-between}.section-label-row strong{border-radius:6px;background:var(--surface-container);color:var(--outline);padding:3px 8px;font-size:.75rem}.source-grid,.canvas-size-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.source-card,.size-option{display:grid;place-items:center;gap:10px;border-radius:12px;border:2px dashed var(--outline-variant);background:var(--surface-lowest);padding:28px;color:var(--primary);text-align:center;text-transform:none}.source-card input{display:none}.source-card span,.size-option span{color:var(--on-variant);font-weight:500}.source-card.amber{border-style:solid;background:var(--surface-container);color:var(--secondary)}.upload-preview{display:block;width:100%;aspect-ratio:16 / 9;overflow:hidden;border:1px solid var(--outline-variant);border-radius:12px;background:var(--surface-low);padding:0}.upload-preview img{width:100%;max-width:none;height:100%;object-fit:cover}.canvas-size-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.size-option{border-style:solid;padding:16px}.size-option.active{border-color:var(--primary);background:#0164640f}.canvas-dropdown{position:relative}.canvas-dropdown-trigger{display:grid;width:100%;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;min-height:calc(var(--control-min-height) + 32px);border:2px solid var(--primary);border-radius:12px;background:#0164640f;color:var(--primary);padding:12px var(--control-padding-x);text-align:left}.canvas-dropdown-trigger strong{color:var(--primary);font-size:1.05rem}.dropdown-chevron{color:var(--on-variant);transition:transform .16s ease}.dropdown-chevron.open{transform:rotate(180deg)}.canvas-dropdown-menu{position:absolute;top:calc(100% + 8px);right:0;left:0;z-index:20;display:grid;gap:8px;max-height:min(430px,62vh);overflow-y:auto;border:1px solid var(--outline-variant);border-radius:14px;background:var(--surface-lowest);box-shadow:0 18px 42px #30312f29;padding:10px}.canvas-dropdown-option{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:14px;min-height:calc(var(--control-min-height) + 22px);border:1px solid var(--outline-variant);border-radius:10px;background:var(--surface-lowest);color:var(--on-surface);padding:10px var(--control-padding-x);text-align:left}.canvas-dropdown-option.active{border-color:var(--primary);background:#0164640f;color:var(--primary)}.canvas-dropdown-option.custom{border-style:dashed;color:var(--primary)}.custom-plus{display:grid;width:46px;height:46px;place-items:center;border-radius:999px;background:#0164641a;color:var(--primary);font-size:1.6rem;font-weight:700}.size-sketch{display:grid;width:54px;height:68px;place-items:center;border:2px solid var(--outline-variant);border-radius:4px;background:var(--surface);font-size:.72rem}.size-sketch.square{height:54px}.size-sketch.landscape:not(.square){width:68px;height:54px}.add-custom-button{min-height:48px;border:1px dashed var(--outline-variant);border-radius:10px;background:var(--surface-lowest);color:var(--primary);font-weight:800}.add-custom-button.active{border-color:var(--primary);background:#0164640f}.custom-canvas{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:12px;border:1px solid var(--outline-variant);border-radius:12px;background:var(--surface-low);padding:14px;text-transform:none}.custom-canvas.active{border-color:var(--primary)}.custom-canvas label{display:grid;gap:6px}.custom-canvas label span{color:var(--on-variant);font-size:.82rem;font-weight:800}.custom-canvas input{width:100%;min-height:42px;border:1px solid var(--outline-variant);border-radius:8px;background:var(--surface-lowest);padding:0 10px;color:var(--on-surface);font-weight:800}.custom-ratio{display:grid;min-width:124px;min-height:58px;place-items:center;border-radius:10px;background:var(--surface-lowest);padding:8px 12px;text-align:center}.custom-ratio span{color:var(--on-variant);font-size:.8rem;font-weight:800}.custom-ratio strong{color:var(--primary);white-space:nowrap}.segmented,.view-toggle{display:inline-grid;grid-template-columns:1fr 1fr;gap:4px;border-radius:10px;background:var(--surface-container);padding:4px}.segmented.wide{width:min(390px,100%)}.segmented button,.view-toggle button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:8px;background:transparent;color:var(--on-variant);padding:10px 18px;font-weight:700}.segmented button.active,.view-toggle button.active{background:var(--surface-lowest);color:var(--primary);box-shadow:0 2px 8px #01646414}.setup-actions{display:flex;justify-content:flex-end;gap:12px;border-top:1px solid var(--surface-highest);padding-top:28px}.editor-shell{--editor-right-panel-width: 360px;display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,var(--editor-right-panel-width));grid-template-rows:64px minmax(0,1fr);grid-template-areas:"topbar topbar" "canvas right";height:100vh;overflow:hidden;background:var(--surface-dim)}.empty-editor{display:grid;place-items:center}.editor-topbar{display:flex;grid-area:topbar;align-items:center;justify-content:space-between;border-bottom:1px solid var(--outline-variant);background:var(--surface);padding:0 28px}.editor-brand,.editor-top-actions{display:flex;align-items:center;gap:14px}.editor-brand strong{color:var(--primary);font-family:Epilogue,sans-serif;font-size:1.18rem}.editor-brand-logo{width:28px;height:28px;flex:0 0 auto;object-fit:contain}.editor-brand span{color:var(--on-variant)}.small-avatar{width:34px;height:34px}.editor-left-panel{display:flex;grid-area:left;flex-direction:column;gap:8px;border-right:1px solid var(--outline-variant);background:var(--surface-low);padding:22px 14px}.active-project{display:flex;align-items:center;gap:12px;margin:0 8px 20px}.active-project img{width:44px;height:44px;border-radius:8px;object-fit:cover}.active-project h2{margin:0;color:var(--primary);font-size:1rem}.active-project span{color:var(--on-variant);font-size:.78rem}.panel-link{display:flex;align-items:center;gap:12px;min-height:42px;border:0;border-left:4px solid transparent;border-radius:8px;background:transparent;color:var(--on-variant);padding:0 14px;font-weight:700}.panel-link.active{border-left-color:var(--primary);color:var(--primary);background:var(--surface-high)}.editor-left-panel .amber-button{margin-top:auto}.canvas-workbench{position:relative;grid-area:canvas;min-width:0;min-height:0;overflow:hidden;background:radial-gradient(circle at var(--editor-grid-dot-size, 1.5px) var(--editor-grid-dot-size, 1.5px),color-mix(in srgb,var(--outline) 26%,transparent) var(--editor-grid-dot-size, 1.5px),transparent calc(var(--editor-grid-dot-size, 1.5px) + .5px)),var(--surface);background-size:var(--editor-grid-size, 16px) var(--editor-grid-size, 16px),auto}.view-toggle{position:absolute;top:24px;left:50%;z-index:20;grid-template-columns:auto repeat(3,104px);transform:translate(-50%);border:1px solid var(--outline-variant);background:color-mix(in srgb,var(--surface-lowest) 84%,transparent);padding:2px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.view-toggle button{min-height:34px;min-width:0;gap:6px;padding:7px 8px;font-size:.9rem;white-space:nowrap}.view-toggle button svg{display:block;width:16px;height:16px;flex:0 0 16px}.view-toggle .view-toggle-original-button,.view-toggle .view-toggle-editor-button{padding-right:18px}.view-toggle .view-toggle-canvas-button{padding-left:18px}.view-toggle .view-toggle-drag-handle{min-width:28px;padding:0 4px;border-right:1px solid var(--outline-variant);border-radius:7px 2px 2px 7px;color:var(--outline);cursor:grab;touch-action:none}.view-toggle .view-toggle-drag-handle:active{cursor:grabbing}.canvas-scroll{display:block;width:100%;height:100%;overflow:auto;padding:10px;cursor:default;overscroll-behavior:contain;scrollbar-width:none;touch-action:none;-webkit-user-select:none;user-select:none}.canvas-scroll.has-rulers{padding-top:44px}.canvas-scroll::-webkit-scrollbar{display:none}.canvas-scroll.is-zoomed{cursor:grab}.canvas-scroll.is-panning{cursor:grabbing}.canvas-stage-shell{display:grid;width:100%;min-width:100%;min-height:0;align-content:start;justify-items:center;gap:18px}.canvas-scroll.is-zoomed .canvas-stage-shell{width:max-content}.canvas-frame{position:relative;width:100%;margin-top:78px;aspect-ratio:16 / 10;flex:0 0 auto;overflow:visible;border:1px solid var(--outline-variant);border-radius:14px;background:var(--surface-lowest);box-shadow:0 14px 38px #30312f24;transform-origin:center center;transition:width .12s ease}.canvas-frame.landscape-frame{width:100%;height:auto}.canvas-frame.portrait-frame{width:100%;aspect-ratio:4 / 5}.pattern-stage,.pattern-outline,.pattern-fill{position:relative;width:100%;height:100%;overflow:visible;background:#fff}.pattern-stage img,.canvas-frame>img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100%;max-height:none;object-fit:contain}.original-source-image{display:block;background:#fff}.pattern-outline svg,.pattern-fill svg,.pattern-overlay svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.pattern-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.canvas-rulers{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none}.canvas-ruler{position:absolute;color:var(--primary);font-size:.72rem;font-weight:800;letter-spacing:0}.canvas-ruler:before{position:absolute;content:""}.canvas-ruler.horizontal{top:-30px;right:0;left:0;height:24px}.canvas-ruler.horizontal:before{right:0;bottom:0;left:0;height:12px;border-top:1px solid rgba(1,100,100,.48);background:repeating-linear-gradient(90deg,rgba(1,100,100,.62) 0,rgba(1,100,100,.62) 1px,transparent 1px,transparent 10%)}.canvas-ruler.vertical{top:0;left:-30px;bottom:0;width:24px}.canvas-ruler span{position:absolute;white-space:nowrap}.canvas-ruler.horizontal .ruler-zero{bottom:13px;left:0;transform:translate(-50%)}.canvas-ruler.horizontal .ruler-end{right:0;bottom:13px;transform:translate(50%)}.canvas-ruler.vertical .ruler-zero{top:0;right:14px;transform:translateY(-50%) rotate(-90deg)}.canvas-ruler.vertical .ruler-end{right:14px;bottom:0;transform:translateY(50%) rotate(-90deg)}.canvas-ruler.vertical:before{top:0;right:0;bottom:0;width:12px;border-left:1px solid rgba(1,100,100,.48);background:repeating-linear-gradient(180deg,rgba(1,100,100,.62) 0,rgba(1,100,100,.62) 1px,transparent 1px,transparent 10%)}.canvas-frame.processing .pattern-stage,.canvas-frame.processing .pattern-outline{filter:grayscale(1);opacity:.34}.image-resize-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:12;pointer-events:none}.image-scale-control{position:absolute;top:18px;left:50%;z-index:2;display:grid;grid-template-columns:auto minmax(90px,1fr) 28px;align-items:center;gap:10px;width:min(340px,calc(100% - 32px));transform:translate(-50%);border:1px solid rgba(1,100,100,.24);border-radius:999px;background:color-mix(in srgb,var(--surface-lowest) 88%,transparent);padding:5px 6px 5px 12px;box-shadow:0 8px 20px #1b1c1a24;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:auto}.image-scale-control span{min-width:42px;color:var(--primary);font-size:.76rem;font-weight:900;text-align:center}.image-scale-control input[type=range]{height:18px;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;cursor:grab}.image-scale-control input[type=range]:active{cursor:grabbing}.image-scale-control input[type=range]::-webkit-slider-runnable-track{height:7px;border:1px solid color-mix(in srgb,var(--on-surface) 42%,transparent);border-radius:999px;background:color-mix(in srgb,var(--surface-lowest) 72%,var(--primary))}.image-scale-control input[type=range]::-webkit-slider-thumb{width:18px;height:18px;margin-top:-6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:999px;background:var(--primary);box-shadow:0 2px 8px #1b1c1a42}.image-scale-control input[type=range]::-moz-range-track{height:7px;border:1px solid color-mix(in srgb,var(--on-surface) 42%,transparent);border-radius:999px;background:color-mix(in srgb,var(--surface-lowest) 72%,var(--primary))}.image-scale-control input[type=range]::-moz-range-thumb{width:18px;height:18px;border:0;border-radius:999px;background:var(--primary);box-shadow:0 2px 8px #1b1c1a42}.image-scale-drag-handle{min-width:28px;min-height:28px;border:0;border-left:1px solid var(--outline-variant);border-radius:0 999px 999px 0;background:transparent;color:var(--outline);cursor:grab;padding:0 2px;touch-action:none}.image-scale-drag-handle:active{cursor:grabbing}.image-resize-handle{position:absolute;width:24px;height:24px;border:2px solid var(--primary);border-radius:999px;background:var(--surface-lowest);box-shadow:0 4px 12px #1b1c1a2e;opacity:1;pointer-events:auto;touch-action:none;transition:opacity .12s ease,transform .12s ease}.canvas-frame:hover .image-resize-handle,.image-resize-handle:focus-visible{opacity:1}.image-resize-handle:hover,.image-resize-handle:focus-visible{transform:scale(1.12)}.image-resize-handle.top-left{top:18px;left:18px;cursor:nwse-resize}.image-resize-handle.top-right{top:18px;right:18px;cursor:nesw-resize}.image-resize-handle.bottom-left{bottom:18px;left:18px;cursor:nesw-resize}.image-resize-handle.bottom-right{right:18px;bottom:18px;cursor:nwse-resize}.canvas-processing-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:grid;place-items:center;background:#01646414;backdrop-filter:blur(10px) saturate(120%);-webkit-backdrop-filter:blur(10px) saturate(120%);transition:all .3s cubic-bezier(.4,0,.2,1);pointer-events:all}.processing-card{display:flex;flex-direction:column;align-items:center;gap:16px;background:color-mix(in srgb,var(--surface-lowest) 72%,transparent);border:1px solid rgba(255,255,255,.45);border-radius:20px;padding:32px 48px;box-shadow:0 16px 36px #0164641f;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);max-width:80%;animation:processingScaleIn .3s cubic-bezier(.34,1.56,.64,1)}@keyframes processingScaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.processing-spinner{width:44px;height:44px;border:4px solid rgba(1,100,100,.16);border-top-color:var(--primary);border-radius:50%;animation:processingSpin .85s cubic-bezier(.5,.1,.5,.9) infinite}@keyframes processingSpin{to{transform:rotate(360deg)}}.processing-text{color:var(--primary);font-size:1.15rem;font-weight:800;text-align:center;letter-spacing:-.01em;animation:processingPulseText 1.8s ease-in-out infinite}@keyframes processingPulseText{0%,to{opacity:.88}50%{opacity:.54}}.number-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.number-overlay span{position:absolute;display:grid;width:28px;height:28px;place-items:center;border:1px solid rgba(1,100,100,.36);border-radius:999px;background:color-mix(in srgb,var(--surface-lowest) 72%,transparent);color:var(--primary);font-size:.72rem;font-weight:800}.separator-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:linear-gradient(to right,rgba(27,28,26,.22) var(--separator-thickness),transparent var(--separator-thickness)),linear-gradient(to bottom,rgba(27,28,26,.22) var(--separator-thickness),transparent var(--separator-thickness));background-size:56px 56px;mix-blend-mode:multiply;opacity:.7}.palette-dock{position:absolute;right:26px;bottom:24px;left:26px;z-index:2;display:flex;gap:10px;overflow-x:auto;border:1px solid rgba(190,201,200,.8);border-radius:18px;background:color-mix(in srgb,var(--surface-lowest) 74%,transparent);padding:12px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.settings-palette-dock{position:static;right:auto;bottom:auto;left:auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));width:100%;max-width:100%;overflow:visible;border-radius:12px;background:var(--surface);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.settings-palette-dock .palette-chip{width:100%;justify-content:flex-start;min-width:0}.settings-palette-dock .palette-chip code{overflow:hidden;text-overflow:ellipsis}.palette-dropdown,.advanced-dropdown{position:relative}.palette-reference-export{margin-top:10px}.palette-dropdown-trigger{display:grid;width:100%;grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;min-height:44px;border:1px solid var(--outline-variant);border-radius:10px;background:var(--surface);color:var(--on-surface);padding:0 12px;font-weight:800}.palette-dropdown-trigger strong{display:grid;min-width:26px;height:26px;place-items:center;border-radius:999px;background:#0164641a;color:var(--primary);font-size:.8rem}.palette-dropdown-menu{display:grid;gap:8px;max-height:290px;overflow-y:auto;border:1px solid var(--outline-variant);border-radius:12px;background:var(--surface-lowest);padding:10px;margin-top:8px}.palette-edit-row{display:grid;grid-template-columns:auto minmax(0,1fr) 98px;align-items:center;gap:8px}.palette-edit-row>span:not(.numbered-swatch){color:var(--on-variant);font-size:.8rem;font-weight:800}.palette-edit-row input{min-width:0;min-height:34px;border:1px solid var(--outline-variant);border-radius:8px;background:var(--surface);padding:0 8px;color:var(--on-surface);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-weight:800}.palette-chip{display:inline-flex;align-items:center;gap:8px;border:0;border-radius:10px;background:var(--surface-lowest);padding:6px 9px}.palette-chip span,.numbered-swatch{display:grid;width:34px;height:34px;place-items:center;border-radius:8px;border:1px solid rgba(27,28,26,.2);color:#fff;font-weight:800;text-shadow:0 1px 2px rgba(0,0,0,.35)}.palette-chip code{color:var(--on-variant);font-size:.78rem}.editor-right-panel{position:relative;display:flex;grid-area:right;min-height:0;min-width:340px;flex-direction:column;gap:calc(26px * var(--panel-gap-scale));overflow-y:auto;border-left:1px solid var(--outline-variant);background:var(--surface-lowest);padding:24px}.editor-right-panel-resize{position:fixed;top:64px;right:calc(var(--editor-right-panel-width) - 5px);bottom:0;z-index:25;width:10px;border:0;border-radius:0;background:transparent;cursor:col-resize;padding:0}.editor-right-panel-resize:before{position:absolute;top:0;right:4px;bottom:0;left:4px;background:transparent;content:""}.editor-right-panel-resize:hover:before,.editor-right-panel-resize:focus-visible:before{background:var(--primary)}.settings-scroll-handle{width:48px;height:5px;flex:0 0 auto;align-self:center;border-radius:999px;background:var(--outline-variant)}.editor-right-panel header h2,.panel-section h3{margin:0 0 6px}.editor-right-panel header p{margin:0;color:var(--on-variant)}.editor-control{display:grid;gap:10px}.editor-control.disabled,.toggle-control.disabled{opacity:.54}.settings-control-group{display:grid;gap:calc(10px * var(--panel-gap-scale));border:1px solid var(--surface-highest);border-radius:8px;background:var(--surface-lowest);padding:10px}.settings-control-group .toggle-control{border:0;border-radius:6px;padding:10px}.settings-control-group .editor-control{padding:4px 4px 8px}.color-control input[type=color]{width:100%;min-height:44px;border:1px solid var(--outline-variant);border-radius:8px;background:var(--surface-lowest);padding:4px}.control-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}.advanced-dropdown-menu{display:grid;gap:10px;border:1px solid var(--outline-variant);border-radius:12px;background:var(--surface-lowest);padding:10px;margin-top:8px}.control-label{display:inline-flex;min-width:0;align-items:center;gap:6px}.control-label strong{min-width:0;line-height:1.2}.value-pill{display:inline-flex;min-width:48px;justify-content:center;border-radius:999px;background:#0164641a;color:var(--primary);padding:2px 8px;font-size:.78rem;font-style:normal;font-weight:800;white-space:nowrap}.value-pill.difficulty-low{background:#2e7d3224;color:#2e7d32}.value-pill.difficulty-medium{background:#b5690029;color:#8a5200}.value-pill.difficulty-high{background:#ba1a1a24;color:#ba1a1a}.help-hint{position:relative;display:inline-grid;width:18px;height:18px;flex:0 0 auto;place-items:center;border:1px solid var(--outline-variant);border-radius:999px;background:var(--surface-lowest);color:var(--primary);padding:0;font-size:.72rem;font-weight:900;line-height:1}.help-hint-tooltip{position:fixed;z-index:120;width:min(240px,calc(100vw - 32px));border:1px solid var(--outline-variant);border-radius:8px;background:var(--surface-lowest);box-shadow:0 12px 30px #1b1c1a24;color:var(--on-surface);padding:8px 10px;font-size:.75rem;font-weight:700;line-height:1.35;pointer-events:none;text-align:left;text-transform:none}.slider-input-row{display:grid;grid-template-columns:minmax(0,1fr) 76px;align-items:center;gap:10px}.editor-control input[type=range]{accent-color:var(--primary)}.control-number-input{width:100%;min-height:34px;border:1px solid var(--outline-variant);border-radius:8px;background:var(--surface-lowest);color:var(--on-surface);padding:0 8px;font-weight:800}.editor-control.number-only .control-number-input{width:100%}.number-input-action-row{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:10px}.number-input-action-row.single{grid-template-columns:minmax(0,1fr)}.seed-randomize-button{min-height:42px;border:1px solid var(--outline-variant);background:var(--surface-lowest);color:var(--primary)}.editor-control input:disabled,.toggle-control input:disabled,.amber-button:disabled,.outline-button:disabled,.page-save-button:disabled{cursor:not-allowed}.toggle-control{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--outline-variant);border-radius:10px;background:var(--surface);padding:12px 14px;font-weight:800}.toggle-control input{width:42px;height:22px;accent-color:var(--primary)}.page-save-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;border:0;border-radius:10px;background:var(--primary);color:var(--on-primary);box-shadow:0 16px 36px #0164643d;padding:0 20px;font-weight:800}.palette-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.export-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 10px}.export-shell{grid-template-columns:minmax(0,1fr);grid-template-rows:64px minmax(0,1fr);grid-template-areas:"topbar" "export";overflow-y:auto}.export-shell .editor-topbar{position:sticky;top:0;z-index:10}.export-page{grid-area:export;width:min(1180px,100%);margin:0 auto;padding:28px}.commerce-screen{min-height:100vh;background:var(--surface)}.commerce-page{min-height:calc(100vh - 64px);padding:32px;background:transparent}.commerce-card{display:grid;gap:16px}.commerce-card label{display:grid;gap:6px;font-weight:700}.commerce-card input{min-height:42px;border:1px solid var(--outline-variant);border-radius:8px;padding:0 12px}.commerce-empty{display:grid;gap:12px;justify-items:start}.cart-line{display:grid;grid-template-columns:1fr 80px auto auto;gap:12px;align-items:center}.cart-line input{width:80px}.commerce-totals{display:grid;gap:8px;margin:0}.commerce-totals div{display:flex;justify-content:space-between}.commerce-heading{max-width:1180px;margin-inline:auto}.commerce-empty-page{display:grid;align-content:start;gap:18px}.commerce-topbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;max-width:1180px;margin:0 auto 36px;min-height:56px}.commerce-steps{display:flex;align-items:center;gap:10px;color:var(--on-variant);font-size:.86rem;font-weight:700}.commerce-steps span+span:before{content:"/";margin-right:10px;color:var(--outline)}.commerce-top-actions{display:flex;align-items:center;justify-content:end;gap:10px}.commerce-badge{display:inline-flex;align-items:center;gap:7px;min-height:32px;border:1px solid var(--outline-variant);border-radius:999px;padding:0 12px;background:var(--surface-lowest);color:var(--on-variant);font-size:.78rem;font-weight:800}.commerce-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:22px;max-width:1180px;margin:0 auto;padding-bottom:88px}.extras-main{display:grid;gap:18px}.canvas-preview-card,.basket-card,.summary-card{border:1px solid var(--outline-variant);border-radius:12px;background:var(--surface-lowest);box-shadow:var(--shadow)}.canvas-preview-card{display:grid;grid-template-columns:84px 1fr;align-items:center;gap:18px;padding:18px}.canvas-preview-thumb,.canvas-mini-thumb{border-radius:10px;background:radial-gradient(circle at 25% 25%,rgba(255,255,255,.38),transparent 28%),linear-gradient(135deg,var(--primary-container),var(--primary) 42%,var(--secondary-container))}img.canvas-preview-thumb,img.canvas-mini-thumb,img.extra-thumb,.product-visual img{display:block;object-fit:cover}.canvas-preview-thumb{width:84px;height:84px}.canvas-preview-card h2,.product-toolbar h2,.product-card h3,.canvas-info h2{margin:0}.canvas-preview-card p,.product-card p,.canvas-info p,.summary-line span,.checkout-extra span{margin:4px 0 0;color:var(--on-variant);font-size:.82rem}.canvas-preview-card span{display:inline-flex;margin-top:9px;color:var(--primary);font-size:.78rem;font-weight:800}.product-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px}.filter-tabs{display:flex;gap:4px;border-radius:10px;background:var(--surface-container);padding:4px}.filter-tabs button{min-height:34px;border:0;border-radius:8px;background:transparent;color:var(--on-variant);padding:0 14px;font-size:.82rem;font-weight:800}.filter-tabs button.active{background:var(--surface-lowest);color:var(--primary);box-shadow:0 1px 4px #0164641f}.product-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.product-card{display:grid;overflow:hidden;border:1px solid var(--outline-variant);border-radius:10px;background:var(--surface-lowest)}.product-card.added{border-color:var(--primary);box-shadow:0 0 0 2px #0164641a}.product-visual{position:relative;min-height:112px;background:var(--surface-low);overflow:hidden}.product-visual img{width:100%;height:112px}.product-badge,.added-tag{position:absolute;top:8px;border-radius:5px;padding:3px 7px;font-size:.64rem;font-weight:900;text-transform:uppercase}.product-badge{left:8px;background:var(--secondary-container);color:var(--on-secondary-container)}.product-badge.digital{background:#ebe5ff;color:var(--tertiary)}.added-tag{right:8px;display:inline-flex;align-items:center;gap:4px;background:var(--primary);color:var(--on-primary)}.product-body,.product-foot{padding:12px}.product-body{min-height:88px}.product-foot{display:grid;gap:10px;border-top:1px solid var(--outline-variant)}.product-foot strong,.summary-line em,.free-price,.summary-totals dd,.checkout-extra>div:last-child>strong{font-family:JetBrains Mono,ui-monospace,monospace;font-style:normal;font-weight:800}.vis-paint{background:linear-gradient(135deg,#e34234 0,#e34234 20%,#ffbd66 20%,#ffbd66 40%,#2d7d7d 40%,#2d7d7d 60%,#605089 60%,#605089 80%,#1b1c1a 80%)}.vis-paint-premium{background:repeating-linear-gradient(90deg,#e34234 0,#e34234 18px,#ffbd66 18px,#ffbd66 36px,#2d7d7d 36px,#2d7d7d 54px,#605089 54px,#605089 72px)}.vis-brush{background:linear-gradient(75deg,transparent 35%,#8b5a2b 36% 42%,transparent 43%),linear-gradient(105deg,transparent 55%,#8b5a2b 56% 62%,transparent 63%),var(--surface-high)}.vis-frame{background:linear-gradient(135deg,#6f4e37,#2f2219);box-shadow:inset 0 0 0 18px #5a3825,inset 0 0 0 28px #f5f3f0}.vis-poster{background:linear-gradient(180deg,#ffffff 0 70%,var(--surface-container) 70%)}.vis-easel{background:linear-gradient(75deg,transparent 45%,#8b5a2b 46% 51%,transparent 52%),linear-gradient(105deg,transparent 49%,#8b5a2b 50% 55%,transparent 56%),var(--surface-high)}.vis-digital{display:grid;place-items:center;background:linear-gradient(135deg,var(--tertiary),var(--primary))}.vis-digital:after{content:"4K";color:#fff;font-family:Epilogue,system-ui,sans-serif;font-size:1.6rem;font-weight:900}.vis-pdf{display:grid;place-items:center;background:#fff}.vis-pdf:after{content:"PDF";color:var(--tertiary);font-family:Epilogue,system-ui,sans-serif;font-size:1.35rem;font-weight:900}.vis-license{background:radial-gradient(circle at 50% 38%,var(--secondary-container) 0 18%,transparent 19%),linear-gradient(135deg,var(--surface-container),var(--surface-high))}.commerce-summary{align-self:start}.summary-card{overflow:hidden}.summary-head,.summary-line,.summary-totals div,.basket-foot{display:flex;align-items:center;justify-content:space-between;gap:14px}.summary-head{padding:18px;border-bottom:1px solid var(--outline-variant)}.summary-head h2{margin:0;font-size:1rem}.summary-head span{color:var(--on-variant);font-size:.78rem;font-weight:800}.summary-body{display:grid;padding:8px 18px}.summary-line{padding:10px 0;border-bottom:1px solid var(--outline-variant)}.summary-line:last-child{border-bottom:0}.summary-line>div,.checkout-extra>div:nth-child(2){display:grid;min-width:0}.summary-line strong,.checkout-extra strong,.canvas-info h2{overflow-wrap:anywhere}.summary-totals{display:grid;gap:8px;margin:0;padding:16px 18px;border-top:1px solid var(--outline-variant);background:var(--surface-low);color:var(--on-variant);font-size:.84rem}.summary-totals dt,.summary-totals dd{margin:0}.summary-totals dd{color:var(--on-surface)}.summary-totals .grand{padding-top:10px;border-top:1px solid var(--outline-variant);color:var(--on-surface);font-size:1.08rem;font-weight:900}.delivery-note,.secure-note{margin:0;color:var(--on-variant);font-size:.76rem}.delivery-note{padding:0 18px 16px;background:var(--surface-low)}.summary-actions{display:grid;gap:10px;padding:18px}.basket-card{overflow:hidden}.canvas-group{padding:16px;border-bottom:1px solid var(--outline-variant)}.canvas-group:last-child{border-bottom:0}.canvas-head{display:grid;grid-template-columns:58px minmax(0,1fr) auto auto;align-items:center;gap:12px}.canvas-mini-thumb{width:58px;height:58px}.canvas-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}.canvas-tags span{border-radius:999px;background:var(--surface-container);color:var(--on-variant);padding:3px 8px;font-size:.68rem;font-weight:800}.free-price{color:#1f7a4d}.canvas-actions{display:flex;gap:4px}.canvas-group.collapsed .canvas-actions button:first-child svg{transform:rotate(-90deg)}.extras-list{display:grid;margin-top:14px;overflow:hidden;border:1px solid var(--outline-variant);border-radius:10px;background:var(--surface-low)}.no-extras{margin:0;padding:14px;color:var(--on-variant);text-align:center}.checkout-extra{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;border-bottom:1px solid var(--outline-variant)}.checkout-extra:last-child{border-bottom:0}.extra-thumb{width:42px;height:42px;border-radius:8px}.extra-controls{display:flex;align-items:center;gap:8px}.qty-control{display:inline-grid;grid-template-columns:28px 30px 28px;align-items:center;overflow:hidden;border:1px solid var(--outline-variant);border-radius:999px;background:var(--surface-lowest)}.qty-control button{display:grid;place-items:center;min-height:28px;border:0;background:transparent;color:var(--primary);font-weight:900}.qty-control span{margin:0;text-align:center;color:var(--on-surface);font-size:.78rem;font-weight:800}.basket-foot{padding:14px 16px;border-top:1px solid var(--outline-variant);background:var(--surface-low)}.checkout-form{display:grid;gap:10px;padding:16px 18px 0;border-top:1px solid var(--outline-variant)}.checkout-form h3{margin:0 0 4px;color:var(--on-variant);font-size:.78rem;letter-spacing:.04em;text-transform:uppercase}.checkout-form label{display:grid;gap:5px;color:var(--on-variant);font-size:.78rem;font-weight:800}.checkout-form input{min-height:38px;border:1px solid var(--outline-variant);border-radius:8px;background:var(--surface-lowest);color:var(--on-surface);padding:0 10px}.checkout-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.checkout-form-stack{display:grid;gap:14px}.commerce-action-bar{position:fixed;z-index:20;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid var(--outline-variant);background:var(--surface-lowest);padding:12px 16px;box-shadow:0 -6px 20px #01646414}.commerce-action-bar>div{display:grid;gap:2px}.commerce-action-bar span{color:var(--on-variant);font-size:.74rem;font-weight:800}.commerce-action-bar strong{font-family:JetBrains Mono,ui-monospace,monospace}.commerce-action-bar .amber-button{width:auto;min-width:146px}@media(min-width:760px){.product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1024px){.commerce-layout{grid-template-columns:minmax(0,1fr) 420px;gap:32px;padding-bottom:0}.commerce-summary{position:sticky;top:24px}.commerce-action-bar{display:none}}@media(max-width:760px){.commerce-page{padding:18px 14px}.commerce-topbar{grid-template-columns:1fr auto;margin-bottom:24px}.commerce-steps,.commerce-badge{display:none}.commerce-heading{margin-bottom:24px}.commerce-heading h1{font-size:2rem}.canvas-preview-card{grid-template-columns:68px 1fr}.canvas-preview-thumb{width:68px;height:68px}.product-toolbar{align-items:stretch;flex-direction:column}.filter-tabs{align-self:start}.product-grid{gap:10px}.product-visual{min-height:94px}.product-visual img{height:94px}.product-body{min-height:98px}.canvas-head{grid-template-columns:48px minmax(0,1fr) auto}.canvas-mini-thumb{width:48px;height:48px}.canvas-actions{grid-column:2 / -1;justify-content:end}.checkout-extra{grid-template-columns:38px minmax(0,1fr)}.extra-controls{grid-column:1 / -1;justify-content:end}.checkout-form-grid{grid-template-columns:1fr}}.export-main-card{display:grid;grid-template-columns:minmax(300px,.95fr) minmax(300px,1fr);align-items:start;gap:24px}.export-controls{display:grid;min-width:0;gap:10px}.export-preview-panel{display:grid;min-width:0;gap:12px}.export-preview-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;border-radius:10px;background:var(--surface-container);padding:4px}.export-preview-tabs button{min-height:38px;border:0;border-radius:8px;background:transparent;color:var(--on-variant);font-weight:800}.export-preview-tabs button.active{background:var(--surface-lowest);color:var(--primary);box-shadow:0 2px 8px #01646414}.color-key-preview-frame{display:grid;min-height:520px;place-items:center;overflow:hidden;border:1px solid var(--outline-variant);border-radius:8px;background:var(--surface-low);padding:16px}.export-preview-scroll{display:block;width:100%;height:100%;min-height:inherit;overflow:auto;cursor:default;overscroll-behavior:contain;scrollbar-width:none;touch-action:none;-webkit-user-select:none;user-select:none}.canvas-frame.is-image-pannable{cursor:grab;touch-action:none}.canvas-frame.is-image-pannable:active{cursor:grabbing}.export-preview-scroll::-webkit-scrollbar{display:none}.export-preview-scroll.is-zoomed{cursor:grab}.export-preview-scroll.is-panning{cursor:grabbing}.export-preview-zoom-content{display:grid;min-width:100%;min-height:100%;place-items:center;transition:width .12s ease;pointer-events:none}.color-key-preview-frame img{display:block;width:100%;aspect-ratio:1240 / 1754;object-fit:contain;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;border:1px solid rgba(27,28,26,.16);border-radius:4px;background:#fff;box-shadow:0 20px 42px #1b1c1a29}.color-key-preview-state{color:var(--on-variant);font-weight:800;text-align:center}.inline-color-key-preview{min-height:620px}.outline-page-preview{display:grid;width:100%;gap:12px}.outline-page-preview-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:4px 12px}.outline-page-preview-header strong{color:var(--on-surface);font-size:.94rem;line-height:1.15}.outline-page-preview-header span{color:var(--on-variant);font-size:.78rem;font-style:normal;font-weight:800;justify-self:end;text-align:right}.export-image-options{margin-bottom:4px}.export-opacity-control{min-width:0}.outline-page-preview-sheet{display:block;width:100%;overflow:hidden;border:1px solid rgba(27,28,26,.16);border-radius:4px;background:#fff;box-shadow:0 18px 38px #30312f1f}.outline-page-preview-sheet svg{display:block;width:100%;height:100%}.export-canvas-control{display:grid;gap:calc(10px * var(--panel-gap-scale))}.canvas-control-label{display:inline-flex;align-items:center;gap:6px;color:var(--on-surface);font-size:.95rem;font-weight:800;line-height:1.2;text-transform:none}.canvas-orientation-control{display:grid;gap:8px}.canvas-orientation-control>.canvas-control-label{color:var(--on-surface);font-size:.95rem;font-weight:800;text-transform:none}.orientation-select{width:100%;min-width:0;min-height:44px;border:1px solid var(--outline-variant);border-radius:8px;background:var(--surface-lowest);color:var(--on-surface);padding:0 12px;font:inherit;font-weight:800}.canvas-rulers-control{display:grid;gap:8px}.compact-canvas-dropdown .canvas-dropdown-trigger{min-height:62px;border-width:1px}.compact-canvas-dropdown .canvas-dropdown-trigger strong{font-size:.92rem}.settings-shell{display:flex;min-height:100vh}.settings-nav{position:fixed;inset:0 auto 0 0;display:flex;width:280px;flex-direction:column;gap:8px;border-right:1px solid var(--outline-variant);background:var(--surface-lowest);padding:28px 16px}.settings-brand{border:0;background:transparent;color:var(--primary);font-family:Epilogue,sans-serif;font-size:calc(1.5rem * var(--ui-font-scale));font-weight:800;text-align:left}.profile-snippet{display:flex;align-items:center;gap:12px;margin:24px 0 18px;border:1px solid rgba(190,201,200,.55);border-radius:10px;background:var(--surface-low);padding:12px}.profile-snippet strong,.profile-snippet span{display:block}.profile-snippet span{color:var(--secondary);font-size:.8rem;font-weight:700}.settings-link{display:flex;align-items:center;gap:12px;min-height:var(--control-min-height);border:0;border-right:4px solid transparent;border-radius:8px;background:transparent;color:var(--on-variant);padding:0 var(--control-padding-x);font-weight:700}.settings-link.active{border-right-color:var(--primary);background:var(--surface-container);color:var(--primary)}.settings-link.bottom{margin-top:auto}.settings-content{width:min(1040px,calc(100% - 280px));margin-left:280px;padding:36px 40px}.settings-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:calc(28px * var(--panel-gap-scale))}.settings-card{border:1px solid rgba(190,201,200,.55);border-radius:16px;background:var(--surface-lowest);box-shadow:0 4px 12px #0e69690a;padding:24px}.settings-card h2{margin:0 0 20px}.app-shell :where(button,input,select,.settings-link,.control-label,.canvas-control-label,.preference-group label,.choice,.hint,.profile-snippet,.value-pill){font-size:calc(1em * var(--ui-font-scale))}.wide-card{grid-column:2}.account-card{grid-row:span 2}.account-row{display:flex;align-items:center;gap:16px}.avatar.large{width:80px;height:80px;font-size:1.8rem}.account-row h3,.account-row p{margin:0 0 6px}.account-row p,.hint,.offline-card p{color:var(--on-variant)}.plan-pill,.ready-pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;background:var(--secondary-container);color:#774b00;padding:5px 9px;font-size:.8rem;font-weight:800}.account-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:26px 0}.install-status{margin:10px 0 14px}.account-stats span{border-radius:10px;background:var(--surface-low);padding:14px;color:var(--on-variant)}.account-stats strong{display:block;color:var(--on-surface);font-size:1.3rem}.about-card{display:grid;gap:18px}.about-brand{display:flex;align-items:center;gap:16px}.about-brand-icon{width:64px;height:64px}.about-card h2,.about-card p{margin:0}.about-version{color:var(--primary);font-weight:800}.about-card>p{color:var(--on-variant);line-height:1.6}.about-meta{display:flex;flex-wrap:wrap;gap:8px}.about-meta span{border:1px solid var(--outline-variant);border-radius:999px;background:var(--surface-low);color:var(--on-variant);padding:7px 10px;font-size:.82rem;font-weight:800}.card-title,.offline-copy{display:flex;align-items:flex-start;gap:14px}.card-title svg,.offline-icon{color:var(--primary)}.preference-group{display:grid;gap:calc(10px * var(--panel-gap-scale));margin-top:20px}.preference-group label{font-weight:800}.choice-row{display:flex;gap:10px}.choice{flex:1;min-height:var(--control-min-height);border:1px solid var(--outline-variant);border-radius:8px;background:var(--surface);color:var(--on-variant);padding-inline:var(--control-padding-x);font-weight:800}.choice.active{border:2px solid var(--primary);background:#0164640f;color:var(--primary)}.choice.active.amber{border-color:var(--secondary);background:#84540014;color:var(--secondary)}.offline-card{display:flex;align-items:center;justify-content:space-between;gap:22px}.mobile-ribbon{display:none}.app-version-badge,.app-sync-badge{position:fixed;bottom:10px;z-index:90;border:1px solid var(--outline-variant);border-radius:999px;background:color-mix(in srgb,var(--surface-lowest) 92%,transparent);color:var(--on-variant);font-size:.72rem;font-weight:800;line-height:1;padding:7px 10px}.app-version-badge{right:14px}.app-sync-badge{left:14px}@media(max-width:980px){.top-nav{grid-template-columns:1fr;align-items:stretch;height:auto;gap:14px;padding:16px}.top-nav-main{display:flex;align-items:center;justify-content:space-between;gap:16px}.nav-links,.nav-actions{flex-wrap:wrap}.top-nav .nav-links{display:flex;width:100%;justify-content:space-between;gap:6px;overflow-x:auto}.top-nav .nav-link{flex:1 1 0;justify-content:center;min-width:max-content}.mobile-ribbon{position:fixed;right:14px;bottom:14px;left:14px;z-index:80;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;border:1px solid rgba(190,201,200,.82);border-radius:18px;background:color-mix(in srgb,var(--surface-lowest) 90%,transparent);box-shadow:0 12px 34px #30312f29;padding:8px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.mobile-ribbon-button{display:grid;min-width:0;min-height:54px;place-items:center;gap:3px;border:0;border-radius:12px;background:transparent;color:var(--on-variant);font-size:.72rem;font-weight:800}.mobile-ribbon-button svg{width:20px;height:20px}.mobile-ribbon-button span{overflow:hidden;max-width:100%;text-overflow:ellipsis;white-space:nowrap}.mobile-ribbon-button.active{background:#0164641a;color:var(--primary)}.mobile-ribbon-button:disabled{opacity:.36}.studio-page,.setup-page,.settings-content,.export-page,.editor-right-panel{padding-bottom:48px}.page-heading{align-items:stretch;flex-direction:column}.canvas-size-grid,.source-grid,.settings-grid{grid-template-columns:1fr 1fr}.export-main-card{grid-template-columns:1fr}.editor-shell{grid-template-columns:1fr;grid-template-rows:auto auto auto;grid-template-areas:"topbar" "canvas" "right";height:auto;min-height:100vh;overflow:visible;padding-bottom:88px}.export-shell{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;grid-template-areas:"topbar" "export"}.editor-right-panel{min-width:0;border-left:0;border-top:1px solid var(--outline-variant)}.editor-right-panel-resize{display:none}.editor-top-actions{gap:8px}.canvas-workbench{height:min(860px,calc(100svh - 134px))}.canvas-frame.landscape-frame{width:100%}.canvas-frame.portrait-frame{height:auto;max-width:none}.settings-nav{position:static;width:100%}.settings-shell{flex-direction:column}.settings-content{width:100%;margin-left:0}.wide-card,.account-card{grid-column:1 / -1}}@media(max-width:680px){.signin-card{padding:28px 20px}.studio-page,.setup-page,.settings-content{padding:28px 18px}.setup-page{padding-bottom:64px}.project-grid,.source-grid,.canvas-size-grid,.settings-grid,.export-main-card{grid-template-columns:1fr}.export-page{padding:28px 18px 64px}.color-key-preview-frame{min-height:360px;padding:12px}.new-project-card{grid-template-columns:auto 1fr;grid-template-rows:auto auto;place-items:center start;align-content:center;min-height:96px;gap:4px 14px;border-radius:14px;padding:18px;text-align:left}.new-project-card .add-orb{grid-row:1 / 3;width:46px;height:46px;font-size:1.5rem}.new-project-card strong{align-self:end}.new-project-card span:last-child{align-self:start}.setup-actions,.offline-card{align-items:stretch;flex-direction:column}.setup-actions{margin-bottom:18px}.custom-canvas{grid-template-columns:1fr}.editor-topbar{align-items:center;flex-direction:row;justify-content:flex-start;height:auto;gap:12px;padding:12px}.editor-brand{min-width:0;gap:10px}.editor-brand strong{white-space:nowrap}.editor-top-actions{margin-left:auto}.canvas-scroll{padding-inline:10px}}.loading-screen{display:grid;place-items:center;min-height:50vh;width:100%;color:var(--primary);font-family:Epilogue,system-ui,sans-serif;font-size:1.25rem;font-weight:700;animation:loadingPulse 1.5s infinite ease-in-out}@keyframes loadingPulse{0%,to{opacity:.6;transform:scale(.98)}50%{opacity:1;transform:scale(1)}}
