:root{--ink:#49374e;--muted:#9f8da6;--accent:#9565b4;--pink:#cf77aa;--line:#ecdfed;--bg:#fcf8fc}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font-family:'Trebuchet MS',system-ui,sans-serif;font-size:14px}button,input,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;font:inherit;color:inherit;touch-action:manipulation}button,a{transition:background .2s,box-shadow .2s}button:focus-visible,a:focus-visible,input:focus-visible,canvas:focus-visible{outline:3px solid #a37ac5;outline-offset:4px}button:disabled{opacity:.4;cursor:wait}a{color:inherit;text-decoration:none}header{height:97px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line);padding:0 max(4%,calc((100vw - 1480px)/2));background:#fff}.brand{display:flex;align-items:center;gap:13px;font-size:21px;letter-spacing:-.6px;line-height:1.12}.brand b{display:block;font-size:27px;color:#a16caa;font-weight:600}.brand i{font-style:normal;font-size:21px;color:#e5bb71;margin-left:4px}.logo{width:48px;height:53px;border-radius:16px;background:#f3e5f5;display:grid;place-items:center;font-size:37px;color:#a976b8}nav{display:flex;gap:7px;background:#faf5fa;border:1px solid #f1e8f1;padding:5px;border-radius:14px}nav a{padding:12px 20px;border-radius:10px;font-size:12px;color:#ae93b1}nav a.selected{color:#8d5aa6;background:#fff;box-shadow:0 3px 8px #84648912;font-weight:700}.ghost{border:1px solid #e6d7e9;background:white;border-radius:12px;padding:12px 16px;color:#95679d;font-size:12px}main{max-width:1480px;padding:32px 4% 18px;margin:auto}.intro{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:700;color:#ae8cb7;margin:0 0 9px}h1{font-weight:600;font-size:34px;letter-spacing:-1px;margin:0 0 10px}h1 span{margin-left:14px;color:#deb767;font-size:26px}.intro>div>p:last-child{font-size:13px;color:#a28ba8;margin:0}.intro-note{transform:rotate(7deg);font-size:14px;color:#b698bb;text-align:center;line-height:1.5;padding:0 25px}.intro-note b{font-weight:400}.studio{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:26px;align-items:start}.viewer-card{border-radius:23px;border:1px solid #e7daec;background:white;overflow:hidden;box-shadow:0 8px 30px #87609e08}.viewer-top{height:50px;padding:0 24px;display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:1.4px;color:#aa89b1}.viewer-top>span{display:flex;align-items:center;gap:8px}#status{letter-spacing:0;font-size:10px;color:#afa0b4}.status-dot{display:inline-block;width:6px;height:6px;background:#acbf9b;border-radius:50%}#viewer{height:610px;position:relative;background:radial-gradient(ellipse at 50% 38%,#fffdf9 0%,#f3e7f5 55%,#e8dced 100%);overflow:hidden;touch-action:none}#viewer canvas{width:100%;height:100%;display:block;position:relative;z-index:1;touch-action:none;cursor:grab}#viewer canvas:active{cursor:grabbing}.floating-star{position:absolute;color:#c7a0d1;pointer-events:none;font-size:43px;z-index:0}.s1{left:15%;top:16%;transform:rotate(10deg)}.s2{right:14%;top:38%;font-size:31px;color:#d6ad73}.s3{right:23%;top:13%;font-size:18px;color:#d7bddc}.view-presets{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);display:flex;background:#ffffffcf;backdrop-filter:blur(8px);padding:5px;gap:3px;border:1px solid white;border-radius:13px;z-index:3}.view-presets button{border:0;background:none;font-size:11px;padding:10px 16px;border-radius:9px;white-space:nowrap;color:#a18ba7}.view-presets button.active{color:#90609f;background:#f1e7f6;font-weight:700}.rotation-hint{text-align:center;color:#b09cba;font-size:10px;padding:12px 8px 0}.viewer-tools{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;gap:8px}.tools{display:flex;gap:5px;align-items:center}.tools button{border:0;background:#f9f4fa;border-radius:9px;height:37px;width:37px;font-size:21px;color:#a282ad}.tools button.active{background:#e8d8f0;color:#87599e}.divider{width:1px;height:21px;background:#eadfeb;margin:0 5px}.photo{border:0;padding:12px 19px;border-radius:11px;font-size:12px;background:#aa7abb;color:white;box-shadow:0 3px 0 #8c61a0}.scene-strip{display:flex;align-items:center;gap:9px;padding:13px 20px;background:#fdfbfe;border-top:1px solid #f1e8f5}.scene-strip>span{font-size:10px;color:#b4a1bb;margin-right:auto}.scene-strip button{font-size:11px;background:white;border:1px solid #ebdfee;border-radius:9px;padding:9px 12px;color:#a088ac}.scene-strip button.selected{background:#f4e9f8;border-color:#d5bedf;color:#9165a5}.customizer{border:1px solid #eadfeb;border-radius:21px;background:white;overflow:hidden}.custom-head{padding:24px 24px 20px;display:flex;justify-content:space-between;align-items:center}.custom-head .eyebrow{font-size:8px;letter-spacing:1.5px}.custom-head h2{font-size:23px;font-weight:500;letter-spacing:-.6px;margin:0}.custom-head>span{font-size:38px;color:#d5b5d9}.tabs{display:grid;grid-template-columns:repeat(4,1fr);padding:0 12px;border-bottom:1px solid #f0e8f1;gap:4px}.tabs button{border:0;background:white;color:#b8a4be;padding:9px 2px 14px;position:relative;font-size:25px;min-height:68px}.tabs button span{font-size:10px;display:block;margin-top:6px}.tabs button.active{color:#9b6aaa}.tabs button.active:after{content:'';position:absolute;bottom:-1px;left:12px;right:12px;height:3px;background:#b08cbd;border-radius:3px}.panel{padding:23px 24px 20px;min-height:410px}.panel h3{font-size:12px;font-weight:600;margin:0 0 15px}.panel h3:not(:first-child){margin-top:24px}.choices{display:grid;gap:10px}.hairstyles{grid-template-columns:repeat(2,1fr)}.choices button{border:1px solid #ebdfed;border-radius:12px;background:#fffcff;min-height:70px;font-size:11px;color:#ac95b4;padding:10px}.choices button.active{background:#f6ecfa;border-color:#be9ecd;color:#9363a5;box-shadow:0 2px 0 #eee0f4}.hairstyles button>span{display:block;font-size:29px;line-height:1.1;margin-bottom:7px;color:#846173}.swatches{display:grid;grid-template-columns:repeat(6,1fr);gap:13px 11px}.swatch{border:0;aspect-ratio:1;border-radius:50%;background:var(--c);box-shadow:inset 0 -3px 0 #00000012;position:relative;min-width:0}.swatch.active{outline:2px solid var(--c);outline-offset:3px}.swatch.active:after{content:'✓';position:absolute;inset:0;display:grid;place-items:center;font-size:15px;color:var(--check,white)}.custom-color{font-size:11px;color:#af96b6;display:flex;align-items:center;justify-content:space-between;margin-top:18px;padding:9px 11px;background:#fcf8fd;border:1px dashed #e6d7ec;border-radius:9px}.custom-color input{height:28px;width:40px;border:0;padding:0;background:none;cursor:pointer}.small-tip{padding:13px;font-size:11px;color:#ad94b6;line-height:1.7;background:#f8f1fb;border-radius:11px;margin-top:23px}.product-tabs,.nail-mode{display:flex;gap:5px;padding:4px;background:#f7f1f9;border-radius:10px;margin:0 0 21px}.product-tabs button,.nail-mode button{border:0;background:none;flex:1;font-size:10px;padding:10px 5px;border-radius:7px;color:#ab92b5}.product-tabs button.active,.nail-mode button.active{background:white;box-shadow:0 2px 5px #4b295a0a;color:#9161a3;font-weight:600}.slider-label{font-size:11px;color:#a489af;margin-top:20px;display:block}.slider-label output{float:right}.slider-label input{display:block;width:100%;margin:12px 0;accent-color:#b388c0}.text-button{border:0;background:none;color:#a477b4;font-size:11px;padding:10px 0;margin-top:8px;text-decoration:underline;text-underline-offset:4px}.nail-choices{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:0 0 12px}.nail-choice{height:47px;position:relative;display:grid;place-items:center;border:1px solid #e9dced;background:#fefbff;border-radius:9px;font-size:9px;color:#ab94b3}.nail-choice>span{display:block;width:16px;height:23px;background:var(--nail);border:1px solid #0000000a;border-radius:9px 9px 5px 5px;box-shadow:inset 2px 1px 0 #ffffff55}.nail-choice.active{border:2px solid #ba90c9;background:#f5e9fa}.help{font-size:10px;color:#b09abd;margin:8px 0 18px;line-height:1.6}.dress-choices{grid-template-columns:repeat(3,1fr)}.dress-choices button{font-size:25px}.dress-choices button>span{font-size:10px;display:block;margin-top:7px}.accessories{display:flex;gap:7px}.accessories button{flex:1;padding:10px 5px;border:1px solid #ebddee;background:white;border-radius:9px;font-size:10px;color:#a68ab2}.accessories button.active{background:#f6edf9;border-color:#c3a8d1}.custom-footer{border-top:1px solid #f0e7f3;display:flex;align-items:center;flex-direction:column;gap:13px;padding:18px 15px}.custom-footer span{font-size:9px;color:#afa0b6}.custom-footer button{border:0;background:none;color:#b697c0;font-size:10px;text-decoration:underline;text-underline-offset:3px}.paint-banner{margin-top:26px;display:flex;justify-content:space-between;align-items:center;padding:25px 30px;background:#f9edf4;border:1px solid #f0dfe9;border-radius:18px;gap:15px}.paint-banner>div{display:flex;gap:17px;align-items:center}.paint-banner>div>span{font-size:49px;color:#d792ba}.paint-banner h2{font-size:17px;font-weight:500;color:#b17196;margin:0 0 7px}.paint-banner p{font-size:11px;color:#b495a9;margin:0}.paint-banner a{border:1px solid #e1b6cd;background:#fff9fc;padding:13px 20px;border-radius:11px;font-size:12px;color:#b17094;white-space:nowrap}footer{display:flex;justify-content:space-between;font-size:10px;color:#baa5c0;padding-top:23px}#loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;z-index:5;background:#faf4fb;color:#a781b5;text-align:center;padding:25px}#loading[hidden]{display:none}#loading>span{font-size:60px;margin-bottom:15px}#loading b{font-size:16px;font-weight:500}#loading p{font-size:11px;color:#b5a0bf}#loading a{margin-top:15px;text-decoration:underline}dialog{border:1px solid #e5d4ed;border-radius:23px;padding:30px;max-width:min(440px,calc(100vw - 30px));color:var(--ink);text-align:center;box-shadow:0 20px 90px #54346433}dialog::backdrop{background:#4b35575c;backdrop-filter:blur(5px)}dialog>span{font-size:40px;color:#b386c3}dialog h2{font-size:23px;font-weight:500}dialog p{font-size:13px;line-height:1.8;color:#a389ac}dialog>div{display:flex;justify-content:center;gap:10px}dialog button{border:0;border-radius:10px;padding:13px;background:#f4eaf8;font-size:12px}dialog .primary{background:#a77aba;color:white}#toast{position:fixed;left:50%;bottom:25px;transform:translate(-50%,20px);opacity:0;pointer-events:none;transition:.2s;background:#785488;color:white;padding:14px 23px;border-radius:24px;z-index:50;text-align:center;font-size:12px;max-width:90vw}#toast.visible{opacity:1;transform:translate(-50%,0)}
@media(min-width:1450px){#viewer{height:680px}.studio{grid-template-columns:minmax(0,1fr) 370px}}
@media(max-width:1080px){header{padding:0 3%}main{padding:27px 3% 18px}.studio{grid-template-columns:minmax(0,1fr) 310px;gap:18px}.panel{padding:20px}.custom-head{padding:23px 20px}.swatches{gap:11px}#viewer{height:550px}h1{font-size:29px}nav a{padding:12px}.viewer-tools{padding:13px}.tools{gap:3px}.tools button{height:33px;width:33px}.photo{padding:12px;font-size:11px}.scene-strip{padding:13px;gap:5px}.scene-strip button{font-size:10px;padding:9px}.intro-note{padding:0 12px}}
@media(max-width:800px){header{height:86px;gap:10px}.brand{font-size:17px}.brand b{font-size:23px}.logo{height:44px;width:40px;font-size:30px}nav a{font-size:10px;padding:10px}.ghost{font-size:10px;padding:11px}.intro-note{display:none}.studio{grid-template-columns:minmax(0,1fr) 290px;gap:13px}.panel{padding:17px}.custom-head{padding:20px 17px}.custom-head h2{font-size:21px}#viewer{height:490px}.viewer-tools{flex-wrap:wrap;justify-content:center;gap:12px}.viewer-top{padding:0 14px;font-size:8px}.viewer-top #status{font-size:8px}.scene-strip{flex-wrap:wrap;justify-content:center}.scene-strip>span{display:none}.paint-banner{padding:20px}.paint-banner h2{font-size:15px}.tabs button span{font-size:9px}}
@media(max-width:640px){header{height:auto;min-height:82px;flex-wrap:wrap;padding:15px 15px 10px;gap:14px}.brand{gap:8px}.brand b{font-size:22px}.logo{width:38px;height:43px}.ghost{margin-left:auto;font-size:11px;padding:12px}nav{order:3;flex-basis:100%;justify-content:center;border-radius:11px}nav a{flex:1;text-align:center;font-size:12px;padding:11px}.intro{margin-bottom:20px}.eyebrow{font-size:8px;letter-spacing:1.5px}main{padding:23px 14px 18px}h1{font-size:26px;line-height:1.18;letter-spacing:-.8px}h1 span{font-size:21px;margin-left:6px}.intro>div>p:last-child{font-size:11px;line-height:1.6}.studio{display:flex;flex-direction:column;gap:19px}.viewer-card,.customizer{width:100%}.viewer-card{border-radius:19px}#viewer{height:440px}.viewer-top{height:44px;padding:0 16px}.viewer-top #status{font-size:9px}.viewer-tools{justify-content:space-between;padding:12px;gap:8px}.tools{gap:4px}.tools button{height:33px;width:30px;font-size:20px}.divider{margin:0 2px}.photo{padding:11px 10px;font-size:10px}.rotation-hint{font-size:9px;padding:11px 8px 0}.view-presets button{font-size:10px;padding:9px 15px}.view-presets{bottom:12px}.scene-strip{padding:12px 10px;gap:8px}.scene-strip button{font-size:11px;padding:10px 13px}.custom-head{padding:20px 22px 13px}.custom-head h2{font-size:23px}.tabs{padding:0 17px}.tabs button{padding:9px 3px 14px}.tabs button span{font-size:11px}.panel{padding:23px;min-height:0}.panel h3{font-size:13px}.swatches{grid-template-columns:repeat(6,1fr);gap:15px}.swatch{max-width:45px}.custom-color{font-size:12px}.hairstyles button{min-height:81px;font-size:12px}.small-tip{margin-top:18px}.custom-footer{padding:15px}.paint-banner{padding:19px 17px;flex-direction:column;align-items:flex-start;gap:18px}.paint-banner>div{gap:12px}.paint-banner h2{font-size:16px;line-height:1.4}.paint-banner p{font-size:10px;line-height:1.6}.paint-banner>div>span{font-size:38px}.paint-banner a{width:100%;text-align:center;font-size:12px}footer{font-size:9px;gap:10px}footer>span{white-space:nowrap}.product-tabs button,.nail-mode button{font-size:12px}.nail-choice{height:50px}.text-button{font-size:12px}.accessories button{font-size:11px}.dress-choices button>span{font-size:12px}}
@media(max-width:360px){.tools button{width:27px}.tools{gap:2px}.photo{padding:11px 8px}#viewer{height:405px}h1{font-size:24px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
