:root {
  --bg: #071015;
  --bg-2: #0a171d;
  --ink: #f3f1e9;
  --muted: #9ca9a9;
  --line: rgba(255,255,255,.14);
  --sun: #eaff19;
  --sun-warm: #ffd600;
  --coral: #ff4f68;
  --mint: #7dff84;
  --sky: #63c9ff;
  --dusk: .72;
  --mx: 50vw;
  --my: 50vh;
  --header-h: 76px;
  --radius: 28px;
  --ease: cubic-bezier(.2,.8,.2,1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--bg); }
body { margin: 0; background: var(--bg); color: var(--ink); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; overflow-x: hidden; }
body::selection { background: var(--sun); color: #071015; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
img { display: block; max-width: 100%; }

.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
.skip-link { position: fixed; left: 16px; top: 16px; z-index: 1000; transform: translateY(-160%); padding: 12px 16px; background: var(--sun); color: #061014; border-radius: 999px; font-weight: 800; }
.skip-link:focus { transform: translateY(0); }
:focus-visible { outline: 3px solid var(--sun); outline-offset: 4px; }

.grain { position: fixed; inset: 0; z-index: 90; pointer-events: none; opacity: .025; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E"); }
.cursor-light { position: fixed; width: 380px; aspect-ratio: 1; left: 0; top: 0; translate: -50% -50%; border-radius: 50%; z-index: 2; pointer-events: none; background: radial-gradient(circle, rgba(234,255,25,.11) 0, rgba(234,255,25,.035) 38%, transparent 70%); transform: translate3d(var(--mx), var(--my),0); mix-blend-mode: screen; will-change: transform; }

.site-header { height: var(--header-h); display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px; padding: 0 4vw; position: fixed; inset: 0 0 auto; z-index: 80; border-bottom: 1px solid transparent; transition: background .35s ease, border-color .35s ease, backdrop-filter .35s ease; }
.site-header.scrolled { background: rgba(7,16,21,.74); border-color: var(--line); backdrop-filter: blur(20px); }
.brand { display: inline-flex; align-items: center; gap: 10px; width: max-content; font-weight: 850; letter-spacing: -.04em; }
.brand-mark { width: 26px; aspect-ratio: 1; border-radius: 50%; background: var(--sun-warm); box-shadow: 0 0 20px rgba(255,214,0,.42); position: relative; display: inline-block; }
.brand-mark::after { content: ""; position: absolute; inset: 8px -8px -8px 8px; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; }
.brand-name { font-size: 20px; }
.brand-name span { color: var(--sun); }
.main-nav { display: flex; gap: 26px; color: rgba(255,255,255,.72); font-size: 13px; font-weight: 650; }
.main-nav a { transition: color .2s ease; }
.main-nav a:hover { color: var(--ink); }
.header-actions { display: flex; justify-self: end; align-items: center; gap: 10px; }
.sound-toggle, .mini-cta { border: 1px solid var(--line); color: var(--ink); background: rgba(255,255,255,.04); padding: 9px 13px; border-radius: 999px; font-size: 12px; display: inline-flex; gap: 8px; align-items: center; cursor: pointer; }
.sound-dot { width: 7px; height: 7px; border-radius: 50%; background: #667377; box-shadow: none; }
.sound-toggle[aria-pressed="true"] .sound-dot { background: var(--sun); box-shadow: 0 0 10px var(--sun); }
.mini-cta { background: var(--ink); color: #081015; border-color: var(--ink); font-weight: 800; }

.section-shell { width: min(1280px, 92vw); margin-inline: auto; }
.eyebrow { margin: 0 0 18px; text-transform: uppercase; letter-spacing: .16em; font-size: 11px; font-weight: 800; color: var(--sun); }
h1,h2,h3,p { margin-top: 0; }
h1,h2 { font-weight: 760; letter-spacing: -.07em; line-height: .86; }
h1 em,h2 em { font-family: Georgia, "Times New Roman", serif; font-weight: 400; letter-spacing: -.05em; }
h2 { font-size: clamp(54px, 8vw, 126px); margin-bottom: 0; }
.big-copy { font-size: clamp(22px, 2.4vw, 38px); line-height: 1.2; letter-spacing: -.035em; }

.hero { min-height: 100svh; position: relative; display: flex; align-items: flex-end; overflow: clip; border-bottom: 1px solid var(--line); }
.hero-media { position: absolute; inset: 0; overflow: hidden; }
.hero-photo { position: absolute; inset: 0; background: #071015; overflow: hidden; transform: scale(1.04); }
.hero-wash { position: absolute; inset: 0; background: radial-gradient(circle at 72% 44%, rgba(234,255,25,.09), transparent 27%), linear-gradient(180deg, rgba(0,0,0,.08), rgba(7,16,21,.88) 94%); }
.hero-copy { position: relative; z-index: 4; width: min(860px, 88vw); margin: 0 0 9vh 4vw; }
.hero-copy h1 { font-size: clamp(80px, 12.5vw, 190px); margin: 0 0 26px; text-wrap: balance; }
.hero-copy h1 em { color: var(--sun); text-shadow: 0 0 42px rgba(234,255,25,.16); }
.hero-lead { max-width: 640px; font-size: clamp(18px, 1.7vw, 27px); line-height: 1.35; color: rgba(255,255,255,.82); letter-spacing: -.025em; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 16px; padding: 0 20px; border-radius: 999px; font-weight: 800; font-size: 13px; transition: transform .2s var(--ease), background .2s ease, color .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-primary { background: var(--sun); color: #0b1519; }
.button-ghost { border: 1px solid rgba(255,255,255,.26); background: rgba(7,16,21,.32); backdrop-filter: blur(10px); }
.hero-facts { position: absolute; z-index: 5; right: 4vw; bottom: 9vh; display: grid; gap: 14px; min-width: 210px; }
.hero-facts > div { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,.2); }
.hero-facts strong { font-size: 18px; }
.hero-facts span { color: rgba(255,255,255,.58); font-size: 11px; text-align: right; }
.scroll-cue { position: absolute; z-index: 5; right: 4vw; top: 18vh; writing-mode: vertical-rl; display: flex; align-items: center; gap: 10px; color: rgba(255,255,255,.55); letter-spacing: .16em; font-size: 9px; }
.scroll-cue span { width: 1px; height: 70px; background: linear-gradient(var(--sun), transparent); }
.hero-disc { position: absolute; z-index: 3; border-radius: 50%; background: rgba(230,255,25,.06); border: 1px solid rgba(234,255,25,.8); box-shadow: 0 0 22px rgba(234,255,25,.6), inset 0 0 28px rgba(234,255,25,.12); mix-blend-mode: screen; transform: perspective(600px) rotateX(72deg); opacity: .72; animation: float 7s ease-in-out infinite; }
.disc-a { width: 180px; height: 180px; right: 12%; top: 22%; }
.disc-b { width: 120px; height: 120px; right: 33%; top: 34%; animation-delay: -2s; border-color: rgba(255,79,104,.85); box-shadow: 0 0 24px rgba(255,79,104,.5); }
.disc-c { width: 90px; height: 90px; right: 23%; top: 58%; animation-delay: -4s; border-color: rgba(125,255,132,.85); box-shadow: 0 0 24px rgba(125,255,132,.5); }
.disc-d { width: 70px; height: 70px; right: 46%; top: 18%; animation-delay: -5s; }
@keyframes float { 0%,100%{ translate: 0 0; rotate: -1deg;} 50%{ translate: 0 -14px; rotate: 2deg;} }

.manifesto { padding: 150px 0; }
.manifesto-top { max-width: 1060px; }
.manifesto-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 7vw; align-items: center; margin-top: 90px; }
.manifesto-copy { color: rgba(255,255,255,.72); font-size: 17px; line-height: 1.65; }
.manifesto-copy .big-copy { color: var(--ink); }
.light-lab { border: 1px solid var(--line); background: #0d1a20; border-radius: var(--radius); overflow: hidden; box-shadow: 0 50px 100px rgba(0,0,0,.25); }
.lab-scene { height: min(58vw, 640px); position: relative; overflow: hidden; --d: var(--dusk); }
.lab-sky { position: absolute; inset: 0; background: linear-gradient(180deg, color-mix(in srgb, #74c9ef calc((1 - var(--dusk)) * 100%), #111926 calc(var(--dusk) * 100%)) 0%, color-mix(in srgb, #f4db8e calc((1 - var(--dusk)) * 100%), #1c2436 calc(var(--dusk) * 100%)) 66%, #0a1216 100%); transition: background .2s linear; }
.lab-sky::before { content: ""; position: absolute; width: 240px; height: 240px; border-radius: 50%; background: rgba(255,244,183,.85); left: calc(14% + (var(--dusk) * 22%)); top: calc(10% + (var(--dusk) * 43%)); filter: blur(calc(var(--dusk) * 10px)); box-shadow: 0 0 80px rgba(255,216,91,.3); }
.lab-ground { position: absolute; inset: 62% 0 0; background: linear-gradient(180deg, rgba(15,37,26,.3), #071015), radial-gradient(ellipse at 50% 0%, #28432f, #071015 68%); }
.lab-stem { position: absolute; width: 2px; height: 54%; bottom: 0; background: linear-gradient(#202c2c,#071015); transform-origin: bottom center; animation: sway 4.8s ease-in-out infinite; }
.lab-stem i { position: absolute; width: 120px; height: 34px; left: 50%; top: -15px; translate: -50% 0; border-radius: 50%; transform: rotate(-4deg); background: rgba(236,255,35, calc(.12 + var(--dusk)*.08)); border: 1px solid rgba(236,255,35, calc(.55 + var(--dusk)*.4)); box-shadow: 0 0 calc(10px + var(--dusk)*30px) rgba(236,255,35, calc(.15 + var(--dusk)*.72)), inset 0 0 26px rgba(236,255,35,.2); }
.stem-1 { left: 24%; height: 47%; }
.stem-2 { left: 44%; height: 64%; animation-delay: -.8s; }
.stem-2 i { width: 150px; }
.stem-3 { left: 66%; height: 52%; animation-delay: -1.7s; }
.stem-3 i { width: 106px; border-color: rgba(255,85,106,.9); background: rgba(255,85,106,.12); box-shadow: 0 0 calc(10px + var(--dusk)*28px) rgba(255,85,106, calc(.12 + var(--dusk)*.65)); }
.stem-4 { left: 81%; height: 37%; animation-delay: -2.4s; }
.stem-4 i { width: 90px; border-color: rgba(125,255,132,.9); background: rgba(125,255,132,.1); box-shadow: 0 0 calc(10px + var(--dusk)*26px) rgba(125,255,132, calc(.10 + var(--dusk)*.6)); }
@keyframes sway { 0%,100%{ transform: rotate(-1.7deg); } 50%{ transform: rotate(2.1deg); } }
.lab-controls { display: grid; grid-template-columns: 160px 1fr; gap: 24px; align-items: center; padding: 18px 22px 22px; background: rgba(3,9,12,.6); border-top: 1px solid var(--line); }
.lab-controls span { display: block; color: var(--muted); font-size: 9px; letter-spacing: .15em; }
.lab-controls strong { font-family: Georgia,serif; font-size: 18px; font-weight: 400; }
.range-wrap input { width: 100%; accent-color: var(--sun); }
.range-labels { display: flex !important; justify-content: space-between; margin-top: 7px; }
.range-labels b { font-weight: 600; font-size: 10px; }

.light-field { min-height: 190vh; position: relative; border-block: 1px solid var(--line); background: radial-gradient(circle at 50% 65%, rgba(234,255,25,.04), transparent 34%), #040b0f; }
.field-sticky { position: sticky; top: 0; min-height: 100svh; overflow: hidden; display: grid; grid-template-columns: .65fr 1.35fr; align-items: center; padding: 11vh 4vw; }
.field-copy { position: relative; z-index: 4; max-width: 560px; }
.field-copy h2 { font-size: clamp(64px, 7.5vw, 118px); }
.field-copy p:last-child { max-width: 440px; color: var(--muted); line-height: 1.6; }
.field-canvas { position: absolute; inset: 0; z-index: 1; perspective: 900px; }
.field-disc { position: absolute; width: var(--s); height: calc(var(--s) * .28); border-radius: 50%; border: 1px solid var(--c); background: color-mix(in srgb, var(--c) 11%, transparent); box-shadow: 0 0 26px color-mix(in srgb, var(--c) 38%, transparent), inset 0 0 18px color-mix(in srgb, var(--c) 14%, transparent); transform-origin: center center; animation: fieldSway var(--speed) ease-in-out infinite; opacity: var(--o); will-change: transform; }
.field-disc::after { content: ""; position: absolute; width: 1px; height: var(--stem); left: 50%; top: 60%; background: linear-gradient(rgba(153,174,169,.75), rgba(45,56,54,.1)); z-index: -1; transform-origin: top; }
@keyframes fieldSway { 0%,100%{ transform: rotateZ(-1.4deg) rotateX(16deg); } 50%{ transform: rotateZ(2deg) rotateX(22deg) translateY(-7px); } }

.story { padding: 140px 0; position: relative; }
.story-index { position: absolute; right: 0; top: 130px; color: rgba(255,255,255,.12); font-size: clamp(70px,12vw,190px); font-weight: 900; letter-spacing: -.08em; }
.story-step { display: grid; grid-template-columns: 80px 1fr 1fr; gap: 34px; padding: 48px 0; border-top: 1px solid var(--line); align-items: start; }
.story-step:last-child { border-bottom: 1px solid var(--line); }
.story-step > span { color: var(--sun); font-weight: 800; }
.story-step h3 { font-family: Georgia,serif; font-size: clamp(30px,4vw,58px); font-weight: 400; letter-spacing: -.045em; margin: 0; }
.story-step > p { color: var(--muted); line-height: 1.65; max-width: 520px; }

.gallery { padding: 120px 0 150px; background: #dfe71f; color: #081015; overflow: hidden; }
.gallery .eyebrow { color: #081015; opacity: .58; }
.gallery-head { display: grid; grid-template-columns: 1.35fr .65fr; gap: 60px; align-items: end; margin-bottom: 54px; }
.gallery-head p:last-child { max-width: 480px; line-height: 1.55; font-weight: 620; }
.gallery-rail { display: flex; gap: 18px; padding: 0 4vw 14px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: rgba(8,16,21,.5) transparent; }
.gallery-card { flex: 0 0 min(72vw,760px); height: min(65vw,650px); margin: 0; position: relative; overflow: hidden; border-radius: 26px; background: #111; scroll-snap-align: start; }
.card-tall { flex-basis: min(48vw,480px); }
.card-square { flex-basis: min(56vw,560px); }
.gallery-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .65s var(--ease); }
.gallery-card:hover img { transform: scale(1.035); }
.gallery-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent 55%,rgba(0,0,0,.72)); pointer-events: none; }
.gallery-card figcaption { position: absolute; z-index: 2; inset: auto 22px 22px; color: white; display: flex; justify-content: space-between; align-items: end; gap: 20px; }
.gallery-card figcaption b { font-family: Georgia,serif; font-size: 32px; font-weight: 400; }
.gallery-card figcaption span { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }

.proof { padding: 150px 0; }
.proof-intro { max-width: 1040px; margin-bottom: 70px; }
.proof-grid { display: grid; grid-template-columns: repeat(4,1fr); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.proof-card { min-height: 340px; padding: 28px; border-right: 1px solid var(--line); display: flex; flex-direction: column; }
.proof-card:last-child { border-right: 0; }
.proof-card span { color: var(--muted); font-size: 12px; }
.proof-card h3 { margin: auto 0 16px; font-family: Georgia,serif; font-size: 29px; font-weight: 400; letter-spacing: -.04em; }
.proof-card p { color: var(--muted); line-height: 1.55; }
.proof-card-accent { background: var(--sun); color: #081015; }
.proof-card-accent p,.proof-card-accent span { color: #26310b; }
.proof-note { color: #6e7a7b; font-size: 11px; margin-top: 18px; }

.sven { width: min(1420px,94vw); margin: 0 auto 150px; background: #111d22; border: 1px solid var(--line); border-radius: 34px; overflow: hidden; display: grid; grid-template-columns: 1fr 1fr; min-height: 760px; }
.sven-photo { min-height: 600px; position: relative; overflow: hidden; }
.sven-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg,transparent 70%,#111d22), linear-gradient(0deg,rgba(6,13,17,.2),transparent); }
.sven-photo img { width: 100%; height: 100%; object-fit: cover; }
.sven-copy { padding: clamp(42px,6vw,90px); align-self: center; }
.sven-copy h2 { font-size: clamp(68px,7.4vw,116px); }
.sven-copy > p:not(.eyebrow) { color: var(--muted); line-height: 1.62; }
.sven-copy .big-copy { color: var(--ink) !important; }
.signature-row { display: flex; align-items: center; gap: 14px; margin: 28px 0; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.signature-line { width: 50px; height: 1px; background: var(--sun); }

.events { padding: 0 0 150px; }
.events-head { display: flex; align-items: end; justify-content: space-between; gap: 40px; margin-bottom: 60px; }
.text-link { padding-bottom: 5px; border-bottom: 1px solid rgba(255,255,255,.35); font-weight: 700; font-size: 13px; }
.event-now { display: grid; grid-template-columns: 24px 1fr auto; gap: 24px; align-items: center; border: 1px solid rgba(234,255,25,.35); background: rgba(234,255,25,.045); padding: 22px 26px; border-radius: 20px; margin-bottom: 20px; }
.pulse-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--sun); box-shadow: 0 0 0 0 rgba(234,255,25,.55); animation: pulse 1.9s infinite; }
@keyframes pulse { 70%{ box-shadow: 0 0 0 10px rgba(234,255,25,0);}100%{box-shadow:0 0 0 0 rgba(234,255,25,0);} }
.event-now div { display: grid; gap: 3px; }
.event-now small { color: var(--sun); letter-spacing: .13em; }
.event-now strong { font-family: Georgia,serif; font-size: 28px; font-weight: 400; }
.event-now span { color: var(--muted); font-size: 13px; }
.event-now a { font-weight: 800; font-size: 12px; }
.event-grid { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--line); }
.event-card { padding: 34px 24px 16px 0; border-right: 1px solid var(--line); min-height: 210px; }
.event-card:not(:first-child) { padding-left: 24px; }
.event-card:last-child { border-right: 0; }
.event-card time { color: var(--sun); font-size: 11px; letter-spacing: .14em; }
.event-card h3 { font-family: Georgia,serif; font-size: 30px; font-weight: 400; margin: 42px 0 8px; }
.event-card p { color: var(--muted); }

.shop-bridge { min-height: 760px; margin-bottom: 150px; border: 1px solid var(--line); border-radius: 34px; background: radial-gradient(circle at 25% 50%, rgba(234,255,25,.09), transparent 27%), #091419; display: grid; grid-template-columns: 1fr 1fr; overflow: hidden; }
.shop-visual { position: relative; min-height: 520px; }
.shop-orbit { position: absolute; left: 50%; top: 50%; border-radius: 50%; border: 2px solid var(--sun); background: rgba(234,255,25,.06); box-shadow: 0 0 60px rgba(234,255,25,.28), inset 0 0 30px rgba(234,255,25,.11); transform: translate(-50%,-50%) rotateX(70deg); animation: orbit 5s ease-in-out infinite; }
.orbit-1 { width: 360px; height: 360px; }
.orbit-2 { width: 220px; height: 220px; left: 64%; top: 36%; border-color: var(--coral); box-shadow: 0 0 50px rgba(255,79,104,.27); animation-delay: -2s; }
.orbit-3 { width: 150px; height: 150px; left: 34%; top: 70%; border-color: var(--mint); box-shadow: 0 0 45px rgba(125,255,132,.25); animation-delay: -3.7s; }
@keyframes orbit { 0%,100%{ translate:0 0; rotate:-2deg;}50%{translate:0 -20px;rotate:2deg;} }
.shop-copy { padding: clamp(46px,6vw,92px); align-self: center; }
.shop-copy h2 { font-size: clamp(66px,7vw,112px); }
.shop-copy > p:not(.eyebrow) { color: var(--muted); line-height: 1.65; max-width: 600px; }
.coupon { margin: 30px 0 4px; border: 1px dashed rgba(234,255,25,.45); padding: 18px 20px; border-radius: 16px; display: grid; grid-template-columns: auto 1fr; gap: 2px 20px; align-items: center; max-width: 480px; }
.coupon span { color: var(--sun); font-size: 9px; letter-spacing: .15em; }
.coupon strong { font-family: Georgia,serif; font-weight: 400; font-size: 34px; justify-self: end; }
.coupon small { grid-column: 1/-1; color: var(--muted); }

.contact { min-height: 760px; position: relative; display: flex; align-items: center; overflow: hidden; border-block: 1px solid var(--line); }
.contact-backdrop { position: absolute; inset: 0; background: #071015; overflow: hidden; opacity: .88; }
.contact-copy { position: relative; z-index: 2; padding-block: 100px; }
.contact-copy h2 { max-width: 940px; }
.contact-grid { max-width: 900px; margin-top: 60px; border-top: 1px solid var(--line); }
.contact-grid a { display: grid; grid-template-columns: 150px 1fr auto; gap: 20px; align-items: center; min-height: 82px; border-bottom: 1px solid var(--line); transition: padding .22s var(--ease), background .22s ease; }
.contact-grid a:hover { padding-inline: 12px; background: rgba(255,255,255,.025); }
.contact-grid span { color: var(--sun); font-size: 10px; letter-spacing: .14em; }
.contact-grid strong { font-size: clamp(16px,2vw,25px); }
.contact-grid i { font-style: normal; font-size: 24px; }
.contact-note { color: var(--muted); font-size: 12px; margin-top: 18px; }

.footer { padding: 70px 0 120px; display: grid; grid-template-columns: 1fr auto; gap: 50px; }
.footer-brand { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 0 14px; }
.footer-brand strong { font-size: 26px; }
.footer-brand p { grid-column: 2; color: var(--muted); line-height: 1.5; margin: 8px 0 0; font-size: 13px; }
.footer-links { display: flex; gap: 24px; align-items: start; font-size: 12px; }
.footer-meta { grid-column: 1/-1; padding-top: 22px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; color: #677477; font-size: 10px; letter-spacing: .08em; }
.mobile-dock { display: none; }
.noscript { position: fixed; bottom: 0; inset-inline: 0; z-index: 100; padding: 12px 16px; background: #fff; color: #111; text-align: center; }

.reveal { opacity: 0; transform: translateY(26px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.in { opacity: 1; transform: none; }

html[data-performance="low"] .grain, html[data-performance="low"] .cursor-light { display: none; }
html[data-performance="low"] .hero-disc, html[data-performance="low"] .lab-stem, html[data-performance="low"] .field-disc, html[data-performance="low"] .shop-orbit { animation: none; }
html[data-performance="low"] .site-header.scrolled, html[data-performance="low"] .button-ghost { backdrop-filter: none; }

@media (max-width: 1040px) {
  .site-header { grid-template-columns: 1fr auto; }
  .main-nav { display: none; }
  .hero-facts { display: none; }
  .manifesto-grid, .gallery-head, .sven, .shop-bridge { grid-template-columns: 1fr; }
  .manifesto-grid { gap: 50px; }
  .sven-photo { min-height: 560px; }
  .sven-photo::after { background: linear-gradient(0deg,#111d22,transparent 28%); }
  .shop-visual { min-height: 440px; }
  .proof-grid { grid-template-columns: 1fr 1fr; }
  .proof-card:nth-child(2) { border-right: 0; }
  .proof-card:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
}

@media (max-width: 760px) {
  :root { --header-h: 64px; --radius: 22px; }
  .cursor-light { display: none; }
  .site-header { padding-inline: 18px; }
  .brand-name { font-size: 17px; }
  .sound-toggle span:not(.sound-dot), .mini-cta { display: none; }
  .sound-toggle { width: 36px; height: 36px; padding: 0; justify-content: center; }
  .hero { min-height: 94svh; }
  .hero-photo { background-position: 57% 50%; }
  .hero-copy { margin: 0 18px 86px; width: calc(100% - 36px); }
  .hero-copy h1 { font-size: clamp(64px, 24vw, 104px); }
  .hero-lead { max-width: 92%; font-size: 17px; }
  .hero-actions { gap: 8px; }
  .button { min-height: 44px; font-size: 12px; }
  .scroll-cue { display: none; }
  .hero-disc { opacity: .48; }
  .disc-a { right: -10%; top: 18%; }
  .disc-b { right: 42%; top: 28%; }
  .disc-c { right: 7%; top: 48%; }
  .manifesto { padding: 100px 0; }
  h2 { font-size: clamp(52px, 17vw, 82px); }
  .manifesto-grid { margin-top: 48px; }
  .big-copy { font-size: 23px; }
  .lab-scene { height: 115vw; max-height: 560px; }
  .lab-controls { grid-template-columns: 1fr; gap: 14px; }
  .field-sticky { display: block; padding: 12vh 18px; }
  .field-copy { width: 82%; }
  .field-copy h2 { font-size: 62px; }
  .story { padding: 100px 0; }
  .story-index { display: none; }
  .story-step { grid-template-columns: 44px 1fr; gap: 18px; }
  .story-step > p { grid-column: 2; }
  .gallery { padding: 90px 0 100px; }
  .gallery-head { gap: 26px; }
  .gallery-card, .card-tall, .card-square { flex-basis: 84vw; height: 110vw; max-height: 630px; }
  .gallery-card figcaption { display: block; }
  .gallery-card figcaption span { display: block; margin-top: 4px; }
  .proof { padding: 100px 0; }
  .proof-grid { grid-template-columns: 1fr; }
  .proof-card { border-right: 0; border-bottom: 1px solid var(--line); min-height: 260px; }
  .proof-card:last-child { border-bottom: 0; }
  .sven { width: calc(100% - 24px); margin-bottom: 110px; }
  .sven-photo { min-height: 430px; }
  .sven-copy { padding: 42px 24px 52px; }
  .sven-copy h2 { font-size: 72px; }
  .events { padding-bottom: 110px; }
  .events-head { display: block; }
  .events-head .text-link { display: inline-block; margin-top: 24px; }
  .event-now { grid-template-columns: 18px 1fr; padding: 18px; }
  .event-now > a { grid-column: 2; }
  .event-grid { grid-template-columns: 1fr; }
  .event-card, .event-card:not(:first-child) { border-right: 0; border-bottom: 1px solid var(--line); padding: 26px 0; min-height: 170px; }
  .shop-bridge { width: calc(100% - 24px); margin-bottom: 110px; }
  .shop-visual { min-height: 340px; }
  .orbit-1 { width: 260px; height: 260px; }
  .shop-copy { padding: 36px 24px 52px; }
  .shop-copy h2 { font-size: 66px; }
  .coupon { grid-template-columns: 1fr auto; }
  .contact { min-height: 680px; }
  .contact-backdrop { background-position: 66% center; opacity: .55; }
  .contact-copy { padding-block: 78px 120px; }
  .contact-grid a { grid-template-columns: 1fr auto; gap: 4px 12px; padding: 14px 0; }
  .contact-grid span { grid-column: 1; }
  .contact-grid strong { grid-column: 1; }
  .contact-grid i { grid-column: 2; grid-row: 1 / span 2; }
  .footer { padding: 60px 18px 120px; grid-template-columns: 1fr; }
  .footer-links { flex-wrap: wrap; }
  .footer-meta { display: grid; gap: 8px; }
  .mobile-dock { display: grid; grid-template-columns: 1fr 1fr; position: fixed; z-index: 75; bottom: max(10px,env(safe-area-inset-bottom)); left: 12px; right: 12px; background: rgba(7,16,21,.82); border: 1px solid var(--line); border-radius: 18px; padding: 6px; backdrop-filter: blur(18px); box-shadow: 0 16px 50px rgba(0,0,0,.35); }
  .mobile-dock a { min-height: 42px; display: grid; place-items: center; font-size: 12px; font-weight: 800; border-radius: 13px; }
  .mobile-dock a:first-child { background: var(--sun); color: #071015; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,*::before,*::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  .cursor-light { display: none; }
  .reveal { opacity: 1; transform: none; }
}

/* === v0.2 Enhancements === */
:root {
  --sim: .36;
  --dusk: .72;
  --afterglow: .0;
}

.hero-media,
.light-lab,
.sim-stage,
.field-canvas,
.kinetic-shape,
.lab-stem,
.field-form,
.hero-disc,
.shop-orbit,
.sim-object-wrap,
.sim-afterglow {
  transform: translateZ(0);
  backface-visibility: hidden;
  will-change: transform, opacity;
}

.hero-kinetics {
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
}
.kinetic-shape {
  position: absolute;
  color: var(--sun);
  mix-blend-mode: screen;
  opacity: .76;
  filter: drop-shadow(0 0 22px color-mix(in srgb, currentColor 55%, transparent));
  animation: kineticFloat var(--speed,9s) ease-in-out infinite;
  contain: layout paint;
}
.kinetic-shape svg { display:block; width:100%; height:100%; overflow:visible; }
.kinetic-shape svg * {
  fill: rgba(255,255,255,.02);
  stroke: currentColor;
  stroke-width: 4;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
  shape-rendering: geometricPrecision;
}
.ring-yellow { color: #eaff19; }
.ring-coral { color: #ff4f68; }
.ring-lime { color: #d9ff29; }
.ring-mint { color: #7dff84; }
.shape-ring { width: 180px; height: 180px; left: 54%; top: 10%; --speed: 11s; }
.shape-lucy { width: 320px; height: 170px; right: 11%; top: 12%; --speed: 8.4s; }
.shape-petal { width: 160px; height: 160px; left: 73%; top: 48%; --speed: 10.6s; }
.shape-wave { width: 240px; height: 120px; left: 30%; top: 18%; --speed: 9.8s; }
.shape-seed { width: 140px; height: 150px; left: 18%; top: 56%; --speed: 12.2s; }
@keyframes kineticFloat {
  0%,100% { transform: translate3d(0,0,0) rotate(-3deg); }
  50% { transform: translate3d(0,-16px,0) rotate(3deg); }
}

.hero-copy { position: relative; z-index: 7; }
.hero-facts { z-index: 7; }
.scroll-cue { z-index: 7; }
.hero-disc { opacity: .52; }
.disc-a { animation-duration: 8s; }
.disc-b { animation-duration: 7.3s; }
.disc-c { animation-duration: 9.1s; }
.disc-d { animation-duration: 8.6s; }

.lab-scene { position: relative; isolation: isolate; }
.lab-sun {
  position: absolute;
  width: 94px;
  height: 94px;
  left: calc(10% + (1 - var(--dusk)) * 20%);
  top: calc(9% + var(--dusk) * 15%);
  border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #fff7b8, #ffe95a 32%, #ffb735 75%, transparent 76%);
  box-shadow: 0 0 40px rgba(255,220,88,.55), 0 0 90px rgba(255,200,61,.18);
  opacity: calc(.92 - var(--dusk) * .55);
}
.lab-beam {
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, rgba(255,238,112, calc(.42 - var(--dusk)*.24)) 8%, transparent 34%), linear-gradient(115deg, rgba(255,243,174, calc(.12 + (1 - var(--dusk))* .1)) 14%, transparent 44%);
  mask: linear-gradient(135deg, transparent 26%, #000 34%, #000 50%, transparent 56%);
  opacity: calc(.85 - var(--dusk) * .25);
}
.lab-ground { opacity: calc(.82 + var(--dusk)*.16); }
.lab-stem { animation-duration: calc(4.4s + var(--dusk) * 1.6s); }
.lab-stem .lab-form {
  all: unset;
  position: absolute;
  left: 50%;
  top: -12px;
  translate: -50% 0;
  color: #eaff19;
  display: block;
  transform: translateZ(0);
  opacity: calc(.62 + var(--dusk) * .36);
  filter: drop-shadow(0 0 calc(10px + var(--dusk) * 22px) rgba(234,255,25,.42));
}
.lab-stem .lab-form::before,
.lab-stem .lab-form::after {
  content: "";
  position: absolute;
  inset: 0;
  border: 2px solid currentColor;
  box-shadow: inset 0 0 18px rgba(234,255,25,.14), 0 0 18px rgba(234,255,25,.22);
  background: color-mix(in srgb, currentColor 9%, transparent);
}
.form-ring { width: 112px; height: 112px; }
.form-ring::before,
.form-ring::after { border-radius: 50%; }
.form-ring::after { inset: 14px; background: transparent; }
.form-lucy { width: 160px; height: 70px; }
.form-lucy::before,
.form-lucy::after { border-radius: 53% 47% 61% 39% / 55% 45% 55% 45%; transform: skewX(-16deg) rotate(-6deg); }
.form-lucy::after { inset: 15px 15px 18px 15px; transform: skewX(-16deg) rotate(7deg); }
.form-petal { width: 84px; height: 120px; }
.form-petal::before,
.form-petal::after { border-radius: 48% 48% 62% 62% / 32% 32% 68% 68%; }
.form-petal::after { inset: 12px 15px 16px; }
.form-wave { width: 130px; height: 60px; }
.form-wave::before,
.form-wave::after { border-radius: 65% 35% 58% 42% / 48% 54% 46% 52%; transform: skewX(18deg) rotate(11deg); }
.form-wave::after { inset: 12px 14px 12px 14px; transform: skewX(-15deg) rotate(-7deg); }

.function-sim { padding: 140px 0 155px; }
.sim-head { max-width: 980px; margin-bottom: 64px; }
.sim-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 34px; align-items: stretch; }
.sim-visual, .sim-ui { min-width: 0; }
.sim-stage {
  min-height: 700px;
  position: relative;
  overflow: hidden;
  border-radius: 34px;
  border: 1px solid var(--line);
  background: linear-gradient(180deg, rgba(22,40,60,.95), rgba(8,16,21,.96));
  box-shadow: inset 0 -90px 120px rgba(0,0,0,.28), 0 30px 80px rgba(0,0,0,.2);
}
.sim-sky {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at calc(18% + (1 - var(--sim))*24%) calc(18% + var(--sim)*10%), rgba(255,236,130, calc(.82 - var(--sim)*.58)), transparent 18%),
    linear-gradient(180deg,
      color-mix(in srgb, #90cffd calc((1 - var(--sim)) * 92%), #102138) 0%,
      color-mix(in srgb, #3f75a6 calc((1 - var(--sim)) * 85%), #132137) 40%,
      color-mix(in srgb, #f07b4b calc(var(--sim) * 60%), #16253a) 70%,
      #071015 100%);
}
.sim-horizon {
  position: absolute;
  inset: auto 0 0;
  height: 35%;
  background: linear-gradient(180deg, rgba(23,40,33,.3), rgba(7,16,21,.9)), radial-gradient(circle at 50% 110%, rgba(60,120,60,.25), transparent 48%);
}
.sim-sun {
  position: absolute;
  width: 120px;
  height: 120px;
  left: calc(10% + (1 - var(--sim)) * 52%);
  top: calc(12% + var(--sim) * 38%);
  border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #fffbd5, #ffe86a 35%, #ffb53f 72%, transparent 74%);
  box-shadow: 0 0 44px rgba(255,230,112,.58), 0 0 120px rgba(255,196,73,.24);
  opacity: calc(.98 - var(--sim) * .6);
}
.sim-beam {
  position: absolute;
  left: 15%;
  top: 16%;
  width: 58%;
  height: 40%;
  background: linear-gradient(135deg, rgba(255,234,127, calc(.6 - var(--sim) * .2)), rgba(255,236,169, calc(.06 + (1 - var(--sim)) * .1)) 40%, transparent 76%);
  clip-path: polygon(0 0, 100% 34%, 78% 100%, 0 55%);
  opacity: calc(.55 + (1 - var(--sim)) * .28);
  filter: blur(6px);
}
.sim-aura {
  position: absolute;
  left: 50%; top: 58%;
  width: 360px; height: 360px;
  translate: -50% -50%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(234,255,25, calc(.08 + var(--afterglow) * .2)) 0%, rgba(234,255,25, calc(.02 + var(--afterglow) * .08)) 42%, transparent 72%);
}
.sim-stem {
  position: absolute;
  left: 50%; bottom: 0;
  width: 2px; height: 42%;
  background: linear-gradient(#687775,#1a2527);
  transform-origin: bottom center;
  animation: sway 5.1s ease-in-out infinite;
}
.sim-object-wrap {
  position: absolute;
  left: 50%; bottom: 31%;
  width: 260px; height: 260px;
  translate: -50% 0;
  animation: sway 5.1s ease-in-out infinite reverse;
}
.sim-object { width: 100%; height: 100%; }
.sim-object-edge {
  fill: rgba(234,255,25, calc(.08 + var(--afterglow) * .18));
  stroke: rgba(234,255,25, calc(.42 + var(--afterglow) * .52));
  stroke-width: 10;
  filter: url(#sunartGlow);
}
.sim-object-core {
  fill: rgba(234,255,25, calc(.05 + (1 - var(--sim))* .06 + var(--afterglow) * .16));
  stroke: rgba(255,255,255, calc(.09 + var(--afterglow) * .12));
  stroke-width: 2;
}
.sim-object-ring {
  fill: none;
  stroke: rgba(255,246,175, calc(.18 + var(--afterglow) * .48));
  stroke-width: 4;
  stroke-dasharray: 22 14;
  stroke-linecap: round;
  transform-origin: 50% 50%;
  animation: haloSpin 12s linear infinite;
}
@keyframes haloSpin { to { transform: rotate(360deg); } }
.sim-afterglow {
  position: absolute;
  left: 50%; bottom: 26%;
  width: 320px; height: 320px;
  translate: -50% 0;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(234,255,25, calc(.14 + var(--afterglow) * .24)) 0%, rgba(234,255,25, calc(.03 + var(--afterglow) * .08)) 45%, transparent 75%);
  opacity: calc(.2 + var(--afterglow) * .75);
  animation: breatheGlow 4.6s ease-in-out infinite;
}
@keyframes breatheGlow { 0%,100%{ transform: translate3d(-50%,0,0) scale(.98); } 50%{ transform: translate3d(-50%,0,0) scale(1.04); } }
.sim-minutes {
  position: absolute;
  right: 26px; bottom: 24px;
  padding: 14px 16px; border-radius: 18px;
  background: rgba(7,16,21,.68); border: 1px solid rgba(255,255,255,.08);
  display: grid; gap: 2px;
  text-align: right;
}
.sim-minutes span { font-size: 26px; font-weight: 800; color: var(--sun); }
.sim-minutes small { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.sim-panel {
  min-height: 100%;
  border: 1px solid var(--line);
  border-radius: 34px;
  background: linear-gradient(180deg, rgba(10,19,24,.84), rgba(8,14,19,.98));
  padding: clamp(28px, 3.2vw, 42px);
}
.sim-state-head { display:flex; align-items:center; justify-content:space-between; gap: 20px; margin-bottom: 30px; }
.sim-state-head span { font-size: 10px; letter-spacing: .16em; color: var(--muted); }
.sim-state-head strong { display:block; margin-top: 5px; font-family: Georgia,serif; font-size: 36px; font-weight: 400; }
.sim-play { white-space: nowrap; }
.sim-range-wrap { margin-bottom: 26px; }
.range-steps { display: grid; grid-template-columns: repeat(4,1fr); }
.range-steps b:nth-child(2), .range-steps b:nth-child(3) { text-align: center; }
.range-steps b:last-child { text-align: right; }
.sim-steps { display:grid; gap: 12px; }
.sim-step {
  padding: 20px 22px;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 22px;
  background: rgba(255,255,255,.02);
  transition: border-color .25s ease, background .25s ease, transform .25s ease;
}
.sim-step.active {
  border-color: rgba(234,255,25,.34);
  background: rgba(234,255,25,.06);
  transform: translateX(6px);
}
.sim-step span { display:inline-flex; min-width:34px; font-size:11px; color: var(--sun); letter-spacing: .12em; }
.sim-step h3 { margin: 10px 0 8px; font-size: 22px; font-family: Georgia,serif; font-weight: 400; letter-spacing: -.03em; }
.sim-step p { color: var(--muted); line-height: 1.55; margin: 0; }

.field-canvas { overflow: hidden; }
.field-form {
  position: absolute;
  width: var(--s);
  height: var(--h, var(--s));
  opacity: var(--o);
  transform-origin: center center;
  animation: fieldSway var(--speed) ease-in-out infinite;
}
.field-form::before,
.field-form::after {
  content: "";
  position: absolute;
  box-sizing: border-box;
  border: 1.5px solid var(--c);
  background: color-mix(in srgb, var(--c) 10%, transparent);
  box-shadow: 0 0 22px color-mix(in srgb, var(--c) 28%, transparent), inset 0 0 14px color-mix(in srgb, var(--c) 11%, transparent);
}
.field-form::after {
  width: 1px;
  height: var(--stem);
  left: calc(50% - .5px);
  top: 58%;
  border: 0;
  background: linear-gradient(rgba(153,174,169,.75), rgba(45,56,54,.1));
  box-shadow: none;
  z-index: -1;
}
.field-form.ring, .field-form.ring::before { border-radius: 50%; }
.field-form.ring { height: calc(var(--s) * .28); }
.field-form.ring::before { inset: 0; }
.field-form.lucy { height: calc(var(--s) * .42); }
.field-form.lucy::before { inset: 2px; border-radius: 54% 46% 58% 42% / 58% 42% 58% 42%; transform: skewX(-18deg) rotate(-7deg); }
.field-form.petal { height: calc(var(--s) * .75); }
.field-form.petal::before { inset: 0; border-radius: 48% 48% 65% 65% / 28% 28% 72% 72%; }
.field-form.wave { height: calc(var(--s) * .36); }
.field-form.wave::before { inset: 0; border-radius: 65% 35% 58% 42% / 48% 54% 46% 52%; transform: skewX(18deg) rotate(11deg); }
.field-form.seed { height: calc(var(--s) * .68); }
.field-form.seed::before { inset: 0; border-radius: 55% 45% 55% 45% / 35% 35% 65% 65%; }

html[data-performance="low"] .kinetic-shape,
html[data-performance="low"] .sim-stem,
html[data-performance="low"] .sim-object-wrap,
html[data-performance="low"] .sim-object-ring,
html[data-performance="low"] .sim-afterglow,
html[data-performance="low"] .field-form {
  animation: none;
}

@media (max-width: 1040px) {
  .sim-grid { grid-template-columns: 1fr; }
  .sim-stage { min-height: 560px; }
}

@media (max-width: 760px) {
  .shape-ring { width: 120px; height: 120px; left: 58%; top: 11%; }
  .shape-lucy { width: 170px; height: 96px; right: 5%; top: 20%; }
  .shape-petal { width: 96px; height: 96px; left: 70%; top: 58%; }
  .shape-wave { width: 138px; height: 76px; left: 24%; top: 22%; }
  .shape-seed { width: 88px; height: 100px; left: 12%; top: 64%; }
  .lab-sun { width: 68px; height: 68px; }
  .lab-stem .lab-form {
  all: unset; scale: .76; }
  .function-sim { padding-top: 110px; }
  .sim-stage { min-height: 440px; }
  .sim-object-wrap { width: 180px; height: 180px; bottom: 28%; }
  .sim-afterglow { width: 230px; height: 230px; bottom: 25%; }
  .sim-minutes { right: 14px; bottom: 14px; }
  .sim-minutes span { font-size: 20px; }
  .sim-state-head { align-items: flex-start; flex-direction: column; }
  .sim-state-head strong { font-size: 29px; }
  .sim-step h3 { font-size: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  .kinetic-shape,
  .lab-stem,
  .sim-stem,
  .sim-object-wrap,
  .sim-object-ring,
  .sim-afterglow,
  .field-form,
  .shop-orbit,
  .hero-disc,
  .pulse-dot {
    animation: none !important;
  }
}

/* === SunArt v0.2.1: realtime 3D product rendering === */
.hero-3d,
.lab-3d,
.sim-3d,
.field-3d {
  display: block;
  width: 100%;
  height: 100%;
  image-rendering: auto;
}

.hero-3d {
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
  opacity: .98;
}
.hero-photo { filter: saturate(.82) contrast(1.02) brightness(.76); }
.hero-wash { z-index: 2; }
.hero-3d-legend {
  position: absolute;
  z-index: 8;
  right: 4vw;
  top: calc(var(--header-h) + 28px);
  display: flex;
  gap: 8px;
  padding: 8px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(7,16,21,.42);
  backdrop-filter: blur(14px);
}
.hero-3d-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: rgba(255,255,255,.72);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .12em;
}
.legend-dot { width: 7px; height: 7px; border-radius: 50%; display: inline-block; box-shadow: 0 0 8px currentColor; }
.legend-dot.uno { background:#eaff19; color:#eaff19; }
.legend-dot.lucy { background:#ff4f68; color:#ff4f68; }
.legend-dot.nea { background:#7dff84; color:#7dff84; }

.lab-scene-3d {
  height: min(58vw,640px);
  background: #071015;
}
.lab-badge {
  position:absolute;
  left:18px;
  top:18px;
  z-index:4;
  display:grid;
  gap:3px;
  padding:11px 13px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(7,16,21,.52);
  backdrop-filter:blur(12px);
}
.lab-badge span { color:var(--sun); font-size:8px; font-weight:850; letter-spacing:.16em; }
.lab-badge strong { font-family:Georgia,serif; font-size:20px; font-weight:400; }
.lab-controls-3d {
  grid-template-columns: 155px auto 1fr;
  gap:18px;
}
.model-tabs {
  display:flex;
  gap:6px;
  padding:4px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:999px;
  background:rgba(255,255,255,.025);
}
.model-tabs button {
  border:0;
  border-radius:999px;
  color:rgba(255,255,255,.56);
  background:transparent;
  padding:8px 10px;
  font-size:9px;
  font-weight:850;
  letter-spacing:.1em;
  cursor:pointer;
}
.model-tabs button.active { color:#071015; background:var(--sun); }

.function-sim { position:relative; }
.function-sim::before {
  content:"";
  position:absolute;
  inset:4% -16vw auto;
  height:44%;
  pointer-events:none;
  background:radial-gradient(circle,rgba(234,255,25,.055),transparent 58%);
}
.sim-head > p:last-child { max-width:860px; color:var(--muted); line-height:1.66; font-size:17px; margin-top:26px; }
.sim-grid-3d { grid-template-columns:minmax(0,1.16fr) minmax(390px,.84fr); gap:30px; }
.sim-stage-3d {
  min-height:760px;
  position:sticky;
  top:calc(var(--header-h) + 18px);
  overflow:hidden;
  isolation:isolate;
  background:#071015;
}
.sim-stage-3d::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:3;
  pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.025), inset 0 -110px 150px rgba(2,7,10,.28);
}
.sim-3d { position:absolute; inset:0; z-index:1; cursor:grab; }
.sim-3d:active { cursor:grabbing; }
.sim-overlay-top {
  position:absolute;
  z-index:5;
  left:22px;
  right:22px;
  top:20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  pointer-events:none;
}
.live-chip,
.sim-light-readout {
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:0 11px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  background:rgba(7,16,21,.48);
  backdrop-filter:blur(12px);
  color:rgba(255,255,255,.72);
  font-size:9px;
  font-weight:850;
  letter-spacing:.12em;
}
.live-chip { color:var(--sun); }
.sim-light-readout { gap:7px; letter-spacing:.03em; }
.sim-light-readout i { width:8px; height:8px; border-radius:50%; background:var(--sun); box-shadow:0 0 10px rgba(234,255,25,.7); }
.sim-minutes { z-index:6; min-width:170px; }
.sim-minutes small { max-width:180px; }
.sim-panel { position:relative; }
.sim-model-picker {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  margin:0 0 26px;
}
.sim-model-picker button {
  min-height:96px;
  text-align:left;
  padding:14px 13px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.1);
  background:rgba(255,255,255,.025);
  color:var(--ink);
  cursor:pointer;
  transition:border-color .2s ease, background .2s ease, transform .2s var(--ease);
}
.sim-model-picker button:hover { transform:translateY(-2px); border-color:rgba(234,255,25,.24); }
.sim-model-picker button.active { border-color:rgba(234,255,25,.48); background:rgba(234,255,25,.075); }
.sim-model-picker span { display:block; color:var(--sun); font-size:9px; letter-spacing:.14em; }
.sim-model-picker b { display:block; margin-top:13px; font-size:14px; letter-spacing:.08em; }
.sim-model-picker small { display:block; margin-top:4px; color:var(--muted); font-size:10px; }
.sim-fact-note {
  margin:18px 0 0;
  padding-top:16px;
  border-top:1px solid rgba(255,255,255,.08);
  color:#718083;
  font-size:10px;
  line-height:1.55;
}

.field-3d {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:1;
  pointer-events:none;
}
.field-copy { text-shadow:0 4px 34px rgba(0,0,0,.72); }

html[data-performance="low"] .hero-3d-legend,
html[data-performance="low"] .lab-badge,
html[data-performance="low"] .sim-overlay-top { backdrop-filter:none; }

@media (max-width: 1100px) {
  .lab-controls-3d { grid-template-columns:1fr auto; }
  .lab-controls-3d .range-wrap { grid-column:1/-1; }
  .sim-grid-3d { grid-template-columns:1fr; }
  .sim-stage-3d { position:relative; top:auto; min-height:640px; }
}

@media (max-width:760px) {
  .hero-3d { opacity:.9; }
  .hero-3d-legend { right:18px; top:76px; gap:6px; padding:6px 8px; }
  .hero-3d-legend span { font-size:7px; }
  .lab-scene-3d { height:430px; }
  .lab-controls-3d { grid-template-columns:1fr; }
  .model-tabs { width:max-content; }
  .sim-stage-3d { min-height:520px; border-radius:24px; }
  .sim-overlay-top { left:14px; right:14px; top:14px; }
  .live-chip { display:none; }
  .sim-light-readout { margin-left:auto; }
  .sim-model-picker button { min-height:82px; padding:11px 10px; }
  .sim-model-picker small { display:none; }
  .sim-minutes { min-width:146px; }
  .sim-head > p:last-child { font-size:15px; }
}

@media (prefers-reduced-motion: reduce) {
  .sim-3d, .lab-3d, .hero-3d, .field-3d { opacity:.92; }
}

/* === SunArt v0.2.2 refinement === */
.hero-3d { opacity: .94; }
.hero-3d-legend { top: calc(var(--header-h) + 24px); }
.hero-copy { position: relative; z-index: 9; }
.hero-facts, .scroll-cue { z-index: 9; }
.hero-lead { max-width: 650px; }

.lab-scene-3d,
.sim-stage-3d,
.shop-visual {
  border-radius: 34px;
  border: 1px solid var(--line);
  box-shadow: inset 0 -80px 120px rgba(0,0,0,.28), 0 20px 60px rgba(0,0,0,.18);
  overflow: hidden;
}
.lab-scene-3d {
  height: min(52vw, 560px);
  background: linear-gradient(180deg, rgba(17,26,36,.98), rgba(7,16,21,.98));
}
.lab-controls-3d {
  grid-template-columns: 150px auto auto 1fr;
  gap: 16px;
  align-items: center;
}
.lab-demo-row {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.button-inline { min-height: 40px; padding-inline: 18px; }
.lab-stage-tag {
  padding: 10px 12px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.1);
  background: rgba(255,255,255,.03);
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.range-labels-3 { display:grid; grid-template-columns: repeat(3, 1fr); }
.range-labels-3 b:nth-child(2) { text-align: center; }
.range-labels-3 b:last-child { text-align: right; }

.sim-grid-3d { grid-template-columns: minmax(0,1.08fr) minmax(380px,.92fr); gap: 28px; }
.sim-stage-3d { min-height: 720px; }
.sim-panel { background: linear-gradient(180deg, rgba(10,19,24,.92), rgba(8,14,19,.98)); }
.range-steps-5 { display: grid; grid-template-columns: repeat(5, 1fr); }
.range-steps-5 b:nth-child(2), .range-steps-5 b:nth-child(3), .range-steps-5 b:nth-child(4) { text-align: center; }
.range-steps-5 b:last-child { text-align: right; }
.sim-steps { grid-template-columns: 1fr; }
.sim-step { min-height: 134px; }

.field-copy { width: min(520px, 44vw); }
.field-3d { opacity: .96; }

.gallery-grid {
  display: grid;
  grid-template-columns: 1.2fr .8fr .9fr;
  grid-auto-rows: 250px;
  gap: 18px;
}
.gallery-grid .gallery-card {
  margin: 0;
  min-width: 0;
  width: 100%;
  height: 100%;
}
.gallery-grid .card-large { grid-row: span 2; }
.gallery-grid .card-tall { grid-row: span 2; }
.gallery-grid .card-wide { grid-column: span 1; }
.gallery-grid .card-square { grid-column: span 1; }
.gallery-card { overflow: hidden; }
.gallery-card img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.01); transition: transform .6s var(--ease), filter .6s var(--ease); }
.gallery-card:hover img { transform: scale(1.05); filter: saturate(1.02) contrast(1.03); }
.gallery-card figcaption { display: block; }
.gallery-card figcaption span { display: block; margin-top: 4px; }

.shop-bridge { min-height: 760px; grid-template-columns: .92fr 1.08fr; }
.shop-visual {
  position: relative;
  min-height: 520px;
  background: linear-gradient(180deg, rgba(17,26,36,.9), rgba(7,16,21,.96));
}
.shop-3d {
  display: block;
  width: 100%;
  height: 100%;
}
.shop-copy > p:not(.eyebrow) { max-width: 560px; }

.footer-links { align-items: center; flex-wrap: wrap; }
.footer-links button,
.footer-links a {
  appearance: none;
  border: 0;
  background: transparent;
  color: inherit;
  padding: 0;
  font: inherit;
  cursor: pointer;
}
.footer-links button:hover,
.footer-links a:hover { color: var(--sun); }

.cp-credit {
  grid-column: 1 / -1;
  margin-top: 22px;
  display: inline-flex;
  align-items: center;
  gap: 16px;
  width: max-content;
  padding: 14px 18px;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.1);
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015));
  box-shadow: 0 0 0 1px rgba(255,255,255,.02), 0 0 30px rgba(234,255,25,.08);
  transition: transform .24s var(--ease), box-shadow .24s ease, border-color .24s ease;
}
.cp-credit:hover { transform: translateY(-2px); border-color: rgba(234,255,25,.35); box-shadow: 0 0 40px rgba(234,255,25,.18); }
.cp-logo {
  width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center;
  background: radial-gradient(circle at 50% 50%, rgba(255,255,255,.08), rgba(255,255,255,.02));
  box-shadow: 0 0 25px rgba(255,255,255,.08), 0 0 42px rgba(234,255,25,.12);
  animation: cpGlow 4s ease-in-out infinite;
}
.cp-logo svg { width: 34px; height: 34px; fill: none; stroke: #fff; stroke-width: 5; stroke-linecap: round; stroke-linejoin: round; }
.cp-copy { display: grid; gap: 3px; }
.cp-copy small { color: #8c999c; text-transform: uppercase; letter-spacing: .13em; font-size: 10px; }
.cp-copy strong { color: #fff; font-size: 16px; }
@keyframes cpGlow { 0%,100% { box-shadow: 0 0 25px rgba(255,255,255,.06), 0 0 34px rgba(234,255,25,.1); } 50% { box-shadow: 0 0 28px rgba(255,255,255,.12), 0 0 54px rgba(234,255,25,.2); } }

.legal-modal {
  position: fixed;
  inset: 0;
  z-index: 120;
  display: grid;
  place-items: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease;
}
.legal-modal.open { opacity: 1; pointer-events: auto; }
.legal-backdrop { position: absolute; inset: 0; background: rgba(1,7,11,.78); backdrop-filter: blur(14px); }
.legal-panel {
  position: relative;
  width: min(1180px, calc(100vw - 28px));
  max-height: min(90vh, 920px);
  overflow: hidden;
  border-radius: 32px;
  border: 1px solid rgba(255,255,255,.08);
  background: linear-gradient(180deg, rgba(10,19,24,.98), rgba(8,14,19,.99));
  box-shadow: 0 40px 120px rgba(0,0,0,.5);
}
.legal-topbar {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 20px;
  padding: 28px 28px 22px;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.legal-topbar h2 { font-size: clamp(40px, 6vw, 64px); }
.legal-close {
  width: 46px; height: 46px; border-radius: 50%; border: 1px solid rgba(255,255,255,.12); background: transparent; color: #fff; font-size: 26px; cursor: pointer;
}
.legal-layout { display: grid; grid-template-columns: 260px 1fr; min-height: 0; max-height: calc(min(90vh, 920px) - 126px); }
.legal-nav {
  padding: 24px;
  border-right: 1px solid rgba(255,255,255,.08);
  display: grid; gap: 10px; align-content: start;
  background: rgba(255,255,255,.015);
}
.legal-nav button {
  min-height: 54px; padding: 0 16px; border-radius: 16px; border: 1px solid rgba(255,255,255,.08); background: transparent; color: #d7dfdf; text-align: left; font-size: 14px; cursor: pointer;
}
.legal-nav button.active { background: rgba(234,255,25,.09); color: var(--sun); border-color: rgba(234,255,25,.28); }
.legal-content { overflow: auto; padding: 28px; }
.legal-article { display: none; max-width: 860px; }
.legal-article.active { display: block; }
.legal-article h3 { margin: 0 0 18px; font-size: 32px; font-family: Georgia, serif; font-weight: 400; }
.legal-article p { color: var(--muted); line-height: 1.7; font-size: 15px; }
.cookie-settings-box { display: grid; gap: 14px; margin-top: 24px; }
.cookie-toggle { display: flex; gap: 14px; align-items: flex-start; padding: 16px; border-radius: 18px; border: 1px solid rgba(255,255,255,.08); background: rgba(255,255,255,.02); }
.cookie-toggle input { margin-top: 3px; }
.cookie-toggle span { display: grid; gap: 4px; }
.cookie-toggle b { font-size: 15px; }
.cookie-toggle small { color: var(--muted); }
.legal-actions { margin-top: 22px; }

.cookie-banner {
  position: fixed;
  z-index: 110;
  left: 20px;
  right: 20px;
  bottom: max(20px, env(safe-area-inset-bottom));
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 20px;
  padding: 18px 20px;
  border-radius: 24px;
  border: 1px solid rgba(255,255,255,.1);
  background: rgba(7,16,21,.92);
  box-shadow: 0 25px 70px rgba(0,0,0,.4);
  backdrop-filter: blur(18px);
}
.cookie-banner strong { display: block; max-width: 800px; line-height: 1.55; }
.cookie-banner-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }

@media (max-width: 1100px) {
  .lab-controls-3d { grid-template-columns: 1fr 1fr; }
  .lab-controls-3d .range-wrap { grid-column: 1 / -1; }
  .sim-grid-3d { grid-template-columns: 1fr; }
  .gallery-grid { grid-template-columns: 1fr 1fr; }
  .gallery-grid .card-large, .gallery-grid .card-tall { grid-row: span 1; }
  .shop-bridge { grid-template-columns: 1fr; }
  .shop-visual { min-height: 360px; }
  .legal-layout { grid-template-columns: 1fr; }
  .legal-nav { grid-template-columns: repeat(4, 1fr); border-right: 0; border-bottom: 1px solid rgba(255,255,255,.08); }
}

@media (max-width: 760px) {
  .lab-scene-3d { height: 380px; }
  .lab-controls-3d { grid-template-columns: 1fr; }
  .lab-demo-row { flex-wrap: wrap; }
  .sim-stage-3d { min-height: 500px; }
  .field-copy { width: 100%; }
  .gallery-grid { grid-template-columns: 1fr; grid-auto-rows: auto; }
  .gallery-grid .gallery-card { min-height: 280px; }
  .gallery-grid .card-tall { min-height: 440px; }
  .legal-panel { width: calc(100vw - 18px); border-radius: 24px; }
  .legal-topbar { padding: 20px 18px 16px; }
  .legal-content { padding: 20px 18px 24px; }
  .legal-nav { grid-template-columns: 1fr 1fr; padding: 18px; }
  .cookie-banner { left: 12px; right: 12px; bottom: 78px; grid-template-columns: 1fr; }
  .cookie-banner-actions { width: 100%; }
  .cookie-banner-actions .button { flex: 1 1 auto; }
  .cp-credit { width: 100%; justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
  .cp-logo { animation: none; }
}

/* === SunArt v0.3 refinements === */
[hidden] { display: none !important; }

.hero-3d { opacity: .95; }
.hero-copy { max-width: 640px; }
.hero-lead { max-width: 620px; }

.lab-controls-3d {
  grid-template-columns: 160px auto auto;
  align-items: center;
}
.lab-controls-3d .range-wrap {
  grid-column: 1 / -1;
  width: 100%;
  margin-top: 4px;
}
.lab-demo-row { justify-self: end; }
.range-labels-4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
.range-labels-4 b:nth-child(2),
.range-labels-4 b:nth-child(3) { text-align: center; }
.range-labels-4 b:last-child { text-align: right; }

.range-steps-6 {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
}
.range-steps-6 b:nth-child(2),
.range-steps-6 b:nth-child(3),
.range-steps-6 b:nth-child(4),
.range-steps-6 b:nth-child(5) { text-align: center; }
.range-steps-6 b:last-child { text-align: right; }

.sim-step { min-height: 120px; }
.sim-light-readout b { font-size: 11px; letter-spacing: .08em; }
.sim-minutes { min-width: 190px; }

.cp-credit {
  justify-self: center;
  align-self: center;
  margin: 34px auto 0;
}
.cp-logo {
  width: 148px;
  height: 54px;
  border-radius: 16px;
  padding: 10px 12px;
}
.cp-logo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.cp-copy { text-align: left; }

.cookie-banner {
  transition: opacity .25s ease, transform .25s ease;
}
.cookie-banner.is-hiding {
  opacity: 0;
  transform: translateY(10px);
}

@media (max-width: 1100px) {
  .lab-controls-3d { grid-template-columns: 1fr 1fr; }
  .lab-demo-row { justify-self: start; }
}

@media (max-width: 760px) {
  .lab-controls-3d { grid-template-columns: 1fr; }
  .lab-demo-row { justify-self: start; }
  .range-labels-4, .range-steps-6 { gap: 6px; }
  .range-labels-4 b, .range-steps-6 b { font-size: 8px; }
  .cp-logo { width: 122px; }
  .cp-copy strong { text-align: left; }
  .cp-credit { flex-direction: row; }
}

/* === SunArt v0.3.1 refinements === */
body.atmosphere-on {
  --atmo-glow: 1;
}
body {
  --atmo-glow: 0;
}

.site-header {
  backdrop-filter: blur(18px);
  background: linear-gradient(180deg, rgba(6,13,18,.76), rgba(6,13,18,.42));
  border-bottom: 1px solid rgba(255,255,255,.06);
  box-shadow: 0 10px 30px rgba(0,0,0,.12);
}
.site-header::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(90deg, transparent 0%, rgba(234,255,25,.08) 18%, transparent 36%, rgba(255,255,255,.04) 60%, transparent 100%);
  opacity: .35;
  mix-blend-mode: screen;
}
.site-header.scrolled {
  background: linear-gradient(180deg, rgba(4,10,14,.92), rgba(5,12,16,.75));
  border-bottom-color: rgba(234,255,25,.12);
  box-shadow: 0 18px 44px rgba(0,0,0,.22);
}
.main-nav {
  padding: 6px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.08);
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015));
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.02), 0 0 30px rgba(255,255,255,.04);
}
.main-nav a {
  position: relative;
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 16px;
  border-radius: 999px;
  overflow: hidden;
  transition: color .24s ease, transform .24s ease, background .24s ease, box-shadow .24s ease;
}
.main-nav a::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(120deg, rgba(234,255,25,.13), rgba(255,255,255,.02) 36%, rgba(234,255,25,.06));
  opacity: 0;
  transform: translateY(4px) scale(.96);
  transition: opacity .24s ease, transform .24s ease;
}
.main-nav a::after {
  content: "";
  position: absolute;
  left: 18px;
  right: 18px;
  bottom: 7px;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(234,255,25,0), rgba(234,255,25,.9), rgba(234,255,25,0));
  transform: scaleX(.2);
  opacity: 0;
  transition: transform .24s ease, opacity .24s ease;
}
.main-nav a:hover,
.main-nav a:focus-visible {
  color: #fff;
  transform: translateY(-1px);
  text-shadow: 0 0 18px rgba(234,255,25,.18);
}
.main-nav a:hover::before,
.main-nav a:focus-visible::before {
  opacity: 1;
  transform: translateY(0) scale(1);
}
.main-nav a:hover::after,
.main-nav a:focus-visible::after {
  opacity: 1;
  transform: scaleX(1);
}

.header-actions { gap: 10px; }
.sound-toggle {
  position: relative;
  min-height: 42px;
  padding: 8px 14px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.12);
  background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.015));
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.02);
  overflow: hidden;
}
.sound-toggle::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, transparent 0%, rgba(255,255,255,.12) 40%, transparent 65%);
  transform: translateX(-140%);
  transition: transform .55s ease;
}
.sound-toggle:hover::before,
.sound-toggle:focus-visible::before {
  transform: translateX(140%);
}
.sound-toggle span:last-of-type {
  font-weight: 700;
}
.sound-toggle small {
  display: block;
  font-size: 9px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(255,255,255,.52);
}
.sound-toggle[aria-pressed="true"] {
  border-color: rgba(234,255,25,.35);
  box-shadow: 0 0 30px rgba(234,255,25,.14), inset 0 0 0 1px rgba(234,255,25,.08);
}
.sound-dot {
  box-shadow: 0 0 10px rgba(234,255,25,.22);
}
.sound-toggle[aria-pressed="true"] .sound-dot {
  background: var(--sun);
  box-shadow: 0 0 0 5px rgba(234,255,25,.08), 0 0 18px rgba(234,255,25,.42);
}

body.atmosphere-on .grain { opacity: .12; }
body.atmosphere-on .cursor-light { opacity: 1; }
body.atmosphere-on .hero::before,
body.atmosphere-on .hero::after { opacity: 1; }
body.atmosphere-on .hero-media::after {
  opacity: .68;
  filter: saturate(1.1);
}
body.atmosphere-on .button,
body.atmosphere-on .mini-cta,
body.atmosphere-on .brand-mark,
body.atmosphere-on .hero-facts strong,
body.atmosphere-on .main-nav {
  box-shadow: 0 0 24px rgba(234,255,25,.12);
}
body.atmosphere-on .site-header {
  border-bottom-color: rgba(234,255,25,.16);
}
body.atmosphere-on .section-shell {
  position: relative;
}
body.atmosphere-on .section-shell::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle at 50% 0%, rgba(234,255,25,.025), transparent 50%);
}
body.atmosphere-on .lab-scene-3d,
body.atmosphere-on .sim-stage-3d,
body.atmosphere-on .shop-visual {
  box-shadow: inset 0 -80px 120px rgba(0,0,0,.28), 0 22px 70px rgba(0,0,0,.22), 0 0 0 1px rgba(234,255,25,.08), 0 0 40px rgba(234,255,25,.08);
}
body.atmosphere-on .cp-credit {
  box-shadow: 0 0 36px rgba(234,255,25,.14);
}

.cp-credit {
  position: absolute;
  left: 50%;
  bottom: 18px;
  transform: translateX(-50%);
  z-index: 5;
  margin: 0;
  padding: 10px 16px;
  gap: 12px;
  border-radius: 18px 18px 0 0;
  background: linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.012));
  border: 1px solid rgba(255,255,255,.08);
  border-bottom: 0;
  box-shadow: 0 12px 28px rgba(0,0,0,.22);
}
.cp-credit::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: -36%;
  width: 26%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.24), transparent);
  transform: skewX(-18deg);
  animation: cpShimmer 5.5s ease-in-out infinite;
  pointer-events: none;
}
.cp-credit:hover {
  transform: translateX(-50%) translateY(-2px);
  border-color: rgba(255,255,255,.18);
  box-shadow: 0 18px 34px rgba(0,0,0,.28), 0 0 22px rgba(255,255,255,.08);
}
.cp-logo {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.02);
}
.cp-logo img {
  object-fit: cover;
}
.cp-copy {
  gap: 1px;
}
.cp-copy small { font-size: 9px; }
.cp-copy strong { font-size: 14px; }
@keyframes cpShimmer {
  0%, 52%, 100% { transform: translateX(0) skewX(-18deg); opacity: 0; }
  58% { opacity: .85; }
  72% { transform: translateX(430%) skewX(-18deg); opacity: 0; }
}

.footer { position: relative; padding-bottom: 92px; }
.footer-brand, .footer-links, .footer-meta { position: relative; z-index: 2; }

@media (max-width: 1100px) {
  .main-nav { gap: 4px; }
  .main-nav a { padding: 0 12px; }
}

@media (max-width: 860px) {
  .site-header {
    gap: 10px;
    padding-top: 10px;
    padding-bottom: 10px;
    flex-wrap: wrap;
    justify-content: center;
  }
  .brand { order: 1; }
  .header-actions { order: 2; }
  .main-nav {
    order: 3;
    width: 100%;
    justify-content: center;
    flex-wrap: wrap;
    border-radius: 18px;
    padding: 8px;
  }
}

@media (max-width: 760px) {
  .sound-toggle {
    min-height: 38px;
    padding: 8px 12px;
  }
  .sound-toggle small { display: none; }
  .main-nav {
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    width: 100%;
  }
  .main-nav a {
    min-height: 40px;
    width: 100%;
    font-size: 11px;
    padding-inline: 8px;
  }
  .cp-credit {
    bottom: 0;
    width: calc(100% - 32px);
    max-width: 340px;
    border-radius: 16px 16px 0 0;
    justify-content: center;
  }
  .cp-logo {
    width: 42px;
    height: 42px;
  }
  .cp-copy strong { font-size: 13px; }
  .footer { padding-bottom: 104px; }
}

/* === SunArt v0.3.2 finalization === */
:root { --font-scale: 1; }
html { font-size: calc(16px * var(--font-scale)); }
body {
  background:
    radial-gradient(circle at 18% 18%, rgba(234,255,25,.04), transparent 28%),
    radial-gradient(circle at 78% 14%, rgba(120,210,255,.03), transparent 26%),
    linear-gradient(180deg, #041018 0%, #07131a 28%, #081117 60%, #060d12 100%);
}
body::before {
  content: "";
  position: fixed;
  inset: -12%;
  pointer-events: none;
  z-index: -1;
  background:
    radial-gradient(circle at var(--mx, 50%) var(--my, 30%), rgba(255,255,255,.04), transparent 16%),
    repeating-radial-gradient(circle at 50% 50%, rgba(255,255,255,.018) 0 2px, rgba(0,0,0,0) 3px 16px);
  opacity: .26;
  transform: scale(1.1);
  animation: slowMaterial 24s linear infinite;
}
@keyframes slowMaterial {
  0% { transform: scale(1.08) translate3d(0,0,0); }
  50% { transform: scale(1.12) translate3d(-1%, 1%, 0); }
  100% { transform: scale(1.08) translate3d(0,0,0); }
}
body.atmosphere-on::before {
  opacity: .38;
  animation-duration: 16s;
}

.story-index {
  display: inline-flex;
  align-items: center;
  gap: .16em;
}
.story-index i {
  font-style: normal;
  display: inline-block;
  width: .48em;
  text-align: center;
  transform: translateY(-.08em);
}

.footer-meta { align-items: start; }
.cp-credit {
  padding: 7px 14px 6px;
  gap: 10px;
  min-height: 0;
  bottom: 0;
  border-radius: 14px 14px 0 0;
}
.cp-credit::before {
  animation-duration: 6.5s;
}
.cp-credit:hover {
  transform: translateX(-50%) translateY(-1px);
  box-shadow: 0 14px 26px rgba(0,0,0,.24), 0 0 22px rgba(234,255,25,.08);
}
.cp-logo {
  width: 38px;
  height: 38px;
}
.cp-copy small { font-size: 8px; }
.cp-copy strong { font-size: 13px; }
.footer { padding-bottom: 76px; }

.accessibility-fab {
  position: fixed;
  right: 18px;
  bottom: 94px;
  z-index: 70;
  min-width: 54px;
  height: 54px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(9,18,24,.94), rgba(9,18,24,.82));
  color: var(--ink);
  font-weight: 800;
  letter-spacing: .08em;
  box-shadow: 0 14px 30px rgba(0,0,0,.28), 0 0 0 1px rgba(255,255,255,.03);
  cursor: pointer;
}
.accessibility-fab:hover,
.accessibility-fab:focus-visible {
  border-color: rgba(234,255,25,.28);
  box-shadow: 0 18px 34px rgba(0,0,0,.32), 0 0 30px rgba(234,255,25,.1);
}
.accessibility-panel {
  position: fixed;
  right: 18px;
  bottom: 158px;
  z-index: 71;
  width: min(340px, calc(100vw - 36px));
  padding: 18px;
  border-radius: 22px;
  border: 1px solid rgba(255,255,255,.12);
  background: linear-gradient(180deg, rgba(9,18,24,.96), rgba(9,18,24,.9));
  box-shadow: 0 24px 60px rgba(0,0,0,.35);
  opacity: 0;
  pointer-events: none;
  transform: translateY(10px) scale(.98);
  transition: opacity .24s ease, transform .24s ease;
}
.accessibility-panel.open {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0) scale(1);
}
.accessibility-head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}
.accessibility-head h3 { margin: 2px 0 0; font-size: 20px; }
.accessibility-close {
  width: 38px; height: 38px; border-radius: 50%; border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.03); color: var(--ink); font-size: 24px; cursor: pointer;
}
.accessibility-controls { display: grid; gap: 14px; }
.accessibility-group { display: grid; gap: 10px; }
.accessibility-group span { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: #a7b6b8; }
.accessibility-group p { margin: 0; color: #95a3a6; font-size: 13px; line-height: 1.55; }
.accessibility-buttons, .accessibility-toggles { display: flex; flex-wrap: wrap; gap: 8px; }
.accessibility-buttons button, .accessibility-toggles button {
  min-height: 40px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.1);
  background: rgba(255,255,255,.04);
  color: var(--ink);
  padding: 0 14px;
  cursor: pointer;
}
.accessibility-buttons button.active,
.accessibility-toggles button.active,
.accessibility-buttons button:hover,
.accessibility-toggles button:hover,
.accessibility-buttons button:focus-visible,
.accessibility-toggles button:focus-visible {
  border-color: rgba(234,255,25,.3);
  background: rgba(234,255,25,.08);
}
html.accessibility-contrast {
  --ink: #ffffff;
  --muted: #d4dfdf;
  --line: rgba(255,255,255,.22);
}
html.accessibility-contrast body::before { opacity: .18; }
html.accessibility-focus :focus-visible {
  outline: 3px solid rgba(234,255,25,.92) !important;
  outline-offset: 3px;
}
html.accessibility-reduce-motion *,
html.accessibility-reduce-motion *::before,
html.accessibility-reduce-motion *::after {
  animation-duration: .001ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: .001ms !important;
  scroll-behavior: auto !important;
}

@media (max-width: 760px) {
  .accessibility-fab { right: 12px; bottom: 86px; width: 50px; height: 50px; min-width: 50px; }
  .accessibility-panel { right: 12px; bottom: 146px; width: calc(100vw - 24px); }
  .cp-credit { width: auto; max-width: calc(100vw - 26px); padding: 7px 12px 5px; }
  .cp-logo { width: 34px; height: 34px; }
  .footer { padding-bottom: 88px; }
}

/* === SunArt v0.3.4: repair pass – stable layers, demos, hero, field, symmetry === */
body::before { display: none !important; }

.vibe-backdrop {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
  opacity: .16;
  transition: opacity .8s ease, filter .8s ease;
}
.vibe-orb {
  position: absolute;
  width: 58vw;
  aspect-ratio: 1;
  border-radius: 50%;
  filter: blur(110px);
  opacity: .18;
  transform: translate3d(0,0,0) scale(1);
  will-change: transform;
}
.vibe-a {
  left: -18vw;
  top: -20vh;
  background: radial-gradient(circle, rgba(234,255,25,.16) 0%, rgba(108,154,64,.055) 42%, transparent 72%);
  animation: sunFlowA 30s ease-in-out infinite alternate;
}
.vibe-b {
  right: -22vw;
  top: 20vh;
  background: radial-gradient(circle, rgba(86,165,193,.12) 0%, rgba(38,82,103,.045) 48%, transparent 74%);
  animation: sunFlowB 36s ease-in-out infinite alternate;
}
.vibe-c {
  left: 26vw;
  bottom: -34vh;
  background: radial-gradient(circle, rgba(255,112,86,.08) 0%, rgba(154,83,64,.03) 44%, transparent 74%);
  animation: sunFlowC 42s ease-in-out infinite alternate;
}
@keyframes sunFlowA {
  0% { transform: translate3d(-3vw,-2vh,0) scale(.94); }
  50% { transform: translate3d(11vw,9vh,0) scale(1.08); }
  100% { transform: translate3d(20vw,4vh,0) scale(.98); }
}
@keyframes sunFlowB {
  0% { transform: translate3d(5vw,-4vh,0) scale(1.02); }
  50% { transform: translate3d(-14vw,10vh,0) scale(.9); }
  100% { transform: translate3d(-4vw,22vh,0) scale(1.1); }
}
@keyframes sunFlowC {
  0% { transform: translate3d(-8vw,7vh,0) scale(.92); }
  50% { transform: translate3d(12vw,-10vh,0) scale(1.12); }
  100% { transform: translate3d(2vw,-20vh,0) scale(1); }
}
body.atmosphere-on .vibe-backdrop {
  opacity: .62;
  filter: saturate(1.08);
}
body.atmosphere-on .vibe-a { animation-duration: 20s; }
body.atmosphere-on .vibe-b { animation-duration: 24s; }
body.atmosphere-on .vibe-c { animation-duration: 28s; }
main, .footer { position: relative; z-index: 1; }
.site-header { position: fixed; z-index: 100; }
.mobile-dock { position: fixed; z-index: 96; }
.accessibility-fab { position: fixed; z-index: 104; }
.accessibility-panel { position: fixed; z-index: 105; }
.cookie-banner { position: fixed; z-index: 110; }
.legal-modal { position: fixed; z-index: 120; }

/* Balanced gallery: 3 × 2 rhythm, no chaotic masonry. */
.gallery-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: clamp(260px, 24vw, 360px);
  gap: 20px;
}
.gallery-grid .gallery-card,
.gallery-grid .card-large,
.gallery-grid .card-tall,
.gallery-grid .card-wide,
.gallery-grid .card-square {
  grid-column: auto !important;
  grid-row: auto !important;
  min-height: 0;
  aspect-ratio: auto;
}
.gallery-grid .gallery-card { transform: none; }
.gallery-grid .gallery-card:hover { transform: translateY(-4px) scale(1.008); }

/* Accessibility trigger: understandable Aa instead of developer shorthand. */
.accessibility-fab {
  font-family: Georgia, serif;
  font-size: 20px;
  letter-spacing: -.04em;
}

/* Compact CP signature: only slightly larger than its content. */
.cp-credit {
  width: max-content;
  max-width: calc(100vw - 48px);
  min-height: 58px;
  padding: 9px 14px;
  gap: 14px;
  justify-content: flex-start;
  overflow: hidden;
}
.cp-logo {
  flex: 0 0 auto;
  width: 54px;
  height: 54px;
  padding: 7px;
  border-radius: 50%;
}
.cp-copy {
  min-width: 0;
  display: grid;
  grid-template-columns: max-content;
  grid-template-areas:
    "name"
    "slogan";
  justify-items: start;
  align-items: center;
  row-gap: 3px;
}
.cp-copy > strong { grid-area: name; white-space: nowrap; font-size: 14px; }
.cp-slogan {
  grid-area: slogan;
  display: block;
  width: 100%;
  color: rgba(255,255,255,.68);
  font-size: 9px;
  line-height: 1.2;
  letter-spacing: .115em;
  white-space: nowrap;
  text-transform: uppercase;
  transform-origin: left center;
  transition: color .3s ease, letter-spacing .45s ease, text-shadow .45s ease;
}
.cp-credit::after {
  content: "";
  position: absolute;
  inset: -120% -18%;
  background:
    radial-gradient(circle at 42% 50%, rgba(255,255,255,.28), transparent 16%),
    linear-gradient(105deg, transparent 42%, rgba(255,255,255,.30) 50%, transparent 58%);
  transform: translateX(-70%) rotate(7deg);
  opacity: 0;
  pointer-events: none;
}
.cp-credit:hover::after,
.cp-credit:focus-visible::after {
  animation: cpFlashSweep 1.05s cubic-bezier(.18,.7,.2,1) 1;
}
.cp-credit:hover .cp-logo,
.cp-credit:focus-visible .cp-logo {
  animation: cpLogoPulse .95s ease 1;
}
.cp-credit:hover .cp-slogan,
.cp-credit:focus-visible .cp-slogan {
  color: #fff;
  letter-spacing: .215em;
  text-shadow: 0 0 16px rgba(255,255,255,.18), 0 0 28px rgba(234,255,25,.10);
}
.cp-credit:hover,
.cp-credit:focus-visible {
  border-color: rgba(255,255,255,.20);
  box-shadow: 0 12px 30px rgba(0,0,0,.28), 0 0 30px rgba(234,255,25,.11), inset 0 0 24px rgba(255,255,255,.025);
}
@keyframes cpFlashSweep {
  0% { transform: translateX(-75%) rotate(7deg); opacity: 0; }
  18% { opacity: .9; }
  58% { opacity: .7; }
  100% { transform: translateX(75%) rotate(7deg); opacity: 0; }
}
@keyframes cpLogoPulse {
  0%,100% { transform: scale(1); box-shadow: 0 0 0 rgba(255,255,255,0); }
  38% { transform: scale(1.12); box-shadow: 0 0 26px rgba(255,255,255,.18), 0 0 42px rgba(234,255,25,.12); }
  70% { transform: scale(.98); }
}

@media (max-width: 980px) {
  .gallery-grid { grid-template-columns: repeat(2, minmax(0,1fr)); grid-auto-rows: clamp(240px, 40vw, 330px); }
  .gallery-grid .gallery-card { transform: none !important; }
}
@media (max-width: 760px) {
  .gallery-grid { grid-template-columns: 1fr; grid-auto-rows: min(74vw, 340px); gap: 14px; }
  .cp-credit { width: max-content; max-width: calc(100vw - 24px); padding-inline: 12px; }
  .cp-copy { grid-template-columns: 1fr; grid-template-areas: "name" "slogan"; text-align: left; }
  .cp-copy > small { display: none; }
  .cp-slogan { font-size: 7.4px; letter-spacing: .12em; overflow: hidden; text-overflow: clip; }
  .vibe-orb { filter: blur(82px); }
}

html.accessibility-reduce-motion .vibe-orb { animation: none !important; }
@media (prefers-reduced-motion: reduce) { .vibe-orb { animation: none !important; } }
.cp-logo img {
  object-fit: contain !important;
  padding: 6px;
  box-sizing: border-box;
}

/* Atmosphere grain is intentionally kept nearly invisible; SunFlow Vibe provides the motion. */
.grain { opacity: .018; }
body.atmosphere-on .grain { opacity: .025 !important; }
.cp-credit, .cp-copy { font-family: "Segoe UI", ui-sans-serif, system-ui, sans-serif; }

/* === SunArt v0.4: local media, responsive release pass, mobile navigation === */
:root { --content-max: 1280px; }
html { text-size-adjust: 100%; -webkit-text-size-adjust: 100%; }
body.nav-open { overflow: hidden; }
.section-shell { width: min(var(--content-max), calc(100% - clamp(32px, 6vw, 96px))); }

/* Real SunArt logo */
.brand { min-width: 0; }
.brand-logo { width: clamp(118px, 10vw, 156px); height: auto; max-height: 48px; object-fit: contain; object-position: left center; }
.footer-logo { width: clamp(170px, 17vw, 230px); height: auto; object-fit: contain; object-position: left center; }
.footer-brand { grid-template-columns: 1fr; align-items: start; gap: 10px; }
.footer-brand p { grid-column: 1; margin: 0; }

/* Hero uses local responsive pictures instead of a remote CSS background. */
.hero-photo { background: none !important; transform: scale(1.025); }
.hero-photo picture, .hero-photo img { width: 100%; height: 100%; display: block; }
.hero-photo img { object-fit: cover; object-position: center 51%; }
.hero-photo::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(7,16,21,.9) 0%,rgba(7,16,21,.38) 48%,rgba(7,16,21,.13) 100%); pointer-events:none; }
.hero-copy { max-width: min(880px, 75vw); }
.hero-copy h1 { font-size: clamp(76px, 11vw, 178px); }

/* Local contact image */
.contact-backdrop { background: none !important; opacity: .9; }
.contact-backdrop picture, .contact-backdrop img { width:100%; height:100%; display:block; }
.contact-backdrop img { object-fit: cover; object-position: 62% center; }
.contact-backdrop::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(7,16,21,.97),rgba(7,16,21,.72) 54%,rgba(7,16,21,.18)); }

/* Responsive images */
.gallery-card img, .sven-photo img { image-rendering: auto; }
.gallery-card { min-width: 0; }
.gallery-grid { align-items: stretch; }

/* Mobile / tablet sandwich menu */
.menu-toggle { display:none; width:46px; height:46px; border:1px solid var(--line); border-radius:50%; background:rgba(7,16,21,.62); color:#fff; padding:0; place-items:center; cursor:pointer; position:relative; z-index:132; }
.menu-toggle span { position:absolute; width:19px; height:1.5px; background:currentColor; border-radius:999px; transition:transform .28s var(--ease), opacity .2s ease, top .28s var(--ease); }
.menu-toggle span:nth-child(1){ top:15px; }
.menu-toggle span:nth-child(2){ top:22px; }
.menu-toggle span:nth-child(3){ top:29px; }
.site-header.menu-open .menu-toggle span:nth-child(1){ top:22px; transform:rotate(45deg); }
.site-header.menu-open .menu-toggle span:nth-child(2){ opacity:0; }
.site-header.menu-open .menu-toggle span:nth-child(3){ top:22px; transform:rotate(-45deg); }
.nav-mobile-only { display:none; }

/* Performance containment for large visual sections */
.hero-media, .light-lab, .sim-stage-3d, .field-sticky, .shop-visual { contain: layout paint style; }
#hero3d, #lab3d, #sim3d, #field3d, #shop3d { touch-action: pan-y; }

/* More fluid section geometry across desktop widths */
.manifesto, .proof, .story { padding-block: clamp(96px, 10vw, 150px); }
.manifesto-grid { gap: clamp(38px, 7vw, 100px); margin-top: clamp(48px, 7vw, 90px); }
.function-sim { padding-block: clamp(90px, 9vw, 140px); }
.sim-grid-3d { grid-template-columns: minmax(0, 1.05fr) minmax(340px, .95fr); }
.sim-stage-3d { min-height: clamp(520px, 55vw, 720px); }
.sim-model-picker { grid-template-columns: repeat(3,minmax(0,1fr)); }
.light-field { min-height: 180svh; }
.field-sticky { min-height: 100svh; }
.sven { width:min(1420px, calc(100% - clamp(24px,4vw,64px))); min-height:clamp(650px,58vw,820px); }
.events-head { align-items:flex-end; }
.shop-bridge { min-height:clamp(650px,56vw,790px); }
.contact { min-height:clamp(660px,56vw,820px); }

/* Dynamic event state */
.event-grid:empty { display:none; }
.event-now[hidden] { display:none !important; }
.event-card time { display:block; min-height:1.4em; }

@media (max-width: 1180px) {
  .sim-grid-3d { grid-template-columns: 1fr; }
  .sim-stage-3d { min-height: min(70vw, 650px); }
  .sim-panel { max-width:none; }
  .hero-copy { max-width:min(760px, 76vw); }
}

@media (max-width: 1100px) {
  :root { --header-h: 70px; }
  .site-header { grid-template-columns:auto 1fr auto; padding-inline:clamp(16px,3vw,28px); gap:14px; }
  .brand { z-index:132; }
  .menu-toggle { display:grid; justify-self:end; }
  .main-nav {
    display:flex !important;
    position:fixed;
    inset:0;
    z-index:126;
    flex-direction:column;
    justify-content:center;
    align-items:flex-start;
    gap:0;
    padding:calc(var(--header-h) + 44px) clamp(24px,8vw,90px) 150px;
    background:radial-gradient(circle at 82% 20%,rgba(234,255,25,.11),transparent 25%),rgba(6,14,18,.985);
    backdrop-filter:blur(24px);
    transform:translate3d(100%,0,0);
    visibility:hidden;
    transition:transform .36s var(--ease), visibility .36s step-end;
    overflow:auto;
  }
  .site-header.menu-open .main-nav { transform:translate3d(0,0,0); visibility:visible; transition:transform .36s var(--ease), visibility 0s; }
  .main-nav a { width:100%; padding:16px 0; border-bottom:1px solid rgba(255,255,255,.1); font-family:Georgia,serif; font-size:clamp(31px,6vw,58px); line-height:1; color:#fff; letter-spacing:-.035em; }
  .main-nav a::before, .main-nav a::after { display:none !important; }
  .nav-mobile-only { display:block; }
  .header-actions {
    position:fixed;
    z-index:130;
    left:clamp(24px,8vw,90px);
    right:clamp(24px,8vw,90px);
    bottom:max(28px,env(safe-area-inset-bottom));
    justify-content:flex-start;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(16px);
    transition:opacity .25s ease, transform .3s var(--ease), visibility .25s step-end;
  }
  .site-header.menu-open .header-actions { opacity:1; visibility:visible; pointer-events:auto; transform:none; transition:opacity .25s ease .1s, transform .3s var(--ease) .08s, visibility 0s; }
  .site-header.menu-open .header-actions .mini-cta { display:inline-flex; }
  .hero-copy { max-width:min(720px, 82vw); }
  .hero-copy h1 { font-size:clamp(74px,13vw,138px); }
  .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:clamp(260px,42vw,420px); }
  .sven { grid-template-columns:1fr; }
  .sven-photo { min-height:min(92vw,720px); }
  .sven-photo::after { background:linear-gradient(0deg,#111d22,transparent 24%); }
  .shop-bridge { grid-template-columns:1fr; }
}

@media (max-width: 760px) {
  :root { --header-h: 64px; --radius:20px; }
  .section-shell { width:calc(100% - 32px); }
  .brand-logo { width:116px; max-height:40px; }
  .menu-toggle { width:42px; height:42px; }
  .site-header { grid-template-columns:1fr auto; }
  .main-nav { padding-inline:22px; padding-bottom:160px; }
  .main-nav a { font-size:clamp(34px,11vw,52px); padding:13px 0; }
  .header-actions { left:22px; right:22px; }
  .sound-toggle span:not(.sound-dot), .sound-toggle small { display:inline; }
  .sound-toggle { width:auto; height:auto; padding:10px 14px; }

  .hero { min-height:100svh; }
  .hero-photo { transform:scale(1.015); }
  .hero-photo img { object-position:50% 48%; }
  .hero-photo::after { background:linear-gradient(180deg,rgba(7,16,21,.16) 0%,rgba(7,16,21,.28) 34%,rgba(7,16,21,.93) 87%); }
  .hero-copy { width:calc(100% - 32px); max-width:none; margin:0 16px max(88px,10svh); }
  .hero-copy h1 { font-size:clamp(58px,21vw,94px); line-height:.88; margin-bottom:18px; }
  .hero-lead { font-size:16px; line-height:1.45; max-width:100%; }
  .hero-actions { display:grid; grid-template-columns:1fr; }
  .hero-actions .button { width:100%; }
  .hero-3d-legend { display:none; }

  h2 { font-size:clamp(48px,15vw,76px); line-height:.9; }
  .manifesto, .proof, .story, .function-sim { padding-block:86px; }
  .manifesto-grid { margin-top:42px; }
  .big-copy { font-size:21px; line-height:1.28; }
  .lab-scene { height:auto; min-height:0; aspect-ratio:4/5; max-height:none; }
  .lab-controls { padding:18px; }
  .model-tabs { width:100%; display:grid; grid-template-columns:repeat(3,1fr); }
  .model-tabs button { min-width:0; }
  .lab-demo-row { display:grid; grid-template-columns:1fr; width:100%; gap:10px; }
  .lab-demo-row .button { width:100%; }
  .range-labels { font-size:8px; gap:4px; }

  .sim-head { margin-bottom:38px; }
  .sim-head > p:last-child { font-size:15px; }
  .sim-stage-3d { min-height:0; aspect-ratio:4/5; border-radius:20px; }
  .sim-overlay-top { left:14px; right:14px; top:14px; gap:8px; flex-wrap:wrap; }
  .sim-minutes { left:14px; right:14px; bottom:14px; min-width:0; }
  .sim-panel { padding:20px 16px; }
  .sim-state-head { align-items:flex-start; flex-direction:column; }
  .sim-play { width:100%; }
  .sim-model-picker { gap:8px; }
  .sim-model-picker button { padding:12px 8px; }
  .sim-step { min-height:0; padding:16px; }
  .sim-step h3 { font-size:20px; }

  .light-field { min-height:150svh; }
  .field-sticky { display:flex; align-items:flex-start; min-height:100svh; padding:96px 16px 80px; }
  .field-copy { width:min(92%,520px); max-width:none; }
  .field-copy h2 { font-size:clamp(50px,15vw,74px); }
  .field-copy p:last-child { max-width:90%; }
  .field-3d { opacity:.84; }

  .story-step { grid-template-columns:36px 1fr; gap:14px; padding:30px 0; }
  .story-step > p { grid-column:2; font-size:15px; }
  .story-step h3 { font-size:clamp(28px,9vw,42px); }

  .gallery { padding:82px 0 90px; }
  .gallery-grid { grid-template-columns:1fr; grid-auto-rows:auto; gap:14px; }
  .gallery-grid .gallery-card { height:auto; min-height:0; aspect-ratio:4/3; border-radius:20px; }
  .gallery-grid .gallery-card:nth-child(2), .gallery-grid .gallery-card:nth-child(5) { aspect-ratio:7/9; max-height:78svh; }
  .gallery-card figcaption { inset:auto 16px 16px; }
  .gallery-card figcaption b { font-size:27px; }

  .proof-grid { border-radius:20px; }
  .proof-card { min-height:230px; padding:22px; }
  .sven { width:calc(100% - 20px); border-radius:22px; margin-bottom:92px; }
  .sven-photo { min-height:0; aspect-ratio:4/5; }
  .sven-copy { padding:36px 20px 46px; }
  .sven-copy h2 { font-size:clamp(52px,16vw,76px); }

  .events { padding-bottom:92px; }
  .event-now { border-radius:18px; }
  .event-grid { grid-template-columns:1fr; }
  .event-card { min-height:0; }
  .event-card h3 { margin-top:24px; }

  .shop-bridge { width:calc(100% - 20px); border-radius:22px; margin-bottom:92px; min-height:0; }
  .shop-visual { min-height:320px; }
  .shop-copy { padding:34px 20px 44px; }
  .shop-copy h2 { font-size:clamp(52px,16vw,76px); }
  .coupon { max-width:100%; }

  .contact { min-height:700px; }
  .contact-backdrop img { object-position:65% center; }
  .contact-backdrop::after { background:linear-gradient(180deg,rgba(7,16,21,.36),rgba(7,16,21,.82) 58%,rgba(7,16,21,.97)); }
  .contact-copy { padding-block:78px 126px; }
  .contact-grid { margin-top:38px; }
  .contact-grid a { min-height:72px; }

  .footer { width:100%; padding:56px 16px 116px; }
  .footer-logo { width:190px; }
  .footer-links { gap:16px 20px; }
  .footer-meta { font-size:9px; line-height:1.5; }
  .mobile-dock { z-index:95; }
}

@media (max-width: 390px) {
  .hero-copy h1 { font-size:clamp(54px,20vw,78px); }
  .button { padding-inline:16px; }
  .main-nav a { font-size:36px; }
  .sim-model-picker b { font-size:12px; }
  .contact-grid strong { font-size:15px; }
}

@media (min-width: 1900px) {
  :root { --content-max: 1440px; }
  .section-shell { width:min(var(--content-max), calc(100% - 10vw)); }
  .hero-copy { margin-left:max(4vw, calc((100vw - 1600px)/2)); }
  .hero-facts { right:max(4vw, calc((100vw - 1600px)/2)); }
}

@media (prefers-reduced-motion: reduce) {
  .main-nav, .menu-toggle span { transition:none !important; }
}
html, body { max-width: 100%; overflow-x: clip; }


/* === SunArt v0.4.2 stability + performance repair === */
/* Reveal is progressive enhancement. If JS/IntersectionObserver stalls, content remains readable. */
.reveal { opacity:1; transform:none; }
html.reveal-ready .reveal:not(.in) { opacity:0; transform:translateY(20px); }
html.accessibility-reduce-motion .reveal { opacity:1 !important; transform:none !important; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity:1 !important; transform:none !important; } }

/* Stable lightweight Shop scene: DOM/CSS instead of an extra full-size animated canvas. */
.shop-visual {
  isolation:isolate;
  background:
    radial-gradient(circle at 78% 22%, rgba(234,255,25,.12), transparent 16%),
    linear-gradient(180deg,#182237 0%,#3a3450 42%,#202d32 69%,#0a1419 100%);
}
.shop-sunfield { position:absolute; inset:0; overflow:hidden; }
.shop-sun {
  position:absolute; width:58px; height:58px; border-radius:50%; right:12%; top:16%;
  background:rgba(255,231,128,.16); box-shadow:0 0 44px rgba(255,226,110,.22);
}
.shop-hill { position:absolute; left:-12%; width:125%; height:48%; bottom:-18%; border-radius:50% 50% 0 0/48% 48% 0 0; transform:rotate(-4deg); }
.shop-hill-a { background:#334149; bottom:-17%; }
.shop-hill-b { background:#26343a; left:24%; bottom:-22%; transform:rotate(5deg); opacity:.92; }
.shop-sculpture {
  position:absolute; bottom:8%; width:1px; height:58%; background:linear-gradient(rgba(255,255,255,.16),#152026 30%,#0c151a);
  transform-origin:bottom center; animation:shopSway 5.8s ease-in-out infinite; z-index:3;
}
.shop-sculpture i {
  position:absolute; left:50%; top:0; width:96px; height:36px; transform:translate(-50%,-50%) perspective(220px) rotateX(58deg);
  border-radius:50%; border:2px solid var(--shop-color,#eaff19); background:color-mix(in srgb,var(--shop-color,#eaff19) 13%,transparent);
  box-shadow:0 0 18px color-mix(in srgb,var(--shop-color,#eaff19) 42%,transparent), inset 0 0 18px color-mix(in srgb,var(--shop-color,#eaff19) 18%,transparent);
}
.shop-sculpture-a { left:27%; height:55%; --shop-color:#eaff19; animation-delay:-1.1s; }
.shop-sculpture-b { left:46%; height:48%; --shop-color:#ffd42a; animation-delay:-2.4s; }
.shop-sculpture-b i { width:122px; border-radius:58% 42% 62% 38%; }
.shop-sculpture-c { left:64%; height:50%; --shop-color:#78ff8b; animation-delay:-3.2s; }
.shop-sculpture-c i { width:94px; height:54px; border-radius:46% 54% 44% 56%; }
.shop-sculpture-d { left:79%; height:59%; --shop-color:#ff5971; animation-delay:-.6s; }
.shop-sculpture-d i { width:82px; }
.shop-sculpture-e { left:17%; height:42%; --shop-color:#d7ff5e; animation-delay:-4.4s; }
.shop-sculpture-e i { width:70px; }
@keyframes shopSway { 0%,100% { transform:rotate(-1.2deg); } 50% { transform:rotate(1.5deg); } }
html[data-performance="low"] .shop-sculpture { animation-duration:8.5s; }
html.accessibility-reduce-motion .shop-sculpture { animation:none !important; }
@media (prefers-reduced-motion: reduce) { .shop-sculpture { animation:none !important; } }

/* Avoid expensive compositing on small devices. */
@media (max-width:760px) {
  .hero-photo, .gallery-card img, .contact-backdrop img { backface-visibility:hidden; }
  .vibe-orb { filter:blur(68px); opacity:.42; }
  .shop-sculpture i { box-shadow:0 0 12px color-mix(in srgb,var(--shop-color,#eaff19) 30%,transparent); }
}


/* === SunArt v0.4.2 – accessibility + mobile navigation repair === */
/* A11y typography is now applied by JS to every real text node, including px/clamp typography. */
:root { --font-scale: 1; }
.accessibility-panel { max-height: min(78dvh, 720px); overflow-y: auto; overscroll-behavior: contain; }
.accessibility-buttons button[aria-pressed="true"],
.accessibility-toggles button[aria-pressed="true"] {
  border-color: rgba(234,255,25,.42);
  background: rgba(234,255,25,.12);
  color: #fff;
}

/* Full-screen menu must not inherit the scrolled header's backdrop-filter containing block. */
html.nav-open, body.nav-open {
  overflow: hidden !important;
  overscroll-behavior: none;
}
@media (max-width: 1100px) {
  .site-header.menu-open {
    z-index: 220 !important;
    background: transparent !important;
    border-color: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    filter: none !important;
  }
  .site-header.menu-open .brand,
  .site-header.menu-open .menu-toggle {
    position: relative;
    z-index: 224;
  }
  .site-header .main-nav {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    min-height: 100svh;
    max-height: none !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    touch-action: pan-y;
  }
  .site-header.menu-open .main-nav {
    visibility: visible !important;
    pointer-events: auto !important;
  }
  body.nav-open .accessibility-fab,
  body.nav-open .accessibility-panel,
  body.nav-open .mobile-dock,
  body.nav-open .cookie-banner {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
  .main-nav a { touch-action: manipulation; }
}

@media (max-width: 760px) {
  .site-header .main-nav {
    justify-content: flex-start !important;
    padding-top: calc(var(--header-h) + 58px) !important;
    padding-bottom: max(150px, calc(env(safe-area-inset-bottom) + 118px)) !important;
  }
  .site-header .main-nav a {
    min-height: 56px;
    display: flex;
    align-items: center;
  }
  .site-header.menu-open .header-actions {
    z-index: 223;
    bottom: max(20px, env(safe-area-inset-bottom));
  }
}
