:root { font-family: ui-rounded, "Arial Rounded MT Bold", "Trebuchet MS", system-ui, sans-serif; color: #432b5f; background: #fff8ed; font-synthesis: none; --pink:#f65296; --purple:#694e85; --cream:#fff8ed; }
* { box-sizing: border-box; }
html, body { margin: 0; min-width: 320px; min-height: 100%; }
body { min-height: 100vh; overflow-x: hidden; }
button { font: inherit; color: inherit; -webkit-tap-highlight-color: transparent; }
button:focus-visible { outline: 4px solid #42b7cc; outline-offset: 3px; }
.screen-enter { animation: screen-in .32s ease both; }

/* Scelta personaggio */
.select-screen { position: relative; isolation: isolate; min-height: 100vh; padding: 25px clamp(16px, 5vw, 72px) 34px; overflow: hidden; text-align: center; background: radial-gradient(circle at 10% 7%, #ffe28d 0 73px, transparent 75px), radial-gradient(circle at 90% 13%, #bcefe7 0 100px, transparent 102px), linear-gradient(155deg, #fffaf0, #fff0f7); }
.selection-pattern { position:absolute; inset:0; z-index:-1; opacity:.22; background-image:radial-gradient(circle, #e45f9a 1.2px, transparent 1.5px); background-size:31px 31px; mask-image:linear-gradient(to bottom,#000,transparent 76%); }
.hero { max-width: 760px; margin: 0 auto 22px; }
.eyebrow { display:inline-block; padding:7px 16px; border-radius:999px; color:#b23c73; background:#ffe0ee; font-size:.74rem; font-weight:1000; letter-spacing:.11em; box-shadow:0 3px 0 #ffc4da; }
.hero h1 { margin:5px 0 0; color:#ff5597; font-size:clamp(3.3rem,8vw,6rem); line-height:.92; font-weight:1000; letter-spacing:-.08em; text-shadow:0 5px 0 #fff,0 9px 0 #ffd0e2; }
.hero p { margin:14px 0 0; font-size:clamp(.85rem,2vw,1.05rem); font-weight:1000; letter-spacing:.07em; }
.character-grid { display:grid; grid-template-columns:repeat(5,minmax(118px,1fr)); gap:13px; max-width:1100px; margin:0 auto 24px; }
.character-card { position:relative; min-height:162px; display:grid; place-items:center; align-content:center; gap:6px; border:3px solid transparent; border-radius:28px; background:rgba(255,255,255,.9); box-shadow:0 8px 22px rgba(95,57,118,.11); cursor:pointer; transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease; }
.character-card strong { font-size:.9rem; }.character-card small { color:#987e9e; font-size:.57rem; font-weight:1000; letter-spacing:.05em; }
.character-card:active { transform:scale(.96); }.character-card.selected { border-color:#ff5c9b; box-shadow:0 7px 0 #ffbed8,0 13px 26px rgba(190,70,120,.19); transform:translateY(-3px); }
.avatar { position:relative; width:84px; aspect-ratio:1; display:grid; place-items:center; overflow:hidden; border-radius:49% 49% 43% 43%; color:#fff; background:linear-gradient(145deg,color-mix(in srgb,var(--character-color),white 26%),var(--character-color)); font-size:1.25rem; font-weight:1000; box-shadow:inset 0 -8px 0 rgba(80,40,90,.12); }
.avatar::before { content:''; position:absolute; width:56px; height:64px; top:17px; border-radius:50% 50% 40% 40%; background:rgba(255,255,255,.25); }.avatar span { position:relative;z-index:1; }
.avatar.real-avatar{background-color:#fff4fa;background-image:var(--portrait-image),linear-gradient(145deg,color-mix(in srgb,var(--character-color),white 74%),#fff);background-repeat:no-repeat;background-size:var(--portrait-size),100%;background-position:var(--portrait-x) var(--portrait-y),center;box-shadow:inset 0 0 0 3px rgba(255,255,255,.7),0 5px 13px rgba(88,50,104,.16)}.avatar.real-avatar::before{display:none}
.selection-mark { position:absolute; top:9px;right:9px;width:27px;height:27px;display:grid;place-items:center;border-radius:50%;color:#fff;background:#ff5c9b;opacity:0;transform:scale(.5);transition:.2s ease; }.selected .selection-mark { opacity:1;transform:scale(1); }

/* Controlli */
.primary-cta { min-height:58px; padding:0 28px; border:0; border-radius:20px; color:#fff; background:linear-gradient(135deg,#ff4e96,#ff7a62); box-shadow:0 7px 0 #d83c75,0 13px 22px rgba(216,60,117,.23); cursor:pointer; font-size:1rem; font-weight:1000; letter-spacing:.03em; transition:transform .16s ease,filter .16s ease; }
.primary-cta:active { transform:translateY(5px);box-shadow:0 2px 0 #d83c75; }.primary-cta:hover { filter:brightness(1.04); }.hero-cta { min-width:280px; }
.secondary-cta,.small-button,.reset-link,.logo-button,.photo-close { border:0;background:none;cursor:pointer;font-weight:1000; }

/* Camerino */
.dressup-screen { height:100vh; min-height:640px; display:grid; grid-template-rows:68px minmax(0,1fr) 78px; background:#fff8ed; overflow:hidden; }
.game-header { display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:8px 22px;background:#fff;border-bottom:2px solid #f2e3eb;z-index:30; }
.logo-button { justify-self:start;color:#f34e91;font-size:1.45rem;letter-spacing:-.05em; }.small-button { justify-self:end;min-height:44px;padding:0 14px;border-radius:14px;color:#755c7f;background:#f6edf2; }
.step-pill { padding:8px 15px;border-radius:999px;color:#9a859e;background:#faf4f7;font-size:.68rem;font-weight:1000;letter-spacing:.05em; }.step-pill span{display:inline-grid;place-items:center;width:21px;height:21px;margin:0 3px;border-radius:50%;color:#fff;background:#c9bacd}.step-pill span.active{background:#f45b97}.step-pill b{margin:0 5px;color:#dccfdf}
.dressing-room { min-height:0;display:grid;grid-template-columns:104px minmax(360px,.9fr) minmax(500px,1.1fr); }
.wardrobe-nav { min-height:0;padding:12px 8px;background:linear-gradient(165deg,#725389,#46355f);box-shadow:inset -5px 0 12px rgba(31,18,47,.12);overflow:auto;scrollbar-width:none; }.wardrobe-nav::-webkit-scrollbar{display:none}
.wardrobe-tabs { display:grid;gap:8px; }.wardrobe-tab { position:relative;min-height:76px;display:grid;place-items:center;align-content:center;gap:4px;border:0;border-radius:19px;color:#efe3f5;background:rgba(255,255,255,.08);cursor:pointer;font-size:.6rem;font-weight:1000;letter-spacing:.03em;transition:.18s ease; }
.wardrobe-tab>span { width:38px;height:38px;display:grid;place-items:center;border-radius:13px;background:rgba(255,255,255,.12);font-size:1.2rem; }.wardrobe-tab b{max-width:88px;font-weight:1000;line-height:1.05}.wardrobe-tab.mode-muted{opacity:.57}.wardrobe-tab.active{opacity:1;color:#5e426f;background:#fff;box-shadow:0 6px 0 #d7c6e2;transform:translateY(-2px)}.wardrobe-tab:active{transform:scale(.96)}
.fitting-stage { position:relative;min-height:0;display:grid;place-items:center;overflow:hidden;background:radial-gradient(ellipse at center,#fff 0 50%,#ffeadc 51% 76%,#eecfbe 77%);border-inline:5px solid #e2aa92; }
.fitting-stage::before{content:'';position:absolute;inset:2.5% 4.5% 3.5%;border:5px solid #d79a80;border-radius:47% 47% 12% 12%;box-shadow:inset 0 0 34px rgba(213,139,111,.13),0 0 0 6px rgba(255,255,255,.3)}
.mirror-sign{position:absolute;z-index:8;top:5%;left:7%;display:grid;text-align:center;padding:6px 18px;border-radius:12px;color:#fff;background:#6b4a78;box-shadow:0 4px 0 #493254}.mirror-sign small{font-size:.46rem;letter-spacing:.12em}.mirror-sign strong{font-size:.84rem}
.mirror-lights{position:absolute;z-index:2;top:5%;bottom:5%;display:flex;flex-direction:column;justify-content:space-around}.mirror-lights.left{left:3%}.mirror-lights.right{right:3%}.mirror-lights i{width:11px;height:11px;border-radius:50%;background:#fff7b7;box-shadow:0 0 11px #ffc869}.sparkle{position:absolute;color:#f2b94c;animation:twinkle 1.5s ease-in-out infinite}.s1{top:16%;left:11%}.s2{top:28%;right:11%;animation-delay:.6s}
.reset-link{position:absolute;z-index:9;right:16px;bottom:12px;min-width:128px;min-height:44px;padding:0 13px;border:2px solid rgba(112,78,121,.16);border-radius:13px;color:#805e73;background:rgba(255,255,255,.78);font-size:.68rem;opacity:.82}.reset-link.armed{color:#fff;border-color:#d85882;background:#d85882;opacity:1;animation:reset-pulse .7s ease infinite alternate}
.wardrobe-panel { min-height:0;padding:clamp(17px,2vw,28px);overflow:auto;background:linear-gradient(145deg,#fff,#fff7fb);scrollbar-color:#e9c9d8 transparent; }
.panel-heading{display:flex;align-items:center;justify-content:flex-start;gap:11px;margin-bottom:16px}.panel-heading.visual-heading{padding-bottom:12px;border-bottom:2px solid #f5e8ef}.panel-heading h2{margin:0;color:#563b67;font-size:clamp(1.4rem,2.1vw,1.9rem);line-height:1}.heading-icon{width:43px;height:43px;display:grid;place-items:center;border-radius:15px;color:#fff;background:linear-gradient(145deg,#ef6aa2,#8a68b0);box-shadow:0 4px 0 #d9bfd1;font-size:1.2rem}.category-count{margin-left:auto;min-width:28px;height:28px;display:grid;place-items:center;border-radius:999px;color:#8a6c91;background:#f7edf3;font-size:.62rem;font-weight:1000}.wardrobe-shelf{margin-top:12px}.wardrobe-shelf+h3{margin-top:18px}.wardrobe-shelf h3{display:flex;align-items:center;gap:7px;margin:0 0 9px;color:#795f81;font-size:.72rem;letter-spacing:.04em}.wardrobe-shelf h3 span{width:25px;height:25px;display:grid;place-items:center;border-radius:9px;background:#f8e8f0}.color-shelf{margin-top:20px}
.color-options,.item-options{display:grid;grid-template-columns:repeat(3,minmax(112px,1fr));gap:12px}.wardrobe-option{position:relative;min-height:154px;display:grid;place-items:center;align-content:center;gap:8px;padding:9px;border:3px solid transparent;border-radius:22px;background:#fff;box-shadow:0 7px 18px rgba(98,69,111,.11);cursor:pointer;font-size:.68rem;font-weight:1000;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.wardrobe-option:active{transform:scale(.95)}.wardrobe-option.selected{border-color:#f15c98;background:#fff5f9;box-shadow:0 6px 0 #ffc5dc;animation:option-pop .24s ease}.wardrobe-option.selected::after{content:'✓';position:absolute;top:7px;right:7px;width:24px;height:24px;display:grid;place-items:center;border-radius:50%;color:#fff;background:#ef5794}.wardrobe-option.selected::before{content:'✦';position:absolute;z-index:2;top:-8px;left:-4px;color:#f3bd42;font-size:1.25rem;animation:sparkle-pop .38s ease both}
.option-preview{width:96px;height:94px;display:grid;place-items:center;border-radius:22px;background:linear-gradient(145deg,color-mix(in srgb,var(--swatch),white 55%) 0 55%,color-mix(in srgb,var(--swatch-two),white 34%) 56%);font-size:1.8rem;box-shadow:inset 0 -4px 0 rgba(76,49,82,.06)}.option-preview i{width:56px;height:56px;display:block;border:6px solid #fff;border-radius:50%;box-shadow:0 2px 8px #b6a7b8}.option-name{text-align:center;line-height:1.08}.remove-option{min-height:154px}.remove-option .option-preview{color:#9b829b;background:#f4edf2}.hair-style-options .option-preview{color:#65416f;font-size:2rem}.color-options .wardrobe-option{min-height:116px}.color-options .option-preview{width:72px;height:66px}
.accessory-tabs{display:grid;grid-template-columns:repeat(6,minmax(78px,1fr));gap:7px;margin:-2px 0 18px}.accessory-tab{min-height:66px;display:grid;place-items:center;align-content:center;gap:3px;padding:5px;border:2px solid #eadbe5;border-radius:15px;background:#fff;cursor:pointer;font-size:.52rem;font-weight:1000}.accessory-tab span{font-size:1.05rem}.accessory-tab b{font-size:.5rem}.accessory-tab.active{color:#fff;border-color:#8263ac;background:#8263ac;box-shadow:0 4px 0 #503d70;transform:translateY(-1px)}
.action-bar{display:flex;justify-content:flex-end;align-items:center;gap:22px;padding:8px clamp(20px,5vw,60px);background:#fff;border-top:2px solid #f0e3ea;z-index:30}.action-bar div{display:grid;text-align:right}.action-bar strong{margin-top:2px;color:#5c3f68;font-size:.82rem}.runway-cta{min-height:54px}

/* Personaggio a layer */
.character-stage{position:relative;z-index:5;width:280px;height:500px;display:grid;place-items:center;animation:outfit-pop .27s ease both;transition:transform .25s ease}.character-stage.context-wardrobe{width:min(96%,360px);height:min(96%,600px)}.character-stage.context-runway{width:280px;height:500px}.character-stage.context-photo{width:230px;height:350px}.character-shadow{position:absolute;bottom:34px;width:154px;height:22px;border-radius:50%;background:rgba(67,42,76,.18);filter:blur(3px)}.context-wardrobe .character-shadow{bottom:17px;width:178px}.context-photo .character-shadow{bottom:7px;width:116px;height:17px}
.doll{position:relative;width:220px;height:400px;transform:translate(var(--character-x),var(--character-y)) scale(var(--character-scale));transform-origin:bottom center}.fallback-hair{position:absolute;z-index:2;top:15px;left:45px;width:130px;height:153px;border-radius:49% 49% 43% 43%;background:var(--hair);box-shadow:inset -10px -3px 0 rgba(35,22,42,.12)}.fallback-hair i,.fallback-hair b{position:absolute;background:var(--hair)}
.hair-short{height:92px;border-radius:52% 52% 30% 30%}.hair-pigtails i{top:54px;width:54px;height:80px;border-radius:50%}.hair-pigtails i:first-child{left:-37px;transform:rotate(16deg)}.hair-pigtails i:nth-child(2){right:-37px;transform:rotate(-16deg)}.hair-braids i{top:85px;width:28px;height:100px;border-radius:45%;background:repeating-linear-gradient(45deg,var(--hair) 0 9px,color-mix(in srgb,var(--hair),black 12%) 10px 17px)}.hair-braids i:first-child{left:4px;transform:rotate(7deg)}.hair-braids i:nth-child(2){right:4px;transform:rotate(-7deg)}.hair-curly{border-radius:50%;box-shadow:-16px 15px 0 var(--hair),17px 15px 0 var(--hair),-20px 50px 0 var(--hair),20px 50px 0 var(--hair),inset -10px -3px 0 rgba(35,22,42,.1)}.hair-bun b{width:63px;height:63px;top:-35px;left:34px;border-radius:50%;box-shadow:inset -7px -4px 0 rgba(35,22,42,.12)}
.fallback-head{position:absolute;z-index:3;top:36px;left:61px;width:98px;height:112px;border-radius:49% 49% 46% 46%;background:var(--skin);box-shadow:inset -7px -3px 0 rgba(90,47,45,.08)}.doll-eye{position:absolute;top:48px;width:9px;height:12px;border-radius:50%;background:#443047}.doll-eye.left{left:27px}.doll-eye.right{right:27px}.doll-eye::after{content:'';position:absolute;width:3px;height:3px;top:1px;left:2px;border-radius:50%;background:#fff}.doll-smile{position:absolute;left:40px;top:77px;width:20px;height:10px;border-bottom:3px solid #9e4c62;border-radius:50%}.fallback-neck{position:absolute;z-index:2;top:136px;left:96px;width:28px;height:35px;background:var(--skin)}
.fallback-arm{position:absolute;z-index:2;top:166px;width:33px;height:141px;border-radius:20px;background:var(--skin);transform-origin:top}.fallback-arm.left{left:29px;transform:rotate(7deg)}.fallback-arm.right{right:29px;transform:rotate(-7deg)}
.fallback-top{position:absolute;z-index:5;top:158px;left:48px;width:124px;height:85px;display:grid;place-items:center;border-radius:34px 34px 15px 15px;background:linear-gradient(145deg,var(--top-a),var(--top-b));box-shadow:inset -8px -4px 0 rgba(80,41,74,.08)}.fallback-top:not(.chosen){background:linear-gradient(145deg,#f4cedd,#fff1f6)}.fallback-top span,.fallback-bottom span,.fallback-dress span{font-size:1.65rem;filter:drop-shadow(0 2px 0 #fff)}
.fallback-bottom{position:absolute;z-index:5;top:232px;left:49px;width:122px;height:77px;display:grid;place-items:center;border-radius:10px 10px 47px 47px;background:linear-gradient(145deg,var(--bottom-a),var(--bottom-b));box-shadow:inset -8px -4px 0 rgba(80,41,74,.07)}.fallback-bottom:not(.chosen){background:linear-gradient(145deg,#b49ccc,#eadcf1)}
.fallback-dress{position:absolute;z-index:5;top:158px;left:47px;width:126px;height:151px;display:grid;place-items:center;border-radius:34px 34px 56px 56px;background:linear-gradient(145deg,var(--dress-a),var(--dress-b));box-shadow:inset -9px -5px 0 rgba(80,41,74,.08)}
.fallback-leg{position:absolute;z-index:2;top:286px;width:37px;height:89px;border-radius:0 0 18px 18px;background:var(--skin)}.fallback-leg.left{left:66px}.fallback-leg.right{right:66px}.fallback-shoe{position:absolute;z-index:6;top:355px;width:52px;height:30px;border-radius:18px 18px 12px 12px;background:var(--shoe);box-shadow:inset 0 -6px 0 rgba(55,38,68,.1)}.fallback-shoe.left{left:53px}.fallback-shoe.right{right:53px}.fallback-shoe.chosen{border:3px solid rgba(255,255,255,.6)}
.fallback-head-accessory{position:absolute;z-index:8;top:6px;left:75px;width:74px;height:33px;display:grid;place-items:center;border:7px solid var(--item);border-bottom:0;border-radius:50% 50% 0 0;color:var(--item)}.fallback-earring{position:absolute;z-index:8;top:102px;width:16px;height:22px;border:3px solid #fff;border-radius:50%;background:var(--item)}.fallback-earring.left{left:51px}.fallback-earring.right{right:51px}.fallback-bow{position:absolute;z-index:9;top:16px;right:38px;width:44px;height:34px;display:grid;place-items:center;border-radius:50% 14% 50% 14%;color:#fff;background:var(--item);transform:rotate(12deg)}
.fallback-bag{position:absolute;z-index:9;top:233px;right:8px;width:60px;height:67px;display:grid;place-items:center;border:6px solid var(--item);border-radius:15px 15px 24px 24px;color:#fff;background:var(--item);box-shadow:inset 0 0 0 4px rgba(255,255,255,.25)}.fallback-bag::before{content:'';position:absolute;width:32px;height:30px;top:-23px;border:5px solid var(--item);border-bottom:0;border-radius:50% 50% 0 0}.fallback-glasses{position:absolute;z-index:9;top:77px;left:68px;width:84px;display:flex;justify-content:space-between}.fallback-glasses::before{content:'';position:absolute;top:12px;left:36px;width:13px;height:4px;background:#684a76}.fallback-glasses i{width:35px;height:28px;border:5px solid #684a76;border-radius:50%;background:rgba(255,255,255,.25)}.fallback-necklace{position:absolute;z-index:9;top:151px;left:88px;width:44px;height:38px;display:grid;place-items:end center;border:4px solid var(--item);border-top:0;border-radius:0 0 50% 50%;color:var(--item);font-size:.7rem}
.body-compact .fallback-head{transform:scale(1.05)}.body-compact .fallback-top,.body-compact .fallback-bottom,.body-compact .fallback-dress{width:116px;left:52px}.body-hero .fallback-top,.body-hero .fallback-dress{width:132px;left:44px}.body-strong .fallback-head{width:106px;left:57px}.body-strong .fallback-top,.body-strong .fallback-bottom,.body-strong .fallback-dress{width:145px;left:38px}.body-strong .fallback-arm.left{left:20px}.body-strong .fallback-arm.right{right:20px}
.asset-layer{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;transform:translate(var(--layer-x),var(--layer-y)) scale(var(--layer-scale)) rotate(var(--layer-rotate));transform-origin:center}.hair-mask{display:block;background:linear-gradient(125deg,color-mix(in srgb,var(--hair-fill),white 24%),var(--hair-fill) 45%,color-mix(in srgb,var(--hair-fill),black 18%));-webkit-mask:var(--hair-mask) center/contain no-repeat;mask:var(--hair-mask) center/contain no-repeat;filter:drop-shadow(0 2px 1px rgba(63,33,66,.2))}.character-name{position:absolute;z-index:30;bottom:3px;padding:7px 18px;border-radius:999px;color:#fff;background:#634674;box-shadow:0 4px 0 #432b5f;font-size:.8rem;font-weight:1000}
.hair-mask.textured-hair{background-image:linear-gradient(125deg,color-mix(in srgb,var(--hair-fill),white 24%),var(--hair-fill) 45%,color-mix(in srgb,var(--hair-fill),black 18%)),var(--hair-mask);background-position:center,center;background-size:100% 100%,contain;background-repeat:no-repeat;background-blend-mode:multiply}
.option-preview.real-preview{background-color:#fff8fc;background-image:var(--preview-image),linear-gradient(145deg,#fff,#ffeaf4);background-position:var(--preview-x) var(--preview-y),center;background-repeat:no-repeat;background-size:var(--preview-size) auto,cover;box-shadow:inset 0 0 0 2px rgba(207,117,159,.12)}
.option-preview.hair-real-preview{background:linear-gradient(145deg,color-mix(in srgb,var(--swatch),white 28%),var(--swatch));-webkit-mask:var(--preview-image) var(--preview-x) var(--preview-y)/var(--preview-size) auto no-repeat;mask:var(--preview-image) var(--preview-x) var(--preview-y)/var(--preview-size) auto no-repeat;box-shadow:none}

.doll{scale:var(--context-fit,1)}

/* La scena passerella è isolata in runway.css. */

/* Foto ricordo */
.photo-overlay{position:fixed;z-index:100;inset:0;display:grid;place-items:center;align-content:center;gap:12px;padding:22px;background:rgba(33,21,57,.88);backdrop-filter:blur(12px);overflow:auto}.photo-close{position:fixed;top:18px;right:22px;width:48px;height:48px;border-radius:50%;color:#5d426c;background:#fff;font-size:1.8rem;box-shadow:0 5px 0 #c7aabd}.photo-title{display:flex;align-items:center;gap:15px;text-align:center}.photo-title>span{color:#ffe063}.photo-title small{color:#ffc5e3}.photo-title h2{margin:2px 0 0;color:#fff;font-size:1.65rem}.photo-overlay>p{margin:0;color:#e8cfe9;font-size:.58rem;font-weight:1000;letter-spacing:.06em}
.look-card{position:relative;width:min(390px,90vw);min-height:550px;padding:20px 20px 25px;border:10px solid #fff;border-radius:8px;color:#4c3458;background:linear-gradient(150deg,#fff9ee,#ffe9f3);box-shadow:0 20px 60px rgba(9,3,22,.45);transform:rotate(-1.4deg)}.look-card::before{content:'';position:absolute;inset:9px;border:2px dashed #f4aac7;border-radius:4px;pointer-events:none}.look-card-tape{position:absolute;z-index:5;top:-24px;left:50%;width:110px;height:35px;background:rgba(255,226,126,.82);transform:translateX(-50%) rotate(2deg);box-shadow:0 2px 3px rgba(80,52,50,.12)}.look-card-sparkles{position:absolute;z-index:5;top:17px;left:20px;right:20px;display:flex;justify-content:space-between;color:#e5ad3d}.look-card-photo{height:365px;display:grid;place-items:center;overflow:hidden;border-radius:4px;background:radial-gradient(circle,#fff 0 35%,#ffd5e7 36% 68%,#efadc9 69%);box-shadow:inset 0 0 20px rgba(139,66,105,.17)}.in-photo{margin-top:8px}.look-card-copy{position:relative;display:grid;place-items:center;gap:2px;padding-top:9px;text-align:center}.look-card-copy small{color:#b15f83;font-size:.55rem;font-weight:1000;letter-spacing:.13em}.look-card-copy h2{margin:0;color:#f04f91;font-size:1.7rem}.look-card-stars{color:#e5ad3d;font-size:1.15rem;letter-spacing:.08em}.look-card-copy strong{font-size:.83rem}.look-card-copy span{color:#8e7391;font-size:.6rem;font-weight:1000}

@keyframes screen-in{from{opacity:0}}@keyframes outfit-pop{50%{transform:scale(1.018)}}@keyframes option-pop{50%{transform:scale(1.035)}}@keyframes sparkle-pop{from{opacity:0;transform:translate(10px,8px) scale(.3) rotate(-30deg)}to{opacity:1;transform:none}}@keyframes reset-pulse{to{transform:scale(1.03)}}@keyframes twinkle{50%{transform:rotate(18deg) scale(1.4);opacity:.5}}@keyframes runway-walk{from{opacity:0;transform:translateX(-65%) scale(.78)}55%{opacity:1;transform:translateX(8%) scale(1.02)}to{opacity:1;transform:scale(1.04)}}@keyframes model-pose{to{transform:rotate(1.6deg) translateY(-4px)}}@keyframes camera-flash{30%{opacity:.8}100%{opacity:0}}@keyframes confetti-fall{from{opacity:1;transform:translateY(0) rotate(0)}to{opacity:0;transform:translateY(72vh) rotate(170deg)}}@keyframes judge-in{from{opacity:0;transform:translateY(45px) scale(.82)}to{opacity:1;transform:none}}@keyframes finale-in{from{opacity:0;transform:scale(.8)}to{opacity:1;transform:none}}@keyframes pulse{50%{opacity:.35;transform:scale(.8)}}

@media (max-width:1100px){.dressing-room{grid-template-columns:90px minmax(300px,.82fr) minmax(410px,1.18fr)}.wardrobe-tab{min-height:70px}.wardrobe-panel{padding:17px 14px}.color-options,.item-options{grid-template-columns:repeat(2,1fr)}.wardrobe-option{min-height:140px}.accessory-tabs{grid-template-columns:repeat(3,1fr)}.runway-layout{grid-template-columns:39% 61%}.results-panel{padding-inline:16px}.speech-bubble{font-size:.58rem}.runway-actions .primary-cta{padding-inline:12px}}
@media (max-width:1100px){.context-wardrobe .doll{--context-fit:.88}}
@media (max-width:799px){.context-wardrobe .doll{--context-fit:.74}}
@media (max-width:799px){
  .character-grid{grid-template-columns:repeat(3,1fr)}.dressup-screen{height:auto;min-height:100vh;display:block;overflow:visible}.game-header{position:sticky;top:0;height:64px;grid-template-columns:1fr auto}.step-pill{display:none}.dressing-room{display:flex;flex-direction:column}.wardrobe-nav{position:sticky;top:64px;z-index:25;padding:8px;overflow-x:auto}.wardrobe-tabs{display:flex;gap:7px;width:max-content}.wardrobe-tab{flex:0 0 106px;min-height:64px}.wardrobe-tab>span{width:30px;height:30px;font-size:1rem}.fitting-stage{position:sticky;top:136px;z-index:8;height:510px;min-height:510px;border-inline:0;box-shadow:0 9px 24px rgba(82,52,71,.13)}.fitting-stage .character-stage{transform:scale(.94)}.wardrobe-panel{position:relative;z-index:9;min-height:440px;padding:22px 18px 105px;overflow:visible}.color-options,.item-options{grid-template-columns:repeat(3,1fr)}.action-bar{position:sticky;bottom:0;z-index:35;height:74px;justify-content:center}.action-bar div{display:none}.runway-layout{height:auto;min-height:calc(100vh - 82px);grid-template-columns:1fr}.runway-stage{min-height:510px}.results-panel{min-height:630px;padding:25px 16px}.curtain{position:fixed}.look-card{min-height:520px}.look-card-photo{height:340px}
}
/* Portrait: the catalog scrolls in its own row, never over the mirror. */
@media (min-width:541px) and (max-width:799px) and (min-height:800px){
  .dressup-screen{height:100dvh;min-height:800px;display:grid;grid-template-rows:64px minmax(0,1fr) 74px;overflow:hidden}
  .game-header{position:relative}
  .dressing-room{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:80px minmax(400px,50vh) minmax(0,1fr);overflow:hidden}
  .wardrobe-nav{position:relative;top:auto}
  .fitting-stage{position:relative;top:auto;height:auto;min-height:0}
  .fitting-stage .character-stage{transform:none}
  .context-wardrobe .doll{--context-fit:.86}
  .wardrobe-panel{z-index:auto;min-height:0;padding:18px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
  .action-bar{position:relative;bottom:auto}
}
@media (max-width:540px){.select-screen{padding-inline:11px}.character-grid{grid-template-columns:repeat(2,1fr)}.character-card{min-height:145px}.avatar{width:72px}.color-options,.item-options{grid-template-columns:repeat(2,1fr)}.wardrobe-option{min-height:134px}.option-preview{width:82px;height:80px}.fitting-stage{height:450px;min-height:450px}.fitting-stage .character-stage{transform:scale(.82)}.action-bar{padding:7px 12px}.runway-cta{width:100%}.runway-header{height:72px}.runway-header h1{font-size:1.55rem}.runway-layout{min-height:calc(100vh - 72px)}.runway-stage{min-height:480px}.results-panel{min-height:650px;padding-inline:8px}.results-title h2{font-size:1.9rem}.judges-row{min-height:270px;gap:5px}.speech-bubble{min-height:100px;padding:8px;font-size:.52rem}.judge-avatar{width:68px;height:68px}.judge-avatar::before,.judge-avatar::after{top:28px}.judge-avatar::before{left:17px}.judge-avatar::after{right:17px}.runway-actions{flex-direction:column}.runway-actions .primary-cta{width:min(300px,92vw)}.look-card{min-height:500px;padding:14px;border-width:8px}.look-card-photo{height:330px}.photo-overlay{padding:70px 10px 18px}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important}.curtain-left{transform:translateX(-96%)}.curtain-right{transform:translateX(96%)}}
