@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Instrument+Serif:ital@0;1&display=swap');

* { box-sizing: border-box; }
html { margin:0; background:#191a19; scrollbar-width:thin; scrollbar-color:#9a9a94 #ecece8; }
body { margin:0; font-family:'DM Sans',Arial,sans-serif; -webkit-font-smoothing:antialiased; }
button { font:inherit; cursor:pointer; }
button:focus-visible { outline:2px solid #fa683e; outline-offset:6px; }
button { -webkit-tap-highlight-color:transparent; }
#prototype { --paper:#f6f6f2; --ink:#191a19; --paper-dot:#d1d1c9; --ink-dot:#343530; --soft:#686962; --soft-inverse:#b3b5aa; --accent:#fb6941; --acid:#daeb89; --header-ink:var(--ink); --header-paper:var(--paper); color:var(--ink); background:var(--paper); }
#prototype[data-theme="dark"] { --paper:#171817; --ink:#edede6; --paper-dot:#363833; --ink-dot:#c8c9c0; --soft:#b1b3a8; --soft-inverse:#626459; }
#prototype[data-tone="ink"] { --header-ink:var(--paper); --header-paper:var(--ink); }
.site-header { position:fixed; z-index:40; inset:0 0 auto; height:104px; padding:0 3.8%; display:flex; align-items:center; justify-content:space-between; gap:25px; color:var(--header-ink); transition:color .35s; pointer-events:none; }
#prototype[data-chapter="2"] .site-header { background-color:var(--paper); background-image:radial-gradient(var(--paper-dot) .8px,transparent .9px); background-size:23px 23px; pointer-events:auto; }
#prototype[data-chapter="2"][data-transitioning="true"] .site-header::before { content:""; position:absolute; inset:0; z-index:0; background-color:var(--ink); background-image:radial-gradient(var(--ink-dot) .8px,transparent .9px); background-size:23px 23px; clip-path:inset(var(--header-wipe-edge,100%) 0 0); pointer-events:none; }
.site-header > * { position:relative; z-index:1; }
.site-header button, .site-header nav, #theme-control { pointer-events:auto; }
.worksheet-link { padding:11px 17px; border:1px solid #ffffff9c; border-radius:25px; opacity:1; white-space:nowrap; overflow:hidden; isolation:isolate; color:#203138; font-weight:550; background:linear-gradient(115deg,#a9e9e6 0%,#d5c2f4 18%,#f4cadd 36%,#f2edb7 52%,#b9f0dc 68%,#b6d8f6 84%,#dec9f4 100%); background-size:350% 350%; background-position:0% 45%; box-shadow:inset 0 1px 0 #ffffffc9,inset 0 -1px 5px #ffffff55,-4px 0 16px #70d7e52b,4px 0 17px #d5a4f037; animation:worksheet-hologram 16s ease-in-out infinite alternate; transition:box-shadow .4s; }
.worksheet-link::before { content:''; position:absolute; inset:-60% -100%; z-index:-1; pointer-events:none; background:linear-gradient(115deg,transparent 35%,#ffffff08 43%,#ffffffe0 49%,#ffffff40 53%,transparent 63%); transform:translateX(-26%); animation:worksheet-sheen 12s ease-in-out infinite alternate; }
.worksheet-link::after { display:none; }
.worksheet-link:hover { box-shadow:inset 0 1px 0 #fff,inset 0 -1px 5px #ffffff77,-4px 0 22px #70d7e54d,4px 0 24px #d5a4f05c; }
.worksheet-link:focus-visible { outline:2px solid var(--header-ink); outline-offset:4px; }
@keyframes worksheet-hologram { 0% { background-position:0% 45%; } 50% { background-position:55% 65%; } 100% { background-position:100% 40%; } }
@keyframes worksheet-sheen { from { transform:translateX(-26%); opacity:.35; } to { transform:translateX(26%); opacity:.75; } }
@media(max-width:1500px) { .site-header .edition { display:none; } }
@media(max-width:1100px) and (min-width:761px) { .site-header { gap:16px; }.site-header .header-left { gap:16px; }.site-header .wordmark { font-size:34px; }.site-header .chapter-nav { gap:14px; } }
@media(max-width:760px) { .site-header .chapter-nav { gap:8px; }.worksheet-link { padding:5px 8px; margin-top:-1px; font-size:10px; } }
.header-left { display:flex; align-items:center; gap:30px; }
.wordmark { border:0; color:inherit; background:none; padding:0 0 8px; font-size:42px; font-weight:700; letter-spacing:-3px; line-height:1; }
.logo-dot { color:var(--accent); }
#theme-control { position:relative; display:flex; border:1px solid var(--header-ink); background:var(--header-ink); border-radius:30px; padding:4px; height:40px; color:var(--header-paper); transition:background .35s,border-color .35s; }
#theme-control button { z-index:1; position:relative; border:0; background:transparent; color:inherit; font-size:10px; letter-spacing:.035em; font-weight:600; width:71px; border-radius:30px; padding:0; transition:color .25s; }
#theme-control button[aria-pressed="true"] { color:var(--header-ink); }
.theme-thumb { position:absolute; left:4px; top:4px; bottom:4px; width:71px; background:var(--header-paper); border-radius:22px; transition:transform .4s cubic-bezier(.22,1,.36,1),background .35s; }
#prototype[data-theme="dark"] .theme-thumb { transform:translateX(71px); }
.sun-icon,.moon-icon { font-size:15px; vertical-align:-1px; margin-right:3px; }
.chapter-nav { display:flex; gap:25px; align-items:center; }
.chapter-nav button,.chapter-nav a { border:0; background:none; padding:9px 0; color:inherit; font-size:12px; line-height:normal; font-family:inherit; text-decoration:none; position:relative; opacity:.52; transition:opacity .25s; }
.chapter-nav button span,.chapter-nav a span { font-size:9px; margin-right:5px; }
.chapter-nav button { opacity:1; }
.chapter-nav .chapter-nav-name { font-size:inherit; margin-right:0; opacity:.52; transition:opacity .25s; }
.chapter-nav button[aria-current="step"] .chapter-nav-name,.chapter-nav button:hover .chapter-nav-name { opacity:1; }
.chapter-nav-number,.chapter-index,.price-nav-number,.price-category-number,.journey-meter>span:not(.meter-track) { color:var(--accent); }
.chapter-nav button[aria-current="step"],.chapter-nav a[aria-current="page"],.chapter-nav button:hover,.chapter-nav a:hover { opacity:1; }
.chapter-nav button::after,.chapter-nav a::after { content:''; position:absolute; left:0; bottom:0; right:0; height:1px; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .3s; }
.chapter-nav button[aria-current="step"]::after,.chapter-nav a[aria-current="page"]::after { transform:scaleX(1); }
.edition { font-size:9px; letter-spacing:.07em; display:flex; gap:25px; white-space:nowrap; }
.edition span { opacity:.5; }
#journey { height:560svh; position:relative; }
.viewport { height:100svh; position:sticky; top:0; overflow:hidden; isolation:isolate; }
.scene { position:absolute; inset:0; overflow:hidden; padding:0; background-color:var(--paper); background-image:radial-gradient(var(--paper-dot) .8px,transparent .9px); background-size:23px 23px; color:var(--ink); transition:background-color .45s,color .45s; }
.scene[data-scene="1"],.scene[data-scene="2"],.scene[data-scene="3"] { visibility:hidden; }
.scene-one,.scene-two { color:var(--paper); background-color:var(--ink); background-image:radial-gradient(var(--ink-dot) .8px,transparent .9px); }
.scene-one { --soft:var(--soft-inverse); }
.scene-content { position:relative; width:100%; height:100%; padding:150px 7.3% 96px; }
.eyebrow { margin:0; font-size:10px; letter-spacing:.13em; font-weight:500; display:flex; align-items:center; gap:12px; line-height:1.5; }
.live-dot { width:6px; height:6px; flex-shrink:0; border-radius:50%; background:var(--accent); box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 12%,transparent); }
.hero-copy { position:relative; z-index:3; padding-top:8vh; width:62%; }
h1,h2 { font-size:clamp(68px,7.6vw,136px); font-weight:450; letter-spacing:-.065em; line-height:1.025; margin:29px 0 25px; }
.serif-word { font-family:'Instrument Serif',Georgia,serif; font-style:italic; font-weight:400; letter-spacing:-.04em; }
.intro { margin:0; color:var(--soft); font-size:14px; line-height:1.75; letter-spacing:-.015em; }
.text-link { margin-top:29px; display:inline-flex; align-items:center; gap:25px; font-size:12px; padding:0; background:none; border:0; color:inherit; }
.arrow-circle { width:38px; height:38px; border:1px solid color-mix(in srgb,currentColor 25%,transparent); border-radius:50%; display:grid; place-items:center; font-size:22px; transition:transform .3s,background .3s,color .3s; }
.text-link:hover .arrow-circle { transform:translate(3px,3px); background:var(--accent); color:#171817; border-color:var(--accent); }
.sculpture-wrap { position:absolute; width:46vw; max-width:680px; height:46vw; max-height:680px; right:3.4%; top:50%; transform:translateY(-49%); }
.dental-visual { position:relative; z-index:2; width:100%; height:100%; pointer-events:none; }
.dental-visual::before { content:''; position:absolute; z-index:-1; left:23%; right:23%; bottom:13%; height:3%; border-radius:50%; background:#000; filter:blur(15px); opacity:.16; transition:opacity .45s; }
.dental-poster,.dental-canvas { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:contain; transition:opacity .45s ease; }
.dental-poster { opacity:1; transform:rotate(calc(var(--scene-progress,0)*-11deg)); }
.dental-canvas { opacity:0; }
.dental-visual[data-dental-state="ready"] .dental-poster { opacity:0; }
.dental-visual[data-dental-state="ready"] .dental-canvas { opacity:1; }
#prototype[data-theme="dark"] .dental-visual::before { opacity:.35; }
.orbit-guide { position:absolute; inset:11%; border:1px solid color-mix(in srgb,var(--paper) 12%,transparent); border-radius:50%; }
.guide-one { transform:rotate(-25deg) scaleY(.73); }
.guide-two { transform:rotate(58deg) scaleY(.76); }
.axis-label { position:absolute; left:38%; top:1%; font-size:9px; letter-spacing:.1em; color:var(--soft); }
.axis-cross { position:absolute; font-weight:300; font-size:25px; color:var(--soft); }
.cross-one { top:17%; right:9%; }
.cross-two { bottom:17%; left:9%; }
.object-caption { position:absolute; bottom:7%; right:17%; font-size:10px; color:var(--soft); letter-spacing:.015em; }
.hero-baseline { position:absolute; bottom:107px; left:7.3%; right:7.3%; display:flex; justify-content:space-between; font-size:9px; color:var(--soft); letter-spacing:.08em; border-top:1px solid color-mix(in srgb,var(--paper) 16%,transparent); padding-top:18px; }
.marquee { position:absolute; left:0; right:0; top:60%; opacity:0; pointer-events:none; transform:translateY(80px); white-space:nowrap; z-index:4; color:inherit; }
.marquee-track { display:flex; align-items:center; gap:5vw; width:max-content; font-size:clamp(80px,12vw,210px); font-weight:450; line-height:1; letter-spacing:-.07em; transform:translateX(calc(var(--scene-progress,0)*-26vw - 8vw)); }
.marquee i { font-style:normal; color:var(--accent); font-size:.6em; font-weight:300; }
.chapter-heading { display:flex; justify-content:space-between; align-items:center; }
.small-note { font-size:9px; letter-spacing:.09em; opacity:.6; }
.second-top { position:relative; margin-top:26px; }
.second-top h2 { font-size:clamp(65px,7.5vw,126px); margin:0; }
.bloom { position:absolute; right:12%; top:3%; height:190px; width:190px; transform:rotate(calc(var(--scene-progress,0)*100deg + 15deg)); }
.bloom-petal { background:var(--acid); border:1px solid #c1d577; width:38%; height:80%; border-radius:100%; position:absolute; top:10%; left:31%; }
.bloom-petal:nth-child(2) { transform:rotate(30deg); }.bloom-petal:nth-child(3) { transform:rotate(60deg); }.bloom-petal:nth-child(4) { transform:rotate(90deg); }.bloom-petal:nth-child(5) { transform:rotate(120deg); }.bloom-petal:nth-child(6) { transform:rotate(150deg); }
.bloom-core { position:absolute; width:25%; height:25%; background:#181a17; border-radius:50%; top:37.5%; left:37.5%; }
.bloom>span { position:absolute; z-index:2; inset:0; display:grid; place-items:center; color:var(--acid); font-size:24px; font-weight:300; }
.principles { display:grid; grid-template-columns:repeat(3,1fr); margin-top:5.5vh; border-top:1px solid color-mix(in srgb,var(--paper) 25%,transparent); }
.principle { position:relative; padding:22px 22px 20px 0; min-height:163px; }
.principle+.principle { padding-left:28px; border-left:1px solid color-mix(in srgb,var(--paper) 18%,transparent); }
.principle-no { font-size:9px; opacity:.55; }
.principle h3 { font-size:21px; font-weight:450; letter-spacing:-.035em; margin:14px 0 10px; }
.principle p { font-size:12px; color:var(--soft-inverse); line-height:1.65; margin:0; }
.mini-shape { position:absolute; right:26px; bottom:29px; width:35px; height:35px; }
.shape-space { border:1px solid currentColor; border-radius:50%; opacity:.6; }
.shape-space::after { content:''; position:absolute; inset:5px; border:1px solid currentColor; border-radius:50%; transform:translateX(10px); }
.shape-rhythm { display:flex; align-items:center; justify-content:space-between; }
.shape-rhythm i { width:3px; height:50%; background:var(--paper); border-radius:5px; opacity:.7; }.shape-rhythm i:nth-child(2),.shape-rhythm i:nth-child(4) { height:80%; }.shape-rhythm i:nth-child(3) { height:100%; }
.shape-mark { color:var(--accent); font-size:43px; line-height:1; }
.second-link { margin-top:8px; }
.scene-three .scene-content { padding-top:160px; }
.final-layout { display:flex; align-items:center; height:calc(100% - 66px); }
.final-copy { width:65%; z-index:2; }
.final-copy h2 { margin-top:10px; font-size:clamp(68px,8.7vw,145px); }
.round-cta { background:var(--accent); width:129px; height:129px; border-radius:50%; border:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; color:#191a19; margin-top:25px; font-size:12px; font-weight:500; line-height:1.3; transition:transform .4s cubic-bezier(.22,1,.36,1),background .3s; }
.round-cta>span:last-child { font-size:31px; line-height:1.1; }.round-cta:hover { transform:rotate(-10deg) scale(1.045); background:#ff805a; }
.final-art { position:absolute; width:40vw; height:40vw; max-width:590px; max-height:590px; right:4%; top:50%; transform:translateY(-47%) rotate(calc(var(--scene-progress,0)*10deg)); }
.ripple { position:absolute; border:1px solid color-mix(in srgb,var(--ink) 27%,transparent); border-radius:50%; inset:0; }.r-two { inset:8%; }.r-three { inset:16%; }.r-four { inset:24%; }.r-five { inset:32%; }
.final-core { position:absolute; inset:39%; border-radius:50%; display:grid; place-items:center; background:var(--ink); color:var(--paper); box-shadow:0 10px 30px #00000012; }
.final-core span { font-size:clamp(32px,6vw,80px); line-height:1; color:var(--accent); }
.final-art-label { position:absolute; bottom:-10px; left:0; right:0; text-align:center; font-size:9px; letter-spacing:.15em; color:var(--soft); }
.final-footer { position:absolute; left:7.3%; right:7.3%; bottom:102px; padding-top:19px; border-top:1px solid color-mix(in srgb,var(--ink) 18%,transparent); display:flex; justify-content:space-between; font-size:9px; letter-spacing:.06em; color:var(--soft); }
#curtain { position:absolute; inset:0; display:flex; flex-direction:column; z-index:10; pointer-events:none; visibility:hidden; }
.curtain-band { width:100%; height:20%; flex:1 0 20%; background:var(--ink); transform:scaleY(0); transform-origin:center bottom; margin-top:-1px; padding-bottom:1px; will-change:transform; }
.journey-footer { position:fixed; z-index:40; bottom:0; left:0; right:0; padding:22px 3.8% 26px; display:flex; justify-content:space-between; align-items:center; gap:30px; color:var(--header-ink); pointer-events:none; transition:color .35s; }
.journey-footer .worksheet-link { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); display:inline-flex; align-items:center; justify-content:center; padding:11px 20px; margin:0; font-size:14px; text-decoration:none; pointer-events:auto; }
.journey-footer { min-height:72px; }
@media(max-width:760px) { .journey-footer .worksheet-link { padding:9px 17px; font-size:13px; } }
.scroll-cue { font-size:9px; letter-spacing:.1em; display:flex; align-items:center; gap:12px; min-width:178px; }
.scroll-line { display:inline-block; height:26px; width:1px; background:color-mix(in srgb,var(--header-ink) 20%,transparent); position:relative; overflow:hidden; }
.scroll-line::after { content:''; height:10px; width:1px; background:var(--header-ink); position:absolute; top:0; left:0; animation:scroll-pulse 2.4s ease-in-out infinite; }
.journey-meter { display:flex; align-items:center; gap:13px; font-size:10px; font-variant-numeric:tabular-nums; }
.meter-track { width:90px; height:2px; background:color-mix(in srgb,var(--header-ink) 19%,transparent); overflow:hidden; }
#progress-fill { display:block; width:100%; height:100%; background:var(--header-ink); transform-origin:left; transform:scaleX(0); }
.prototype-note { font-size:9px; letter-spacing:.08em; min-width:178px; text-align:right; opacity:.55; }
.noscript-note { position:fixed; z-index:100; bottom:0; left:0; right:0; padding:20px; margin:0; background:#fb6941; color:#161616; font-size:14px; text-align:center; }
@keyframes scroll-pulse { 0%,100% { transform:translateY(-12px); } 60% { transform:translateY(32px); } }
@media(min-width:1600px) { .scene-content { padding-top:17vh; }.hero-copy { padding-top:9vh; }.principles { margin-top:7vh; }.principle { min-height:185px; }.intro { font-size:16px; } }
@media(max-height:800px) and (min-width:761px) { .site-header { height:84px; }.scene-content { padding-top:118px; }.hero-copy { padding-top:4vh; } h1,h2 { font-size:clamp(65px,7.1vw,110px); }.sculpture-wrap { max-height:500px; max-width:500px; }.hero-baseline { bottom:85px; }.second-top h2 { font-size:clamp(60px,6.8vw,100px); }.second-top { margin-top:16px; }.principles { margin-top:24px; }.bloom { width:150px; height:150px; }.principle { min-height:142px; padding-top:13px; }.principle h3 { margin-top:10px; }.scene-three .scene-content { padding-top:120px; }.round-cta { width:104px; height:104px; margin-top:18px; }.final-copy h2 { font-size:clamp(68px,7.8vw,120px); }.final-footer { bottom:80px; } }
@media(max-width:1150px) { .edition { display:none; }.header-left { gap:22px; }.chapter-nav { gap:22px; }.scene-content { padding-left:6%; padding-right:6%; }.sculpture-wrap { right:0; width:49vw; height:49vw; }.hero-copy { width:70%; }.bloom { right:6%; }.mini-shape { right:17px; }.principle p { font-size:11px; }.hero-baseline,.final-footer { left:6%; right:6%; } }
@media(max-width:760px) {
  .site-header { padding:18px 6%; height:108px; align-items:flex-start; gap:0; flex-wrap:wrap; }
  .header-left { width:100%; justify-content:space-between; gap:15px; }.wordmark { font-size:35px; padding-bottom:4px; }
  #theme-control { height:37px; }#theme-control button { width:66px; font-size:9px; }.theme-thumb { width:66px; }#prototype[data-theme="dark"] .theme-thumb { transform:translateX(66px); }
  .chapter-nav { justify-content:space-between; width:100%; margin-top:13px; gap:15px; }.chapter-nav button,.chapter-nav a { font-size:10px; padding:5px 0; }.chapter-nav button span,.chapter-nav a span { font-size:8px; }
  .scene-content { padding:140px 7% 80px; }.hero-copy { width:100%; padding-top:2vh; }h1,h2 { font-size:clamp(48px,10.3vw,78px); line-height:1.02; margin:20px 0 16px; letter-spacing:-.055em; }.eyebrow { font-size:9px; }.intro { font-size:12px; line-height:1.6; }.text-link { margin-top:18px; font-size:11px; gap:18px; }.arrow-circle { width:32px; height:32px; font-size:20px; }
  .sculpture-wrap { width:65vw; height:65vw; max-width:360px; max-height:360px; top:auto; bottom:65px; right:2%; transform:none; }.sculpture { width:100%; height:100%; }.axis-label { font-size:7px; top:5%; }.object-caption { font-size:8px; bottom:2%; right:13%; }.hero-baseline { display:none; }.cross-one,.cross-two { font-size:17px; }
  .marquee { top:54%; }.marquee-track { font-size:18vw; gap:7vw; }
  .small-note { display:none; }.second-top { margin-top:22px; }.second-top h2 { font-size:clamp(46px,10vw,73px); }.bloom { width:94px; height:94px; right:0; top:55%; z-index:0; }.bloom>span { font-size:15px; }
  .principles { display:flex; flex-direction:column; border:0; margin-top:28px; }.principle,.principle+.principle { display:grid; grid-template-columns:35px 1fr; padding:13px 47px 12px 0; min-height:0; border:0; border-top:1px solid color-mix(in srgb,var(--paper) 24%,transparent); }.principle h3 { font-size:18px; margin:0 0 5px; }.principle-no { grid-column:1; grid-row:1; padding-top:6px; font-size:8px; }.principle p { grid-column:2; font-size:11px; line-height:1.5; }.principle p br { display:none; }.mini-shape { width:27px; height:27px; right:0; bottom:23px; }.shape-mark { font-size:34px; }.second-link { margin-top:12px; }
  .scene-three .scene-content { padding-top:142px; }.final-layout { height:auto; margin-top:25px; }.final-copy { width:100%; }.final-copy h2 { font-size:clamp(51px,11.5vw,87px); margin:0 0 20px; }.round-cta { width:98px; height:98px; margin-top:24px; font-size:11px; }.round-cta>span:last-child { font-size:26px; }
  .final-art { top:auto; bottom:125px; right:5%; width:53vw; height:53vw; max-width:300px; max-height:300px; transform:none; }.final-art-label { font-size:8px; bottom:-21px; }.final-core span { font-size:35px; }.final-footer { left:7%; right:7%; bottom:82px; padding-top:15px; font-size:8px; }.final-footer>span:first-child { max-width:56%; }
  .journey-footer { padding:18px 6%; gap:15px; }.prototype-note { display:none; }.scroll-cue { min-width:0; font-size:8px; }.journey-meter { font-size:9px; gap:9px; }.meter-track { width:55px; }
}
@media(max-width:760px) and (max-height:730px) { .scene-content,.scene-three .scene-content { padding-top:127px; }.hero-copy { padding-top:0; }h1,h2 { margin-top:16px; }.sculpture-wrap { width:52vw; height:52vw; bottom:57px; }.object-caption { display:none; }.second-top { margin-top:16px; }.second-top h2 { font-size:clamp(41px,9.5vw,67px); }.principles { margin-top:20px; }.principle,.principle+.principle { padding-top:9px; padding-bottom:9px; }.principle h3 { font-size:16px; }.principle p { font-size:10px; }.second-link { margin-top:4px; }.bloom { width:77px; height:77px; }.final-layout { margin-top:18px; }.final-copy h2 { font-size:clamp(46px,10vw,72px); }.final-art { width:44vw; height:44vw; bottom:118px; }.round-cta { width:85px; height:85px; margin-top:18px; } }
@media(max-height:560px) and (min-width:761px) { .site-header { height:65px; }.scene-content { padding-top:80px; }.hero-copy { padding-top:0; }h1,h2 { font-size:65px; margin:15px 0; }.sculpture-wrap { width:350px; height:350px; }.hero-baseline { display:none; }.second-top h2 { font-size:60px; }.bloom { width:110px; height:110px; }.principles { margin-top:17px; }.principle { min-height:120px; }.principle h3 { font-size:18px; }.scene-three .scene-content { padding-top:90px; }.final-copy h2 { font-size:65px; }.round-cta { width:80px; height:80px; }.final-footer { display:none; }.journey-footer { padding-bottom:15px; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; }.sculpture,.bloom { transform:none!important; }.final-art { transform:translateY(-47%); } }
@media(prefers-reduced-motion:reduce) and (max-width:760px) { .final-art { transform:none; } }
@media(prefers-reduced-motion:reduce) { .dental-poster { transform:none; } }

/* Chapter 02 shares the original scene, typefaces, palette and scroll track. */
.price-rail { position:absolute; top:var(--price-top,130px); left:7.3%; width:23%; }
.price-rail>h2 { margin:20px 0 52px; font-size:clamp(64px,6.8vw,112px); }
.price-nav-label { margin:0 0 20px; font-size:9px; letter-spacing:.16em; opacity:.55; }
.price-nav button { width:100%; display:grid; grid-template-columns:22px 1fr 15px; gap:8px; align-items:center; padding:19px 0; border:0; border-bottom:1px solid color-mix(in srgb,var(--paper) 20%,transparent); background:none; color:inherit; text-align:left; font-size:13px; line-height:1.4; opacity:.55; transition:opacity .25s,border-color .25s; }
.price-nav button:hover,.price-nav button[aria-current] { opacity:1; border-color:var(--paper); }
.price-nav button { opacity:1; }
.price-nav button { position:relative; background-color:transparent; transition:border-color .25s; }
.price-nav button::before { content:''; position:absolute; left:-9px; top:9px; bottom:9px; width:3px; border-radius:3px; background:var(--accent); box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 10%,transparent); opacity:0; transition:opacity .25s; pointer-events:none; }
.price-nav button[aria-current]::before { opacity:1; }
.price-nav button>span:nth-child(2),.price-nav-arrow { opacity:.55; transition:opacity .25s,transform .25s; }
.price-nav button:hover>span:nth-child(2),.price-nav button[aria-current]>span:nth-child(2),.price-nav button:hover .price-nav-arrow,.price-nav button[aria-current] .price-nav-arrow { opacity:1; }
.price-nav-number { font-size:9px; letter-spacing:.06em; font-variant-numeric:tabular-nums; }
.price-nav-arrow { display:inline-block; font-size:16px; line-height:1; transition:opacity .25s,transform .25s; }
.price-nav button[aria-current] .price-nav-arrow { transform:rotate(-45deg); }
.price-nav button:focus-visible { outline:2px solid var(--paper); outline-offset:5px; }
.price-window { position:absolute; inset:var(--price-top,130px) 7.3% var(--price-bottom,90px) 37%; overflow:clip; }
.scene-two .price-content { position:relative; height:auto; min-height:100%; padding:2px 0 24px; }
.price-category { padding:0 0 94px; }
.price-category:last-child { padding-bottom:8px; }
.price-category>h3 { display:flex; align-items:baseline; gap:22px; margin:0 0 34px; padding-bottom:26px; border-bottom:1px solid color-mix(in srgb,var(--paper) 48%,transparent); font-size:clamp(28px,3.25vw,52px); font-weight:450; line-height:1.1; letter-spacing:-.045em; }
.price-category-number { flex-shrink:0; font-size:11px; line-height:1; font-weight:400; letter-spacing:.04em; }
.price-groups { display:flex; flex-direction:column; gap:38px; min-width:0; }
.price-group { min-width:0; padding:0 0 0 36px; }
.price-group h4 { margin:0 0 15px; font-size:1.4rem; line-height:1.3; font-weight:500; letter-spacing:-.025em; }
.price-group h4 { position:relative; width:fit-content; padding-left:54px; }
/* Keep every badge to the left of its heading without moving the price rows. */
.material-badge {
  --badge-x:21px;
  --badge-y:12px;
  --badge-fill-x:50%;
  --badge-fill-y:50%;
  position:absolute;
  left:0;
  top:50%;
  transform:translateY(-50%);
  display:grid;
  place-items:center;
  width:42px;
  height:24px;
  box-sizing:border-box;
  border:1.5px solid transparent;
  border-radius:8px;
  padding:0;
  isolation:isolate;
  color:#20252b;
  font-family:inherit;
  font-size:11px;
  font-weight:600;
  line-height:1;
  letter-spacing:-.02em;
  white-space:nowrap;
  /* This layered border is also the fallback when mask compositing is absent. */
  background:linear-gradient(125deg,rgba(220,246,251,.97),rgba(222,231,253,.96) 28%,rgba(232,219,249,.96) 52%,rgba(249,221,239,.96) 76%,rgba(252,239,215,.97)) padding-box,
    linear-gradient(125deg,#14b9d2,#3977ed 28%,#8550d8 50%,#d942af 72%,#ed876a 88%,#d9b354 96%,#14b9d2) border-box;
}
.material-badge::before,.material-badge::after { content:''; position:absolute; pointer-events:none; opacity:1; }
.material-badge::after {
  z-index:-1;
  inset:0;
  border-radius:6.5px;
  background:radial-gradient(36px circle at var(--badge-x) var(--badge-y),rgba(202,221,255,.16),rgba(243,211,234,.06) 55%,transparent 100%);
}
@supports (mask-composite:exclude) or (-webkit-mask-composite:xor) {
  .material-badge {
    background:linear-gradient(125deg,rgba(220,246,251,.97),rgba(222,231,253,.96) 28%,rgba(232,219,249,.96) 52%,rgba(249,221,239,.96) 76%,rgba(252,239,215,.97)) padding-box;
  }
  .material-badge::before,.material-badge::after {
    z-index:-1;
    inset:-1.5px;
    border-radius:inherit;
    padding:1.5px;
    -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
    -webkit-mask-composite:xor;
    mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
    mask-composite:exclude;
  }
  .material-badge::before {
    opacity:1;
    transition:none;
    background:linear-gradient(125deg,#14b9d2,#3977ed 28%,#8550d8 50%,#d942af 72%,#ed876a 88%,#d9b354 96%,#14b9d2);
  }
  .material-badge::after {
    /* Full-strength pearlescent fill and edge follow the pointer position. */
    border:1.5px solid transparent;
    padding:0;
    -webkit-mask:none;
    mask:none;
    background:radial-gradient(22px 28px at var(--badge-fill-x) var(--badge-fill-y),rgba(255,255,255,.72),rgba(255,255,255,0) 100%) padding-box,
      conic-gradient(from var(--badge-angle,0deg) at var(--badge-fill-x) var(--badge-fill-y),#b9eaf4,#c3d9fc,#dec8f6,#f4c6e4,#f8dfbb,#b9eaf4) padding-box,
      radial-gradient(24px circle at var(--badge-x) var(--badge-y),rgba(255,255,255,.8),rgba(255,255,255,0) 90%) border-box,
      conic-gradient(from var(--badge-angle,0deg),#08c6e2,#326af0,#8140df,#e232af,#ef8060,#e8bd4d,#08c6e2) border-box;
    box-shadow:0 0 9px rgba(106,112,214,.2);
  }
}
@media (hover:none),(pointer:coarse),(prefers-reduced-motion:reduce) {
  .material-badge { --badge-x:21px!important; --badge-y:12px!important; --badge-fill-x:50%!important; --badge-fill-y:50%!important; --badge-angle:0deg!important; }
}
.price-group table { width:100%; border-collapse:collapse; }
.price-group tr { border-bottom:1px solid color-mix(in srgb,var(--paper) 13%,transparent); transition:background-color .2s; }
.price-group tr:last-child { border-bottom:0; }
.price-group tr:hover { background:color-mix(in srgb,var(--paper) 4%,transparent); }
.price-group th,.price-group td { padding:16px 0; font-size:1rem; line-height:1.5; vertical-align:middle; }
.price-group th { text-align:left; font-weight:400; padding-right:18px; }
.price-group td { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; font-weight:500; }
.price-extra { color:color-mix(in srgb,var(--paper) 82%,var(--ink)); }
.extra-badge { display:inline-block; vertical-align:middle; margin-left:8px; padding:3px 5px; background:color-mix(in srgb,var(--paper) 10%,var(--ink)); color:color-mix(in srgb,var(--paper) 80%,var(--ink)); font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:9px; font-weight:400; line-height:1.2; letter-spacing:.025em; }
@media(max-width:1150px) {
  .price-rail { left:6%; width:25%; }
  .price-window { left:36%; right:6%; }
  .price-nav button { font-size:12px; grid-template-columns:18px 1fr 12px; gap:6px; }
  .price-group { padding-left:0; }
  .price-category>h3 { gap:14px; }
}
@media(max-width:760px) {
  .price-rail { left:7%; right:7%; width:auto; }
  .price-rail .eyebrow { margin:0; }
  .price-rail>h2 { font-size:52px; margin:10px 0 18px; }
  .price-nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
  .price-nav-label,.price-nav-arrow { display:none; }
  .price-nav button { display:flex; flex-direction:column; align-items:flex-start; gap:5px; padding:0 0 12px; font-size:11px; }
  .price-nav-number { font-size:8px; }
  .price-window { top:calc(var(--price-top,130px) + var(--price-rail-height,190px)); left:7%; right:7%; }
  .scene-two .price-content { padding:2px 0 12px; }
  .price-category { padding-bottom:66px; }
  .price-category>h3 { font-size:28px; gap:12px; padding-bottom:20px; margin-bottom:26px; }
  .price-category-number { font-size:9px; }
  .price-groups { gap:30px; }
  .price-group h4 { font-size:1.2rem; margin-bottom:10px; }
  .material-badge { height:21px; --badge-y:10.5px!important; }
  .price-group th { padding-right:12px; }
  .price-group th,.price-group td { padding-top:13px; padding-bottom:13px; font-size:14px; }
  .extra-badge { margin-left:5px; font-size:8px; }
}
@media(max-width:760px) and (max-height:640px) { .price-rail .eyebrow { display:none; }.price-rail>h2 { font-size:36px; margin:0 0 12px; }.price-nav button { font-size:10px; padding-bottom:8px; } }

/* Chapter 03: the published work photographs in Forma's monochrome layout. */
.scene-three .gallery-content { display:grid; grid-template-columns:minmax(0,42%) minmax(0,1fr); grid-template-rows:minmax(0,1fr) 86px; column-gap:5.5%; row-gap:17px; padding-top:clamp(119px,15vh,158px); padding-bottom:90px; }
.gallery-copy { min-width:0; display:flex; flex-direction:column; }
.gallery-copy h2 { font-size:clamp(58px,5.8vw,94px); line-height:1.02; margin:26px 0 22px; white-space:nowrap; }
.chromatic-text { background:linear-gradient(105deg,#42b5ca 2%,#657fdd 28%,#a475ce 56%,#da8aaf 78%,#e6ae85 100%); -webkit-background-clip:text; background-clip:text; color:transparent; }
.gallery-contact { margin-top:auto; padding-top:24px; border-top:1px solid color-mix(in srgb,var(--ink) 20%,transparent); width:100%; }
.gallery-contact p { margin:0 0 12px; font-size:9px; letter-spacing:.13em; color:var(--soft); }
.gallery-contact-people { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.gallery-contact-people>div { min-width:0; display:flex; flex-direction:column; align-items:flex-start; gap:5px; }
.gallery-contact-people>div>span { color:var(--soft); font-size:9px; letter-spacing:.1em; }
.gallery-contact a { color:var(--ink); text-decoration:none; font-size:clamp(11px,1.1vw,15px); font-weight:450; letter-spacing:-.025em; border-bottom:1px solid transparent; transition:border-color .2s; white-space:nowrap; }
.gallery-contact a[href^="tel"] { color:var(--soft); font-size:12px; }
.gallery-contact a:hover { border-color:currentColor; }
.gallery-contact a span { display:inline-block; margin-left:8px; color:#8c7bd1; font-size:.8em; }
.gallery { min-width:0; min-height:0; display:flex; flex-direction:column; }
.gallery-heading { display:flex; justify-content:space-between; padding:0 0 13px; gap:16px; color:var(--soft); font-size:9px; letter-spacing:.14em; white-space:nowrap; }
.gallery-heading span:last-child { font-variant-numeric:tabular-nums; }
#gallery-current { color:#8b7fd1; }
.gallery-feature { min-height:0; flex:1; display:block; position:relative; padding:13px; width:100%; border:1px solid color-mix(in srgb,var(--ink) 20%,transparent); background:#151515; overflow:hidden; }
.gallery-feature::before { content:''; position:absolute; z-index:1; inset:0 auto auto 0; height:2px; width:100%; background:linear-gradient(90deg,#39bfd5,#6878e4,#b36fd1,#e896ad,#e4ad81); }
.gallery-feature img { display:block; width:100%; height:100%; object-fit:contain; transition:transform .45s cubic-bezier(.22,1,.36,1); }
.gallery-feature:hover img { transform:scale(1.025); }
.gallery-feature-action { position:absolute; z-index:2; bottom:18px; right:18px; padding:10px 12px; display:flex; gap:18px; align-items:center; background:#f6f6f2; color:#191a19; font-size:9px; letter-spacing:.1em; }
.gallery-feature-action span { font-size:16px; line-height:1; }
.gallery-meta { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:48px; border-bottom:1px solid color-mix(in srgb,var(--ink) 22%,transparent); }
#gallery-caption { font-size:11px; line-height:1.4; color:var(--soft); overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.gallery-controls { display:flex; gap:6px; flex-shrink:0; }
.gallery-arrow { display:grid; place-items:center; width:32px; height:32px; border:1px solid color-mix(in srgb,var(--ink) 30%,transparent); border-radius:50%; background:none; color:var(--ink); font-size:17px; line-height:1; transition:background .2s,color .2s; }
.gallery-arrow:hover { background:var(--ink); color:var(--paper); }
.gallery-strip { grid-column:1 / -1; display:flex; gap:9px; min-width:0; overflow-x:auto; overflow-y:hidden; scrollbar-width:thin; scrollbar-color:color-mix(in srgb,var(--ink) 30%,transparent) transparent; padding:2px 2px 6px; }
.gallery-thumb { position:relative; display:block; flex:0 0 112px; height:77px; padding:2px; border:2px solid transparent; background:linear-gradient(var(--paper),var(--paper)) padding-box,linear-gradient(120deg,#40bed3,#737ddf,#b36fd1,#e798b0,#e9b384) border-box; opacity:.56; transition:opacity .25s,transform .25s; overflow:hidden; }
.gallery-thumb:hover,.gallery-thumb[aria-current="true"] { opacity:1; }
.gallery-thumb[aria-current="true"] { transform:translateY(-2px); }
.gallery-thumb img { width:100%; height:100%; display:block; object-fit:cover; filter:grayscale(1); transition:filter .25s; }
.gallery-thumb:hover img,.gallery-thumb[aria-current="true"] img { filter:grayscale(0); }
.gallery-thumb span { position:absolute; top:5px; left:6px; padding:3px 5px; background:#171817d9; color:#fff; font-size:9px; line-height:1; font-variant-numeric:tabular-nums; }
#gallery-lightbox { position:fixed; inset:0; margin:auto; width:min(95vw,1320px); height:min(94vh,950px); max-width:none; max-height:none; padding:24px; border:1px solid #767676; background:#111; color:#f6f6f2; box-shadow:0 30px 100px #0009; }
#gallery-lightbox::backdrop { background:#050505e8; }
#gallery-lightbox[open] { display:flex; flex-direction:column; }
.lightbox-top,.lightbox-bottom { display:flex; justify-content:space-between; align-items:center; gap:20px; font-size:11px; letter-spacing:.08em; }
.lightbox-top { padding-bottom:14px; }.lightbox-bottom { padding-top:14px; }
.lightbox-top button,.lightbox-bottom button { border:1px solid #777; background:none; color:inherit; padding:9px 12px; font-size:11px; letter-spacing:.06em; }
.lightbox-top button:hover,.lightbox-bottom button:hover { border-color:#d79bbd; }
.lightbox-bottom>div { display:flex; gap:8px; }
.lightbox-bottom button { min-width:38px; font-size:18px; line-height:1; }
#lightbox-image { display:block; flex:1; min-height:0; width:100%; object-fit:contain; }
@media(max-width:1100px) { .scene-three .gallery-content { grid-template-columns:minmax(0,39%) minmax(0,1fr); column-gap:4%; }.gallery-copy h2 { font-size:clamp(50px,6vw,72px); } }
@media(max-width:760px) {
  .scene-three .gallery-content { grid-template-columns:1fr; grid-template-rows:auto minmax(0,1fr) 61px; row-gap:9px; padding:126px 7% 79px; }
  .gallery-copy h2 { font-size:clamp(37px,9.1vw,63px); margin:8px 0 8px; line-height:.96; }
  .gallery-copy .intro { font-size:11px; line-height:1.4; }
  .gallery-contact { margin-top:9px; padding-top:8px; }
  .gallery-contact p { display:none; }
  .gallery-contact-people { gap:7px; }
  .gallery-contact-people>div { gap:2px; }
  .gallery-contact-people>div>span { font-size:7px; }
  .gallery-contact a,.gallery-contact a[href^="tel"] { font-size:11px; line-height:1.15; }
  .gallery-heading { padding-bottom:5px; font-size:8px; }
  .gallery-feature { padding:7px; }
  .gallery-feature-action { bottom:10px; right:10px; padding:6px 8px; font-size:8px; gap:7px; }
  .gallery-feature-action span { font-size:12px; }
  .gallery-meta { min-height:31px; }
  #gallery-caption { font-size:9px; }
  .gallery-arrow { width:26px; height:26px; font-size:14px; }
  .gallery-strip { gap:6px; }
  .gallery-thumb { flex-basis:80px; height:56px; }
  #gallery-lightbox { width:100vw; height:100dvh; padding:15px; border:0; }
  .lightbox-top,.lightbox-bottom { font-size:9px; }
}
@media(max-width:760px) and (max-height:650px) { .scene-three .gallery-content { padding-top:117px; padding-bottom:70px; }.gallery-copy h2 { font-size:clamp(34px,8vw,47px); }.gallery-copy .intro { display:none; }.gallery-contact { margin-top:6px; }.gallery-thumb { height:51px; }.scene-three .gallery-content { grid-template-rows:auto minmax(0,1fr) 55px; } }
@media(prefers-reduced-motion:reduce) { .gallery-feature img,.gallery-thumb { transition:none; }.gallery-thumb[aria-current="true"] { transform:none; } }

/* The photo gallery follows the original expanding-card interaction. */
.scene-three .gallery-content { display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:auto minmax(0,1fr); row-gap:14px; padding:clamp(108px,14vh,144px) 7.3% 84px; }
.gallery-copy { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,34%); grid-template-rows:auto auto; column-gap:5%; row-gap:6px; align-items:start; }
.gallery-copy .eyebrow { grid-column:1 / -1; }
.gallery-copy h2 { grid-column:1; grid-row:2; margin:5px 0 0; font-size:clamp(50px,4.8vw,73px); line-height:.95; white-space:normal; }
.gallery-copy .intro { grid-column:2; grid-row:2; align-self:end; padding-top:9px; }
.gallery-contact { grid-column:2; grid-row:3; align-self:end; margin-top:5px; padding-top:9px; }
.gallery-contact p { margin-bottom:7px; }
.gallery-contact-people { gap:10px; }
.gallery-contact-people>div { gap:3px; }
.gallery-contact a { font-size:clamp(10px,1vw,13px); }
.gallery-contact a[href^="tel"] { font-size:11px; }
.gallery { min-height:0; min-width:0; display:flex; flex-direction:column; }
.gallery-strip { display:flex; flex:1; min-height:0; min-width:0; gap:12px; padding:0 0 10px; grid-column:auto; overflow:hidden; scrollbar-width:none; }
.gallery-strip::-webkit-scrollbar { display:none; }
.gallery-strip { position:relative; }
@media(min-width:761px) { .gallery-strip[data-reordering] .gallery-thumb { transition:border-color .25s; } }
.gallery-thumb { position:relative; order:var(--gallery-order,0); flex:0 0 calc(8.4% - 12px); height:100%; min-height:0; padding:0; border:1px solid color-mix(in srgb,var(--ink) 22%,transparent); border-radius:17px; background:#171817; opacity:1; transform:none; overflow:hidden; transition:flex-basis .55s cubic-bezier(.22,1,.36,1),border-color .25s; }
@media(min-width:761px) { .gallery-thumb[data-window-hidden="true"] { display:none; } }
.gallery-thumb:hover { opacity:1; }
.gallery-thumb[aria-current="true"] { flex-basis:58%; transform:none; border:1px solid transparent; background:linear-gradient(#171817,#171817) padding-box,linear-gradient(115deg,#37bed2,#6c80e4,#ad75d0,#e69ab4,#e6b388) border-box; }
.gallery-thumb img { display:block; width:100%; height:100%; object-fit:cover; filter:none; }
.gallery-thumb:hover img { filter:none; }
.gallery-thumb[aria-current="true"] img { object-fit:contain; filter:none; }
.gallery-thumb::before { content:''; position:absolute; z-index:1; inset:0; background:linear-gradient(180deg,#0009,transparent 18%),linear-gradient(0deg,#000b,transparent 26%); pointer-events:none; }
.gallery-thumb[aria-current="true"]::before { background:linear-gradient(0deg,#000b,transparent 18%); }
.gallery-thumb::after { content:'MUNKAFOTÓ'; position:absolute; z-index:2; left:3px; right:3px; bottom:18px; top:auto; text-align:center; color:#fff; font-size:clamp(7px,.65vw,9px); letter-spacing:.02em; white-space:nowrap; pointer-events:none; }
.gallery-thumb[aria-current="true"]::after { display:none; }
.gallery-thumb>span:not(.gallery-card-caption) { position:absolute; z-index:2; top:18px; left:18px; padding:0; background:none; color:#f6f6f2; font-size:10px; font-variant-numeric:tabular-nums; }
.gallery-card-caption { position:absolute; z-index:2; bottom:0; left:0; right:0; display:flex; justify-content:space-between; align-items:center; gap:12px; padding:18px 21px; color:#f6f6f2; font-size:10px; letter-spacing:.1em; white-space:nowrap; opacity:0; transition:opacity .25s; pointer-events:none; }
.gallery-thumb .gallery-card-caption { top:auto; left:0; right:0; bottom:0; padding:18px 21px; }
.gallery-thumb .gallery-card-caption>span { position:static; padding:0; background:none; color:inherit; font-size:inherit; line-height:normal; }
.gallery-thumb[aria-current="true"] .gallery-card-caption { opacity:1; }
.gallery-card-caption>span:last-child { display:flex; align-items:center; gap:10px; font-family:'DM Sans',Arial,sans-serif; letter-spacing:0; text-transform:none; font-size:12px; }
.gallery-card-caption b { display:grid; place-items:center; width:32px; height:32px; border:1px solid #ffffff55; border-radius:50%; font-size:18px; font-weight:400; }
.gallery-toolbar { position:relative; min-height:58px; display:flex; justify-content:space-between; align-items:center; gap:20px; border-bottom:1px solid color-mix(in srgb,var(--ink) 22%,transparent); color:var(--soft); font-size:11px; }
.gallery-toolbar::after { content:''; position:absolute; left:0; bottom:-1px; width:105px; height:1px; background:linear-gradient(90deg,#37bed2,#6c80e4,#ad75d0,#e69ab4,#e6b388); }
.gallery-mobile-hint { display:none; }
.gallery-toolbar-controls { display:flex; align-items:center; gap:10px; flex-shrink:0; }
.gallery-count { margin-right:16px; font-size:11px; letter-spacing:.12em; font-variant-numeric:tabular-nums; white-space:nowrap; }
#gallery-current { color:#a782d3; }
.gallery-arrow { width:42px; height:42px; border:1px solid color-mix(in srgb,var(--ink) 30%,transparent); font-size:20px; }
#gallery-lightbox { width:min(96vw,1280px); height:min(95dvh,900px); padding:20px; border:1px solid #353938; background:#0c0e0d; }
#gallery-lightbox::backdrop { background:#050505ed; }
#gallery-lightbox[open] { display:flex; flex-direction:column; }
.lightbox-top { position:absolute; z-index:2; top:16px; right:16px; padding:0; }
.lightbox-top button { border:1px solid #ffffff40; border-radius:24px; background:#0c0e0ddd; color:#f6f6f2; padding:10px 14px; font-size:12px; }
#lightbox-image { display:block; flex:1; min-height:0; width:100%; object-fit:contain; padding-top:32px; }
.lightbox-bottom { justify-content:center; gap:28px; padding-top:12px; color:#f6f6f2; }
.lightbox-bottom button { width:44px; height:44px; padding:0; border:1px solid #ffffff40; border-radius:50%; background:none; font-size:22px; }
#lightbox-count { min-width:55px; text-align:center; font-variant-numeric:tabular-nums; }
@media(max-width:760px) {
  .scene-three .gallery-content { grid-template-columns:1fr; grid-template-rows:auto minmax(0,1fr); row-gap:10px; padding:122px 5.5% 70px; }
  .gallery-copy { display:block; }
  .gallery-copy h2 { font-size:clamp(39px,9.2vw,58px); line-height:.97; margin:7px 0 10px; }
  .gallery-copy .intro { display:block; padding:0; font-size:11px; line-height:1.4; }
  .gallery-contact { margin-top:8px; padding-top:7px; }
  .gallery-contact p { display:none; }
  .gallery-contact a,.gallery-contact a[href^="tel"] { font-size:10px; }
  .gallery-strip { gap:12px; padding-bottom:5px; overflow-x:auto; scroll-snap-type:x mandatory; }
  .gallery-thumb,.gallery-thumb[aria-current="true"] { order:0; flex:0 0 88%; height:100%; border-radius:14px; scroll-snap-align:start; }
  .gallery-thumb img,.gallery-thumb:hover img,.gallery-thumb[aria-current="true"] img { object-fit:contain; filter:none; }
  .gallery-thumb::after { display:none; }
  .gallery-card-caption,.gallery-thumb[aria-current="true"] .gallery-card-caption,.gallery-thumb .gallery-card-caption { opacity:1; padding:12px 14px; font-size:9px; }
  .gallery-card-caption>span:last-child { font-size:0; }
  .gallery-card-caption b { width:30px; height:30px; font-size:17px; }
  .gallery-thumb>span:not(.gallery-card-caption) { top:13px; left:13px; }
  .gallery-toolbar { min-height:54px; align-items:center; font-size:9px; }
  .gallery-desktop-hint { display:none; }
  .gallery-mobile-hint { display:inline; }
  .gallery-count { margin-right:2px; font-size:9px; }
  .gallery-toolbar-controls { gap:5px; }
  .gallery-arrow { width:29px; height:29px; font-size:16px; }
  #gallery-lightbox { width:100vw; height:100dvh; padding:12px; border:0; }
}
@media(max-width:760px) and (max-height:700px) { .scene-three .gallery-content { padding-top:113px; padding-bottom:60px; row-gap:7px; }.gallery-copy h2 { font-size:clamp(34px,8vw,48px); margin:5px 0; }.gallery-copy .intro { display:none; }.gallery-contact { margin-top:6px; }.gallery-toolbar { min-height:42px; } }
/* Photo 04 fills its gallery frame by cropping the background above and below. */
.gallery-thumb[data-gallery-index="3"] img { object-fit:cover; object-position:50% 42%; }
@media(prefers-reduced-motion:reduce) { .gallery-thumb,.gallery-thumb img,.gallery-card-caption { transition:none; } }

/* The new second chapter carries the lab story and the team in one scrollable scene. */
.about-window { position:absolute; inset:0 0 var(--price-bottom,90px); overflow:hidden; }
.scene-about .about-content { height:auto; min-height:100%; padding:clamp(120px,15vh,162px) 7.3% 148px; }
.about-kicker,.about-team-heading { display:flex; justify-content:space-between; align-items:center; gap:24px; }
.about-kicker>span,.about-team-heading>span { font-size:10px; letter-spacing:.13em; color:var(--soft); text-align:right; }
.about-lead { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr); align-items:end; gap:6%; padding:68px 0 76px; }
.about-lead h2 { margin:0; font-size:clamp(56px,6.8vw,112px); line-height:.98; letter-spacing:-.065em; font-weight:480; }
.about-lead .serif-word,.about-team h3 .serif-word { color:var(--accent); }
.about-lead>p { margin:0 0 7px; max-width:530px; font-size:clamp(17px,1.4vw,21px); line-height:1.55; }
.about-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid color-mix(in srgb,var(--ink) 24%,transparent); border-bottom:1px solid color-mix(in srgb,var(--ink) 24%,transparent); }
.about-stats>div { display:flex; flex-direction:column; justify-content:space-between; gap:22px; min-height:190px; padding:28px 28px 27px 0; }
.about-stats>div+div { padding-left:30px; border-left:1px solid color-mix(in srgb,var(--ink) 20%,transparent); }
.about-stats strong { font-size:clamp(46px,5.2vw,82px); font-weight:440; letter-spacing:-.065em; line-height:1; white-space:nowrap; }
.about-stats strong small { font-size:.48em; font-weight:400; letter-spacing:-.04em; }
.about-stats span,.about-values section>span { color:var(--soft); font-size:10px; letter-spacing:.14em; }
.about-values { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px; padding:62px 0 0; }
.about-values section { min-width:0; }
.about-values h3 { min-height:3.2em; margin:26px 0 18px; font-size:clamp(20px,1.7vw,27px); font-weight:500; line-height:1.27; letter-spacing:-.035em; }
.about-values p { margin:0; color:var(--soft); font-size:16px; line-height:1.75; }
.about-team { margin-top:clamp(110px,12vw,180px); padding-top:35px; border-top:1px solid color-mix(in srgb,var(--ink) 24%,transparent); }
.about-team h3 { margin:34px 0 48px; font-size:clamp(62px,7vw,114px); line-height:.95; letter-spacing:-.06em; font-weight:480; }
.team-layout { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(285px,.8fr); gap:5%; align-items:stretch; }
.team-portraits { min-width:0; height:clamp(410px,35vw,520px); display:grid; grid-template-columns:minmax(0,3fr) minmax(100px,.75fr); gap:12px; transition:grid-template-columns .55s cubic-bezier(.22,1,.36,1); }
.team-portraits[data-selected="aida"] { grid-template-columns:minmax(100px,.75fr) minmax(0,3fr); }
.team-portraits button { position:relative; display:block; min-width:0; height:100%; overflow:hidden; border:1px solid color-mix(in srgb,var(--ink) 22%,transparent); border-radius:17px; padding:0; background:#171817; color:#f6f6f2; cursor:pointer; text-align:left; transition:border-color .25s; }
.team-portraits button[aria-selected="true"] { border:1px solid transparent; background:linear-gradient(#171817,#171817) padding-box,linear-gradient(115deg,#37bed2,#6c80e4,#ad75d0,#e69ab4,#e6b388) border-box; }
.team-portraits button::before { content:''; position:absolute; z-index:1; inset:0; background:linear-gradient(180deg,#0009,transparent 18%),linear-gradient(0deg,#000b,transparent 26%); pointer-events:none; }
.team-portraits button[aria-selected="true"]::before { background:linear-gradient(0deg,#000b,transparent 18%); }
.team-portraits img { width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.team-portraits button[aria-selected="true"] img { object-fit:contain; }
.team-portraits button:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
.team-number,.team-name { position:absolute; z-index:2; display:block; color:#f6f6f2; line-height:1; }
.team-number { top:18px; left:18px; font-size:10px; font-variant-numeric:tabular-nums; }
.team-name { bottom:19px; left:20px; font-size:10px; letter-spacing:.1em; text-transform:uppercase; white-space:nowrap; }
.team-portraits button[aria-selected="false"] .team-name { writing-mode:vertical-rl; transform:rotate(180deg); left:18px; bottom:18px; }
.team-panels { align-self:center; min-width:0; }
.team-panel>p { margin:0 0 23px; color:var(--soft); font-size:11px; letter-spacing:.13em; }
.team-panel h4 { margin:0 0 34px; font-size:clamp(36px,4vw,66px); line-height:1; letter-spacing:-.055em; font-weight:500; }
.team-panel>a { display:flex; justify-content:space-between; gap:15px; border-bottom:1px solid color-mix(in srgb,var(--ink) 22%,transparent); padding:15px 0; color:var(--ink); font-size:16px; text-decoration:none; }
.team-panel>a:hover { color:var(--accent); }
.team-panel>a span { font-size:18px; }
.team-panel details { border-bottom:1px solid color-mix(in srgb,var(--ink) 22%,transparent); }
.team-panel summary { display:flex; justify-content:space-between; gap:12px; list-style:none; cursor:pointer; padding:18px 0; font-size:16px; }
.team-panel summary::-webkit-details-marker { display:none; }
.team-panel summary::after { content:'+'; font-size:18px; }
.team-panel details[open] summary::after { content:'−'; }
.team-panel details p { margin:0 0 20px; color:var(--soft); font-size:16px; line-height:1.65; }
.team-panel[hidden] { display:none; }
@media(max-width:1150px) { .scene-about .about-content { padding-left:6%; padding-right:6%; }.about-lead { grid-template-columns:minmax(0,1.1fr) minmax(240px,.9fr); }.team-layout { grid-template-columns:minmax(0,1.25fr) minmax(250px,.75fr); gap:4%; }.team-portraits { height:440px; } }
@media(max-width:760px) {
  .scene-about .about-content { padding:130px 7% 115px; }
  .about-kicker>span,.about-team-heading>span { display:none; }
  .about-lead { display:block; padding:42px 0 50px; }
  .about-lead h2 { font-size:clamp(47px,10vw,76px); }
  .about-lead>p { margin-top:26px; font-size:17px; }
  .about-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .about-stats>div { min-height:125px; padding:20px 12px 16px 0; gap:17px; }
  .about-stats>div+div { padding-left:15px; }
  .about-stats>div:nth-child(3) { grid-column:1 / -1; border-top:1px solid color-mix(in srgb,var(--ink) 20%,transparent); border-left:0; padding-left:0; min-height:115px; }
  .about-stats strong { font-size:clamp(40px,10vw,62px); }
  .about-stats span { font-size:9px; }
  .about-values { display:block; padding-top:42px; }
  .about-values section { padding:0 0 32px; margin-bottom:32px; border-bottom:1px solid color-mix(in srgb,var(--ink) 20%,transparent); }
  .about-values section:last-child { margin-bottom:0; }
  .about-values h3 { min-height:0; margin:15px 0; font-size:23px; }
  .about-values p { font-size:16px; }
  .about-team { margin-top:55px; padding-top:22px; }
  .about-team h3 { margin:25px 0 30px; font-size:clamp(53px,11vw,79px); }
  .team-layout { display:block; }
  .team-portraits { height:clamp(235px,70vw,340px); gap:8px; }
  .team-portraits button { border-radius:14px; }
  .team-panels { padding-top:28px; }
  .team-panel h4 { font-size:44px; margin-bottom:20px; }
}
@media(max-width:380px) { .about-stats strong { font-size:36px; }.team-portraits { grid-template-columns:minmax(0,2fr) minmax(72px,.7fr); }.team-portraits[data-selected="aida"] { grid-template-columns:minmax(72px,.7fr) minmax(0,2fr); } }

/* Readable supporting type at desktop and mobile sizes. */
#theme-control button { font-size:12px; }
.chapter-nav button,.chapter-nav a { font-size:16px; }
.chapter-nav button span,.chapter-nav a span { font-size:12px; }
.chapter-nav .chapter-nav-name { font-size:inherit; opacity:.8; }
.eyebrow,.edition,.axis-label,.object-caption,.hero-baseline,.small-note,
.final-art-label,.final-footer,.scroll-cue,.prototype-note,.journey-meter,
.price-nav-label,.price-nav-number,.price-category-number,.extra-badge,
.gallery-contact p,.gallery-contact-people>div>span,.gallery-heading,
.gallery-toolbar,.gallery-count,#gallery-caption,.lightbox-top,.lightbox-bottom,
.about-kicker>span,.about-team-heading>span,.about-stats span,
.about-values section>span,.team-number,.team-name,.team-panel>p { font-size:13px; }
.intro,.gallery-copy .intro,.principle p { font-size:18px; line-height:1.6; }
.text-link,.round-cta,.price-nav button,.gallery-contact a,
.gallery-contact a[href^="tel"] { font-size:16px; }
.price-nav button { opacity:.8; }
.price-group th,.price-group td { font-size:18px; }
.gallery-feature-action,.lightbox-top button,.gallery-card-caption,
.gallery-thumb .gallery-card-caption { font-size:13px; letter-spacing:.04em; }
.gallery-card-caption>span:last-child { font-size:14px; }
.gallery-thumb>span:not(.gallery-card-caption) { font-size:13px; }
.gallery-thumb::after { font-size:12px; writing-mode:vertical-rl; left:50%; right:auto; transform:translateX(-50%); }
.site-header .edition { display:none; }
@media(min-width:761px) and (max-width:1250px) {
  .site-header { gap:16px; padding-inline:3%; }
  .site-header .header-left { gap:14px; }
  .site-header .wordmark { font-size:34px; }
  .site-header .chapter-nav { gap:14px; }
  .chapter-nav button,.chapter-nav a { font-size:14px; }
  .worksheet-link { padding:10px 12px; }
}
@media(max-width:1000px) and (min-width:761px) {
  .site-header { height:116px; flex-wrap:wrap; align-content:center; row-gap:8px; }
  .site-header .header-left { width:100%; justify-content:space-between; }
  .site-header .chapter-nav { width:100%; justify-content:space-between; }
  .scene-content { padding-top:150px; }
  .scene-three .gallery-content { padding-top:150px; }
  .price-rail,.price-window,.about-window { --price-top:150px; --about-top:150px; }
}
@media(max-width:760px) {
  .chapter-nav button,.chapter-nav a,.worksheet-link { font-size:13px; }
  .chapter-nav button span,.chapter-nav a span { font-size:11px; margin-right:3px; }
  .site-header .chapter-nav { gap:6px; }
  .worksheet-link { padding:6px 8px; }
  #theme-control button { font-size:12px; }
  .intro,.gallery-copy .intro,.principle p { font-size:16px; }
  .price-group th,.price-group td { font-size:16px; }
  .price-nav button { font-size:14px; }
  .gallery-contact a,.gallery-contact a[href^="tel"] { font-size:14px; line-height:1.4; white-space:normal; overflow-wrap:anywhere; }
  .gallery-card-caption>span:last-child { font-size:0; }
  .gallery-thumb::after { display:none; }
  .gallery-contact-people>div>span { font-size:12px; }
  .gallery-toolbar { gap:8px; }
  .gallery-mobile-hint { max-width:48%; line-height:1.4; }
}
@media(max-width:420px) {
  .site-header { padding-inline:4%; }
  .chapter-nav button,.chapter-nav a,.worksheet-link { font-size:13px; }
  .chapter-nav button span,.chapter-nav a span { font-size:11px; }
  .site-header .chapter-nav { gap:4px; }
  .worksheet-link { padding-inline:6px; }
}
@media(prefers-reduced-motion:reduce) { .team-portraits,.team-portraits img { transition:none; } }

/* One gallery heading; highlighted words share the worksheet foil light. */
.scene-three .gallery-copy { display:block; }
.scene-three .gallery-copy h2 { margin:0; font-size:clamp(30px,3.4vw,52px); line-height:1.35; letter-spacing:-.04em; }
.scene-three .gallery-copy .holographic-title { display:inline-block; padding:.08em .04em .08em; font-family:'Instrument Serif',Georgia,serif; font-style:italic; font-weight:400; font-size:1.45em; line-height:1.05; letter-spacing:-.04em; }
@media(max-width:760px) {
  .scene-three .gallery-copy h2 { font-size:clamp(25px,5.6vw,40px); line-height:1.3; }
}

.scene-three .gallery-copy h2 { text-align:center; }
.scene-three .gallery-content { row-gap:32px; }
@media(max-width:760px) { .scene-three .gallery-content { row-gap:24px; } }

.scene-three .gallery-copy h2 { line-height:1; }
.gallery-title-top { display:block; }
.gallery-title-bottom { display:block; margin-top:2px; line-height:1.1; }
.scene-three .gallery-content { row-gap:40px; }
@media(max-width:760px) { .scene-three .gallery-content { row-gap:30px; } }

.gallery-toolbar { border-bottom:0; }
.gallery-toolbar::after { display:none; }
.gallery-progress { position:absolute; left:0; right:0; bottom:0; height:1px; background:color-mix(in srgb,var(--ink) 22%,transparent); }
.gallery-progress-indicator { display:block; width:calc(100% / var(--gallery-photo-count,12)); height:100%; background:linear-gradient(90deg,#37bed2,#6c80e4,#ad75d0,#e69ab4,#e6b388); transform:translateX(calc(var(--gallery-photo-index,0) * 100%)); transition:transform .55s cubic-bezier(.22,1,.36,1); }
@media(max-width:760px) { .gallery-mobile-hint { max-width:none; } }
@media(prefers-reduced-motion:reduce) { .gallery-progress-indicator { transition:none; } }

/* Shared heading size for all four chapters, including their foil words. */
#title-one,#title-about,#title-two,#title-three,#team-title { font-size:clamp(36px,4.8vw,88px); }
#title-three .holographic-title { font-size:inherit; }
@media(max-width:760px) {
  #title-one,#title-about,#title-two,#title-three,#team-title { font-size:clamp(30px,7.1vw,54px); }
}
