/* 2.5D portrait studio; preserves untouched source illustration on a depth-separated stage. */
.stage25-launch{display:block;width:100%;margin:8px auto 10px;padding:11px 14px;border:1px solid #86baff87;border-radius:12px;background:linear-gradient(105deg,#283c70,#243758 58%,#3c3267);color:#f1f8ff;font-weight:800;letter-spacing:.02em;cursor:pointer;box-shadow:inset 0 1px #d5d8ff17}.stage25-launch:hover{border-color:#bdd4ff;background:#35528c}
.stage25-backdrop{display:none;position:fixed;inset:0;z-index:999999;background:#040815d9;backdrop-filter:blur(13px);padding:clamp(6px,2vh,18px);justify-content:center;align-items:center;font-family:Inter,ui-sans-serif,system-ui,sans-serif}.stage25-backdrop.visible{display:flex}
.stage25-panel{width:min(1380px,98vw);height:min(900px,96vh);min-height:510px;display:flex;flex-direction:column;background:#0d152c;border:1px solid #7ea7f455;border-radius:20px;overflow:hidden;box-shadow:0 32px 150px #000b;color:#ebf1ff}
.stage25-header{display:flex;align-items:center;justify-content:space-between;padding:19px 25px 17px;background:radial-gradient(ellipse at 25% -45%,#4b69a65a,transparent 65%),#141d37;border-bottom:1px solid #adc8ff22;gap:20px}.stage25-overline{font-size:10px;font-weight:900;letter-spacing:2.2px;color:#9fc2ff}.stage25-dot{color:#60deb7;text-shadow:0 0 14px #4cead2}.stage25-header h2{margin:5px 0 3px;font-size:clamp(20px,2vw,30px);letter-spacing:-.7px;font-weight:850}.stage25-header h2 span{color:#a3c5ff}.stage25-header h2 em{font-style:normal;background:linear-gradient(135deg,#91d8ff,#e0b6ff);background-clip:text;color:transparent}.stage25-header p{font-size:12px;margin:0;color:#adbfe2}.stage25-header #stage25-close{flex:none;background:#212d4a;border:1px solid #a1b9e64d;color:#f2f6ff;border-radius:10px;font-size:20px;padding:9px 14px;cursor:pointer}
.stage25-layout{display:grid;grid-template-columns:minmax(360px,1fr) 318px;flex:1;min-height:0}.stage25-scene{position:relative;isolation:isolate;overflow:hidden;min-height:0;background:radial-gradient(ellipse at 53% 40%,#355989,#111a35 80%);perspective:850px}.stage25-back{position:absolute;inset:-10%;background-image:linear-gradient(90deg,#08102733,#08102733),url('/assets/environments/blue-room.webp');background-size:cover;background-position:center 48%;filter:brightness(.76) saturate(1.05) blur(1.5px);will-change:transform}.stage25-scene:after{content:'';position:absolute;z-index:9;pointer-events:none;inset:0;background:linear-gradient(to top,#0c1737dd 0%,transparent 25%,transparent 76%,#0b123253 100%),linear-gradient(90deg,#0e1a3a78,transparent 26%,transparent 73%,#0e1a3a65)}
.stage25-grid{position:absolute;inset:0;pointer-events:none;opacity:.17;background:repeating-linear-gradient(90deg,transparent 0,transparent 82px,#accaff27 83px),repeating-linear-gradient(0deg,transparent 0,transparent 82px,#accaff17 83px);mask-image:linear-gradient(to top,#000,transparent 68%)}
.stage25-halo{position:absolute;z-index:1;width:min(73%,540px);aspect-ratio:1;top:45%;left:50%;border-radius:50%;transform:translate(-50%,-50%);border:1px solid #a8deff65;box-shadow:0 0 65px #8daefe5c,inset 0 0 70px #a3c7ff2e,0 0 0 28px #9be6ff09,0 0 0 60px #b0ceff07;pointer-events:none}.stage25-ground{position:absolute;z-index:1;bottom:8%;left:50%;width:48%;height:30px;transform:translateX(-50%);border-radius:50%;background:#bbe2ff66;filter:blur(23px);opacity:.5}
.stage25-portrait{position:absolute;z-index:4;left:50%;bottom:3%;height:91%;aspect-ratio:325/607;transform-origin:50% 80%;transform-style:preserve-3d;will-change:transform;filter:drop-shadow(0 13px 8px #03071f55) drop-shadow(0 0 25px #aacaff53)}.stage25-art,.stage25-art img{position:absolute;width:100%;height:100%;inset:0;object-fit:contain;user-select:none;pointer-events:none}.stage25-original{z-index:1}.stage25-face{z-index:8}.stage25-art #stage25-hair-layers{position:absolute;inset:0;z-index:7;pointer-events:none}.stage25-art #stage25-hair-layers img{width:100%;height:100%;object-fit:contain;position:absolute;transform-origin:50% 30%;will-change:transform}.stage25-fringe{transform:translateY(var(--hair-fringe,0px))}.stage25-side-hair-left{transform:translateX(var(--hair-left,0px))}.stage25-side-hair-right{transform:translateX(var(--hair-right,0px))}.stage25-ear-left{transform:rotate(var(--ear-rot,0deg))}.stage25-ear-right{transform:rotate(calc(-1 * var(--ear-rot,0deg)))}
.stage25-particles{position:absolute;inset:0;width:100%;height:100%;z-index:6;pointer-events:none;opacity:.85}.stage25-scene-info{position:absolute;z-index:12;left:25px;bottom:25px;right:22px;display:flex;align-items:flex-end;justify-content:space-between;pointer-events:none}.stage25-scene-info h3{margin:7px 0 0;font-size:29px;letter-spacing:-.5px;color:#f4f8ff;text-shadow:0 2px 18px #090f30}.stage25-scene-info p{margin:3px 0 0;font-size:12px;color:#c9dff8}.stage25-scene-info>span{font-size:10px;color:#a9e2ff;letter-spacing:1px;background:#0e204b99;border:1px solid #7faedb4a;border-radius:7px;padding:6px}.stage25-tag{color:#bee4ff;font-size:10px;font-weight:900;letter-spacing:2px}.stage25-stats{position:absolute;z-index:12;top:18px;left:18px;right:18px;display:flex;justify-content:space-between;pointer-events:none}.stage25-stats span{font-size:11px;font-weight:700;color:#c8defc;border:1px solid #a4bbeb4d;background:#101d3d9e;border-radius:9px;padding:7px 10px;backdrop-filter:blur(5px)}.stage25-stats span:first-child{color:#79f0ca}
.stage25-sidebar{padding:19px 18px;overflow:auto;background:linear-gradient(170deg,#1a2342,#10182e);border-left:1px solid #8cadf22e;scrollbar-color:#6a83ae #16203b}.stage25-info{display:flex;gap:12px;align-items:center;border:1px solid #8eace748;background:#1b2a4a;border-radius:11px;padding:10px;margin-bottom:20px}.stage25-info img{width:57px;height:77px;object-fit:contain;background:#162448;border-radius:7px;flex:none}.stage25-info strong{display:block;font-size:12px;margin-bottom:5px}.stage25-info span{display:block;font-size:11px;line-height:1.5;color:#c0cde6}
.stage25-section{font-size:10px;font-weight:900;letter-spacing:1.8px;color:#91b9f5;margin:20px 0 9px}.stage25-cast{display:flex;gap:5px;flex-wrap:wrap}.stage25-cast button,.stage25-actions button,.stage25-poses button{background:#273557;color:#dce9ff;padding:9px 10px;border:1px solid #6983b86b;border-radius:9px;font:700 11px/1.1 ui-sans-serif,system-ui;cursor:pointer;transition:background .15s,border-color .15s}.stage25-cast button:hover,.stage25-actions button:hover,.stage25-poses button:hover{background:#3a5784}.stage25-cast button.on,.stage25-actions button.on,.stage25-poses button.on{background:#4768a0;border-color:#b5d1ff;color:white}.stage25-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.stage25-actions button{padding:11px 5px}.stage25-poses{display:flex;gap:5px}.stage25-poses button{flex:1;padding:10px 5px}.stage25-range{font-size:12px;color:#d9e6ff;font-weight:700;display:block;margin:13px 0}.stage25-range output{float:right;color:#99c5ff}.stage25-range input{width:100%;accent-color:#8fb8ff;display:block;margin-top:8px}.stage25-option{display:flex;gap:7px;font-size:12px;align-items:center;margin:13px 0}.stage25-option input{accent-color:#8fb8ff}.stage25-honesty{margin-top:17px;border-left:3px solid #74add5;padding:7px 10px;color:#b8c9e5;font-size:11px;line-height:1.6}.stage25-honesty strong{display:block;color:#e2f0ff;margin-bottom:4px}.stage25-honesty em{font-style:normal;color:#dceaff;font-weight:750}#stage25-info{font-size:11px;line-height:1.5;color:#c6ddfc}#stage25-speech{color:#78c6d2;font:900 9px ui-sans-serif,system-ui;letter-spacing:1.1px;margin-top:11px;opacity:.52}#stage25-speech.on{color:#72f0b7;opacity:1;text-shadow:0 0 10px #62edbe}
.stage25-footer{padding:10px 22px;display:flex;gap:12px;justify-content:space-between;background:#0c1327;border-top:1px solid #a2b9ef27;color:#87a6d0;font:750 10px/1.2 ui-sans-serif,system-ui;letter-spacing:.6px}
@media(max-width:770px){.stage25-backdrop{padding:4px}.stage25-panel{height:99vh;min-height:0}.stage25-layout{display:flex;flex-direction:column}.stage25-scene{height:52%;min-height:260px}.stage25-sidebar{height:48%;border-left:0;border-top:1px solid #86a6dd55}.stage25-header{padding:12px}.stage25-header p{display:none}.stage25-footer{display:none}.stage25-scene-info{left:15px;bottom:12px}.stage25-portrait{height:93%}}
@media(prefers-reduced-motion:reduce){.stage25-portrait,.stage25-back,.stage25-halo,.stage25-art img{transition:none!important}}
