/* Character-led composition, with lightweight compositor-only ambient motion. */
body.garden-theme{--text:#f5f1e4;--muted:#a9bfb4;--accent:#e8cb89;--line:#e5c68e26}
.garden-theme header{position:relative;border-bottom:1px solid #c5dcc11c;padding-top:17px;padding-bottom:17px}
.garden-theme header .brand small{letter-spacing:3px}
.garden-theme header nav a{font-size:12px;letter-spacing:.4px;position:relative}
.garden-theme header nav a[aria-current=page]{background:#e8cb8919;color:#f8dfa5}
.garden-theme header nav a[aria-current=page]:after{content:"";position:absolute;bottom:2px;left:calc(50% - 8px);width:16px;height:2px;border-radius:2px;background:#e8cb89}
.garden-theme .hero{grid-template-columns:1.1fr .9fr;max-width:1440px;gap:24px;padding:45px 6% 55px;min-height:760px}
.garden-theme .hero-copy{position:relative;z-index:2}
.garden-theme .hero h1{font-size:clamp(70px,7.3vw,108px);letter-spacing:10px;line-height:1.18}
.garden-theme .hero h1 span{font-size:clamp(20px,2.1vw,29px);line-height:1.8;letter-spacing:4px;margin-top:16px}
.garden-theme .hero .eyebrow{letter-spacing:3px;font-size:10px;color:#aacbb8;margin-bottom:23px}
.garden-theme .hero .intro{font-size:14px;margin:18px 0 24px;color:#b3c8bc}
.garden-theme .hero:before{width:600px;height:600px;right:-170px;top:80px;opacity:.4}
.garden-theme .hero:after{opacity:.4}
.garden-portals{max-width:490px;gap:10px 12px;margin-top:22px}
.garden-portals a{min-height:55px;font-size:13px;box-shadow:0 6px 20px #0002;border-color:#e9cf9860;background:linear-gradient(115deg,#f5e8c9,#e5d4ad)}
.garden-portals img{width:36px;height:36px}
.garden-portals .portal-icon{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:50%;border:1px solid #526c4c40;background:#2543380d;color:#365746;box-shadow:inset 0 1px 0 #fff6}
.garden-portals .portal-icon svg{display:block;width:22px;height:22px}
.garden-portals a:hover .portal-icon{background:#25433818;color:#183d2e}
.garden-theme .hero-note{font-size:11px;letter-spacing:1px;color:#97b4a7;margin-top:20px}
.character-scene{position:relative;margin:0;min-width:0;display:grid;place-items:center;align-self:stretch;isolation:isolate}
.character-halo{position:absolute;left:50%;top:47%;width:112%;aspect-ratio:1;transform:translate(-50%,-50%);border:1px solid #e5c68e38;border-radius:50%;z-index:-1;box-shadow:0 0 0 14px #e5c68e06,0 0 0 16px #e5c68e16;background:radial-gradient(ellipse,#c5f2d317,transparent 67%)}
.character-halo:before{content:"";position:absolute;inset:8%;border-radius:50%;border:1px dashed #e5c68e40;animation:haloTurn 90s linear infinite}
.character-halo:after{content:"✦";position:absolute;top:14%;right:11%;font-size:22px;color:#ecd4a0;text-shadow:0 0 20px #ecd4a040}
.character-cutout{display:block;width:100%;height:auto;max-height:720px;object-fit:contain;position:relative;z-index:1;animation:characterFloat 7s ease-in-out infinite;filter:drop-shadow(0 14px 16px #020c1045)}
.character-scene figcaption{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);z-index:2;white-space:nowrap;display:grid;text-align:center;gap:5px;padding:10px 25px;border:1px solid #d7bd7c40;background:#17332fee;border-radius:40px;color:#e9d7aa;font-size:12px;letter-spacing:3px}
.character-scene figcaption small{font-size:9px;color:#9fc4b2;letter-spacing:3px}
.hero-art-link{position:absolute;right:0;top:40px;border:1px solid #e3c58955;border-radius:24px;padding:7px 14px;color:#d8c49b;font-size:11px;z-index:3;background:#18342ee8}
.character-scene.dual-character{min-height:680px}
.character-person{position:absolute;bottom:45px;display:grid;justify-items:center;min-width:0}
.character-person.primary-character{right:-2%;width:70%;z-index:2}
.character-person.secondary-character{left:-6%;width:56%;z-index:1;bottom:68px}
.character-person .character-cutout{width:100%;max-height:620px;filter:drop-shadow(0 10px 14px #020c1045)}
.character-person.secondary-character .character-cutout{animation-delay:-3s}
.character-person strong{font:500 15px/1.5 "Songti SC",serif;color:#f3dfab;border:1px solid #d7bd7c40;padding:5px 16px;background:#17332fee;border-radius:24px;letter-spacing:2px}
.dual-character figcaption{bottom:0;font-size:11px}
.profile-layout .dual-character{min-height:570px}
.profile-layout .character-person.primary-character{right:-3%;width:70%}
.profile-layout .character-person.secondary-character{left:-5%;width:55%}
@media(max-width:700px){.garden-theme .hero>.character-scene.dual-character,.profile-layout .character-scene.dual-character{height:420px;min-height:420px}.character-person.primary-character,.profile-layout .character-person.primary-character{right:3%;width:59%}.character-person.secondary-character,.profile-layout .character-person.secondary-character{left:0;width:47%;bottom:62px}.garden-theme .hero>.dual-character .character-person .character-cutout,.profile-layout .dual-character .character-person .character-cutout{height:340px;width:100%;max-height:340px}.character-person strong{font-size:12px;padding:4px 12px}.dual-character figcaption{font-size:10px;letter-spacing:1px}.dual-character .hero-art-link{top:0}}
.profile-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(240px,.8fr);align-items:center;gap:32px;max-width:1240px;width:calc(100% - 64px);margin:0 auto 48px}
.garden-theme .profile-layout .about{display:block;width:100%;margin:0;padding:40px;border-radius:26px;background:linear-gradient(135deg,#f4e9cf,#daceaa)}
.garden-theme .profile-layout .section-title{margin-bottom:28px}
.garden-theme .profile-layout .section-title:after{display:none}
.profile-layout .section-title h2{font-size:32px}
.profile-layout .character-scene{min-height:570px}
.profile-layout .character-cutout{max-height:650px}
.gallery-showcase{display:grid;grid-template-columns:.8fr 1.2fr;gap:45px;align-items:center;max-width:1100px;width:calc(100% - 64px);margin:0 auto 48px}
.gallery-showcase h2{font-size:40px;color:#f0d9a7;margin-bottom:20px}
.gallery-showcase>div>p:not(.eyebrow){color:#a9c3b7;font-size:14px;max-width:320px}
.gallery-showcase .hero-art.look-carousel{max-width:600px;width:100%;border-radius:28px;padding:10px 10px 14px}
.gallery-showcase .look-stage{border-radius:20px}
.gallery-showcase .look-main{height:360px}
.garden-theme .section{background:linear-gradient(130deg,#254338ed,#132b2bee);border-color:#d9c48c26;box-shadow:0 20px 70px #0000001c}
.garden-theme .card{background:#142d2bd9;border-color:#d5c29125;transition:transform .25s,border-color .25s,box-shadow .25s}
.garden-theme .card:hover{border-color:#d7bd7c70;box-shadow:0 14px 32px #0003}
.garden-theme .page-heading{margin-bottom:30px;padding:0 8px}
.garden-theme .page-heading h1{letter-spacing:4px}
.garden-theme footer{border-color:#bfcfa71c}
.ambient-sky{background:linear-gradient(150deg,#0c1e22,#1e4035 55%,#101f26)}
.ambient-sky:before{background:radial-gradient(ellipse at 18% 24%,#98c99c3b,transparent 40%),radial-gradient(ellipse at 84% 64%,#b8964430,transparent 46%);animation:skyDrift 18s ease-in-out infinite alternate}
.ambient-sky:after{opacity:.5;background-size:167px 181px;animation-duration:24s}
.ambient-ribbon{position:absolute;width:145vw;height:40vh;left:-25%;border-radius:50%;border-top:1px solid #d6c48c24;background:linear-gradient(180deg,#97ba9214,transparent 80%);transform:rotate(-24deg);bottom:-12%;animation:ribbonSway 17s ease-in-out infinite alternate}
.ambient-ribbon.second{bottom:-22%;left:-10%;animation-delay:-8s;background:linear-gradient(180deg,#d7bd7212,transparent 80%);animation-duration:23s}
.ambient-mote{position:absolute;left:var(--x);top:100%;width:5px;height:5px;border-radius:50%;background:#dcecac;box-shadow:0 0 11px #dbf4ac77;opacity:0;animation:moteRise var(--time) linear var(--delay) infinite}
.ambient-mote:nth-of-type(even){width:10px;height:5px;border-radius:0 80% 0 80%;background:#acc8a0}
@keyframes moteRise{0%{transform:translate3d(0,0,0) rotate(0);opacity:0}15%,75%{opacity:.55}100%{transform:translate3d(65px,-110vh,0) rotate(140deg);opacity:0}}
@keyframes ribbonSway{to{transform:translate3d(5%,-12%,0) rotate(-17deg)}}
@keyframes haloTurn{to{transform:rotate(360deg)}}
@keyframes characterFloat{50%{transform:translateY(-9px)}}
.ambient-paused :is(.ambient-mote,.ambient-ribbon,.character-cutout),.ambient-paused .character-halo:before{animation-play-state:paused}
.identity-mode :is(.ambient-mote,.ambient-ribbon,.character-cutout),.identity-mode .character-halo:before,.identity-mode .ambient-sky:before,.identity-mode .ambient-sky:after{animation-play-state:paused}
@media(max-width:1000px){.garden-theme .hero{padding:40px 5%;gap:8px;min-height:auto}.garden-theme .hero h1{font-size:72px}.character-cutout{max-height:640px}.character-scene figcaption{font-size:10px;letter-spacing:1px;padding:8px 15px}.profile-layout{gap:16px;grid-template-columns:1.2fr .8fr}.garden-theme .profile-layout .about{padding:28px}.gallery-showcase{gap:24px}}
@media(max-width:700px){.garden-theme .hero{grid-template-columns:1fr;padding:28px 24px 34px}.garden-theme .hero-copy{display:contents}.garden-theme .hero h1{font-size:74px;grid-row:2}.garden-theme .hero .eyebrow{grid-row:1;margin-bottom:4px}.garden-theme .hero h1 span{font-size:22px;margin-top:10px}.garden-theme .hero .intro{grid-row:3;margin:10px 0 12px}.garden-theme .hero .actions{grid-row:4;margin-bottom:0}.garden-theme .hero>.character-scene{grid-row:5;height:420px;margin-top:20px}.garden-theme .hero>.character-scene .character-cutout{width:auto;height:420px;max-width:100%}.character-halo{width:330px;max-width:100%}.hero-art-link{top:0;right:0}.garden-portals{grid-row:6;width:100%;max-width:none;margin-top:24px}.garden-theme .hero-note{grid-row:7;margin-top:14px}.profile-layout{grid-template-columns:1fr;width:calc(100% - 32px)}.profile-layout .character-scene{min-height:0;height:400px;order:-1}.profile-layout .character-cutout{height:400px;width:auto;max-width:100%}.gallery-showcase{grid-template-columns:1fr;width:calc(100% - 32px);gap:20px}.gallery-showcase>div:first-child{padding:0 8px}.gallery-showcase h2{font-size:30px}.gallery-showcase>div>p:not(.eyebrow){max-width:none}.gallery-showcase .look-main{height:340px}.ambient-mote:nth-of-type(n+7){display:none}.character-cutout{filter:none}}
@media(prefers-reduced-motion:reduce){.ambient-mote,.ambient-ribbon,.character-cutout,.character-halo:before{animation:none}.ambient-mote{opacity:.25;top:var(--x)}}
