:root{
  --navy:#071326;--navy2:#0b203b;--purple:#5b27a5;--purple2:#7b36dc;--gold:#ffd12d;--gold2:#ff9a1f;
  --white:#f7fbff;--muted:#b7c8dc;--panel:rgba(5,18,35,.88);--line:rgba(190,223,255,.25);--danger:#ff4c57;--green:#20e37b;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;min-height:100%;background:#020914;color:var(--white);overflow-x:hidden}
body{min-height:100vh}
button,select{font:inherit}
button{touch-action:manipulation}
.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}
.app-shell{position:relative;min-height:100vh;max-width:560px;margin:0 auto;background:var(--navy);overflow:hidden;isolation:isolate}
.stadium-bg{position:absolute;inset:0;background:url('assets/stadium.png') center 40%/cover no-repeat;filter:saturate(.9) brightness(.55);z-index:-3;transform:scale(1.04)}
.vignette{position:absolute;inset:0;background:linear-gradient(180deg,rgba(2,8,18,.35),rgba(2,8,18,.1) 25%,rgba(2,8,18,.42) 65%,rgba(2,8,18,.95));z-index:-2;pointer-events:none}
.screen{display:none;min-height:100vh;position:relative;padding:env(safe-area-inset-top) 14px calc(18px + env(safe-area-inset-bottom))}
.screen.active{display:block}
.topbar{display:flex;align-items:center;justify-content:space-between;padding-top:10px;position:relative;z-index:6}
.icon-btn{width:44px;height:44px;border-radius:14px;border:1px solid rgba(255,255,255,.2);background:rgba(5,18,35,.72);color:white;font-weight:900;font-size:18px;box-shadow:0 8px 24px rgba(0,0,0,.2)}
.language-wrap select{min-width:92px;height:44px;border-radius:14px;border:1px solid rgba(255,255,255,.2);background:rgba(5,18,35,.8);color:white;padding:0 12px;font-weight:800}
.primary-btn,.secondary-btn,.text-btn{min-height:52px;border-radius:16px;font-weight:1000;letter-spacing:.02em;border:0;padding:0 20px;cursor:pointer}
.primary-btn{background:linear-gradient(#ffe55c,#ffb51d);color:#15100a;border:2px solid rgba(255,255,255,.55);box-shadow:0 8px 0 #8c3d00,0 12px 26px rgba(255,159,0,.25)}
.primary-btn:active{transform:translateY(3px);box-shadow:0 5px 0 #8c3d00}
.secondary-btn{background:rgba(8,26,47,.92);color:white;border:1px solid rgba(180,219,255,.34);box-shadow:0 6px 18px rgba(0,0,0,.24)}
.text-btn{background:transparent;color:#cfe1f7;text-decoration:underline}

/* intro */
.intro-screen{overflow:hidden;background:linear-gradient(180deg,rgba(3,10,22,.15),rgba(3,10,22,.64));}
.intro-scoreboard{position:absolute;top:8%;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;padding:10px 18px;border-radius:16px;background:#07172a;border:2px solid #5e7a9b;box-shadow:0 15px 40px rgba(0,0,0,.4);font-size:26px;font-weight:1000;z-index:4;white-space:nowrap}
.team-chip{background:#54219a;color:white;padding:5px 12px;border-radius:8px;font-weight:1000}
.opponent-score{color:#ffcc28}
.intro-coach-wrap{position:absolute;left:50%;bottom:0;width:min(112%,620px);transform:translateX(-50%);z-index:2;animation:introCoach 4s ease-in-out both}
.intro-coach{display:block;width:100%;filter:drop-shadow(0 16px 18px rgba(0,0,0,.5))}
.intro-copy{position:absolute;left:18px;right:18px;bottom:12%;z-index:5;text-align:center;text-shadow:0 3px 9px #000}
.intro-copy .eyebrow{display:inline-block;background:#ffd12d;color:#111;padding:7px 10px;border-radius:8px;font-size:12px;font-weight:1000;letter-spacing:.08em;transform:rotate(-2deg)}
.intro-copy h1{font-size:clamp(38px,12vw,70px);line-height:.85;margin:12px 0 8px;font-style:italic;letter-spacing:-.06em;text-shadow:0 5px 0 #4b1c80,0 9px 20px #000}
.intro-copy p{margin:0;color:#f8ecbd;font-weight:800}
.intro-skip{position:absolute;right:14px;top:calc(14px + env(safe-area-inset-top));z-index:10}
.ghost-btn{min-width:72px;height:40px;border-radius:12px;border:1px solid rgba(255,255,255,.28);background:rgba(0,0,0,.38);color:white;font-weight:900}
.intro-progress{position:absolute;bottom:0;left:0;right:0;height:5px;background:rgba(255,255,255,.12);z-index:9}
.intro-progress i{display:block;height:100%;background:#ffd12d;animation:introProgress 4s linear forwards}
.intro-flash{position:absolute;inset:0;background:white;opacity:0;z-index:8;pointer-events:none;animation:introFlash 4s linear both}
@keyframes introProgress{from{width:0}to{width:100%}}
@keyframes introCoach{0%{transform:translateX(-50%) scale(.9);filter:blur(2px)}35%{transform:translateX(-50%) scale(1.03);filter:blur(0)}70%,100%{transform:translateX(-50%) scale(1.09)}}
@keyframes introFlash{0%,39%,45%,100%{opacity:0}41%{opacity:.85}43%{opacity:.04}}

/* home */
.home-screen{background:radial-gradient(circle at 50% 48%,rgba(96,42,159,.3),transparent 40%)}
.home-content{display:flex;flex-direction:column;align-items:center;min-height:calc(100vh - 74px);padding-top:2vh}
.logo-stack{text-align:center;transform:rotate(-1.5deg);filter:drop-shadow(0 8px 0 rgba(0,0,0,.25))}
.logo-small{font-size:clamp(28px,9vw,48px);font-weight:1000;letter-spacing:-.055em;-webkit-text-stroke:2px #0d2646;text-shadow:0 4px 0 #5ca8e8}
.logo-big{margin-top:-8px;font-size:clamp(58px,18vw,96px);line-height:.9;font-weight:1000;letter-spacing:-.08em;color:var(--gold);-webkit-text-stroke:3px #7e3700;text-shadow:0 7px 0 #d84812,0 11px 0 #18264a}
.tagline{margin:6px 0 2px;background:#f3c92f;color:#1f1805;font-weight:1000;padding:6px 14px;transform:rotate(-2deg);font-size:13px}
.home-coach{position:relative;width:min(88%,440px);margin-top:-10px;flex:1;display:flex;align-items:flex-end;min-height:330px}
.home-coach img{width:100%;display:block;filter:drop-shadow(0 14px 20px rgba(0,0,0,.45))}
.burst{position:absolute;top:25%;font-size:52px;font-weight:1000;color:#ffd12d;text-shadow:0 4px 0 #e45318;animation:floaty 1.2s ease-in-out infinite alternate}
.burst-left{left:3%;transform:rotate(-12deg)}.burst-right{right:2%;transform:rotate(10deg);animation-delay:.3s}
@keyframes floaty{to{translate:0 -8px;scale:1.06}}
.home-card{width:100%;padding:16px 16px 12px;border-radius:22px;background:linear-gradient(180deg,rgba(9,29,52,.94),rgba(4,16,30,.98));border:1px solid rgba(184,220,255,.24);box-shadow:0 -18px 40px rgba(0,0,0,.22);text-align:center}
.home-card p{margin:0 0 14px;color:#d8e6f7;font-weight:700;line-height:1.35}
.home-card .primary-btn,.home-card .secondary-btn{width:100%;margin-top:8px}

/* game hud */
.game-screen{padding-left:10px;padding-right:10px;padding-bottom:calc(12px + env(safe-area-inset-bottom));background:linear-gradient(180deg,rgba(2,11,24,.1),rgba(2,11,24,.58) 58%,#061427 78%)}
.score-hud{display:flex;gap:8px;align-items:center;justify-content:space-between;padding-top:8px}
.scoreboard{height:48px;flex:1;display:flex;align-items:center;justify-content:center;gap:8px;background:rgba(4,16,31,.94);border:1px solid rgba(157,198,236,.32);border-radius:14px;font-size:20px;box-shadow:0 8px 22px rgba(0,0,0,.26)}
.scoreboard small{margin-left:4px;color:#b9cbe0;font-size:10px}
.scoreboard .team-chip{font-size:14px;padding:4px 8px}
.hud-actions{display:flex;gap:6px}
.hud-actions .icon-btn{width:46px;height:46px}
/* Timer is deliberately on the LEFT. Scenario copy owns the rest of the row and may wrap; no element in this strip overlaps the character stage. */
.round-strip{display:grid;grid-template-columns:56px minmax(0,1fr);align-items:center;gap:11px;margin:10px 0 6px;padding:9px 11px;border-radius:18px;background:rgba(4,16,31,.94);border:1px solid rgba(157,198,236,.32);box-shadow:0 8px 22px rgba(0,0,0,.22)}
.scenario-copy{min-width:0;display:grid;gap:1px;align-content:center}
.round-strip span{font-size:10px;color:#dbe9f8;font-weight:1000;letter-spacing:.12em;text-shadow:-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000,1px 1px 0 #000,0 2px 5px #000}
.round-strip strong{font-size:18px;line-height:1.05;white-space:normal;overflow-wrap:anywhere;color:#fff;font-weight:1000;-webkit-text-stroke:.7px #000;paint-order:stroke fill;text-shadow:0 2px 5px #000}
.round-strip small{font-size:11px;line-height:1.2;color:#ffe082;font-weight:850;white-space:normal;overflow-wrap:anywhere;-webkit-text-stroke:.35px #000;paint-order:stroke fill;text-shadow:0 2px 4px #000}
.timer-ring{width:52px;height:52px;display:grid;place-items:center;flex:none;border-radius:50%;background:conic-gradient(#ffd12d 100%,rgba(255,255,255,.15) 0);border:3px solid rgba(255,255,255,.3);box-shadow:inset 0 0 0 4px #061427,0 5px 12px rgba(0,0,0,.25)}
.timer-ring span{font-size:12px;color:white;letter-spacing:0;-webkit-text-stroke:.45px #000;paint-order:stroke fill}
/* Viral meter is now its own strip, never an overlay on the face or torso. */
.viral-strip{display:grid;grid-template-columns:auto minmax(90px,1fr);align-items:center;gap:8px;margin:0 0 6px;padding:6px 10px;border-radius:13px;background:rgba(4,17,31,.9);border:1px solid rgba(177,219,255,.22)}
.viral-copy{display:flex;align-items:center;gap:7px;font-size:9px;color:#d7e7f8;white-space:nowrap}.viral-copy b{font-size:10px}.viral-copy span{min-width:18px;text-align:right;font-weight:1000;color:#fff}
.viral-track{height:11px;background:#30152d;border-radius:99px;padding:2px;border:1px solid rgba(255,255,255,.15)}
.viral-track i{display:block;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,#13df68,#f7ef44,#ff7a26,#ff315d);transition:width .35s ease}
/* Character stage has an explicit face-safe zone. Gameplay HUD lives outside this element. */
.stage{position:relative;min-height:clamp(380px,96vw,430px);border-radius:24px;background:radial-gradient(circle at 50% 43%,rgba(84,38,146,.22),transparent 58%);overflow:hidden;border:1px solid rgba(173,211,247,.14)}
.coach-stage{position:absolute;left:50%;top:clamp(8px,2.2vw,14px);bottom:auto;width:min(82%,350px);transform:translateX(-50%);transition:filter .2s,transform .15s;transform-origin:50% 70%}
.coach-stage>img{display:block;width:100%;filter:drop-shadow(0 16px 20px rgba(0,0,0,.48));pointer-events:none}
.face-canvas,.result-face-canvas{position:absolute;inset:0;pointer-events:none}
.face-cover{position:absolute;z-index:4;filter:blur(.15px);pointer-events:none}
/* Facial anchors are calibrated to assets/coach.png (1145×1374).
   Keep these percentages tied to the source portrait so every responsive scale stays aligned. */
.eye-cover{top:25.95%;width:8.15%;height:6.25%;border-radius:50%;background:radial-gradient(ellipse at 50% 58%,#e9aa83 0 48%,#dd916c 72%,#cf7f5f 100%)}
.eye-cover.left{left:39.95%}.eye-cover.right{right:38.55%}
.brow-cover{top:21.55%;width:11.25%;height:4.85%;border-radius:48% 48% 42% 42%;background:radial-gradient(ellipse at 50% 70%,#d98a65 0 45%,#cf7a59 76%,rgba(194,103,75,.96) 100%)}
.brow-cover.left{left:38.45%;transform:rotate(-4deg)}.brow-cover.right{right:37.75%;transform:rotate(4deg)}
.eye-part{position:absolute;top:26.25%;width:7.65%;height:5.65%;border-radius:50%;background:#fff;box-shadow:inset 0 -3px 0 rgba(183,206,227,.55),0 0 0 2px #3b271e;z-index:7;transition:.16s ease;transform-origin:center}
.eye-part::before{content:"";position:absolute;width:32%;height:38%;border-radius:50%;background:#59331d;left:34%;top:32%;box-shadow:inset 0 0 0 2px #111}
.eye-part::after{content:"";position:absolute;width:10%;height:11%;border-radius:50%;background:white;left:47%;top:35%}
.eye-left{left:40.15%}.eye-right{right:38.75%}
.brow-part{position:absolute;top:22.35%;width:9.7%;height:3.5%;border-top:6px solid #4a281b;border-radius:50%;z-index:8;transition:.16s ease}
.brow-left{left:39.25%;transform:rotate(-11deg)}.brow-right{right:38.45%;transform:rotate(11deg)}
.mouth-cover{top:38.25%;left:42.65%;width:16.2%;height:6.3%;border-radius:50%;z-index:4;background:radial-gradient(ellipse at 50% 40%,#e8a27c 0 45%,#db8c68 72%,#ca7759 100%)}
.mouth-part{position:absolute;left:43.75%;top:39.05%;width:14%;height:5.9%;z-index:7;transition:.16s ease;transform-origin:center}
.extra-part{position:absolute;inset:auto;z-index:9;pointer-events:none}.effect-part{position:absolute;inset:auto;z-index:5;pointer-events:none}
.meme-pop{position:absolute;top:50%;font-weight:1000;font-size:24px;font-style:italic;-webkit-text-stroke:4px #071326;paint-order:stroke fill;color:white;text-shadow:0 3px 0 #c64914;z-index:10;opacity:.95;max-width:30%;line-height:.9}
.pop-left{left:1%;transform:rotate(-10deg)}.pop-right{right:0;transform:rotate(9deg)}
.live-scoreline{position:absolute;left:10px;right:10px;bottom:8px;height:60px;display:grid;grid-template-columns:1fr auto 1fr auto 1.25fr;align-items:center;border-radius:17px;background:rgba(4,16,31,.92);border:1px solid rgba(177,219,255,.24);z-index:12;overflow:hidden}
.live-scoreline>div{text-align:center}.live-scoreline small{font-size:8px;color:#bdd0e6;font-weight:900}.live-scoreline b{display:block;font-size:20px}.live-scoreline .plus,.live-scoreline .equals{font-size:20px;color:#8aa2bb}.live-scoreline .total{height:100%;display:grid;place-content:center;background:linear-gradient(180deg,rgba(255,213,40,.18),rgba(255,145,20,.08));color:#ffe055}
.frenzy-badge{position:absolute;top:auto;bottom:86px;left:50%;transform:translateX(-50%) scale(.7);opacity:0;z-index:30;background:linear-gradient(90deg,#ff3fd7,#ffd12d);color:#071326;border:3px solid #fff;padding:7px 12px;border-radius:14px;font-weight:1000;font-style:italic;transition:.25s;white-space:nowrap;box-shadow:0 7px 20px rgba(255,79,207,.4)}
.frenzy-badge.show{opacity:1;transform:translateX(-50%) scale(1)}
.camera-flash{position:absolute;inset:0;background:white;opacity:0;z-index:25;pointer-events:none}.camera-flash.fire{animation:cameraFlash .45s ease}
@keyframes cameraFlash{0%,100%{opacity:0}18%{opacity:.9}36%{opacity:.05}52%{opacity:.55}}

/* face variants */
.eye-crossed::before{left:58%}.eye-crossed.eye-right::before{left:12%}
.eye-spiral{background:repeating-radial-gradient(circle at center,#111 0 3px,#fff 3px 7px);box-shadow:0 0 0 2px #3b271e}.eye-spiral::before,.eye-spiral::after{display:none}
.eye-blood{background:#fff5f5}.eye-blood{box-shadow:inset 0 0 0 2px #b41414,0 0 0 2px #3b271e}.eye-blood::before{background:#2d140d}.eye-blood::after{box-shadow:-13px -12px 0 -2px #e12727,14px 8px 0 -2px #e12727}
.eye-side{height:3.65%;top:27.25%;border-radius:45%}.eye-side::before{top:35%;left:62%}.eye-side#eyeR::before{left:18%}
.eye-star{background:#ffe055;clip-path:polygon(50% 0,61% 34%,98% 35%,68% 56%,79% 93%,50% 71%,21% 93%,32% 56%,2% 35%,39% 34%);border-radius:0;box-shadow:none}.eye-star::before,.eye-star::after{display:none}
.eye-cry::after{display:block;width:20%;height:65%;background:#49bfff;left:42%;top:80%;border-radius:50% 50% 70% 70%;box-shadow:0 0 7px #49bfff}.eye-cry::before{left:34%}
.eye-tiny{transform:scale(.58);box-shadow:0 0 0 5px #fff,0 0 0 7px #3b271e}.eye-tiny::before{width:55%;height:55%;left:23%;top:24%}
.eye-dead{background:#f4f4f4}.eye-dead::before{content:"×";background:none;box-shadow:none;font-weight:1000;font-size:24px;line-height:1;left:27%;top:2%;color:#151515}.eye-dead::after{display:none}
.brow-high{top:21.45%;border-width:6px}.brow-high.brow-left{transform:rotate(-17deg)}.brow-high.brow-right{transform:rotate(17deg)}
.brow-zig{border:0;height:8px;background:#492619;clip-path:polygon(0 55%,25% 0,45% 78%,68% 15%,100% 60%,100% 100%,0 100%)}
.brow-sad.brow-left{transform:rotate(18deg)}.brow-sad.brow-right{transform:rotate(-18deg)}
.brow-angry.brow-left{transform:rotate(24deg);top:23.35%}.brow-angry.brow-right{transform:rotate(-24deg);top:23.35%}
.brow-flat{border-radius:0;transform:none!important;top:22.9%}
.brow-split{border-top:0;border-bottom:7px double #492619;transform:rotate(3deg)!important}
.mouth-scream{top:37.55%;height:6.5%;border-radius:48% 48% 55% 55%;background:#1d1111;border:3px solid #56301e;box-shadow:inset 0 10px 0 #e58376}
.mouth-o{width:7.3%;left:47.1%;top:39%;height:6.2%;border-radius:50%;background:#1d1111;border:3px solid #56301e}
.mouth-grimace{height:4%;top:39.75%;border-radius:45%;background:repeating-linear-gradient(90deg,#f7f4e6 0 9px,#8a8177 9px 11px);border:3px solid #56301e}
.mouth-tongue{top:39%;height:5.9%;border-radius:46%;background:#251010;border:3px solid #56301e}.mouth-tongue::after{content:"";position:absolute;left:25%;bottom:-22%;width:52%;height:54%;border-radius:50%;background:#f06383;border:2px solid #8c263d}
.mouth-zip{height:3%;top:40.15%;background:repeating-linear-gradient(90deg,#687889 0 5px,#d9e2e9 5px 9px);border-top:2px solid #141b22;border-bottom:2px solid #141b22}
.mouth-wave{height:3.2%;top:40.05%;background:#55271d;clip-path:polygon(0 55%,13% 10%,28% 84%,44% 18%,61% 88%,78% 15%,100% 55%,100% 80%,0 80%)}
.mouth-smirk{height:3.7%;top:39.65%;border-bottom:6px solid #4f2119;border-radius:0 0 70% 70%;transform:rotate(-8deg)}
.mouth-teeth{height:5.6%;top:39.15%;border-radius:50%;background:#f7f4e6;border:3px solid #54291d;box-shadow:inset 0 -11px 0 #d7d1c3}
.extra-sweat::before,.extra-sweat::after{content:"";position:absolute;background:#46c8ff;border-radius:55% 45% 65% 35%;transform:rotate(18deg);box-shadow:0 2px 6px #0d78b3}.extra-sweat::before{width:20px;height:32px;left:34%;top:31%}.extra-sweat::after{width:13px;height:22px;right:33%;top:30%}
.extra-question::before{content:"?!";position:absolute;right:18%;top:20%;font-size:58px;font-weight:1000;color:#ffd12d;-webkit-text-stroke:4px #71208f;paint-order:stroke fill;transform:rotate(9deg)}
.extra-tears::before,.extra-tears::after{content:"";position:absolute;width:14px;height:56px;background:linear-gradient(#73dcff,#27aef5);border-radius:50% 50% 70% 70%;top:31%}.extra-tears::before{left:42%}.extra-tears::after{right:40%}
.extra-vein::before{content:"";position:absolute;right:32%;top:22%;width:36px;height:36px;background:#e13737;clip-path:polygon(46% 0,58% 34%,100% 22%,69% 54%,100% 74%,59% 66%,48% 100%,39% 66%,0 77%,30% 54%,0 31%,40% 35%)}
.extra-steam::before,.extra-steam::after{content:"~";position:absolute;top:20%;font-size:70px;font-weight:1000;color:#e6f3ff;opacity:.85}.extra-steam::before{left:26%;transform:rotate(-12deg)}.extra-steam::after{right:26%;transform:rotate(12deg)}
.extra-dizzy::before{content:"✦  ✧  ✦";position:absolute;left:50%;top:14%;transform:translateX(-50%);font-size:34px;color:#ffd12d;text-shadow:38px 14px 0 #f23cc4,-38px 16px 0 #4bd4ff;white-space:nowrap}
.extra-none{display:block}
.effect-shake{animation:shake .14s linear infinite}.effect-zoom::before{content:"";position:absolute;inset:22% 25% 26%;border:5px dashed rgba(255,226,75,.75);border-radius:50%;animation:pulse .42s ease-in-out infinite alternate}.effect-lightning::before,.effect-lightning::after{content:"⚡";position:absolute;top:27%;font-size:52px;color:#ffd12d;text-shadow:0 3px 0 #ff6b00}.effect-lightning::before{left:18%;transform:rotate(-12deg)}.effect-lightning::after{right:17%;transform:rotate(12deg)}.effect-glitch{background:repeating-linear-gradient(180deg,transparent 0 6px,rgba(255,0,106,.1) 7px 9px,transparent 10px 14px);mix-blend-mode:screen;animation:glitch .2s steps(2) infinite}.effect-gray{backdrop-filter:grayscale(1)}.effect-invert{backdrop-filter:hue-rotate(165deg) saturate(1.9)}
@keyframes shake{0%{transform:translate(-2px,1px)}50%{transform:translate(2px,-1px)}100%{transform:translate(-1px,-2px)}}
@keyframes pulse{to{transform:scale(1.08);opacity:.35}}
@keyframes glitch{50%{clip-path:inset(15% 0 48% 0);transform:translateX(3px)}}
.coach-stage.effect-shake-active{animation:stageShake .12s linear infinite}.coach-stage.effect-zoom-active{transform:translateX(-50%) scale(1.05)}.coach-stage.effect-gray-active{filter:grayscale(1)}.coach-stage.effect-invert-active{filter:hue-rotate(150deg) saturate(1.8)}
@keyframes stageShake{0%{transform:translateX(calc(-50% - 2px)) rotate(-.4deg)}50%{transform:translateX(calc(-50% + 2px)) rotate(.4deg)}100%{transform:translateX(calc(-50% - 1px))}}

/* builder */
.builder{margin-top:8px;padding:7px;border-radius:21px;background:rgba(4,17,32,.97);border:1px solid rgba(178,219,255,.2);box-shadow:0 -14px 38px rgba(0,0,0,.26)}
.tabs{display:flex;gap:4px;overflow-x:auto;padding-bottom:6px;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}
.tab-btn{min-width:73px;height:38px;border:0;border-radius:11px;background:#0c2947;color:#c9dbef;font-size:11px;font-weight:1000;padding:0 8px}.tab-btn.active{background:linear-gradient(180deg,#8639dc,#6026b4);color:white;box-shadow:inset 0 0 0 2px rgba(255,255,255,.15)}
.option-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;min-height:128px}
.option-btn{position:relative;min-width:0;min-height:52px;border:1px solid rgba(171,206,240,.18);border-radius:12px;background:linear-gradient(180deg,#dce8f4,#adbed0);color:#061427;padding:4px;font-weight:900;font-size:10px;overflow:hidden}
.option-btn.selected{outline:3px solid #ffd12d;box-shadow:0 0 18px rgba(255,209,45,.45)}
.option-btn .symbol{display:grid;place-items:center;height:27px;font-size:21px;font-weight:1000}.option-btn .label{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.builder-actions{display:grid;grid-template-columns:1fr 1.85fr;gap:8px;margin-top:7px}.builder-actions button{min-height:46px}.submit-btn{font-size:14px}.chaos-btn{font-size:12px;padding:0 8px}
.round-result{position:relative;z-index:40;width:100%;max-height:0;margin:0;padding:0 14px;border-radius:18px;background:linear-gradient(180deg,#142b4a,#071326);border:0 solid #ffd12d;box-shadow:0 14px 34px rgba(0,0,0,.4),0 0 24px rgba(255,209,45,.16);text-align:center;opacity:0;overflow:hidden;pointer-events:none;transform:translateY(-6px);transition:max-height .2s ease,opacity .18s ease,transform .18s ease,margin .18s ease,padding .18s ease,border-width .18s ease}.round-result.show{max-height:118px;margin:8px 0 0;padding:10px 14px 9px;border-width:2px;opacity:1;transform:translateY(0)}.round-result span{display:block;font-weight:1000;font-size:17px;color:#ff72dd;font-style:italic;text-shadow:0 2px 4px #000}.round-result b{display:block;font-size:34px;line-height:1;color:#ffd12d}.round-result small{display:block;margin-top:3px;color:#cbdcf0;font-size:10px;line-height:1.2}

/* results */
.result-screen{background:radial-gradient(circle at 50% 25%,rgba(121,47,195,.34),transparent 42%),linear-gradient(180deg,rgba(2,10,22,.12),rgba(2,10,22,.84));}
.result-wrap{display:flex;flex-direction:column;align-items:center;text-align:center;padding-top:4vh}
.result-kicker{font-size:12px;font-weight:1000;letter-spacing:.15em;color:#f6d550}
.result-wrap h2{font-size:clamp(42px,13vw,68px);line-height:.9;margin:10px 0;color:#ff5fd4;font-style:italic;-webkit-text-stroke:2px #2c0f4a;paint-order:stroke fill;text-shadow:0 5px 0 #6a1c80}
.result-face-frame{position:relative;width:min(78%,360px);aspect-ratio:1/1;border-radius:28px;overflow:hidden;border:4px solid #ffd12d;background:rgba(7,19,38,.8);box-shadow:0 16px 45px rgba(0,0,0,.45),0 0 0 7px rgba(91,39,165,.45)}
.result-character{position:absolute;width:108%;left:-4%;bottom:-22%}.result-character>img{display:block;width:100%;pointer-events:none}.result-sticker{position:absolute;right:8px;top:8px;background:#ffd12d;color:#171006;border:2px solid white;padding:6px 10px;border-radius:10px;font-size:20px;font-weight:1000;transform:rotate(7deg)}
.final-score{display:flex;align-items:baseline;gap:8px;margin-top:16px}.final-score span{font-size:12px;color:#cbdcf0;font-weight:900}.final-score b{font-size:42px;color:#ffd12d}
.result-wrap p{max-width:420px;color:#d9e6f5;line-height:1.45;margin:4px 0 14px}
.result-actions{width:100%;display:grid;gap:9px}.result-actions button{width:100%}

.dialog{width:min(92%,480px);border:1px solid rgba(187,223,255,.26);border-radius:24px;background:#07172a;color:white;padding:0;box-shadow:0 30px 90px rgba(0,0,0,.6)}.dialog::backdrop{background:rgba(0,5,12,.72);backdrop-filter:blur(3px)}.dialog form{padding:24px;position:relative}.dialog-close{position:absolute;right:12px;top:10px;width:42px;height:42px;border:0;border-radius:50%;background:#102d4d;color:white;font-size:27px}.dialog h2{padding-right:38px}.dialog ol{text-align:left;padding-left:22px;line-height:1.5;color:#d5e3f4}.dialog li+li{margin-top:7px}.dialog .primary-btn{width:100%;margin-top:8px}
.pause-overlay{position:absolute;inset:0;background:rgba(0,5,12,.78);z-index:100;display:none;place-items:center;padding:22px}.pause-overlay.show{display:grid}.pause-card{width:100%;max-width:360px;background:#07182b;border:1px solid #335677;border-radius:24px;padding:24px;text-align:center}.pause-card h2{font-size:34px}.pause-card button{width:100%;margin-top:10px}
.toast{position:absolute;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));transform:translate(-50%,20px);z-index:200;max-width:86%;background:rgba(4,18,34,.96);border:1px solid rgba(185,220,255,.28);padding:10px 14px;border-radius:13px;color:white;font-size:13px;font-weight:800;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}

@media (max-height:760px){.stage{min-height:370px}.coach-stage{width:min(78%,315px);top:8px}.option-grid{min-height:102px}.option-btn{min-height:48px}.home-coach{min-height:270px}.home-content{padding-top:0}}
@media (max-width:390px){.scoreboard{font-size:17px;gap:6px}.scoreboard small{font-size:9px}.scoreboard .team-chip{font-size:13px;padding:4px 7px}.hud-actions .icon-btn{width:44px;height:44px}.round-strip{grid-template-columns:52px minmax(0,1fr);gap:9px;padding:8px 9px}.timer-ring{width:48px;height:48px}.round-strip strong{font-size:16px}.round-strip small{font-size:10px}.stage{min-height:clamp(370px,100vw,395px)}.coach-stage{width:min(82%,320px);top:8px}.meme-pop{font-size:19px;max-width:28%}.viral-strip{padding:6px 8px}.option-grid{gap:4px;min-height:112px}.option-btn{font-size:9px;min-height:50px}.tab-btn{min-width:66px;height:38px}}
@media (max-width:360px){.stage{min-height:350px}.builder{margin-top:6px}}
@media (max-width:330px){.scoreboard small{display:none}.scoreboard{font-size:16px}.round-strip strong{font-size:15px}.round-strip small{font-size:9px}.coach-stage{width:min(80%,300px)}.builder-actions{grid-template-columns:1fr 1.6fr}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}}

/* v1.1.0 — uploadable avatar, expanded meme kit, camera interaction */
.photo-status{font-size:10px!important;color:#9fb4ca!important;margin:7px 0 0!important;min-height:14px}.photo-status.active{color:#74f0ae!important}
.home-card #uploadPhotoBtn{width:100%;margin-top:9px}

/* Stable portrait geometry. Custom photos use the same calibrated coordinate plane as the default coach. */
.coach-stage{aspect-ratio:1145/1374}
.coach-stage>img{height:100%;object-fit:contain}
.avatar-image.custom-photo{object-fit:cover;object-position:var(--photo-x,50%) var(--photo-y,43%);transform:scale(var(--photo-zoom,1));transform-origin:var(--photo-x,50%) var(--photo-y,43%);filter:saturate(.98) contrast(1.03) drop-shadow(0 16px 20px rgba(0,0,0,.4))}
.coach-stage.photo-mode{overflow:hidden;border-radius:22px;background:#101827;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.home-coach.photo-mode{overflow:hidden;border-radius:24px;aspect-ratio:4/5;min-height:0;margin-top:10px;background:#0a1728}
.home-coach.photo-mode img{height:100%;object-fit:cover;object-position:var(--photo-x,50%) var(--photo-y,43%);transform:scale(var(--photo-zoom,1));transform-origin:var(--photo-x,50%) var(--photo-y,43%)}
.result-character.photo-mode{height:120%;bottom:-12%;overflow:hidden;border-radius:22px;background:#0a1728}
.result-character.photo-mode>img{width:100%;height:100%;object-fit:cover;object-position:var(--photo-x,50%) var(--photo-y,43%);transform:scale(var(--photo-zoom,1));transform-origin:var(--photo-x,50%) var(--photo-y,43%)}

/* Round interaction readout */
.builder-meta{display:flex;justify-content:space-between;gap:8px;align-items:center;margin:0 2px 6px;padding:6px 8px;border-radius:11px;background:#081d34;border:1px solid rgba(176,216,255,.16);font-size:9px;color:#b8cbe0}.builder-meta span{min-width:0;display:flex;gap:5px;align-items:center}.builder-meta b{white-space:nowrap}.builder-meta strong{color:#ffe05c;font-size:11px}
.builder-actions{grid-template-columns:.8fr .8fr 1.75fr}.builder-actions .photo-game-btn,.builder-actions .chaos-btn{font-size:10px;padding:0 5px}
.snap-cue{position:absolute;right:12px;bottom:82px;z-index:32;min-width:96px;height:48px;border-radius:16px;border:2px solid #fff;background:linear-gradient(180deg,#ff4b7d,#db1750);color:#fff;font-weight:1000;font-size:14px;box-shadow:0 7px 0 #78112d,0 10px 22px rgba(0,0,0,.35);opacity:0;transform:translateY(10px) scale(.85);pointer-events:none;transition:.16s}.snap-cue.show{opacity:1;transform:translateY(0) scale(1);pointer-events:auto;animation:snapPulse .42s ease-in-out infinite alternate}.snap-cue:active{transform:translateY(3px);box-shadow:0 4px 0 #78112d}.match-burst{position:absolute;left:50%;bottom:142px;z-index:31;transform:translate(-50%,8px) scale(.8);opacity:0;background:#ffd12d;color:#101624;border:2px solid #fff;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:1000;pointer-events:none}.match-burst.show{animation:matchBurst .65s ease both}
@keyframes snapPulse{to{filter:brightness(1.18);scale:1.04}}@keyframes matchBurst{0%{opacity:0;transform:translate(-50%,10px) scale(.75)}25%{opacity:1;transform:translate(-50%,0) scale(1.05)}75%{opacity:1}100%{opacity:0;transform:translate(-50%,-16px) scale(.92)}}

/* Expanded eye set */
.eye-wink.eye-left{height:1.8%;top:28%;background:transparent;border-radius:0;border-bottom:5px solid #2e211b;box-shadow:none}.eye-wink.eye-left::before,.eye-wink.eye-left::after{display:none}
.eye-hearts{background:transparent;box-shadow:none;border-radius:0}.eye-hearts::before{content:"♥";display:block;position:absolute;inset:-24% -10%;font-size:32px;line-height:1;color:#ff416f;text-align:center;background:none!important;box-shadow:none!important}.eye-hearts::after{display:none}
.eye-laser{height:2.5%;top:27.8%;border-radius:50%;background:#f5f9ff;box-shadow:0 0 0 2px #38271f,0 0 12px #ff304e}.eye-laser::before{width:88%;height:22%;left:6%;top:39%;border-radius:99px;background:#ff2047;box-shadow:0 0 7px #ff2047}.eye-laser::after{display:none}

/* Expanded brows */
.brow-raised.brow-left{top:20.8%;transform:rotate(-24deg)}.brow-raised.brow-right{top:23%;transform:rotate(8deg)}
.brow-panic{top:21.6%;border-top-width:7px}.brow-panic.brow-left{transform:rotate(22deg)}.brow-panic.brow-right{transform:rotate(-22deg)}
.brow-mono{left:40%!important;right:auto!important;width:21%;top:22.5%;border-radius:40%;transform:none!important;border-top-width:7px}.brow-mono.brow-right{display:none}

/* Expanded mouths */
.mouth-droolmouth{top:39%;height:5.5%;border-radius:48%;background:#261313;border:3px solid #56301e}.mouth-droolmouth::after{content:"";position:absolute;right:17%;bottom:-70%;width:13%;height:72%;background:#5acbff;border-radius:55% 45% 70% 70%;box-shadow:0 2px 6px #147aa6}
.mouth-frownmouth{top:39.4%;height:5%;border-top:0;border-bottom:7px solid #54271e;border-radius:0 0 50% 50%;transform:scaleY(-1)}
.mouth-duckmouth{left:46.2%;width:8.9%;top:39.1%;height:4.8%;background:linear-gradient(180deg,#ed7e92 0 48%,#b94a64 50% 100%);clip-path:polygon(50% 0,100% 45%,65% 100%,50% 80%,35% 100%,0 45%)}
.mouth-silent{top:40.25%;height:2.2%;background:#4c251d;border-radius:99px;transform:rotate(-2deg)}

/* Extras: dizzy stars are deliberately ABOVE the forehead, never across the eyes. */
.extra-dizzy::before{top:4.5%;font-size:27px;text-shadow:30px 9px 0 #f23cc4,-30px 10px 0 #4bd4ff;filter:drop-shadow(0 2px 2px #000)}
.extra-confetti::before{content:"◆  ●  ▲  ◆  ●";position:absolute;left:50%;top:9%;transform:translateX(-50%) rotate(-4deg);font-size:15px;letter-spacing:12px;color:#ffd12d;text-shadow:-70px 36px 0 #ff4f81,72px 30px 0 #50d6ff,30px 55px 0 #8b4cff;white-space:nowrap}
.extra-blush::before,.extra-blush::after{content:"";position:absolute;top:34.5%;width:7%;height:2.8%;border-radius:50%;background:rgba(255,86,116,.58);filter:blur(1px)}.extra-blush::before{left:35%}.extra-blush::after{right:34%}
.extra-sparkles::before{content:"✦   ✧";position:absolute;left:25%;top:14%;font-size:26px;color:#ffe65d;text-shadow:190px 30px 0 #ff79df,30px 130px 0 #79e5ff;white-space:nowrap}
.extra-raincloud::before{content:"☁";position:absolute;left:50%;top:3.5%;transform:translateX(-50%);font-size:54px;color:#7e8da5;text-shadow:0 5px 8px #000}.extra-raincloud::after{content:"⋮ ⋮ ⋮";position:absolute;left:50%;top:11%;transform:translateX(-50%);color:#58caff;font-size:24px;letter-spacing:6px}
.extra-alarm::before,.extra-alarm::after{content:"🚨";position:absolute;top:15%;font-size:34px;filter:drop-shadow(0 3px 4px #000)}.extra-alarm::before{left:17%;transform:rotate(-15deg)}.extra-alarm::after{right:16%;transform:rotate(15deg)}

/* New props sit around the silhouette; none should cover the calibrated eye/mouth zone. */
.prop-part{position:absolute;inset:auto;z-index:10;pointer-events:none}.prop-none{display:block}
.prop-crown::before{content:"♛";position:absolute;left:50%;top:0%;transform:translateX(-50%) rotate(-4deg);font-size:58px;line-height:1;color:#ffd12d;-webkit-text-stroke:2px #854100;paint-order:stroke fill;text-shadow:0 4px 0 #a64300}
.prop-horns::before,.prop-horns::after{content:"";position:absolute;top:8%;width:11%;height:10%;background:linear-gradient(135deg,#d32645,#7a0e30);clip-path:polygon(50% 0,100% 100%,0 78%)}.prop-horns::before{left:27%;transform:rotate(-22deg)}.prop-horns::after{right:27%;transform:scaleX(-1) rotate(-22deg)}
.prop-halo::before{content:"";position:absolute;left:50%;top:4%;width:34%;height:6%;transform:translateX(-50%);border:6px solid #ffe96c;border-radius:50%;box-shadow:0 0 14px #ffe96c}
.prop-foam::before{content:"☝";position:absolute;right:4%;top:54%;font-size:72px;color:#ffd12d;transform:rotate(12deg);filter:drop-shadow(0 4px 2px #4a2100)}
.prop-clipboard::before{content:"▣";position:absolute;left:5%;top:57%;font-size:70px;color:#d8b27a;transform:rotate(-10deg);text-shadow:0 0 0 #3f2a13,3px 4px 0 #3f2a13}
.prop-megaphone::before{content:"📣";position:absolute;left:1%;top:47%;font-size:58px;transform:rotate(-14deg);filter:drop-shadow(0 4px 3px #000)}
.prop-camera::before{content:"📸";position:absolute;right:2%;top:48%;font-size:55px;transform:rotate(8deg);filter:drop-shadow(0 4px 3px #000)}
.prop-towel::before{content:"";position:absolute;left:33%;top:48%;width:12%;height:25%;border-radius:10px;background:linear-gradient(90deg,#fff,#d7dde7,#fff);transform:rotate(12deg);box-shadow:0 3px 9px rgba(0,0,0,.35)}

/* Expanded screen effects */
.effect-spotlight::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 51% 31%,transparent 0 17%,rgba(0,0,0,.08) 23%,rgba(0,0,0,.58) 58%,rgba(0,0,0,.7));mix-blend-mode:multiply}
.effect-rainbow::before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(255,58,120,.2),rgba(255,220,54,.16),rgba(44,228,164,.17),rgba(71,154,255,.2),rgba(190,83,255,.2));mix-blend-mode:screen;animation:rainbowShift .9s linear infinite alternate}
.effect-freeze::before{content:"❄  ❄";position:absolute;left:10%;right:10%;top:16%;font-size:24px;color:#d9f5ff;text-shadow:160px 160px 0 #d9f5ff,40px 230px 0 #89dfff;white-space:nowrap;filter:drop-shadow(0 2px 4px #0d6f9e)}
.coach-stage.effect-freeze-active{filter:hue-rotate(155deg) saturate(.7) brightness(1.08)}
@keyframes rainbowShift{to{filter:hue-rotate(42deg);opacity:.65}}

/* Photo setup dialog */
.photo-dialog form{padding-top:20px}.photo-dialog h2{margin-bottom:6px}.photo-privacy{font-size:12px;color:#b8cade;line-height:1.4;margin:0 0 12px}
.photo-preview-shell{position:relative;width:min(72%,260px);aspect-ratio:1145/1374;margin:0 auto 12px;overflow:hidden;border-radius:20px;background:#0b1728;border:2px solid #315170;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.photo-preview-shell img{display:block;width:100%;height:100%;object-fit:contain}.photo-preview-shell img.custom-photo{object-fit:cover;object-position:var(--photo-x,50%) var(--photo-y,43%);transform:scale(var(--photo-zoom,1));transform-origin:var(--photo-x,50%) var(--photo-y,43%)}
.photo-guide{position:absolute;pointer-events:none;border:2px dashed rgba(255,225,82,.86);z-index:4}.eye-guide-left,.eye-guide-right{top:26%;width:8%;height:6%;border-radius:50%}.eye-guide-left{left:40%}.eye-guide-right{right:39%}.mouth-guide{left:43%;top:38.4%;width:16%;height:6%;border-radius:50%}.photo-guide-label{position:absolute;left:50%;bottom:7px;transform:translateX(-50%);z-index:5;font-size:8px;font-weight:1000;letter-spacing:.08em;color:#111;background:#ffd12d;padding:4px 6px;border-radius:7px;white-space:nowrap}
.photo-file-btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;cursor:pointer}.photo-sliders{display:grid;gap:8px;margin:12px 0}.photo-sliders label{display:grid;grid-template-columns:82px 1fr;align-items:center;gap:8px;font-size:10px;font-weight:900;color:#cbdced}.photo-sliders input[type=range]{width:100%;accent-color:#ffd12d}.photo-dialog-actions{display:grid;grid-template-columns:1fr 1.15fr;gap:8px}.photo-dialog-actions button{min-height:48px;padding:0 8px;font-size:11px}

@media (max-height:760px){.photo-preview-shell{width:min(54%,210px)}.option-btn{min-height:46px}.option-grid{min-height:96px}.builder-meta{margin-bottom:4px;padding:4px 7px}.snap-cue{bottom:78px}}
@media (max-width:390px){.builder-actions{grid-template-columns:.78fr .78fr 1.65fr}.builder-actions button{min-height:44px}.builder-meta{font-size:8px}.prop-foam::before{font-size:60px}.prop-camera::before,.prop-megaphone::before{font-size:48px}}
@media (max-width:340px){.builder-actions{grid-template-columns:1fr 1fr}.submit-btn{grid-column:1/-1}.photo-sliders label{grid-template-columns:68px 1fr}}
.coach-stage{pointer-events:none}
.snap-cue{pointer-events:none}.snap-cue.show{pointer-events:auto;z-index:60}
/* Keep the SNAP target spatially stable so fast taps never miss a moving hitbox. */
.snap-cue.show{animation:snapGlow .42s ease-in-out infinite alternate;transform:translateY(0) scale(1)}
@keyframes snapGlow{to{filter:brightness(1.18);box-shadow:0 7px 0 #78112d,0 0 0 7px rgba(255,80,120,.16),0 10px 22px rgba(0,0,0,.35)}}
/* Uploaded portraits use a neutral local blur under replacements instead of the default coach's fixed skin-tone patches. */
.photo-mode .face-cover{background:rgba(220,220,220,.08)!important;backdrop-filter:blur(8px) saturate(.82);-webkit-backdrop-filter:blur(8px) saturate(.82)}
.photo-preview-shell{cursor:grab;touch-action:none}.photo-preview-shell.dragging{cursor:grabbing}.photo-preview-shell.dragging::after{content:"↔  ↕";position:absolute;inset:auto 10px 34px auto;z-index:8;background:rgba(3,15,29,.82);color:#fff;padding:4px 7px;border-radius:8px;font-size:11px;font-weight:900}

/* v1.2.0 — redrawn reaction kit, richer option previews, live reaction coaching */
.reaction-bar{display:grid;gap:2px;margin:0 2px 7px;padding:8px 10px;border-radius:12px;background:linear-gradient(180deg,rgba(10,28,50,.96),rgba(5,18,35,.92));border:1px solid rgba(185,220,255,.16);box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.reaction-bar b{font-size:12px;letter-spacing:.06em;color:#ffe56d}
.reaction-bar small{font-size:10px;line-height:1.25;color:#d8e6f7}
.option-btn{display:grid;grid-template-rows:28px auto;align-items:center;justify-items:center;padding:4px 5px;background:linear-gradient(180deg,#e9f2fa,#bccddd)}
.option-btn .label{font-size:9px;line-height:1.04;text-align:center;max-width:100%}
.option-art{position:relative;display:block;width:100%;height:26px;border-radius:8px;background:linear-gradient(180deg,#17263b,#0b1628);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),0 1px 0 rgba(255,255,255,.25);overflow:hidden}
.option-art::before,.option-art::after{content:"";position:absolute;box-sizing:border-box}
.option-art.option-extras-none,.option-art.option-props-none,.option-art.option-effects-none{background:linear-gradient(180deg,#ebeff4,#c9d4de)}
.option-art.option-extras-none::before,.option-art.option-props-none::before,.option-art.option-effects-none::before{left:50%;top:50%;width:56%;height:2px;background:#6a788b;transform:translate(-50%,-50%);border-radius:3px}
/* option previews — extras */
.option-extras-sweat::before,.option-extras-sweat::after{background:linear-gradient(180deg,#9de8ff,#38b9ff);border-radius:55% 45% 65% 35%;box-shadow:0 1px 4px rgba(12,83,140,.45)}
.option-extras-sweat::before{width:9px;height:14px;left:8px;top:5px;transform:rotate(15deg)}
.option-extras-sweat::after{width:7px;height:11px;right:9px;top:7px;transform:rotate(-12deg)}
.option-extras-question::before{left:8px;top:5px;width:15px;height:12px;background:#ffd949;border:2px solid #5f2d85;border-radius:8px 8px 8px 2px;box-shadow:0 2px 0 rgba(0,0,0,.15)}
.option-extras-question::after{content:"?!";right:8px;top:3px;color:#fff;font-size:13px;font-weight:1000;text-shadow:0 1px 0 #57166d}
.option-extras-dizzy::before{left:2px;right:2px;top:10px;height:2px;border-radius:99px;background:rgba(255,235,153,.45)}
.option-extras-dizzy::after{left:5px;right:5px;top:3px;height:20px;background:radial-gradient(circle at 18% 65%,#ffe05c 0 17%,transparent 18%),radial-gradient(circle at 50% 20%,#ff73da 0 15%,transparent 16%),radial-gradient(circle at 82% 66%,#63d8ff 0 17%,transparent 18%)}
.option-extras-orbit::before{left:4px;right:4px;top:4px;bottom:4px;border:2px solid rgba(255,236,133,.45);border-radius:50%}
.option-extras-orbit::after{inset:0;background:radial-gradient(circle at 18% 56%,#ffe05c 0 11%,transparent 12%),radial-gradient(circle at 49% 17%,#ff6ed1 0 10%,transparent 11%),radial-gradient(circle at 81% 58%,#72dfff 0 11%,transparent 12%)}
.option-extras-flash::before{left:6px;top:4px;width:15px;height:15px;background:radial-gradient(circle,#fff 0 28%,#ffe56a 29% 54%,#ff61b7 55% 70%,transparent 71%)}
.option-extras-flash::after{right:5px;bottom:4px;width:15px;height:15px;background:radial-gradient(circle,#fff 0 24%,#7ee6ff 25% 50%,#ffe56a 51% 68%,transparent 69%)}
.option-extras-stress::before{left:4px;right:4px;top:4px;bottom:4px;background:repeating-linear-gradient(135deg,transparent 0 4px,rgba(255,95,95,.88) 4px 6px,transparent 6px 11px)}
.option-extras-confetti::before{inset:0;background:radial-gradient(circle at 16% 26%,#ffe95b 0 7%,transparent 8%),radial-gradient(circle at 31% 64%,#ff66b9 0 6%,transparent 7%),radial-gradient(circle at 61% 35%,#70e1ff 0 6%,transparent 7%),radial-gradient(circle at 84% 64%,#8f80ff 0 6%,transparent 7%)}
.option-extras-confetti::after{left:6px;right:6px;top:4px;bottom:4px;background:linear-gradient(125deg,transparent 0 40%,rgba(255,255,255,.1) 40% 60%,transparent 60% 100%)}
.option-extras-raincloud::before{left:8px;top:4px;width:22px;height:10px;border-radius:10px;background:linear-gradient(180deg,#9cabc1,#6e7b90)}
.option-extras-raincloud::after{left:11px;top:14px;width:16px;height:8px;background:repeating-linear-gradient(90deg,#57c8ff 0 2px,transparent 2px 5px)}
.option-extras-alarm::before,.option-extras-alarm::after{top:4px;width:9px;height:15px;background:linear-gradient(180deg,#ff667f,#d81d48);border:2px solid #fff;border-radius:999px 999px 5px 5px;box-shadow:0 0 8px rgba(255,103,126,.45)}
.option-extras-alarm::before{left:7px}.option-extras-alarm::after{right:7px}
.option-extras-sparkles::before{inset:0;background:radial-gradient(circle at 26% 32%,#ffe55a 0 10%,transparent 11%),radial-gradient(circle at 74% 24%,#ff6dd6 0 8%,transparent 9%),radial-gradient(circle at 48% 69%,#7be1ff 0 9%,transparent 10%)}
.option-extras-sparkles::after{left:11px;top:4px;width:2px;height:18px;background:rgba(255,245,198,.85);box-shadow:10px 4px 0 0 rgba(255,103,201,.75),19px 11px 0 0 rgba(90,221,255,.75)}
/* option previews — props */
.option-props-crown::before{left:6px;right:6px;top:4px;height:16px;background:linear-gradient(180deg,#ffe77a,#ffb83d);clip-path:polygon(0 100%,0 60%,15% 52%,25% 5%,40% 58%,50% 20%,60% 58%,75% 5%,85% 52%,100% 60%,100% 100%);border-bottom:3px solid #9a4d00}
.option-props-horns::before,.option-props-horns::after{top:4px;width:12px;height:16px;background:linear-gradient(180deg,#f4556e,#821737);clip-path:polygon(50% 0,100% 100%,0 82%)}.option-props-horns::before{left:6px;transform:rotate(-18deg)}.option-props-horns::after{right:6px;transform:scaleX(-1) rotate(-18deg)}
.option-props-halo::before{left:7px;right:7px;top:4px;height:9px;border:3px solid #ffe66e;border-radius:50%;box-shadow:0 0 8px rgba(255,238,128,.55)}
.option-props-foam::before{left:50%;top:2px;width:14px;height:21px;transform:translateX(-50%);background:linear-gradient(180deg,#fff9b7,#ffe24b);clip-path:polygon(38% 0,62% 0,64% 44%,82% 44%,88% 55%,73% 70%,73% 100%,27% 100%,27% 70%,12% 56%,18% 44%,36% 44%)}
.option-props-clipboard::before{left:9px;top:4px;width:18px;height:18px;background:linear-gradient(180deg,#e3c99a,#b88e59);border-radius:3px;box-shadow:0 0 0 2px #5e3b1f inset}.option-props-clipboard::after{left:14px;top:2px;width:8px;height:4px;background:#5e3b1f;border-radius:3px}
.option-props-megaphone::before{left:6px;top:6px;width:18px;height:12px;background:linear-gradient(90deg,#fff,#f1d28a 40%,#ff5d5d 40% 68%,#bd223b 68%);clip-path:polygon(0 35%,65% 0,100% 0,100% 100%,65% 100%,0 65%)}.option-props-megaphone::after{right:8px;top:9px;width:6px;height:10px;background:#ffce45;border-radius:2px}
.option-props-camera::before{left:7px;top:6px;width:19px;height:13px;background:linear-gradient(180deg,#313f57,#0f1827);border-radius:4px;box-shadow:0 0 0 2px rgba(255,255,255,.12) inset}.option-props-camera::after{left:13px;top:8px;width:7px;height:7px;border-radius:50%;background:radial-gradient(circle,#76dfff 0 27%,#1c2c46 28% 58%,#0a1422 59%)}
.option-props-towel::before{left:10px;top:4px;width:14px;height:18px;background:linear-gradient(90deg,#fff,#dfe5ef,#fff);border-radius:3px;transform:rotate(8deg)}
.option-props-headband::before{left:6px;right:6px;top:8px;height:8px;background:linear-gradient(180deg,#ff5f6e,#b81d42);border-radius:8px}
.option-props-whistle::before{left:9px;top:7px;width:16px;height:11px;background:linear-gradient(180deg,#ffeaa7,#ffc24e);border-radius:11px 11px 8px 8px;box-shadow:0 0 0 2px #905f1a inset}.option-props-whistle::after{right:6px;top:10px;width:7px;height:2px;background:#d8ecff;box-shadow:-13px -2px 0 #d8ecff}
.option-props-facepaint::before{left:5px;top:5px;width:8px;height:16px;background:linear-gradient(180deg,#42d8ff,#0f85bf)}.option-props-facepaint::after{right:5px;top:5px;width:8px;height:16px;background:linear-gradient(180deg,#ff4f7c,#bd103f)}
/* option previews — effects */
.option-effects-lightning::before{left:11px;top:2px;width:10px;height:22px;background:linear-gradient(180deg,#ffe15f,#ffae2f);clip-path:polygon(45% 0,100% 0,62% 42%,86% 42%,23% 100%,41% 56%,12% 56%)}
.option-effects-freeze::before{inset:0;background:radial-gradient(circle at 30% 34%,rgba(215,245,255,.92) 0 10%,transparent 11%),radial-gradient(circle at 68% 62%,rgba(215,245,255,.92) 0 10%,transparent 11%)}
.option-effects-freeze::after{left:6px;right:6px;top:5px;bottom:5px;background:repeating-linear-gradient(135deg,rgba(130,222,255,.18) 0 4px,rgba(255,255,255,.04) 4px 8px)}
.option-effects-scanline::before{inset:0;background:repeating-linear-gradient(180deg,rgba(103,230,255,.18) 0 2px,transparent 2px 5px)}
.option-effects-burst::before{left:50%;top:50%;width:22px;height:22px;transform:translate(-50%,-50%);background:radial-gradient(circle,#fff 0 18%,#ffe760 19% 43%,#ff52b0 44% 66%,transparent 67%)}
.option-effects-pulse::before{left:50%;top:50%;width:18px;height:18px;transform:translate(-50%,-50%);border:3px solid #7ff2ff;border-radius:50%;box-shadow:0 0 0 4px rgba(127,242,255,.25),0 0 0 8px rgba(255,213,93,.18)}
.option-effects-spotlight::before{inset:0;background:radial-gradient(circle at 50% 32%,rgba(255,246,175,.9) 0 20%,transparent 21%),linear-gradient(180deg,rgba(255,246,175,.22),transparent 62%)}
.option-effects-rainbow::before{inset:0;background:linear-gradient(90deg,#ff537e,#ffcc48,#44e28b,#50c8ff,#9f6cff);opacity:.95}
.option-effects-glitch::before{inset:0;background:repeating-linear-gradient(180deg,transparent 0 4px,rgba(255,44,126,.34) 4px 7px,transparent 7px 10px)}.option-effects-glitch::after{inset:4px 5px;background:linear-gradient(90deg,rgba(90,236,255,.34),transparent 45%,rgba(255,245,175,.2) 46% 60%,transparent 61%)}
.option-effects-shake::before{left:7px;top:7px;width:18px;height:12px;border:2px solid rgba(255,255,255,.9);border-radius:8px;box-shadow:-3px -2px 0 rgba(255,89,118,.45),3px 2px 0 rgba(83,223,255,.45)}
.option-effects-gray::before{inset:0;background:linear-gradient(90deg,#eff2f5,#9199a3);filter:grayscale(1)}
.option-effects-invert::before{inset:0;background:linear-gradient(120deg,#ff5f8a,#fbe75b,#54c6ff)}
.option-effects-zoom::before{left:8px;top:5px;width:14px;height:14px;border:3px solid #ffe56f;border-radius:50%}.option-effects-zoom::after{right:8px;bottom:5px;width:9px;height:3px;background:#ffe56f;transform:rotate(38deg);border-radius:3px}
/* stage redraws */
.extra-question::before{content:"";right:16%;top:18%;width:46px;height:34px;background:linear-gradient(180deg,#ffe56e,#ffcc3d);border:4px solid #6b2789;border-radius:16px 16px 16px 6px;box-shadow:0 4px 0 rgba(0,0,0,.18)}
.extra-question::after{content:"?!";position:absolute;right:26%;top:22.2%;font-size:26px;font-weight:1000;color:#5f1e7c;text-shadow:0 1px 0 rgba(255,255,255,.35)}
.extra-dizzy::before{content:"";left:20%;right:20%;top:7%;height:10%;background:radial-gradient(circle at 10% 70%,#ffe45c 0 11%,transparent 12%),radial-gradient(circle at 48% 18%,#ff6fd2 0 10%,transparent 11%),radial-gradient(circle at 90% 68%,#74dcff 0 11%,transparent 12%)}
.extra-dizzy::after{content:"";position:absolute;left:26%;right:26%;top:6.4%;height:7%;border:3px solid rgba(255,235,145,.46);border-radius:50%}
.extra-orbit::before{content:"";position:absolute;left:28%;right:28%;top:5.2%;height:10%;border:3px solid rgba(255,229,118,.44);border-radius:50%}
.extra-orbit::after{content:"";position:absolute;left:22%;right:22%;top:3.2%;height:14%;background:radial-gradient(circle at 12% 72%,#ffe45c 0 8%,transparent 9%),radial-gradient(circle at 50% 8%,#ff6fd2 0 7%,transparent 8%),radial-gradient(circle at 88% 72%,#72ddff 0 8%,transparent 9%)}
.extra-flash::before{content:"";position:absolute;left:14%;top:19%;width:17%;aspect-ratio:1;background:radial-gradient(circle,#fff 0 24%,#ffe268 25% 48%,#ff67b9 49% 63%,transparent 64%)}
.extra-flash::after{content:"";position:absolute;right:17%;top:27%;width:14%;aspect-ratio:1;background:radial-gradient(circle,#fff 0 24%,#80e6ff 25% 47%,#ffe268 48% 63%,transparent 64%)}
.extra-stress::before,.extra-stress::after{content:"";position:absolute;top:16%;width:20%;height:18%;background:repeating-linear-gradient(135deg,transparent 0 7px,rgba(255,83,111,.92) 7px 10px,transparent 10px 15px)}.extra-stress::before{left:13%}.extra-stress::after{right:13%;transform:scaleX(-1)}
.extra-alarm::before,.extra-alarm::after{content:"";position:absolute;top:13%;width:12%;height:10%;background:linear-gradient(180deg,#ff5a79,#d41b47);border:3px solid #fff;border-radius:50% 50% 22% 22%;box-shadow:0 0 14px rgba(255,92,126,.55)}.extra-alarm::before{left:16%}.extra-alarm::after{right:16%}
.prop-camera::before{content:"";position:absolute;right:1.5%;top:49%;width:17%;height:10%;background:linear-gradient(180deg,#35445d,#101726);border-radius:10px;box-shadow:0 0 0 3px rgba(255,255,255,.12) inset,0 4px 10px rgba(0,0,0,.35)}
.prop-camera::after{content:"";position:absolute;right:6.2%;top:50.8%;width:7%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#7ce4ff 0 28%,#21324e 29% 58%,#0a1320 59%)}
.prop-megaphone::before{content:"";position:absolute;left:1%;top:47%;width:18%;height:9.5%;background:linear-gradient(90deg,#fff,#f5d38d 38%,#ff6a6a 38% 68%,#cb2145 68%);clip-path:polygon(0 34%,63% 0,100% 0,100% 100%,63% 100%,0 66%);filter:drop-shadow(0 4px 3px rgba(0,0,0,.32))}
.prop-megaphone::after{content:"";position:absolute;left:14%;top:52%;width:4%;height:8%;background:#ffcf4d;border-radius:3px;transform:rotate(-12deg)}
.prop-clipboard::before{content:"";position:absolute;left:4%;top:56%;width:15%;height:15%;background:linear-gradient(180deg,#e1ca9d,#b58a54);border-radius:8px;box-shadow:0 0 0 3px #5f3d1f inset,0 4px 10px rgba(0,0,0,.3);transform:rotate(-10deg)}
.prop-clipboard::after{content:"";position:absolute;left:8.8%;top:55%;width:6%;height:2.4%;background:#5f3d1f;border-radius:999px;transform:rotate(-10deg)}
.prop-headband::before{content:"";position:absolute;left:31%;right:31%;top:10.5%;height:5%;background:linear-gradient(180deg,#ff6170,#be173d);border-radius:999px;box-shadow:0 2px 6px rgba(0,0,0,.25)}
.prop-whistle::before{content:"";position:absolute;left:46%;top:47%;width:8%;height:5%;background:linear-gradient(180deg,#ffeaa8,#ffc24d);border-radius:999px;box-shadow:0 0 0 3px #8f5f19 inset,0 3px 7px rgba(0,0,0,.3)}
.prop-whistle::after{content:"";position:absolute;left:49%;top:43%;width:2px;height:6%;background:#d9edff;box-shadow:0 0 0 1px rgba(255,255,255,.35)}
.prop-facepaint::before,.prop-facepaint::after{content:"";position:absolute;top:34%;width:5%;height:7%;border-radius:5px;opacity:.9}.prop-facepaint::before{left:33%;background:linear-gradient(180deg,#45d7ff,#0e7fb8)}.prop-facepaint::after{right:32%;background:linear-gradient(180deg,#ff5a82,#bb0d40)}
.effect-scanline::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(180deg,rgba(94,225,255,.08) 0 3px,transparent 3px 6px);mix-blend-mode:screen}
.effect-burst::before{content:"";position:absolute;left:50%;top:30%;width:26%;aspect-ratio:1;transform:translate(-50%,-50%);background:radial-gradient(circle,#fff 0 18%,#ffe86b 19% 43%,#ff5fc0 44% 64%,transparent 65%)}
.effect-pulse::before{content:"";position:absolute;left:50%;top:31%;width:28%;height:16%;transform:translate(-50%,-50%);border:5px solid rgba(123,238,255,.75);border-radius:50%;box-shadow:0 0 0 12px rgba(123,238,255,.12),0 0 0 22px rgba(255,220,96,.09)}
.avatar-image.custom-photo{transform:scale(var(--photo-zoom,1)) rotate(var(--photo-rotate,0deg));transform-origin:var(--photo-x,50%) var(--photo-y,43%)}
.home-coach.photo-mode img,.result-character.photo-mode>img,.photo-preview-shell img.custom-photo{transform:scale(var(--photo-zoom,1)) rotate(var(--photo-rotate,0deg));transform-origin:var(--photo-x,50%) var(--photo-y,43%)}
.photo-sliders label{grid-template-columns:94px 1fr}
@media (max-width:390px){.reaction-bar b{font-size:11px}.reaction-bar small{font-size:9px}.photo-sliders label{grid-template-columns:72px 1fr}}

/* v1.2.0 cleanup — replace remaining temporary glyph/emoji stage art with drawn CSS assets */
.extra-steam::before,.extra-steam::after{content:"";position:absolute;top:13%;width:12%;height:14%;border:5px solid rgba(236,246,255,.82);border-color:rgba(236,246,255,.82) transparent transparent rgba(236,246,255,.82);border-radius:50%;filter:drop-shadow(0 3px 5px rgba(0,0,0,.35));background:transparent}.extra-steam::before{left:24%;transform:rotate(22deg)}.extra-steam::after{right:24%;transform:scaleX(-1) rotate(22deg)}
.extra-confetti::before{content:"";left:15%;right:15%;top:9%;height:18%;transform:none;background:radial-gradient(circle at 10% 16%,#ffe45c 0 3%,transparent 4%),radial-gradient(circle at 25% 72%,#ff5cae 0 3%,transparent 4%),radial-gradient(circle at 48% 24%,#6ee4ff 0 3%,transparent 4%),radial-gradient(circle at 69% 70%,#8f70ff 0 3%,transparent 4%),radial-gradient(circle at 91% 18%,#ffb83e 0 3%,transparent 4%)}
.extra-confetti::after{content:"";position:absolute;left:17%;right:17%;top:11%;height:15%;background:repeating-linear-gradient(118deg,transparent 0 16px,rgba(255,255,255,.9) 17px 19px,transparent 20px 34px);opacity:.45}
.extra-sparkles::before{content:"";left:17%;right:17%;top:12%;height:18%;background:radial-gradient(circle at 9% 15%,#ffe65d 0 4%,transparent 5%),radial-gradient(circle at 32% 72%,#7be4ff 0 3%,transparent 4%),radial-gradient(circle at 70% 28%,#ff75d7 0 4%,transparent 5%),radial-gradient(circle at 91% 77%,#ffe65d 0 4%,transparent 5%)}
.extra-sparkles::after{content:"";position:absolute;left:27%;top:12%;width:2px;height:15%;background:rgba(255,255,255,.9);box-shadow:0 0 8px #ffe65d,118px 44px 0 #fff,118px 44px 7px #ff75d7}
.extra-raincloud::before{content:"";left:36%;top:4%;width:28%;height:9%;transform:none;background:linear-gradient(180deg,#9eabc0,#667388);border-radius:18px;box-shadow:-15px 6px 0 -2px #7d8ba1,16px 4px 0 -3px #8492a7,0 7px 12px rgba(0,0,0,.3)}
.extra-raincloud::after{content:"";left:39%;top:13%;width:23%;height:10%;transform:none;background:repeating-linear-gradient(100deg,transparent 0 10px,#5ac9ff 11px 14px,transparent 15px 23px)}
.prop-crown::before{content:"";left:36%;top:0%;width:28%;height:10%;transform:rotate(-4deg);background:linear-gradient(180deg,#fff0a0,#ffd12d 50%,#ff9a1f);clip-path:polygon(0 100%,0 64%,14% 56%,24% 3%,40% 59%,50% 20%,60% 59%,76% 3%,87% 56%,100% 64%,100% 100%);filter:drop-shadow(0 5px 3px rgba(0,0,0,.35));box-shadow:none}
.prop-crown::after{content:"";position:absolute;left:39%;top:8.3%;width:22%;height:1.7%;background:#9d4c00;border-radius:4px;transform:rotate(-4deg)}
.prop-foam::before{content:"";right:3%;top:53%;width:18%;height:24%;background:linear-gradient(180deg,#fff9bf,#ffe342 58%,#f2a927);clip-path:polygon(34% 0,58% 0,60% 35%,71% 35%,73% 22%,86% 26%,84% 45%,95% 50%,87% 67%,72% 70%,72% 100%,26% 100%,26% 72%,8% 58%,14% 41%,32% 39%);filter:drop-shadow(0 5px 4px rgba(0,0,0,.35));transform:rotate(10deg)}
.effect-lightning::before,.effect-lightning::after{content:"";position:absolute;top:25%;width:7%;height:16%;background:linear-gradient(180deg,#fff58a,#ffd12d 55%,#ff9a1f);clip-path:polygon(45% 0,100% 0,64% 40%,88% 40%,21% 100%,42% 56%,10% 56%);filter:drop-shadow(0 4px 2px rgba(156,69,0,.75))}.effect-lightning::before{left:18%;transform:rotate(-12deg)}.effect-lightning::after{right:17%;transform:scaleX(-1) rotate(-12deg)}
.effect-freeze::before{content:"";left:12%;right:12%;top:13%;height:24%;background:radial-gradient(circle at 9% 16%,#e4fbff 0 3%,transparent 4%),radial-gradient(circle at 34% 72%,#9ee7ff 0 3%,transparent 4%),radial-gradient(circle at 66% 30%,#e4fbff 0 3%,transparent 4%),radial-gradient(circle at 92% 74%,#9ee7ff 0 3%,transparent 4%);filter:drop-shadow(0 2px 3px rgba(26,120,160,.45))}
.effect-freeze::after{content:"";position:absolute;inset:18% 20% 30%;border:3px solid rgba(193,242,255,.35);border-radius:35% 65% 40% 60%;transform:rotate(-8deg)}
.drag-chip{position:fixed;z-index:999;transform:translate(-50%,-50%) scale(.9);pointer-events:none;width:76px;padding:6px;border-radius:14px;background:rgba(6,18,34,.96);border:2px solid #ffe05a;box-shadow:0 12px 32px rgba(0,0,0,.45);display:grid;gap:4px;justify-items:center;color:#fff;font-size:9px;font-weight:1000}.drag-chip .option-art{width:62px}.drag-chip .symbol{font-size:24px}.coach-stage.drop-hot::after{content:"DROP TO APPLY";position:absolute;left:50%;top:6%;transform:translateX(-50%);z-index:30;background:#ffe05a;color:#15100a;border:2px solid #fff;border-radius:999px;padding:6px 10px;font-size:9px;font-weight:1000;box-shadow:0 8px 18px rgba(0,0,0,.28);letter-spacing:.04em}.coach-stage.drop-hot{filter:brightness(1.08);outline:3px solid rgba(255,224,90,.55);outline-offset:-3px}
.option-extras-tears::before,.option-extras-tears::after{top:4px;width:8px;height:16px;background:linear-gradient(180deg,#9eeaff,#3db9ff);border-radius:55% 45% 70% 30%;box-shadow:0 2px 4px rgba(13,93,146,.35)}.option-extras-tears::before{left:8px;transform:rotate(8deg)}.option-extras-tears::after{right:8px;transform:rotate(-8deg)}
.option-extras-vein::before{left:50%;top:50%;width:20px;height:18px;transform:translate(-50%,-50%);background:#f24f62;clip-path:polygon(44% 0,58% 30%,100% 20%,68% 52%,100% 72%,58% 64%,47% 100%,38% 65%,0 78%,29% 52%,0 31%,39% 34%);filter:drop-shadow(0 2px 2px rgba(0,0,0,.25))}
.option-extras-steam::before,.option-extras-steam::after{top:5px;width:9px;height:15px;border:3px solid rgba(235,246,255,.88);border-color:rgba(235,246,255,.88) transparent transparent rgba(235,246,255,.88);border-radius:50%}.option-extras-steam::before{left:7px;transform:rotate(20deg)}.option-extras-steam::after{right:7px;transform:scaleX(-1) rotate(20deg)}
.option-extras-blush::before,.option-extras-blush::after{top:9px;width:10px;height:7px;background:rgba(255,103,132,.72);border-radius:50%;filter:blur(.2px)}.option-extras-blush::before{left:6px}.option-extras-blush::after{right:6px}
.option-effects-lightning::before{left:50%;top:2px;width:12px;height:22px;transform:translateX(-50%);background:linear-gradient(180deg,#fff58a,#ffd12d 55%,#ff9a1f);clip-path:polygon(45% 0,100% 0,64% 40%,88% 40%,21% 100%,42% 56%,10% 56%);filter:drop-shadow(0 2px 2px rgba(156,69,0,.7))}
.effect-burst::before{content:"";position:absolute;left:7%;right:7%;top:10%;bottom:24%;width:auto;height:auto;transform:none;background:repeating-conic-gradient(from -6deg at 50% 36%,rgba(255,224,82,.8) 0 4deg,transparent 4deg 13deg,rgba(255,92,183,.72) 13deg 17deg,transparent 17deg 28deg);-webkit-mask:radial-gradient(ellipse at 50% 36%,transparent 0 31%,#000 32% 100%);mask:radial-gradient(ellipse at 50% 36%,transparent 0 31%,#000 32% 100%);opacity:.8;filter:drop-shadow(0 2px 2px rgba(0,0,0,.2))}
.extra-orbit::before{content:"";position:absolute;left:27%;right:27%;top:5.5%;height:8%;border:3px solid rgba(255,229,118,.48);border-radius:50%;transform:rotate(-4deg);box-shadow:0 2px 6px rgba(0,0,0,.2)}
.extra-orbit::after{content:"";position:absolute;left:50%;top:3.7%;width:20px;height:20px;transform:translateX(-50%);background:#ff72d6;clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 94%,50% 72%,21% 94%,32% 57%,2% 35%,39% 35%);filter:drop-shadow(-78px 26px 0 #ffe05b) drop-shadow(78px 26px 0 #72ddff) drop-shadow(0 2px 2px rgba(0,0,0,.28))}
.option-extras-orbit::before{left:50%;top:3px;width:14px;height:14px;transform:translateX(-50%);background:#ff72d6;clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 94%,50% 72%,21% 94%,32% 57%,2% 35%,39% 35%);filter:drop-shadow(-12px 6px 0 #ffe05b) drop-shadow(12px 6px 0 #72ddff)}
.option-extras-orbit::after{left:4px;right:4px;top:6px;height:14px;border:2px solid rgba(255,236,133,.35);border-radius:50%;background:none}

/* v1.3 polished illustrated decor assets */
.extra-part::before,.extra-part::after,.prop-part::before,.prop-part::after,.effect-part::before,.effect-part::after,
.option-art.option-extras::before,.option-art.option-extras::after,.option-art.option-props::before,.option-art.option-props::after,.option-art.option-effects::before,.option-art.option-effects::after{content:none !important}

.extra-part,.prop-part,.effect-part{background-repeat:no-repeat;background-position:center;background-size:contain;filter:drop-shadow(0 3px 5px rgba(0,0,0,.28))}
.option-art.option-extras,.option-art.option-props,.option-art.option-effects{background-repeat:no-repeat;background-position:center;background-size:contain}

/* preview cards */
.option-art.option-props-crown{background-image:url('assets/decor/props-crown.png')}
.option-art.option-props-horns{background-image:url('assets/decor/props-horns.png')}
.option-art.option-props-halo{background-image:url('assets/decor/props-halo.png')}
.option-art.option-props-foam{background-image:url('assets/decor/props-foam.png')}
.option-art.option-props-clipboard{background-image:url('assets/decor/props-clipboard.png')}
.option-art.option-props-megaphone{background-image:url('assets/decor/props-megaphone.png')}
.option-art.option-props-camera{background-image:url('assets/decor/props-camera.png')}
.option-art.option-props-towel{background-image:url('assets/decor/props-towel.png')}
.option-art.option-props-headband{background-image:url('assets/decor/props-headband.png')}
.option-art.option-props-whistle{background-image:url('assets/decor/props-whistle.png')}
.option-art.option-props-facepaint{background-image:url('assets/decor/props-facepaint.png')}
.option-art.option-extras-sweat{background-image:url('assets/decor/extras-sweat.png')}
.option-art.option-extras-question{background-image:url('assets/decor/extras-question.png')}
.option-art.option-extras-tears{background-image:url('assets/decor/extras-tears.png')}
.option-art.option-extras-vein{background-image:url('assets/decor/extras-vein.png')}
.option-art.option-extras-steam{background-image:url('assets/decor/extras-steam.png')}
.option-art.option-extras-dizzy{background-image:url('assets/decor/extras-dizzy.png')}
.option-art.option-extras-confetti{background-image:url('assets/decor/extras-confetti.png')}
.option-art.option-extras-blush{background-image:url('assets/decor/extras-blush.png')}
.option-art.option-extras-sparkles{background-image:url('assets/decor/extras-sparkles.png')}
.option-art.option-extras-raincloud{background-image:url('assets/decor/extras-raincloud.png')}
.option-art.option-extras-alarm{background-image:url('assets/decor/extras-alarm.png')}
.option-art.option-extras-flash{background-image:url('assets/decor/extras-flash.png')}
.option-art.option-extras-orbit{background-image:url('assets/decor/extras-orbit.png')}
.option-art.option-extras-stress{background-image:url('assets/decor/extras-stress.png')}
.option-art.option-effects-shake{background-image:url('assets/decor/effects-shake.png')}
.option-art.option-effects-zoom{background-image:url('assets/decor/effects-zoom.png')}
.option-art.option-effects-lightning{background-image:url('assets/decor/effects-lightning.png')}
.option-art.option-effects-glitch{background-image:url('assets/decor/effects-glitch.png')}
.option-art.option-effects-gray{background-image:url('assets/decor/effects-gray.png')}
.option-art.option-effects-invert{background-image:url('assets/decor/effects-invert.png')}
.option-art.option-effects-spotlight{background-image:url('assets/decor/effects-spotlight.png')}
.option-art.option-effects-rainbow{background-image:url('assets/decor/effects-rainbow.png')}
.option-art.option-effects-freeze{background-image:url('assets/decor/effects-freeze.png')}
.option-art.option-effects-scanline{background-image:url('assets/decor/effects-scanline.png')}
.option-art.option-effects-burst{background-image:url('assets/decor/effects-burst.png')}
.option-art.option-effects-pulse{background-image:url('assets/decor/effects-pulse.png')}

/* stage placement - extras */
.extra-none,.prop-none,.effect-none{background-image:none !important}
.extra-sweat{left:16%;top:22%;width:24%;height:22%;background-image:url('assets/decor/extras-sweat.png')}
.extra-question{left:67%;top:15%;width:21%;height:19%;background-image:url('assets/decor/extras-question.png')}
.extra-tears{left:31%;top:27%;width:38%;height:24%;background-image:url('assets/decor/extras-tears.png')}
.extra-vein{left:69%;top:16%;width:16%;height:16%;background-image:url('assets/decor/extras-vein.png')}
.extra-steam{left:18%;top:15%;width:64%;height:20%;background-image:url('assets/decor/extras-steam.png')}
.extra-dizzy{left:29%;top:4%;width:42%;height:16%;background-image:url('assets/decor/extras-dizzy.png')}
.extra-confetti{left:23%;top:8%;width:54%;height:20%;background-image:url('assets/decor/extras-confetti.png')}
.extra-blush{left:30%;top:35%;width:40%;height:15%;background-image:url('assets/decor/extras-blush.png')}
.extra-sparkles{left:18%;top:12%;width:62%;height:22%;background-image:url('assets/decor/extras-sparkles.png')}
.extra-raincloud{left:31%;top:1%;width:38%;height:24%;background-image:url('assets/decor/extras-raincloud.png')}
.extra-alarm{left:16%;top:14%;width:68%;height:20%;background-image:url('assets/decor/extras-alarm.png')}
.extra-flash{left:68%;top:22%;width:18%;height:18%;background-image:url('assets/decor/extras-flash.png')}
.extra-orbit{left:27%;top:5%;width:46%;height:16%;background-image:url('assets/decor/extras-orbit.png')}
.extra-stress{left:34%;top:5%;width:32%;height:20%;background-image:url('assets/decor/extras-stress.png')}

/* stage placement - props */
.prop-crown{left:34%;top:-2%;width:32%;height:18%;background-image:url('assets/decor/props-crown.png')}
.prop-horns{left:34%;top:1%;width:32%;height:17%;background-image:url('assets/decor/props-horns.png')}
.prop-halo{left:30%;top:-1%;width:40%;height:15%;background-image:url('assets/decor/props-halo.png')}
.prop-foam{left:80%;top:53%;width:17%;height:18%;background-image:url('assets/decor/props-foam.png');transform:rotate(8deg)}
.prop-clipboard{left:2%;top:55%;width:18%;height:20%;background-image:url('assets/decor/props-clipboard.png');transform:rotate(-8deg)}
.prop-megaphone{left:1%;top:46%;width:20%;height:20%;background-image:url('assets/decor/props-megaphone.png');transform:rotate(-12deg)}
.prop-camera{left:79%;top:47%;width:18%;height:18%;background-image:url('assets/decor/props-camera.png');transform:rotate(7deg)}
.prop-towel{left:32%;top:48%;width:17%;height:22%;background-image:url('assets/decor/props-towel.png');transform:rotate(10deg)}
.prop-headband{left:27%;top:7%;width:46%;height:12%;background-image:url('assets/decor/props-headband.png')}
.prop-whistle{left:42%;top:46%;width:15%;height:14%;background-image:url('assets/decor/props-whistle.png')}
.prop-facepaint{left:33%;top:31%;width:34%;height:16%;background-image:url('assets/decor/props-facepaint.png')}

/* stage placement - effects */
.effect-shake{left:31%;top:26%;width:38%;height:18%;background-image:url('assets/decor/effects-shake.png');opacity:.9}
.effect-zoom{left:25%;top:18%;width:50%;height:27%;background-image:url('assets/decor/effects-zoom.png');opacity:.75}
.effect-lightning{left:11%;top:21%;width:78%;height:25%;background-image:url('assets/decor/effects-lightning.png')}
.effect-glitch{left:17%;top:16%;width:66%;height:28%;background-image:url('assets/decor/effects-glitch.png');opacity:.82;background-size:90% auto;mix-blend-mode:screen}
.effect-gray{left:20%;top:17%;width:60%;height:27%;background-image:url('assets/decor/effects-gray.png');opacity:.52}
.effect-invert{left:23%;top:15%;width:54%;height:28%;background-image:url('assets/decor/effects-invert.png');opacity:.85}
.effect-spotlight{left:12%;top:3%;width:76%;height:58%;background-image:url('assets/decor/effects-spotlight.png');opacity:.7}
.effect-rainbow{left:26%;top:10%;width:48%;height:20%;background-image:url('assets/decor/effects-rainbow.png')}
.effect-freeze{left:18%;top:13%;width:64%;height:28%;background-image:url('assets/decor/effects-freeze.png');opacity:.92}
.effect-scanline{left:12%;top:7%;width:76%;height:70%;background-image:url('assets/decor/effects-scanline.png');opacity:.35;background-size:100% 100%;mix-blend-mode:screen}
.effect-burst{left:21%;top:10%;width:58%;height:28%;background-image:url('assets/decor/effects-burst.png')}
.effect-pulse{left:25%;top:18%;width:50%;height:28%;background-image:url('assets/decor/effects-pulse.png');opacity:.76}
.option-art.option-extras-none,.option-art.option-props-none,.option-art.option-effects-none{background-image:linear-gradient(180deg,transparent 46%,#718094 46% 54%,transparent 54%)}

/* v1.3 photo editor correction: real pan/zoom instead of object-position */
.avatar-image.custom-photo,
.home-coach.photo-mode img,
.result-character.photo-mode>img,
.photo-preview-shell img.custom-photo{
  object-position:center center !important;
  transform-origin:50% 50% !important;
}
.photo-dialog-actions{grid-template-columns:1fr 1fr 1.15fr}
.photo-dialog-actions button{min-width:0}
@media (max-width:390px){.photo-dialog-actions{grid-template-columns:1fr 1fr}.photo-dialog-actions #photoUseBtn{grid-column:1/-1}}
/* v1.3 face readability pass */
.extra-orbit{left:22%;top:4.5%;width:56%;height:18%}
.effect-burst{left:70%;top:17%;width:24%;height:22%;z-index:6}
.effect-lightning{left:7%;top:21%;width:86%;height:24%;z-index:6}
.effect-glitch,.effect-scanline{z-index:6}
/* v1.3 polish pass — protect the face and make handheld props readable */
.extra-steam{left:11%;top:17%;width:25%;height:18%}
.extra-sparkles{left:69%;top:16%;width:21%;height:18%}
.extra-alarm{left:31%;top:1%;width:38%;height:15%}
.extra-confetti{left:24%;top:3%;width:52%;height:17%}
.extra-dizzy{left:28%;top:2%;width:44%;height:15%}
.extra-orbit{left:22%;top:3%;width:56%;height:17%}

.prop-foam{left:78%;top:55%;width:21%;height:22%}
.prop-clipboard{left:1%;top:56%;width:23%;height:24%}
.prop-megaphone{left:2%;top:57%;width:26%;height:25%;transform:rotate(-10deg)}
.prop-camera{left:72%;top:58%;width:25%;height:24%;transform:rotate(5deg)}
.prop-towel{left:20%;top:48%;width:25%;height:27%;transform:rotate(8deg)}
.prop-headband{left:26%;top:6%;width:48%;height:16%}
.prop-whistle{left:39%;top:50%;width:22%;height:18%}
.prop-facepaint{left:31%;top:31%;width:38%;height:16%}

.effect-shake{left:20%;top:19%;width:60%;height:32%;opacity:.78}
.effect-zoom{left:17%;top:7%;width:66%;height:40%;opacity:.55}
.effect-lightning{left:70%;top:20%;width:24%;height:23%;z-index:6}
.effect-glitch{left:17%;top:20%;width:66%;height:18%;opacity:.55}
.effect-spotlight{left:15%;top:3%;width:70%;height:58%;opacity:.55}
.effect-rainbow{left:25%;top:5%;width:50%;height:18%}
.effect-freeze{left:66%;top:13%;width:28%;height:26%;opacity:.88}
.effect-scanline{left:14%;top:13%;width:72%;height:56%;opacity:.23}
.effect-pulse{left:16%;top:8%;width:68%;height:43%;opacity:.42}
.coach-stage.effect-freeze-active{filter:saturate(.9) brightness(1.04)}
.effect-zoom{left:10%;top:3%;width:80%;height:46%;opacity:.32}
.effect-pulse{left:9%;top:3%;width:82%;height:47%;opacity:.28}

/* v1.3.2 precise photo fitting + head-aware wearables */
.photo-calib-status{min-height:34px;margin:0 0 10px;padding:7px 10px;border-radius:10px;background:#0b1e34;border:1px solid rgba(167,211,255,.18);color:#d7e7f8;font-size:10px;font-weight:750;line-height:1.35}
.photo-preview-shell.calibrating{outline:3px solid #ffd12d;outline-offset:3px;cursor:crosshair}
.photo-preview-shell.calibrating .photo-guide{border-color:#fff2a1;box-shadow:0 0 10px rgba(255,209,45,.35)}
.calib-marker{position:absolute;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;border:3px solid #fff;background:#ff4f7d;box-shadow:0 0 0 3px rgba(255,209,45,.7),0 3px 9px rgba(0,0,0,.45);z-index:9;display:none;pointer-events:auto;touch-action:none;cursor:grab}
.calib-marker.show{display:block}.calib-marker.temple-marker{background:#5fdcff}
.photo-dialog-actions-v2{grid-template-columns:1fr 1fr}.photo-dialog-actions-v2 #photoUseBtn{grid-column:1/-1}.precision-btn{border-color:#ffd12d;color:#ffe56a}
@media (min-width:470px){.photo-dialog-actions-v2{grid-template-columns:1fr 1fr 1fr 1.15fr}.photo-dialog-actions-v2 #photoUseBtn{grid-column:auto}}

/* custom photo integration */
.coach-stage.photo-mode::after,.result-character.photo-mode::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:5;background:radial-gradient(ellipse at 50% 35%,transparent 0 54%,rgba(5,15,28,.10) 66%,rgba(5,15,28,.52) 100%);box-shadow:inset 0 0 32px rgba(3,10,20,.48);border-radius:inherit}
.coach-stage.photo-mode .face-canvas,.result-character.photo-mode .result-face-canvas{z-index:7}
.photo-mode .face-cover{background:rgba(235,235,235,.045)!important;backdrop-filter:blur(4px) saturate(.9);-webkit-backdrop-filter:blur(4px) saturate(.9)}

/* headwear follows calibrated head width / tilt */
.prop-crown,.prop-horns,.prop-halo,.prop-headband{transform-origin:50% 100%;transform:rotate(var(--wear-rot,0deg)) scaleX(var(--wear-scale-x,1));transition:transform .18s ease}
.prop-crown{transform-origin:50% 92%}.prop-halo{transform-origin:50% 80%}

/* v1.3.2 landmark-driven face overlay + headwear fitting */
.face-fit-layer{position:absolute;inset:0;pointer-events:none;transform-origin:50% 50%;transform:translate(var(--face-tx,0%),var(--face-ty,0%)) rotate(var(--face-rot,0deg)) scale(var(--face-scale-x,1),var(--face-scale-y,1));transition:transform .18s ease}
.prop-crown{left:calc(32% + var(--wear-x,0%));top:calc(-1.5% + var(--wear-y,0%));transform:rotate(var(--wear-rot,0deg)) scale(var(--wear-scale-x,1),var(--wear-scale-y,1))}
.prop-horns{left:calc(33% + var(--wear-x,0%));top:calc(1% + var(--wear-y,0%));transform:rotate(var(--wear-rot,0deg)) scale(var(--wear-scale-x,1),var(--wear-scale-y,1))}
.prop-halo{left:calc(28% + var(--wear-x,0%));top:calc(-2% + var(--wear-y,0%));transform:rotate(var(--wear-rot,0deg)) scale(var(--wear-scale-x,1),var(--wear-scale-y,1))}
.prop-headband{left:calc(26% + var(--wear-x,0%));top:calc(6% + var(--wear-y,0%));transform:rotate(var(--wear-rot,0deg)) scale(var(--wear-scale-x,1),var(--wear-scale-y,1))}

/* v1.3.2 headwear silhouette pass: give square source art enough height so it scales by head width */
.prop-crown{width:36%;height:27%;top:calc(-5% + var(--wear-y,0%))}
.prop-horns{width:36%;height:27%;top:calc(-4% + var(--wear-y,0%))}
.prop-halo{width:44%;height:24%;top:calc(-7% + var(--wear-y,0%))}
.prop-headband{width:48%;height:30%;top:calc(-1% + var(--wear-y,0%))}

/* v1.5 — seven-point portrait fitting + true headwear anchoring */
.calib-marker.head-marker{background:#74ef9d;box-shadow:0 0 0 3px rgba(76,226,137,.55),0 3px 9px rgba(0,0,0,.45)}
.photo-preview-shell.calibrating::before{content:"7-POINT FIT";position:absolute;left:8px;top:8px;z-index:10;padding:4px 7px;border-radius:7px;background:rgba(4,18,34,.86);color:#ffe56a;font-size:8px;font-weight:1000;letter-spacing:.08em;pointer-events:none}

/* Blend uploaded portrait into the stadium instead of showing a hard passport-photo rectangle. */
.coach-stage.photo-mode>img.custom-photo,.result-character.photo-mode>img.custom-photo{
  -webkit-mask-image:radial-gradient(ellipse 78% 86% at 50% 43%,#000 0 66%,rgba(0,0,0,.92) 74%,rgba(0,0,0,.42) 90%,transparent 100%);
  mask-image:radial-gradient(ellipse 78% 86% at 50% 43%,#000 0 66%,rgba(0,0,0,.92) 74%,rgba(0,0,0,.42) 90%,transparent 100%);
  filter:saturate(.98) contrast(1.035) brightness(.98) drop-shadow(0 14px 24px rgba(0,0,0,.36));
}
.coach-stage.photo-mode,.result-character.photo-mode{background:radial-gradient(ellipse at 50% 42%,rgba(24,39,61,.54),rgba(8,18,33,.20) 66%,rgba(5,13,25,.08));}
.coach-stage.photo-mode::after,.result-character.photo-mode::after{background:radial-gradient(ellipse at 50% 39%,transparent 0 58%,rgba(5,15,28,.08) 68%,rgba(5,15,28,.42) 100%);box-shadow:inset 0 0 22px rgba(3,10,20,.34)}

/* Wearable source art is now positioned by JS from the calibrated hairline/temple points. */
.prop-crown,.prop-horns,.prop-halo,.prop-headband{transition:left .16s ease,top .16s ease,width .16s ease,height .16s ease,transform .16s ease;transform-origin:50% 100%}

/* Keep face overlays readable without looking like opaque stickers on real photos. */
.photo-mode .eye-part,.photo-mode .brow-part,.photo-mode .mouth-part{filter:drop-shadow(0 2px 2px rgba(0,0,0,.28))}
.photo-mode .face-cover{opacity:.62}

@media (max-width:390px){
  .photo-calib-status{font-size:9px;min-height:31px}
  .calib-marker{width:16px;height:16px;margin:-8px 0 0 -8px}
}

/* v1.5.1 portrait stage integration — remove the passport-photo rectangle */
.coach-stage.photo-mode>img.custom-photo,.result-character.photo-mode>img.custom-photo{
  -webkit-mask-image:radial-gradient(ellipse 62% 82% at 50% 44%,#000 0 54%,rgba(0,0,0,.92) 63%,rgba(0,0,0,.30) 76%,transparent 88%);
  mask-image:radial-gradient(ellipse 62% 82% at 50% 44%,#000 0 54%,rgba(0,0,0,.92) 63%,rgba(0,0,0,.30) 76%,transparent 88%);
}

/* v1.5.1 hosted-full compatibility: static modal overlays + in-memory photo canvases */
.dialog-overlay{position:absolute;inset:0;z-index:120;background:rgba(0,5,12,.76);display:grid;place-items:center;padding:18px;overflow:auto;backdrop-filter:blur(3px)}
.dialog-overlay[hidden]{display:none!important}
.dialog-panel{display:block;max-height:none;margin:auto;position:relative}
.dialog-panel .primary-btn{width:100%;margin-top:8px}
.photo-dialog.dialog-panel{width:min(92%,480px)}
.photo-canvas,.photo-preview-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}
.photo-preview-canvas{z-index:1}
.photo-preview-shell>img{position:relative;z-index:0}
.home-coach,.coach-stage,.result-character,.photo-preview-shell{position:relative}
.home-coach.photo-mode>img,.coach-stage.photo-mode>img.custom-photo,.result-character.photo-mode>img.custom-photo,.photo-preview-shell.photo-mode>img{visibility:hidden}
.home-coach.photo-mode>.photo-canvas,.coach-stage.photo-mode>.photo-canvas,.result-character.photo-mode>.photo-canvas,.photo-preview-shell.photo-mode>.photo-preview-canvas{display:block}
.coach-stage>.photo-canvas,.result-character>.photo-canvas{z-index:1}
.coach-stage .face-canvas,.result-character .result-face-canvas{z-index:7}

/* v1.6 — photo fit modes, pinch guidance, calibrated decor anchoring */
.photo-fit-modes{display:grid;grid-template-columns:auto repeat(3,1fr);align-items:center;gap:6px;margin:10px 0 6px;padding:7px;border-radius:12px;background:#081d34;border:1px solid rgba(176,216,255,.16)}
.photo-fit-modes>span{font-size:9px;font-weight:1000;color:#b8cbe0;letter-spacing:.08em;padding:0 4px}
.fit-mode-btn{min-height:36px;border:1px solid rgba(180,219,255,.26);border-radius:10px;background:#0c2947;color:#d9e9fa;font-size:9px;font-weight:1000;letter-spacing:.04em;cursor:pointer}
.fit-mode-btn.active{background:linear-gradient(180deg,#8039e8,#5923aa);color:white;border-color:#b77cff;box-shadow:0 0 0 2px rgba(144,70,234,.16),inset 0 1px rgba(255,255,255,.2)}
.photo-gesture-hint{margin:0 0 8px;color:#9fb5cd;font-size:9px;line-height:1.35;text-align:center}
.photo-preview-shell{touch-action:none}
.face-anchored-decor{transform-origin:50% 38%;transform:translate(var(--face-tx,0%),var(--face-ty,0%)) rotate(var(--face-rot,0deg)) scale(var(--face-scale-x,1),var(--face-scale-y,1))}
@media(max-width:390px){.photo-fit-modes{grid-template-columns:1fr 1fr 1fr}.photo-fit-modes>span{grid-column:1/-1;text-align:center}.fit-mode-btn{min-height:34px}}
/* v1.6 tighter headwear geometry: stretch transparent art to calibrated head box */
.prop-crown,.prop-horns,.prop-halo,.prop-headband{background-size:100% 100%;background-position:center bottom;background-repeat:no-repeat}

.calib-marker.dragging{cursor:grabbing;transform:scale(1.08)}
.photo-preview-shell.drag-points{outline:2px dashed rgba(255,209,45,.38);outline-offset:-8px}
