/* Lightweight finale and atmosphere studio. The palette itself is transparent. */
.hero h1>span:first-of-type{background:linear-gradient(110deg,var(--accent) 0%,var(--accent) 35%,#f5ffe5 48%,var(--accent) 62%,var(--accent) 100%);background-size:250% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:headline-wave 8s linear infinite}
@keyframes headline-wave{from{background-position:200% 50%}to{background-position:-50% 50%}}
.mood-finale{position:relative;isolation:isolate;overflow:hidden;min-height:560px;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;padding-block:100px;background:radial-gradient(ellipse at 25% 45%,var(--mood-glow,#d8fd6710),transparent 55%),#0b0d0b;border-top:1px solid #ffffff15}
.finale-copy{position:relative;z-index:2}.finale-copy h2{font:500 clamp(44px,5.8vw,86px)/1.04 var(--font-head);letter-spacing:-.065em;margin:20px 0}.finale-copy h2 em{font-style:normal;color:var(--accent)}.finale-copy>p:not(.eyebrow){color:#b7bdb2;line-height:1.8;font-size:15px}
.finale-sculpture{height:350px;position:relative;perspective:900px;transform:rotateX(var(--look-x,0deg)) rotateY(var(--look-y,0deg));transition:transform .5s ease;pointer-events:none}
.finale-orb{width:280px;height:280px;position:absolute;left:50%;top:20px;margin-left:-140px;transform-style:preserve-3d;transform:rotateX(58deg) rotateZ(-24deg)}
.finale-orb i{position:absolute;inset:0;border:2px solid var(--accent);border-radius:50%;box-shadow:inset 0 0 20px #ffffff08,0 0 22px var(--mood-glow,#d8fd6718);opacity:.65}
.finale-orb i:nth-child(2){transform:rotateY(45deg)}.finale-orb i:nth-child(3){transform:rotateY(90deg)}.finale-orb i:nth-child(4){transform:rotateY(135deg)}
.finale-orb span{position:absolute;inset:65px;border-radius:50%;transform:rotateX(-58deg);background:radial-gradient(circle at 28% 25%,#fff9,transparent 35%),radial-gradient(circle at 35% 30%,var(--accent),#18231b 70%);box-shadow:inset -15px -20px 30px #0008,0 0 65px var(--mood-glow,#d8fd6725)}
.orb-shadow{position:absolute;bottom:5px;left:20%;width:60%;height:26px;background:#0009;border-radius:50%;filter:blur(15px)}
.finale-discovered .finale-orb{animation:finale-arrive 2.8s cubic-bezier(.2,.7,.2,1) both;animation-play-state:paused}.finale-discovered.finale-visible .finale-orb{animation-play-state:running}
@keyframes finale-arrive{from{opacity:0;transform:translateY(24px) rotateX(80deg) rotateZ(-160deg) scale(.85)}to{opacity:1;transform:rotateX(58deg) rotateZ(-24deg)}}
.mood-launch{display:inline-flex;align-items:center;gap:18px;min-height:52px;padding:14px 22px;border:1px solid var(--accent);border-radius:30px;background:transparent;color:var(--accent);font:11px monospace;letter-spacing:.1em;cursor:pointer;margin-top:16px;transition:background .25s,box-shadow .25s}
.mood-launch[hidden]{display:none}.mood-launch:hover{background:#ffffff0a;box-shadow:0 0 26px var(--mood-glow,#d8fd6722)}.finale-discovered .mood-launch{animation:mood-invite 1.4s ease 1.6s both}
@keyframes mood-invite{0%,100%{box-shadow:0 0 0 0 transparent}50%{box-shadow:0 0 0 8px var(--mood-glow,#d8fd6718)}}
.mood-mini{width:19px;height:19px;border-radius:50%;background:conic-gradient(#ffa5a5,#f8f6ae,#a8eecb,#b9c3ff,#ffa5a5);box-shadow:inset 0 0 0 5px #151815}
.mood-open{overflow:hidden}
.mood-dialog{width:min(900px,94vw);max-width:94vw;max-height:90dvh;overflow:auto;padding:32px;border:1px solid #ffffff2a;border-radius:22px;background:radial-gradient(ellipse at 0 0,var(--mood-glow,#d8fd670c),transparent 60%),#10130ff5;color:#edf0e9;box-shadow:0 35px 100px #000b;overscroll-behavior:contain}
.mood-dialog::backdrop{background:#000b;backdrop-filter:blur(12px)}.mood-dialog[open]{animation:studio-open .45s ease both}
@keyframes studio-open{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.mood-dialog-head{display:flex;align-items:start;justify-content:space-between;gap:16px}.mood-dialog-head h2{font:500 clamp(32px,4vw,48px)/1.1 var(--font-head);letter-spacing:-.05em;margin:12px 0 24px}
.mood-dialog-head .eyebrow{margin:0}#closeMood{min-width:44px;min-height:44px;border:1px solid #ffffff40;border-radius:50%;background:transparent;color:#fff;cursor:pointer}
.mood-studio{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:center}.palette-area{min-width:0;text-align:center}.palette-area>p{color:#b9c1b3;font-size:13px}.palette-hint{font-size:10px!important;letter-spacing:.03em}
.mood-palette{--pitch:34px;position:relative;width:310px;height:290px;margin:20px auto;background:transparent}
.color-node{position:absolute;left:calc(50% + var(--node-x)*var(--pitch));top:calc(50% + var(--node-y)*var(--pitch));width:28px;height:28px;transform:translate(-50%,-50%);border:1px solid #ffffff55;border-radius:50%;background:radial-gradient(circle at 30% 22%,#ffffff80,transparent 65%),var(--node-color);box-shadow:0 3px 5px #0007,inset 0 -3px 5px #0002;cursor:pointer;padding:0;transition:transform .18s,box-shadow .18s}
.color-node:hover{transform:translate(-50%,-50%) scale(1.12);z-index:2;box-shadow:0 0 14px var(--node-color)}
.color-node:focus-visible{outline:2px solid #fff;outline-offset:3px;z-index:3}
.color-node[aria-pressed="true"]{box-shadow:0 0 0 2px #10130f,0 0 0 4px #fff,0 0 22px var(--node-color);z-index:2}
.color-node[aria-pressed="true"]:after{content:'✓';display:block;color:#111;font-size:16px;font-weight:800}
.mood-options{border-left:1px solid #ffffff20;padding-left:30px}.mood-options h3{font:500 25px/1.25 var(--font-head);letter-spacing:-.04em}
.particle-options{display:flex;gap:8px}.particle-options button{flex:1;min-width:0;min-height:75px;padding:10px 5px;border:1px solid #ffffff30;border-radius:12px;background:transparent;color:#d8ddd2;font-size:11px;cursor:pointer}.particle-options span{display:block;font-size:24px;height:30px;color:var(--accent)}
.particle-options button[aria-pressed="true"]{border-color:var(--accent);background:var(--mood-glow,#d8fd6712)}
.mood-help{font-size:12px;line-height:1.8;color:#b7beb2;margin:24px 0}.mood-motion-note{display:none;font-size:12px;color:#b7beb2}
#moodStatus{display:block;min-height:32px;font:11px monospace;color:#d1d7c8}.mood-reset{min-height:44px;padding:8px 0;border:0;background:transparent;color:var(--accent);cursor:pointer;font-size:12px}
html[data-mood] .video-dialog .dialog-inner{--dialog-tone:var(--mood-rgb)}
html[data-mood] .btn-lime:hover{background:var(--accent);filter:brightness(1.06)}
@media(max-width:700px){.mood-finale{grid-template-columns:1fr;gap:15px;padding-block:55px}.finale-sculpture{height:260px}.finale-orb{width:220px;height:220px;margin-left:-110px;top:0}.finale-orb span{inset:50px}.finale-copy{text-align:center}.mood-dialog{padding:22px 16px}.mood-studio{grid-template-columns:1fr;gap:20px}.mood-options{padding:20px 0 0;border-left:0;border-top:1px solid #ffffff20}.mood-palette{--pitch:30px;width:min(270px,100%);height:250px}.color-node{width:25px;height:25px}.mood-dialog-head h2{margin-bottom:10px}}
@media(prefers-reduced-motion:reduce){.hero h1>span:first-of-type{animation:none;background-position:50% 50%}.finale-discovered .finale-orb,.finale-discovered .mood-launch,.mood-dialog[open]{animation:none}.finale-sculpture,.color-node{transition:none}.mood-motion-note{display:block}}
html[data-mood]{--mood-glow:hsl(var(--mood-hue) var(--mood-saturation) 60% / .15);--mood-line:hsl(var(--mood-hue) var(--mood-saturation) 75% / .32)}
html[data-mood] .hero,html[data-mood] .work,html[data-mood] .about{background:radial-gradient(ellipse at var(--ambient-x,65%) var(--ambient-y,35%),var(--mood-glow),transparent 65%),#0b0d0b}
html[data-mood] .services{background:radial-gradient(ellipse at var(--glow-x,80%) var(--glow-y,20%),var(--mood-glow),transparent 65%),#111510}
html[data-mood] .ambient-glow{background:radial-gradient(ellipse at var(--ambient-x,50%) var(--ambient-y,50%),var(--mood-glow),transparent 65%)}
html[data-mood] .contact{background:var(--accent)}html[data-mood] .contact h2 em{color:#263022}html[data-mood] .about h2 em,html[data-mood] .hero-bottom a{color:var(--accent)}
html[data-mood] .stage-orbit,html[data-mood] .sculpture-core i{border-color:var(--mood-line)}html[data-mood] .stage-orbit:before,html[data-mood] .small-orbit{box-shadow:0 0 25px var(--accent)}html[data-mood] .sculpture-core span{text-shadow:0 0 45px var(--mood-glow)}
/* Frame edges and service hover treatments share the visitor's palette. */
html[data-mood] .project-visual{border-color:var(--mood-line);background:radial-gradient(ellipse at 50% 70%,var(--mood-glow),transparent 68%),#121412}
html[data-mood] .project-visual:hover,html[data-mood] .project-visual:focus-visible,html[data-mood] .deck-card:hover{border-color:var(--accent)}
html[data-mood] .deck-card,html[data-mood] .card-chip,html[data-mood] .deck-controls button{border-color:var(--mood-line)}
html[data-mood] .deck-controls button[aria-pressed="true"]{border-color:var(--accent)}
html[data-mood] .service-grid,html[data-mood] .service-grid article,html[data-mood] .service-grid article+article,html[data-mood] .services{border-color:var(--mood-line)}
html[data-mood] .service-grid article{background:#111411}
html[data-mood] .service-grid article:hover,html[data-mood] .service-grid article:focus-within{border-color:var(--accent);background:linear-gradient(var(--mood-glow),var(--mood-glow)),#111411}
html[data-mood] .services:before{background-image:linear-gradient(var(--mood-line) 1px,transparent 1px),linear-gradient(90deg,var(--mood-line) 1px,transparent 1px)}
html[data-mood] .player-wrap{border-color:var(--mood-line);background:radial-gradient(ellipse at 50% 48%,var(--mood-glow),transparent 68%),#080908;box-shadow:0 22px 65px #0008,0 0 34px var(--mood-glow)}
html[data-mood] .player-wrap:before{border-color:var(--mood-line);background:repeating-linear-gradient(0deg,transparent 0 47px,var(--mood-glow) 48px,transparent 49px)}
html[data-mood] .project-enquiry{border-color:var(--mood-line)}

