:root{--ink:#3d3551;--muted:#817889;--blush:#fce6eb;--cream:#fffaf1;--paper:#fff;--lilac:#eee8ff;--rose:#f46e8f;--teal:#50b7ae;--stroke:#ece5e0;--shadow:0 13px 35px rgba(72,47,76,.09)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f9f7f5;color:var(--ink);font-family:'Trebuchet MS',Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.43}button:focus-visible,input:focus-visible{outline:3px solid #7bb6d9;outline-offset:2px}.site-shell{max-width:1800px;margin:0 auto}.site-header{height:95px;background:linear-gradient(105deg,#fffaf5,#fff6fa 48%,#f5f1ff);border-bottom:1px solid var(--stroke);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(16px,3vw,47px);gap:16px}.branding{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;flex-shrink:0}.brand-art{width:65px;height:65px;border-radius:50%;background:#ffdfe8;overflow:hidden;border:4px solid #fff;box-shadow:0 3px 12px rgba(100,65,88,.14)}.brand-art img{width:100%;height:100%;object-fit:cover;object-position:50% 53%;transform:scale(1.65)}.brand-copy{display:flex;flex-direction:column;line-height:1.04}.small-brand{font-size:10px;letter-spacing:2.3px;font-weight:bold;color:#a36a86}.brand-copy strong{font-family:Georgia,serif;font-size:30px;letter-spacing:-1.1px}.brand-copy strong span{color:var(--rose);font-style:italic}.brand-copy small{font-size:11px;margin-top:5px;letter-spacing:.6px;color:#7d7184}.header-actions{display:flex;align-items:center;gap:11px}.header-note{color:#947e8a;font-family:Georgia,serif;font-style:italic;font-size:15px;margin-right:12px}.pill-button{padding:11px 18px;border-radius:100px;border:1.5px solid #efdae3;background:white;font-weight:bold;color:#63485d;font-size:13px}.pill-button.primary{border-color:#ef7692;background:#f27394;color:white;box-shadow:0 4px 0 #db5678}.pill-button:hover,.arrow-button:hover{filter:brightness(.97)}#show-gallery{display:none}.page-grid{display:grid;grid-template-columns:293px minmax(0,1fr);align-items:start;min-height:calc(100vh - 150px)}.sidebar{background:#fffdfb;border-right:1px solid var(--stroke);padding:26px 16px 26px 19px;position:sticky;top:0;max-height:calc(100vh);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#efdce4 transparent}.sidebar-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.eyebrow{font-size:10px;letter-spacing:1.85px;color:#bb7c9c;font-weight:900;margin:0 0 7px}.sidebar h2{font-family:Georgia,serif;font-size:23px;letter-spacing:-.7px;margin:0}.count-badge{display:flex;background:#f8e5ec;border-radius:50px;font-size:13px;font-weight:bold;align-items:center;justify-content:center;width:40px;height:33px;color:#b85e80}.search-wrap{display:block}.search-wrap input{width:100%;border:1.4px solid #e9dfe2;background:#fff;border-radius:12px;padding:12px 14px;color:#47394d;font-size:13px}.search-wrap input::placeholder{color:#b0a3b0}.category-row{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0 14px}.category-row button{font-size:11px;padding:7px 10px;border-radius:100px;border:1px solid #e8dee1;background:#fff;color:#736474;font-weight:bold}.category-row button.active{background:#5bbab4;border-color:#5bbab4;color:white}.gallery-count{font-size:11px;color:#96889b;margin:0 0 12px}.gallery-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.picture-card{border:2px solid transparent;background:transparent;border-radius:15px;padding:5px 4px 9px;text-align:center;color:#65576b;min-width:0}.picture-card:hover{background:#fff3f6;border-color:#ffdfeb}.picture-card.active{background:#fff0f4;border-color:#f27a97;box-shadow:0 3px 8px rgba(224,84,117,.10)}.picture-thumbnail{background:#fff;width:100%;aspect-ratio:3/4;border-radius:10px;overflow:hidden;display:flex;justify-content:center;align-items:center;border:1px solid #eee7e6}.picture-thumbnail img{width:100%;height:100%;object-fit:contain}.picture-card strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:11px;line-height:1.35;margin-top:7px;min-height:30px}.sidebar-extra{margin-top:22px;border-radius:17px;background:#eff8f8;padding:17px 14px;text-align:center}.sidebar-extra-title{font-family:Georgia,serif;font-size:18px;font-weight:bold;color:#37766e;margin:2px 0 7px}.sidebar-extra p:not(.sidebar-extra-title){font-size:12px;color:#62807b;line-height:1.6}.sidebar-extra button{color:#397d76}.main-panel{padding:30px clamp(13px,2.7vw,40px) 22px;min-width:0}.workspace-header{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin:0 0 19px}.workspace-header h1{font-family:Georgia,serif;letter-spacing:-.8px;font-size:clamp(24px,2.5vw,36px);font-weight:700;margin:0 0 7px;line-height:1.16}.workspace-header .subtitle{margin:0;color:#88798a;font-size:13px;line-height:1.5}.color-dot{display:inline-block;background:var(--rose);border-radius:50%;width:7px;height:7px;margin-right:5px}.page-number{flex-shrink:0;white-space:nowrap;font-size:12px;font-weight:bold;color:#b56b8a;background:#fce9ee;padding:10px 13px;border-radius:100px}.studio-grid{display:grid;grid-template-columns:210px minmax(0,1fr);gap:20px;align-items:start}.supplies-panel,.artwork-panel{background:#fff;border:1px solid #efe7e5;border-radius:20px;box-shadow:var(--shadow)}.supplies-panel{padding:20px 15px 17px}.supplies-top h2{font-family:Georgia,serif;margin:0;color:#3b3450;font-size:24px}.supplies-top>p:last-child{font-size:12px;color:#998d9a;margin:7px 0 14px}.color-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px 7px}.swatch{position:relative;border:2.5px solid white;outline:1px solid #f3edf0;border-radius:50%;width:30px;height:30px;padding:0;box-shadow:0 1px 4px rgba(27,20,48,.09);transition:transform .1s}.swatch:hover{transform:scale(1.12)}.swatch.selected{outline:3px solid #453750;outline-offset:2px;transform:scale(.97)}.swatch.selected:after{content:"";position:absolute;inset:9px;border-radius:50%;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.10)}.swatch[style*="255, 255, 255"]{outline-color:#ccc}.custom-color-row{border:1px dashed #e4cada;border-radius:12px;display:flex;align-items:center;gap:8px;margin-top:15px;padding:9px 10px;font-size:12px;font-weight:bold;color:#77667b;cursor:pointer;position:relative}.custom-color-dot{background:#fc718c;width:22px;height:22px;border-radius:50%;border:2px solid white;box-shadow:0 0 0 1px #e7d4d5}.custom-color-row input{opacity:0;position:absolute;inset:0;width:100%;height:100%;cursor:pointer}.panel-divider{height:1px;background:#f0e8e5;margin:20px 0 17px}.tools-eyebrow{margin-bottom:12px}.tool-stack{display:grid;gap:8px}.tool{border:1.5px solid #ece6ec;background:#fff;display:flex;align-items:flex-start;flex-direction:column;text-align:left;gap:4px;border-radius:12px;padding:11px 12px;color:#51475a;width:100%}.tool-title{font-weight:900;font-size:13px}.tool small{font-size:10.5px;line-height:1.4;color:#978b9c}.tool.selected{background:#f0f9f7;border-color:#80c6c1;box-shadow:inset 3px 0 0 #5abbad}.tool.selected .tool-title{color:#207c77}.brush-group{margin:19px 0 6px;opacity:.45}.brush-group.active{opacity:1}.brush-label{display:flex;justify-content:space-between;font-size:12px;font-weight:bold}.brush-label span{font-size:12px;color:#9d7da0}.brush-group input{accent-color:#52b3ad;width:100%;margin:15px 0 0;cursor:pointer}.brush-sizes{display:flex;justify-content:space-between;color:#a59ca6;font-size:10px}.tip-box{border-radius:12px;padding:12px 11px;font-size:11px;background:#fff9e9;color:#91744c;line-height:1.55;margin-top:20px}.artwork-panel{padding:13px 14px 15px;min-width:0}.canvas-topline{display:flex;align-items:center;justify-content:space-between;padding:1px 5px 11px}.paper-caption{font-weight:bold;font-size:10px;letter-spacing:1.7px;color:#ac90a4}.save-status{font-size:11px;color:#62a294;display:inline-flex;align-items:center;gap:6px}.save-status:before{content:"";width:7px;height:7px;border-radius:50%;background:#7cc6a8}.canvas-holder{min-height:410px;background:repeating-linear-gradient(45deg,#f5f1ee,#f5f1ee 8px,#f8f5f2 8px,#f8f5f2 16px);padding:13px;position:relative;border-radius:13px;display:flex;align-items:flex-start;justify-content:center;overflow:hidden}.paper{width:min(100%,580px);position:relative;background:white;box-shadow:0 5px 20px rgba(80,59,72,.14);line-height:0;touch-action:none}.paper canvas{display:block;width:100%;height:auto}.paper #paint-canvas{background:white;cursor:crosshair;touch-action:none}.paper #line-canvas{position:absolute;inset:0;pointer-events:none}.loading-cover{position:absolute;inset:0;background:rgba(255,253,250,.90);z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;color:#a36481}.loading-cover[hidden]{display:none}.loading-cover strong{font-family:Georgia,serif;font-size:18px}.loading-cover small{font-size:12px;color:#a89baa}.loading-bubble{width:48px;height:48px;border:6px solid #f4deed;border-top-color:#ed7a9a;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.canvas-bottom{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:13px 3px 0}.canvas-bottom p{font-size:11px;color:#998e9b;margin:0;line-height:1.4}.page-arrows{display:flex;gap:8px}.arrow-button{white-space:nowrap;border:1px solid #e8dfeb;background:#fff;border-radius:10px;font-size:11px;padding:10px 12px;font-weight:bold;color:#675e7a}.arrow-button:last-child{background:#e9f7f4;color:#368b82;border-color:#d5ebe6}.action-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;flex-wrap:wrap}.action-row>div{display:flex;flex-wrap:wrap;gap:9px}.action-row button{border:1px solid #e8dde3;border-radius:12px;background:#fff;padding:12px 17px;font-weight:bold;font-size:13px;color:#655569;box-shadow:0 3px 7px rgba(50,50,60,.035)}.action-row button:hover:not(:disabled){background:#fff9fb}.action-row .download-button{background:#f37594;color:white;border-color:#f37594;box-shadow:0 4px 0 #d9577a}.action-row .download-button:hover{background:#e95f84}.privacy-note{font-size:11px;color:#998b97;line-height:1.5;margin:16px 0 0}.footer{padding:21px 35px;display:flex;align-items:center;justify-content:space-between;background:#f0e9f1;color:#8b778b;font-size:11px;gap:12px}.footer span:first-child{font-family:Georgia,serif;font-weight:bold;font-size:14px}.modal-backdrop{position:fixed;inset:0;background:rgba(44,33,53,.46);z-index:50;display:flex;align-items:center;justify-content:center;padding:20px}.modal-backdrop[hidden]{display:none}.modal{background:#fff;max-width:425px;width:100%;border-radius:25px;padding:32px;text-align:center;box-shadow:0 25px 100px rgba(30,20,35,.2)}.modal-decoration{color:#ef8fa8;letter-spacing:14px;font-size:20px}.modal h2{font-family:Georgia,serif;font-size:25px;margin:15px 0 10px}.modal p{line-height:1.6;color:#8a7d8c;font-size:14px}.modal-actions{display:flex;gap:9px;margin-top:26px;justify-content:center}.modal-actions button{border-radius:11px;border:1px solid #eae1e6;background:white;padding:12px 15px;font-weight:bold}.modal-actions button:last-child{background:#ed7393;color:white;border-color:#ed7393}#print-image{display:none}.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}
@media(max-width:1240px){.page-grid{grid-template-columns:240px minmax(0,1fr)}.studio-grid{grid-template-columns:185px minmax(0,1fr);gap:14px}.sidebar{padding-inline:12px}.main-panel{padding-inline:18px}.swatch{width:27px;height:27px}.header-note{display:none}.canvas-holder{padding:9px}}
@media(max-width:950px){.site-header{height:auto;padding:14px 16px}.page-grid{display:block}.sidebar{position:fixed;left:0;top:0;bottom:0;max-height:none;width:min(350px,90vw);box-shadow:20px 0 70px rgba(20,20,20,.13);z-index:25;transform:translateX(-110%);transition:transform .2s ease;border-right:2px solid #ecd6df}.sidebar.open{transform:translateX(0)}#show-gallery{display:inline-block}.main-panel{padding:20px 16px}.studio-grid{grid-template-columns:210px minmax(0,1fr)}.sidebar .picture-card{padding-bottom:9px}.header-actions .pill-button.primary{display:none}}
@media(max-width:700px){.site-header{gap:6px}.brand-art{height:51px;width:51px}.brand-copy strong{font-size:23px}.brand-copy small{font-size:9px}.small-brand{font-size:8px}.header-actions .pill-button{font-size:11px;padding:10px 11px}.studio-grid{display:flex;flex-direction:column;gap:13px}.artwork-panel,.supplies-panel{width:100%}.supplies-panel{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;padding:16px}.supplies-top{grid-column:1/-1}.supplies-top h2{font-size:22px}.supplies-top>p:last-child{margin-bottom:5px}.color-grid{grid-column:1/-1;grid-template-columns:repeat(10,minmax(0,1fr));gap:8px}.swatch{width:30px;height:30px}.custom-color-row{grid-column:1/-1;margin-top:3px}.panel-divider,.tools-eyebrow{display:none}.tool-stack{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.tool{padding:10px 7px;min-height:58px}.tool-title{font-size:12px}.tool small{font-size:10px}.brush-group{grid-column:1/-1;margin:10px 0 0}.tip-box{grid-column:1/-1;margin-top:0}.canvas-holder{min-height:320px}.canvas-bottom{flex-wrap:wrap}.canvas-bottom p{width:100%}.page-arrows{width:100%;justify-content:space-between}.action-row .history-buttons,.action-row .finish-buttons{flex:1;width:100%}.action-row button{flex:1;padding:12px 10px}.workspace-header h1{font-size:24px}.page-number{padding:9px;font-size:11px}.footer{flex-direction:column;text-align:center;padding:16px}.artwork-panel{padding:9px}.canvas-topline{padding:5px 5px 10px}}
@media(max-width:385px){.swatch{width:25px;height:25px}.color-grid{gap:6px}.tool small{display:none}.tool{min-height:40px}.page-arrows .arrow-button{padding:10px}.brand-copy strong{font-size:20px}}
@media print{@page{margin:0.35in}body{background:white!important}.site-shell,.modal-backdrop,#upload-input{display:none!important}#print-image{display:block!important;position:fixed;inset:0;margin:auto;width:auto;height:auto;max-width:100%;max-height:98%;object-fit:contain}}

/* v2: Keep touch gestures focused on the coloring surface; 4 tools wrap neatly on phones. */
@media(max-width:700px){.tool-stack{grid-template-columns:repeat(2,minmax(0,1fr))}}
#paint-canvas{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}

/* v4.0 zoom and movement controls */
.zoom-toolbar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:2px 3px 11px}
.zoom-button,.zoom-label-button{border:1.5px solid #dfdbe7;background:#fff;border-radius:10px;color:#61546d;font-weight:800;min-height:37px;box-shadow:0 2px 5px rgba(39,28,53,.04)}
.zoom-button{width:39px;font-size:24px;line-height:1}
.zoom-label-button{padding:7px 12px;font-size:12px}
.zoom-button:hover:not(:disabled),.zoom-label-button:hover:not(:disabled){background:#f1f9f8;border-color:#93d0c8}
#zoom-value{min-width:59px;text-align:center;font-weight:900;color:#277c76;font-size:13px;font-variant-numeric:tabular-nums}
#pan-toggle[aria-pressed="true"]{background:#daf4ed;border-color:#56b9aa;color:#246e64;box-shadow:inset 0 0 0 1px #56b9aa}
.canvas-holder{justify-content:flex-start;overflow:auto;max-height:min(74vh,760px);overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#bfc9cd #f7f4f3}
.zoom-stage{display:flex;align-items:flex-start;justify-content:center;width:max-content;min-width:100%;min-height:100%}
.zoom-stage .paper{flex:0 0 auto;max-width:none}
.canvas-holder.pan-active .paper #paint-canvas{cursor:grab}
.canvas-holder.pan-dragging .paper #paint-canvas{cursor:grabbing}
@media(max-width:700px){.canvas-holder{max-height:65vh}.zoom-toolbar{gap:6px}.zoom-label-button{padding:8px 10px;font-size:11px}.zoom-button{width:37px}}
@media(max-width:390px){.zoom-toolbar{gap:4px}.zoom-label-button{padding-inline:8px}}
