@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Outfit:wght@400;500;600;700;800&display=swap');
:root{--ink:#202039;--muted:#65677b;--purple:#7356cc;--cream:#faf8f4;--line:#e7e4e8}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--cream);font-family:'DM Sans',system-ui,sans-serif}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.site-header{height:84px;display:flex;align-items:center;justify-content:space-between;padding:0 max(5%,calc((100vw - 1240px)/2));background:#fff;position:relative;z-index:3;border-bottom:1px solid #f0edf2}.brand{display:flex;gap:12px;align-items:center;font:800 19px/1 'Outfit',sans-serif;letter-spacing:.06em}.brand b{color:#805dd3}.brand small{display:block;font-size:10px;letter-spacing:.4em;margin-top:5px}.brand-mark{display:inline-grid;place-items:center;color:#fff;background:#7959cf;border-radius:13px;width:42px;height:42px;font-size:29px}.site-header nav{display:flex;gap:31px;align-items:center;font-size:14px;font-weight:700}.site-header nav a:hover{color:var(--purple)}.nav-cta{background:#ece6ff;padding:12px 18px;border-radius:99px;color:#5d40a9}.menu-toggle{display:none;background:transparent;border:0;font-size:26px}.hero{background:#17162b;color:#fff;position:relative;overflow:hidden;min-height:650px}.hero-glow{position:absolute;inset:0;background:radial-gradient(ellipse at 83% 30%,#5c447f 0,transparent 46%),radial-gradient(ellipse at 22% 80%,#253b53 0,transparent 45%)}.hero-inner{position:relative;z-index:1;width:min(1240px,90%);margin:auto;padding:116px 0 96px}.hero-inner>*{max-width:590px}.eyebrow,.kicker{font-size:12px;letter-spacing:.17em;font-weight:800;color:#a68bef}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#7de6bf;margin-right:9px}.hero h1,.section h2{font-family:'Outfit',sans-serif;letter-spacing:-.055em}.hero h1{font-size:clamp(48px,5.3vw,80px);line-height:1.08;margin:27px 0 24px}.hero h1 em,.section h2 em{font-style:normal;color:#bba0ff}.hero p{color:#cbc9dc;font-size:17px;line-height:1.85}.hero-actions{display:flex;gap:13px;margin-top:31px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:20px;border-radius:12px;padding:16px 21px;font-size:14px;font-weight:800;border:1px solid transparent;transition:transform .15s}.btn:hover{transform:translateY(-2px)}.primary{background:#bba0ff;color:#22183b}.secondary{border-color:#666078;color:#fff}.hero-stats{display:flex;gap:24px;margin-top:65px;font-size:12px;color:#bbb9ca}.hero-stats strong{color:#fff}.hero-art{position:absolute;width:340px;right:max(8%,calc((100vw - 1200px)/2));top:85px;transform:rotate(6deg)}.art-frame{padding:14px;background:#fff;border-radius:23px;box-shadow:0 35px 90px #0c0a1b90}.art-frame svg{display:block;width:100%;border-radius:14px}.floating-tag{position:absolute;background:#fff;color:#302843;padding:12px 17px;border-radius:12px;box-shadow:0 15px 35px #0004;font-size:12px;font-weight:800}.tag-one{top:95px;left:-80px;transform:rotate(-6deg)}.tag-two{bottom:45px;right:-50px;transform:rotate(-6deg)}.section{max-width:1240px;margin:auto;padding:100px 5%}.section-head{display:flex;justify-content:space-between;gap:35px;align-items:end;margin-bottom:38px}.section h2{font-size:clamp(34px,4vw,54px);line-height:1.12;margin:12px 0}.section h2 em{color:#8763d0}.section-head>p{max-width:355px;color:var(--muted);line-height:1.8}.collection-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.collection-card{background:#fff;border:1px solid #ece8ee;border-radius:20px;overflow:hidden}.card-art{height:185px;display:grid;place-items:center;font-size:95px;background:linear-gradient(135deg,#eadcfc,#f9efff)}.nature .card-art{background:linear-gradient(135deg,#d2eddb,#f0f7df)}.tattoo .card-art{background:linear-gradient(135deg,#f5d5de,#faebdc)}.kids .card-art{background:linear-gradient(135deg,#ffe5b9,#f6efb9)}.machines .card-art{background:linear-gradient(135deg,#d3e5f4,#d5dbf4)}.card-copy{padding:26px}.tag{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:#8b64cf}.card-copy h3{font:700 23px 'Outfit',sans-serif;margin:12px 0}.card-copy p{font-size:14px;line-height:1.7;color:var(--muted);min-height:72px}.coming{display:block;font-size:12px;color:#7a58c3;font-weight:800;margin-top:20px}.section-note{font-size:12px;color:#868394;margin-top:20px}.demo-section{padding-top:35px}.demo-shell{border-radius:23px;background:#fff;border:1px solid var(--line);overflow:hidden;box-shadow:0 15px 45px #241b3810}.demo-toolbar{display:flex;align-items:center;justify-content:space-between;padding:22px 27px;border-bottom:1px solid var(--line)}.demo-toolbar strong{display:block;font:700 20px 'Outfit',sans-serif}.demo-toolbar small{color:#8b8896}.reset-btn{border:1px solid var(--line);border-radius:9px;padding:10px 14px;background:#fff;color:#4f4660;font-size:13px;font-weight:700}.demo-body{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.7fr)}.demo-canvas{background:#f1eef5;padding:30px;display:grid;place-items:center}.demo-canvas svg{max-width:420px;width:100%;background:#fff;border-radius:12px;box-shadow:0 8px 25px #26213918;touch-action:manipulation}.fill-region{cursor:crosshair;transition:fill .12s}.fill-region:hover{stroke:#7755d5;stroke-width:6}.palette-panel{padding:37px 28px}.palette-panel h3{font:700 24px 'Outfit',sans-serif;margin:0 0 8px}.palette-panel p{font-size:14px;color:var(--muted);line-height:1.7}.swatches{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:24px 0}.swatch{width:100%;aspect-ratio:1;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 1px #e6e2e9}.swatch.active{box-shadow:0 0 0 3px #302541}.color-tools{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:23px;font-size:14px;font-weight:700}.color-tools input{width:57px;height:40px;border:0;background:transparent}.full{width:100%;margin-top:24px;border:0}.demo-hint{font-size:12px!important}.steps{text-align:center}.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;text-align:left;margin-top:40px}.steps-grid>div{background:#fff;padding:30px;border-radius:18px;border:1px solid var(--line)}.step-num{font:800 37px 'Outfit',sans-serif;color:#ad8de8}.steps-grid h3{font:700 21px 'Outfit',sans-serif}.steps-grid p{color:var(--muted);line-height:1.75;font-size:14px}.about{padding-top:30px}.about-panel{display:flex;align-items:center;justify-content:space-between;background:#e9e2f7;border-radius:25px;padding:70px;gap:50px}.about-panel>div:first-child{max-width:690px}.about-panel p{color:#625d74;line-height:1.8}.about-symbol{font-size:170px;color:#a187da}.update-section{padding-top:20px}.update-panel{text-align:center;background:#19172c;color:#fff;border-radius:25px;padding:70px 30px}.update-panel h2{max-width:750px;margin:18px auto}.update-panel p{max-width:600px;margin:0 auto 25px;line-height:1.8;color:#ccc9df}footer{text-align:center;background:#fff;padding:45px 20px;color:#737081;font-size:13px}.footer-brand{display:flex;align-items:center;justify-content:center;gap:10px;color:#28223b}.footer-brand .brand-mark{width:34px;height:34px;font-size:23px}footer small{display:block;margin-top:24px;color:#93909c}@media(max-width:1000px){.hero-art{opacity:.4;right:-70px}.hero-inner{padding:90px 0}.hero-inner>*{max-width:630px}.collection-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.site-header{height:70px;padding:0 5%}.brand{font-size:15px}.brand-mark{width:36px;height:36px}.menu-toggle{display:block}.site-header nav{display:none;position:absolute;top:70px;left:0;right:0;background:#fff;padding:20px 5%;box-shadow:0 15px 20px #0001;flex-direction:column;align-items:stretch;gap:16px}.site-header nav.open{display:flex}.hero{min-height:0}.hero-inner{padding:76px 0}.hero h1{font-size:49px}.hero p{font-size:15px}.hero-art{display:none}.hero-actions{flex-wrap:wrap}.hero-stats{flex-wrap:wrap;margin-top:43px;gap:13px}.section{padding:70px 5%}.section-head{display:block}.collection-grid,.steps-grid,.demo-body{grid-template-columns:1fr}.card-art{height:145px;font-size:72px}.card-copy p{min-height:0}.demo-canvas{padding:14px}.palette-panel{padding:26px}.about-panel{padding:36px 27px}.about-symbol{display:none}.update-panel{padding:50px 22px}}

/* Coloring Playground v0.2 */
.toolbar-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.toolbar-actions button{white-space:nowrap}.demo-canvas{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:12px;min-width:0}.zoom-toolbar{display:flex;align-items:center;justify-content:center;gap:10px}.zoom-toolbar button{background:white;border:1px solid #d9d3e4;border-radius:9px;padding:7px 14px;font-weight:800;color:#493668}.zoom-toolbar span{min-width:55px;text-align:center;font-size:13px;font-weight:800}.art-viewport{width:100%;max-width:490px;aspect-ratio:420/460;overflow:hidden;background:white;border-radius:12px;touch-action:none;position:relative;margin:0 auto;box-shadow:0 8px 25px #26213918}.art-viewport svg{display:block;width:100%;height:100%;max-width:none;box-shadow:none;border-radius:0;touch-action:none;transform-origin:50% 50%;user-select:none;-webkit-user-select:none}.gesture-hint{text-align:center;font-size:12px;color:#655e78;margin:0;line-height:1.5}.mode-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:15px 0}.mode-switch button{padding:11px 5px;background:#f5f2fa;border:1px solid #ded8e8;border-radius:10px;font-size:12px;font-weight:800;color:#514663}.mode-switch button.selected{background:#7255c4;color:white;border-color:#7255c4}.brush-tools{padding:12px;background:#f8f5fc;border-radius:12px;margin:12px 0}.brush-tools[hidden]{display:none}.brush-tools label{display:flex;justify-content:space-between;gap:10px;font-size:13px;font-weight:700}.brush-tools input[type=range]{width:100%;accent-color:#7959cf;margin:12px 0}.brush-tools .checkbox-row{justify-content:flex-start;align-items:center}.brush-tools .checkbox-row input{accent-color:#7959cf}.brush-tools p{font-size:11px;line-height:1.4;margin:10px 0 0}.fill-region:hover{stroke:inherit;stroke-width:5}@media(max-width:700px){.demo-toolbar{padding:16px;gap:10px;flex-wrap:wrap}.toolbar-actions button{padding:8px}.art-viewport{max-width:420px}.gesture-hint{font-size:11px}}

/* v0.9 Color Studio */
.mixer-card{margin:22px 0;padding:18px;border:1px solid #ded7ed;background:#faf8ff;border-radius:18px}.mixer-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.mixer-head h4{margin:0 0 4px;font-size:18px}.mixer-head p,.mixer-note{font-size:12px;color:#676079;line-height:1.5;margin:0}.mixed-preview{display:block;width:58px;height:58px;border:3px solid white;outline:1px solid #c7bed5;border-radius:14px;flex-shrink:0}.mixer-tabs{display:flex;gap:7px;margin:16px 0}.mixer-tab{flex:1;padding:10px 6px;border:1px solid #d7cce7;background:#fff;border-radius:10px;font-size:13px;font-weight:700;color:#51496a}.mixer-tab.selected{background:#7356cc;color:white;border-color:#7356cc}.mixer-range{display:block;font-size:13px;font-weight:700;margin:13px 0;color:#403957}.mixer-range output{float:right;font-variant-numeric:tabular-nums}.mixer-range input{display:block;width:100%;margin-top:10px;accent-color:#7356cc;touch-action:pan-y}.mixer-range .hue-track{accent-color:#8d61d7}.mixer-footer{display:flex;align-items:end;gap:10px;margin:16px 0}.mixer-footer label{font-size:12px;font-weight:700;flex:1;min-width:0}.mixer-footer input{display:block;width:100%;padding:11px 9px;margin-top:5px;border:1px solid #d7cce7;border-radius:9px;font-family:monospace;font-size:15px;text-transform:uppercase;background:white;color:#27233a}.mixer-save{padding:12px 11px;border:0;background:#7356cc;color:white;border-radius:10px;font-weight:700;font-size:13px;white-space:nowrap}.palette-title{font-size:13px;font-weight:800;margin:18px 0 9px}.palette-title span{color:#756c8a;font-weight:500}.mini-swatches{display:flex;flex-wrap:wrap;gap:9px;min-height:39px}.mini-swatch{width:38px;height:38px;border:3px solid white;outline:1px solid #d1c9dc;border-radius:50%;box-shadow:0 1px 2px #0001}.mini-swatch:focus-visible{outline:3px solid #7356cc}.empty-colors{font-size:12px;color:#81798f}.mixer-note{margin-top:14px}#hslMixer[hidden],#rgbMixer[hidden]{display:none!important}@media(max-width:420px){.mixer-card{padding:13px}.mixer-footer{flex-wrap:wrap}.mixer-save{flex:1}}

/* v1.0 compact coloring workspace */
.demo-body{display:block}.demo-canvas{padding:22px 20px;display:flex;align-items:center;gap:12px}.art-viewport{max-width:520px}.demo-canvas>.palette-panel{width:100%;max-width:760px;margin:0 auto;padding:15px;background:#fff;border:1px solid #e6dfec;border-radius:18px}.workspace-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.workspace-heading strong{font:700 19px 'Outfit',sans-serif}.workspace-heading button{background:#f5f1fa;color:#60488c;border:1px solid #dcd3e9;border-radius:10px;padding:9px 12px;font-weight:750}.workspace-current{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 0;font-size:13px;color:#6b607d}.workspace-current strong{font-family:monospace;color:#393047}.workspace-chip{width:30px;height:30px;border-radius:50%;border:3px solid white;outline:1px solid #c6bcd5}.workspace-current button{margin-left:auto;border:1px solid #d7cbe7;background:white;border-radius:10px;padding:8px 10px;font-weight:700;color:#684db1}.workspace-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:12px 0}.workspace-tabs button{min-width:0;padding:12px 4px;border:1px solid #ded5e9;background:#f6f2fa;border-radius:10px;color:#55466e;font-weight:750;font-size:13px}.workspace-tabs button.selected{background:#7356cc;color:#fff;border-color:#7356cc}.workspace-page[hidden],#workspaceControls[hidden]{display:none!important}.workspace-page .swatches{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin:12px 0}.workspace-page .swatch{width:46px;height:46px;flex:0 0 46px}.workspace-page .color-tools{margin:10px 0 0;padding:12px 0 0}.workspace-page .mixer-card{margin:0;padding:16px}.workspace-page .palette-title{margin:14px 0 8px}.workspace-tip{font-size:12px;color:#6b607d}.demo-canvas .palette-panel #previewChoice{max-width:450px}.demo-canvas .palette-panel .mode-switch{max-width:650px}.demo-canvas .palette-panel #savePicture{margin-top:15px}.demo-canvas .palette-panel #regionStats{margin:7px 0}.demo-canvas .palette-panel .mixer-note{margin-top:10px}@media(min-width:1050px){.demo-canvas{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(380px,1fr);align-items:start;gap:12px 24px}.zoom-toolbar{grid-column:1;grid-row:1}.art-viewport{grid-column:1;grid-row:2}.gesture-hint{grid-column:1;grid-row:3}.demo-canvas>.palette-panel{grid-column:2;grid-row:1 / span 3;position:sticky;top:12px}}@media(max-width:700px){.demo-canvas{padding:12px;gap:8px}.demo-canvas>.palette-panel{padding:12px}.workspace-heading strong{font-size:17px}.workspace-page .swatch{width:42px;height:42px;flex-basis:42px}.workspace-tabs button{font-size:12px}.workspace-current button{margin-left:0}}

/* v1.1 compact dock: artwork -> swatches, no instructional wall between */
.demo-canvas{gap:7px}.gesture-hint{display:none}
.color-dock{width:100%;max-width:760px;margin:0 auto;background:#fff;border:1px solid #e6dfec;border-radius:16px;padding:9px 12px;position:sticky;bottom:8px;z-index:12;box-shadow:0 8px 26px #30234b25}
.dock-top{display:flex;align-items:center;gap:9px;justify-content:space-between}.dock-top .mode-switch{margin:0;flex:1;min-width:0;gap:5px}.dock-top .mode-switch button{font-size:12px;padding:10px 4px}.dock-current{display:flex;align-items:center;gap:5px;font:700 11px monospace;white-space:nowrap}.dock-current .workspace-chip{width:23px;height:23px;flex:none}.dock-more{border:1px solid #d8cce8;border-radius:9px;background:#f5f0fb;color:#594187;padding:10px 8px;font-weight:800;font-size:12px;white-space:nowrap}
.color-dock .swatches{display:flex;flex-wrap:nowrap;justify-content:space-between;gap:5px;margin:10px 0 0}.color-dock .swatch{width:35px;height:35px;flex:0 1 35px;min-width:22px;border-width:2px}
.demo-canvas>.palette-panel{margin:0 auto;padding:0;border:0;background:transparent;max-width:760px}.demo-canvas>.palette-panel:not(.is-open){display:none}.demo-canvas>.palette-panel.is-open{padding:12px;border:1px solid #e6dfec;background:#fff}
.workspace-tabs{margin:0 0 12px;grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-extra{margin-top:12px;border-top:1px solid #e9e3f0;padding:12px 0}.workspace-extra summary{cursor:pointer;font-weight:800;color:#58447b}.workspace-extra #previewChoice{width:100%;margin:8px 0}.workspace-extra #savePicture{width:100%}.workspace-extra #modeHelp,.workspace-extra #regionStats{font-size:12px}
@media(min-width:1050px){.demo-canvas{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(350px,1fr);align-items:start;gap:12px 20px}.zoom-toolbar{grid-column:1;grid-row:1}.art-viewport{grid-column:1;grid-row:2}.color-dock{grid-column:2;grid-row:1 / span 2;position:sticky;top:12px;bottom:auto}.demo-canvas>.palette-panel{grid-column:2;grid-row:3;position:static}.gesture-hint{display:none}}
@media(max-width:700px){.demo-canvas{padding:10px 7px}.color-dock{padding:8px 7px;bottom:4px;border-radius:13px}.dock-top{flex-wrap:wrap;gap:5px}.dock-top .mode-switch{flex-basis:100%;order:2}.dock-current{order:0}.dock-more{order:1}.color-dock .swatch{width:31px;height:31px;flex-basis:31px}.art-viewport{max-width:520px}}

/* v1.2: editable quick palette */
.slot-actions{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:9px}.slot-actions button{border:1px solid #d8cce8;border-radius:9px;padding:7px 10px;font-size:12px;font-weight:800;color:#5d448d;background:#f5f0fb}.slot-actions .slot-save{background:#7356cc;color:white;border-color:#7356cc}.slot-actions .slot-cancel{background:white}.slot-actions .slot-reset{margin-left:auto;background:white}.slot-actions .slot-note{font-size:11px;color:#6a607c}.slot-actions button[hidden]{display:none!important}@media(max-width:700px){.slot-actions{gap:5px}.slot-actions button{padding:7px 8px;font-size:11px}.slot-actions .slot-note{flex-basis:100%}}

/* v1.3: quick assignment of custom colors */
.slot-actions .slot-replace{background:#7356cc;color:#fff;border-color:#7356cc}.color-dock .swatches.assign-mode{outline:2px dashed #7356cc;outline-offset:4px;border-radius:8px}.color-dock .swatches.assign-mode .swatch{cursor:crosshair;animation:slot-pulse 1.5s ease-in-out infinite alternate}@keyframes slot-pulse{to{outline:2px solid #7356cc;outline-offset:2px}}
