@font-face{font-family:Sinistre;src:url('assets/fonts/SinistreVF.woff2') format('woff2');font-weight:400 900;font-display:swap}
:root{color-scheme:dark;--navy:#071a35;--deep:#031223;--green:#075446;--cta:#0b7261;--pearl:#f5f1e7;--mint:#a8ded0;--muted:#b5c6d1;--line:#d2e6df44;--serif:Sinistre,'Iowan Old Style',Georgia,serif;--sans:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--mono:'SFMono-Regular',Consolas,monospace;--gutter:clamp(24px,7vw,112px)}
*{box-sizing:border-box}html{background:#000;scroll-behavior:smooth}body{margin:0;color:var(--pearl);background:#000;font-family:var(--sans);font-size:17px;line-height:1.65;overflow:hidden;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{color:inherit;font:inherit;cursor:pointer}button:disabled{cursor:default}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:2px solid var(--mint);outline-offset:6px}button{border:0}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.04;letter-spacing:-.04em}button svg{pointer-events:none}::selection{color:var(--pearl);background:#0b7261}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.atmosphere{position:fixed;inset:-5%;background:linear-gradient(0deg,#02102433,#071a3500),url('assets/images/nebula-smooth.png') center/cover;z-index:0;pointer-events:none;animation:atmosphere-drift 30s ease-in-out infinite alternate;will-change:transform}.atmosphere:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 65%,#00102a00 10%,#0012273b 90%),linear-gradient(0deg,#02112799 0,transparent 22%)}@keyframes atmosphere-drift{from{transform:scale(1.015) translate(-.6%,0)}to{transform:scale(1.07) translate(.6%,.5%)}}
#scene{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}.dolphin-fallback{position:fixed;top:7vh;left:50%;transform:translateX(-50%);height:49vh;max-width:88vw;object-fit:contain;z-index:1;pointer-events:none}.webgl-ready .dolphin-fallback{display:none}
.site-header{position:fixed;top:max(26px,env(safe-area-inset-top));left:var(--gutter);right:var(--gutter);z-index:10;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:14px;white-space:nowrap}.brand img{width:34px;height:54px;object-fit:contain}.brand span{font-family:var(--serif);font-size:clamp(30px,3vw,46px);line-height:1;letter-spacing:-.055em}.header-right{display:flex;align-items:center;gap:30px}.maker-name{font-family:var(--mono);font-size:13px;letter-spacing:.06em}.icon-button{display:grid;place-items:center;width:44px;height:44px;background:transparent;border-radius:50%;transition:background .25s,color .25s}.icon-button svg{width:27px;height:27px}.icon-button:hover{background:#a8ded014;color:var(--mint)}
#main{outline:0}.chapter{position:fixed;inset:0;z-index:2;opacity:0;visibility:hidden;pointer-events:none;transform-origin:50% 48%;backface-visibility:hidden;will-change:transform,opacity;touch-action:pan-y}.chapter.active{opacity:1;visibility:visible;pointer-events:auto;transform:translate3d(0,0,0) rotateY(0)}.home-copy{position:absolute;left:20px;right:20px;bottom:clamp(127px,14.4vh,152px);text-align:center}.eyebrow{font-family:var(--mono);font-size:12px;line-height:1.5;text-transform:uppercase;letter-spacing:.27em}.home .eyebrow{margin-bottom:18px}.eyebrow span{margin:0 10px}h1{font-size:clamp(52px,8.6vh,96px);line-height:.95;letter-spacing:-.049em}.hero-description{font-family:Georgia,serif;font-size:clamp(16px,2.15vh,23px);line-height:1.5;margin:15px auto 21px;max-width:580px}
.button{min-height:52px;display:inline-flex;align-items:center;justify-content:center;gap:22px;padding:10px 31px;border:1px solid #caeee0cc;border-radius:100px;font-family:Georgia,serif;font-size:20px;line-height:1.4;transition:background .25s,border-color .25s,box-shadow .25s,transform .25s}.button span{font-family:var(--sans);font-size:23px;font-weight:300}.primary{background:linear-gradient(135deg,#0a7668,#07564d)}.primary:hover{background:#0b8472;box-shadow:0 0 32px #2affc319;transform:translateY(-2px)}.secondary{background:#03142666}.secondary:hover{background:#a8ded010;border-color:var(--mint);transform:translateY(-2px)}
.orbit-dock{position:fixed;z-index:12;bottom:calc(43px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:17px}.orbit-nav{position:relative;display:grid;grid-template-columns:repeat(4,1fr);width:clamp(560px,47vw,720px);padding:7px;border:1px solid #b5dae74d;border-radius:100px;background:#02142ca6;box-shadow:0 8px 40px #00000012;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.orbit-nav a{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:13px;min-height:44px;padding:0 12px;font-family:var(--mono);font-size:13px;letter-spacing:.02em;white-space:nowrap;opacity:.8;transition:color .25s,opacity .25s}.orbit-nav a:hover,.orbit-nav a[aria-current]{opacity:1}.orbit-nav small{font-size:11px;opacity:.6}.nav-indicator{position:absolute;top:7px;bottom:7px;left:7px;width:calc((100% - 14px)/4);border:1px solid #f5f1e7bd;border-radius:100px;background:#a8ded006;transition:transform .8s cubic-bezier(.22,.8,.25,1)}.orbit-arrow{display:grid;place-items:center;min-width:52px;min-height:52px;border:1px solid #bed7dd66;border-radius:50%;background:#03172b55;transition:background .25s,opacity .25s}.orbit-arrow svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.3;fill:none}.orbit-arrow:hover:not(:disabled){background:#07544699}.orbit-arrow:disabled{opacity:.3}.orbit-hint{position:fixed;z-index:11;bottom:calc(14px + env(safe-area-inset-bottom));left:10px;right:10px;text-align:center;font-family:var(--mono);font-size:11px;line-height:1.5;letter-spacing:.06em;color:#bbcfdfae;pointer-events:none}.orbit-hint .desktop-hint,.orbit-hint .mobile-hint{margin-right:14px}.mobile-hint{display:none}
.chapter-scroll{position:absolute;top:111px;bottom:129px;left:var(--gutter);right:var(--gutter);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#a8ded044 transparent;padding:0 2px 35px}.section-kicker{display:flex;justify-content:space-between;gap:16px;align-items:center;border-bottom:1px solid var(--line);padding:0 0 12px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#c5d6dc}.little-star{font-size:18px;line-height:1;color:var(--mint)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:40px;margin:38px 0 31px}.section-heading h2{font-size:clamp(36px,4.2vw,64px)}.section-heading>div{max-width:410px}.section-heading p{font-size:17px;line-height:1.65}.sample-note{margin-top:14px;font-size:12px!important;color:#b8cbd3}.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}.product-card{min-width:0}.product-image-button{position:relative;display:block;padding:0;width:100%;border:0;overflow:hidden;background:#061c2933;border-radius:50%}.product-image-button img{display:block;width:100%;height:auto;aspect-ratio:1.45;object-fit:cover;opacity:.84;transition:opacity .55s ease,transform .75s cubic-bezier(.22,.8,.25,1),filter .75s}.product-image-button:hover img,.product-card:focus-within .product-image-button img{opacity:1}.product-image-button:hover img{transform:scale(1.04);filter:brightness(1.07)}.sample-badge{position:absolute;top:auto;bottom:11%;left:50%;transform:translateX(-50%);white-space:nowrap;padding:5px 9px;border-radius:100px;background:#03172dd9;color:var(--pearl);font-family:var(--mono);font-size:10px;letter-spacing:.04em}.product-meta{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:15px}.product-meta h3{font-size:25px}.product-category{font-family:var(--mono);font-size:11px;color:var(--muted)}.product-link{margin-top:17px;padding:6px 0;display:inline-flex;gap:25px;align-items:center;color:var(--mint);font-size:14px;background:transparent;border-bottom:1px solid #a8ded055}.product-link:hover{color:var(--pearl);border-color:var(--pearl)}.shop-footnote{margin-top:35px;text-align:center;font-family:Georgia,serif;font-size:17px;color:var(--muted)}
.about-layout{display:grid;grid-template-columns:1fr 1.16fr;gap:9vw;align-items:center;max-width:1130px;margin:7vh auto 0}.about-symbol{text-align:center;min-height:340px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:38px}.about-symbol img{opacity:.95;filter:drop-shadow(0 0 28px #a8ded020);width:145px;height:213px}.about-symbol span{font-family:var(--mono);font-size:11px;letter-spacing:.25em;text-transform:uppercase}.about-copy .eyebrow{margin-bottom:24px;color:var(--mint)}.about-copy h2{font-size:clamp(40px,4.7vw,66px);margin-bottom:29px}.about-copy p:not(.eyebrow){font-size:17px;line-height:1.85;color:#d5dfdf;max-width:500px;margin-top:17px}.text-link{display:inline-flex;align-items:center;gap:30px;font-size:16px;border-bottom:1px solid #b5dace66;padding:6px 0;margin-top:26px;transition:color .2s}.text-link:hover{color:var(--mint)}
.contact-copy{text-align:left;max-width:640px;margin:8vh 0 0 5vw}.contact-copy .eyebrow{color:var(--mint);margin-bottom:28px}.contact-copy h2{font-size:clamp(60px,6.8vw,98px);line-height:1.02}.contact-copy>p:not(.eyebrow){margin-top:30px;color:#dce7e7;font-family:Georgia,serif;font-size:22px;line-height:1.6}.contact-soon{display:block;margin-top:26px;color:var(--muted);font-size:14px}.contact-copy .button{margin-top:28px}.site-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:9vh;border-top:1px solid var(--line);padding-top:20px}.quiet-link{background:transparent;padding:8px 0;font-size:11px;text-decoration:underline;text-underline-offset:4px}
dialog{width:min(850px,calc(100% - 40px));max-height:calc(100dvh - 60px);padding:0;border:1px solid #a8ded05c;border-radius:14px;background:#071b2b;color:var(--pearl);overflow:auto;box-shadow:0 30px 140px #0008}dialog::backdrop{background:#020c22bd;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.dialog-close{position:sticky;float:right;top:13px;right:13px;margin:13px 13px -57px 0;z-index:2;background:#06182cbb;font-size:30px;line-height:1;border:1px solid #f5f1e733}.dialog-product{display:grid;grid-template-columns:1fr 1fr}.dialog-product>img{width:100%;height:100%;min-height:480px;object-fit:cover}.dialog-product-copy{padding:60px 33px 36px}.dialog-product-copy h2{font-size:42px;margin:20px 0}.dialog-product-copy p{font-size:16px;color:#cadbdc;margin:16px 0}.dialog-product-copy .eyebrow{color:var(--mint);font-size:11px}.sample-explanation{padding-top:18px;border-top:1px solid var(--line);font-size:13px!important}.purchase-placeholder{display:block;width:100%;margin-top:25px;padding:13px 10px;background:#075446;border:1px solid #a8ded070;border-radius:100px;text-align:center;font-family:Georgia,serif;font-size:18px;color:var(--pearl)}.payment-note{display:block;font-family:var(--mono);font-size:10px;color:var(--muted);margin:13px 0;text-align:center}.info-content{padding:65px 55px 45px}.info-content h2{font-size:45px;margin:24px 0}.info-content p:not(.eyebrow){margin:20px 0;color:#d5dfdf}.info-content .button{margin-top:12px}.skip-link{position:fixed;top:-120px;left:25px;background:var(--green);padding:14px 24px;z-index:100}.skip-link:focus{top:20px}.noscript-note{position:absolute;top:100px;padding:20px;background:var(--navy);z-index:100}
body.reading{overflow:auto}.reading .atmosphere{animation:none;position:fixed;opacity:.65}.reading #scene{opacity:.45}.reading .site-header{background:linear-gradient(#071a35f2,#071a3500);top:0;left:0;right:0;padding:25px var(--gutter) 30px}.reading .chapter{position:relative;inset:auto;opacity:1;visibility:visible;pointer-events:auto;transform:none;transition:none;min-height:80vh;padding:120px var(--gutter) 100px}.reading .home{height:100svh;min-height:730px}.reading .chapter-scroll{position:relative;inset:auto;overflow:visible;padding:0}.reading .orbit-dock{bottom:calc(20px + env(safe-area-inset-bottom))}.reading .orbit-hint{display:none}.reading .home-copy{bottom:145px}.reading .site-footer{margin-bottom:60px}.reading .about-layout{margin-top:55px}
@media(min-width:1500px){.chapter-scroll{top:125px}.product-image-button img{aspect-ratio:1.55}}
@media(max-width:900px){:root{--gutter:36px}.header-right{gap:18px}.orbit-nav{width:560px}.orbit-dock{gap:12px}.orbit-arrow{min-width:45px;min-height:45px}.section-heading{gap:25px;margin:27px 0}.section-heading>div{max-width:310px}.product-grid{gap:18px}.product-meta{display:block}.product-category{display:block;margin-top:8px}.about-layout{gap:40px;grid-template-columns:.7fr 1.3fr}.about-symbol img{width:125px}.about-copy p:not(.eyebrow){font-size:16px}.contact-copy{margin-left:0}}
@media(max-width:650px){:root{--gutter:23px}.site-header{top:calc(18px + env(safe-area-inset-top));gap:10px}.brand{gap:8px}.brand img{width:26px;height:40px}.brand span{font-size:29px}.maker-name{display:none}.icon-button{width:44px;height:44px}.icon-button svg{width:25px;height:25px}.home-copy{bottom:calc(124px + env(safe-area-inset-bottom));left:20px;right:20px}h1{font-size:clamp(42px,11.7vw,67px);line-height:1.03;letter-spacing:-.06em}.home .eyebrow{font-size:10px;letter-spacing:.2em;margin-bottom:17px}.eyebrow span{margin:0 5px}.hero-description{font-size:16px;line-height:1.55;max-width:310px;margin:15px auto 19px}.home .button{font-size:17px;min-height:49px;padding:10px 25px;gap:20px}.orbit-dock{width:calc(100% - 30px);bottom:calc(37px + env(safe-area-inset-bottom));gap:0}.orbit-nav{width:100%;padding:5px;min-height:57px;background:#031327d9}.orbit-nav a{font-size:11px;gap:0;padding:0 3px;min-height:44px}.orbit-nav small{display:none}.nav-indicator{top:5px;bottom:5px;left:5px;width:calc((100% - 10px)/4)}.orbit-arrow{display:none}.orbit-hint{font-size:9px;bottom:calc(13px + env(safe-area-inset-bottom));letter-spacing:0}.desktop-hint{display:none}.mobile-hint{display:inline}.hint-dot{padding:0 7px}.chapter-scroll{top:97px;bottom:113px;left:var(--gutter);right:var(--gutter);padding-bottom:26px;mask-image:linear-gradient(#000 calc(100% - 15px),transparent);-webkit-mask-image:linear-gradient(#000 calc(100% - 15px),transparent)}.section-kicker{font-size:9px;gap:8px;padding-bottom:10px;letter-spacing:.045em}.section-kicker span:last-child{text-align:right}.little-star{font-size:15px}.section-heading{display:block;margin-top:26px;margin-bottom:28px}.section-heading h2{font-size:45px}.section-heading>div{max-width:none;margin-top:18px}.section-heading p{font-size:16px}.sample-note{font-size:11px!important;line-height:1.6!important;max-width:300px}.product-grid{grid-template-columns:1fr;gap:34px}.product-image-button img{aspect-ratio:1.32}.product-meta{display:flex}.product-meta h3{font-size:29px}.product-category{font-size:11px;margin:0}.product-link{min-height:44px;font-size:14px;margin-top:5px}.sample-badge{font-size:10px}.shop-footnote{font-size:16px;margin-top:26px}.about-layout{display:flex;flex-direction:column;gap:20px;margin-top:30px}.about-symbol{min-height:165px;gap:18px}.about-symbol img{width:76px;height:112px}.about-symbol span{font-size:9px}.about-copy .eyebrow{font-size:10px;margin:10px 0 15px}.about-copy h2{font-size:44px;margin-bottom:23px}.about-copy p:not(.eyebrow){font-size:16px;line-height:1.8}.contact-copy{margin-top:40px}.contact-copy .eyebrow{font-size:10px;margin-bottom:20px}.contact-copy h2{font-size:59px;line-height:1.04}.contact-copy>p:not(.eyebrow){font-size:20px;margin-top:25px}.contact-soon{font-size:13px;max-width:270px}.site-footer{display:block;margin-top:48px;font-size:10px}.quiet-link{display:block;margin-top:10px}.dialog-product{grid-template-columns:1fr}.dialog-product>img{height:230px;min-height:0}.dialog-product-copy{padding:26px 25px 24px}.dialog-product-copy h2{font-size:37px;margin:13px 0}.dialog-product-copy p{font-size:15px}.dialog-product-copy .sample-explanation{font-size:12px!important}.info-content{padding:65px 25px 28px}.info-content h2{font-size:38px}.info-content p{font-size:16px}.info-content .button{font-size:16px;width:100%}dialog{width:calc(100% - 24px);max-height:calc(100dvh - 30px);border-radius:12px}.reading .site-header{padding:calc(18px + env(safe-area-inset-top)) var(--gutter) 22px}.reading .chapter{padding:100px var(--gutter) 50px;min-height:0}.reading .chapter-scroll{mask-image:none;-webkit-mask-image:none}.reading .home{min-height:760px}.reading .home-copy{bottom:128px}.reading .orbit-dock{bottom:calc(18px + env(safe-area-inset-bottom))}.reading .about-layout{margin-top:30px}.dolphin-fallback{top:12vh;height:37vh}}
@media(max-height:740px) and (min-width:651px){.site-header{top:20px}.brand span{font-size:34px}.brand img{height:43px}.home-copy{bottom:110px}h1{font-size:64px}.home .eyebrow{margin-bottom:12px;font-size:10px}.hero-description{font-size:17px;margin:11px auto 14px}.home .button{min-height:46px;font-size:17px}.orbit-dock{bottom:32px}.orbit-hint{bottom:8px}.chapter-scroll{top:94px;bottom:105px}.section-heading{margin:20px 0}.section-heading h2{font-size:40px}.product-image-button img{aspect-ratio:1.7}.contact-copy{margin-top:25px}.contact-copy h2{font-size:68px}}
@media(max-height:720px) and (max-width:650px){.home-copy{bottom:112px}h1{font-size:42px}.home .eyebrow{margin-bottom:10px}.hero-description{font-size:14px;max-width:280px;margin:10px auto 14px}.home .button{min-height:44px;font-size:16px}.orbit-dock{bottom:32px}.orbit-hint{bottom:9px}.brand span{font-size:26px}.brand img{height:35px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition-duration:.01ms!important}.atmosphere{will-change:auto}}
@media(min-width:651px) and (max-width:760px){.orbit-nav{width:calc(100vw - 142px)}.orbit-nav a{font-size:12px;gap:7px;padding:0 5px}}

/* 3D stage: every chapter reserves the same dolphin scale. */
.atmosphere{animation:none;will-change:auto}
.orbit-moving .chapter{overflow:hidden;pointer-events:none}
.orbit-moving .chapter-scroll{overflow:hidden}
.arriving #main{animation:arrival-copy 7.4s both;transform:scale(var(--arrival-zoom,1));transform-origin:50% 50%}
@keyframes arrival-copy{0%,80%{opacity:0}100%{opacity:1}}
.arriving .site-header,.arriving .orbit-dock,.arriving .orbit-hint{animation:arrival-chrome 7.4s both}
.arriving .orbit-dock{pointer-events:none}
@keyframes arrival-chrome{0%,54%{opacity:0}80%,100%{opacity:1}}
body:not(.reading) #unikate .shop-heading{display:block;min-height:calc(var(--dolphin-stage,300px) - 35px);padding-right:52%;margin-top:35px}
body:not(.reading) #unikate .shop-heading>div{margin-top:20px;max-width:350px}
body:not(.reading) #andrea .about-symbol{justify-content:flex-end;padding-top:calc(var(--dolphin-stage,300px) + 40px);min-height:0}
body:not(.reading) #andrea .about-symbol img{width:48px;height:71px}
body:not(.reading) #andrea .about-symbol span{font-size:10px;letter-spacing:.13em}
body:not(.reading) #andrea .about-layout{margin-top:50px;align-items:start;gap:6vw}
body:not(.reading) #kontakt .contact-copy{max-width:57%;margin-left:0}
body:not(.reading) #kontakt .contact-copy h2{font-size:clamp(48px,6.4vw,88px)}
@media(min-width:651px) and (max-width:1100px) and (max-aspect-ratio:10/9){
  :root{--gutter:40px}.brand span{font-size:36px}.orbit-nav{width:570px}
  h1{font-size:clamp(65px,9vw,94px)}.home-copy{bottom:165px}
  .chapter-scroll{top:115px;bottom:132px}
  body:not(.reading) #unikate .shop-heading{padding:0;min-height:0;margin-top:var(--dolphin-stage)}
  body:not(.reading) #andrea .about-layout{display:block;margin-top:var(--dolphin-stage)}
  body:not(.reading) #andrea .about-symbol{display:none}
  .about-copy{max-width:620px;margin:0 auto}.about-copy h2{font-size:58px}
  .about-copy p:not(.eyebrow){max-width:620px;font-size:18px}
  body:not(.reading) #kontakt .contact-copy{margin-top:var(--dolphin-stage);max-width:100%}
  body:not(.reading) #kontakt .contact-copy h2{font-size:75px}
  .product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px}
  .section-heading h2{font-size:54px}
}
@media(max-width:650px){
  body:not(.reading) #unikate .shop-heading{padding:0;min-height:0;margin-top:var(--dolphin-stage)}
  body:not(.reading) #andrea .about-layout{margin-top:var(--dolphin-stage);display:block}
  body:not(.reading) #andrea .about-symbol{display:none}
  body:not(.reading) #kontakt .contact-copy{margin-top:var(--dolphin-stage);max-width:100%}
  body:not(.reading) #kontakt .contact-copy h2{font-size:59px}
  .chapter-scroll{overscroll-behavior-y:contain;touch-action:pan-y}
}
@media(pointer:coarse){.desktop-hint{display:none}.mobile-hint{display:inline}.orbit-nav a{min-height:48px}.product-link,.text-link,.quiet-link{min-height:44px}.product-image-button:hover img{transform:none}}
.reading .chapter{will-change:auto}

.info-content .model-credit{font-size:13px!important;line-height:1.65;color:var(--muted)}.model-credit a{text-decoration:underline;text-underline-offset:3px}

/* Keep scrolling content out of the fixed sculpture's reserved space. */
@media(min-width:1101px),(min-width:651px) and (min-aspect-ratio:10/9){
  body:not(.reading) #unikate .chapter-scroll{display:flex;flex-direction:column;overflow:hidden;padding-bottom:0}
  body:not(.reading) #unikate .shop-heading{flex-shrink:0;min-height:calc(var(--dolphin-stage) - 55px);margin-bottom:20px}
  body:not(.reading) .shop-products-scroll{overflow-y:auto;min-height:0;overscroll-behavior:contain;padding-bottom:28px;scrollbar-width:thin;scrollbar-color:#a8ded044 transparent}
  body:not(.reading) #andrea .about-symbol{padding-top:calc(var(--dolphin-stage) + 5px)}
  body:not(.reading) #kontakt .site-footer{max-width:56%;align-items:start;flex-direction:column}
}
@media(max-width:650px),(min-width:651px) and (max-width:1100px) and (max-aspect-ratio:10/9){
  body:not(.reading) .chapter:not(.home) .chapter-scroll{top:calc(92px + var(--dolphin-stage));padding-top:0}
  body:not(.reading) #unikate .shop-heading,body:not(.reading) #andrea .about-layout,body:not(.reading) #kontakt .contact-copy{margin-top:25px}
  body:not(.reading) #andrea .about-layout{padding-top:0}
}

#main{position:fixed;inset:0;z-index:2;overflow:clip;contain:layout paint}.reading #main{position:relative;inset:auto;overflow:visible;contain:none}

/* A small spell: glass, moving pearl light and a real-time dust halo. */
.spell-button{position:relative;isolation:isolate;min-height:55px;padding:11px 34px;gap:25px;border-color:#d7ffefc9;background:radial-gradient(ellipse at 50% 0%,#61d3ab70,transparent 66%),linear-gradient(120deg,#083d43e8,#0a695de8 48%,#07383fe8);box-shadow:inset 0 1px 1px #eaffeb70,inset 0 -10px 20px #031d3640,0 0 22px #24dba22b,0 0 65px #18a59b18;text-shadow:0 0 15px #d5ffe16b;transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s,border-color .45s}
.spell-button:before{content:'';position:absolute;inset:-2px;padding:1px;border-radius:inherit;background:linear-gradient(105deg,transparent 25%,#d7ffe6 43%,#6cdbff 49%,#e4ffd8 55%,transparent 72%);background-size:300% 100%;-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;animation:spell-edge 7s ease-in-out infinite;pointer-events:none}
.spell-button:after{content:'';position:absolute;inset:0;border-radius:inherit;background:linear-gradient(110deg,transparent 30%,#d6ffe415 45%,#fff9d126 50%,#99e6ff13 55%,transparent 68%);background-size:300% 100%;animation:spell-edge 9s ease-in-out infinite;pointer-events:none;z-index:-1}
.spell-button .spell-label{display:block;flex:0 0 auto;font:inherit;letter-spacing:.01em;white-space:nowrap}.spell-button .spell-arrow{font-family:var(--sans);font-size:23px;filter:drop-shadow(0 0 6px #b6ffdf);transform:translate3d(0,0,0);transition:transform .4s}
.spell-button:hover,.spell-button:focus-visible{transform:translateY(-3px);background:radial-gradient(ellipse at 50% 0%,#91f6be80,transparent 68%),linear-gradient(120deg,#08494d,#107d64 48%,#073e46);border-color:#eeffe4;box-shadow:inset 0 1px 2px #f6ffeaa6,inset 0 -10px 20px #031d3633,0 0 27px #44ffc558,0 0 80px #22ca8b2a,0 8px 30px #02152c80}
.spell-button:hover .spell-arrow,.spell-button:focus-visible .spell-arrow{transform:translate3d(4px,0,0)}.spell-button:active{transform:translateY(-1px) scale(.985)}
@keyframes spell-edge{0%,15%{background-position:140% 50%}75%,100%{background-position:-40% 50%}}
.reading .spell-button:before,.reading .spell-button:after{animation:none}
.spell-button{background:radial-gradient(ellipse at 50% 0%,#61d3ab30,transparent 66%),linear-gradient(120deg,#083d435c,#0a695d65 48%,#07383f60);box-shadow:inset 0 1px 1px #eaffeb70,inset 0 -9px 18px #031d363b,0 0 17px #24dba224;text-shadow:0 1px 4px #002326,0 0 15px #d5ffe16b}
.spell-button:hover,.spell-button:focus-visible{background:radial-gradient(ellipse at 50% 0%,#91f6be40,transparent 68%),linear-gradient(120deg,#08494d66,#107d6470 48%,#073e4666)}
/* Transparent lens: the WebGL compositor refracts the live scene beneath it. */
.spell-button{backdrop-filter:blur(10px) saturate(150%);-webkit-backdrop-filter:blur(10px) saturate(150%);background:#c8fff211;border-color:#e5fff383;box-shadow:inset 0 1px 1px #f0fff57a,inset 0 -1px 1px #8bbbc347,0 5px 15px #0011223b}
.webgl-ready:not(.reading) .spell-button{background:linear-gradient(165deg,#ebfff70b,transparent 42%,#9fffc705);backdrop-filter:none;-webkit-backdrop-filter:none}
.spell-button:hover,.spell-button:focus-visible{border-color:#effff8bf;box-shadow:inset 0 1px 1px #f0fff5a3,inset 0 -1px 1px #8bbbc35c,0 7px 22px #00112247,0 0 17px #9cebc51a}
.webgl-ready:not(.reading) .spell-button,.webgl-ready:not(.reading) .spell-button:hover,.webgl-ready:not(.reading) .spell-button:focus-visible{border-color:transparent;background:transparent;box-shadow:none}
.webgl-ready:not(.reading) .spell-button:before,.webgl-ready:not(.reading) .spell-button:after{display:none}

/* Avoid a flash of the settled page before the entrance is ready. */
.scene-booting #main,.scene-booting .site-header,.scene-booting .orbit-dock,.scene-booting .orbit-hint,.scene-booting .dolphin-fallback{opacity:0;pointer-events:none}
.reading.webgl-ready .dolphin-fallback{display:block;position:absolute;top:100px;height:290px;opacity:.85}
/* Keep the small maker's mark clear of the swimming silhouette. */
.orbit-nav a{border-radius:999px}
@media(min-width:1101px),(min-width:651px) and (min-aspect-ratio:10/9){
  body:not(.reading) #andrea .about-symbol{padding-top:max(calc(var(--dolphin-stage) + 65px),calc(48vh + var(--dolphin-stage) * .64 - 180px));gap:14px}
  body:not(.reading) #andrea .about-symbol img{width:30px;height:45px}
  body:not(.reading) #andrea .about-symbol span{font-size:9px}
}
@media(max-width:650px){
  .about-copy h2{font-size:clamp(34px,11.28vw,44px)}
  body:not(.reading) #kontakt .contact-copy h2{font-size:clamp(46px,15.13vw,59px)}
  .section-heading h2{font-size:clamp(38px,11.5vw,45px)}
}
.reading.webgl-ready .dolphin-fallback{height:240px}

/* A single, deliberate threshold before the animated site. */
#portal{--portal-viewport-height:100vh;--portal-scene-width:max(117vw,calc(var(--portal-viewport-height)*3.51));--portal-art-ratio:2172 / 724;--portal-x:calc(50% + var(--portal-scene-width)*.00023020258);--portal-y:calc(var(--portal-viewport-height)*.5 - var(--portal-scene-width)*.01519337017);--portal-radius:calc(var(--portal-scene-width)*.08793738490);position:fixed;inset:0;z-index:100;isolation:isolate;overflow:hidden;background:#020a12;transition:opacity .62s cubic-bezier(.4,0,.4,1);touch-action:none}
/* The first CSS paint and WebGL share exact aperture geometry. Small viewport
   units keep mobile browser chrome from changing the loading circle's size. */
@supports(height:100svh){#portal{--portal-viewport-height:100svh}}
@media(max-aspect-ratio:3/4){#portal{--portal-scene-width:max(117vw,calc(var(--portal-viewport-height)*.585));--portal-art-ratio:887 / 1774;--portal-x:calc(50% + var(--portal-scene-width)*.00056369786);--portal-y:calc(var(--portal-viewport-height)*.5 - var(--portal-scene-width)*.06200676437);--portal-radius:calc(var(--portal-scene-width)*.21984216460)}}
#portal[hidden]{display:none}
.portal-backdrop{position:absolute;inset:-4%;background:linear-gradient(#02081555,#02081588),url('assets/images/portal-sanctuary.png') center/cover;filter:blur(22px) brightness(.5);transform:scale(1.08)}
.portal-scene{position:absolute;left:50%;top:50%;width:var(--portal-scene-width);aspect-ratio:var(--portal-art-ratio);transform:translate(-50%,-50%);will-change:transform;transition:transform 1.2s cubic-bezier(.65,0,.83,.30);mask-image:linear-gradient(transparent,#000 8%,#000 90%,transparent);-webkit-mask-image:linear-gradient(transparent,#000 8%,#000 90%,transparent)}
.portal-scene picture,.portal-scene img{display:block;width:100%;height:100%;object-fit:contain}
#portal-surface{position:absolute;pointer-events:none;border-radius:50%}
.portal-surface-fallback{background:radial-gradient(ellipse at 40% 30%,#0f6a61,#072d43 45%,#041021 75%,#178679 96%,transparent);box-shadow:inset 0 0 35px #37c9a6}
#portal-enter{position:absolute;left:var(--portal-x,50%);top:var(--portal-y,43%);width:calc(var(--portal-radius,200px)*2);height:calc(var(--portal-radius,200px)*2 + 112px);transform:translate(-50%,calc(var(--portal-radius,200px)*-1));border-radius:50%;padding:0;background:transparent;outline:none;cursor:pointer;transition:opacity .25s}
#portal-enter span{position:absolute;bottom:0;left:50%;transform:translateX(-50%);white-space:nowrap;font-family:var(--serif);font-size:clamp(32px,3.2vw,42px);letter-spacing:-.025em;font-weight:400;color:#edf6e9;text-shadow:0 2px 14px #020c14,0 0 24px #4ad7bb40;padding:13px 20px;transition:color .3s,text-shadow .3s}
#portal-enter:hover span{color:#fffdf0;text-shadow:0 0 22px #8dffe49c,0 2px 12px #020c14}
#portal-enter:focus-visible span{outline:1px solid #b4e5d5;outline-offset:5px;border-radius:8px}
.portal-entering .portal-scene{transform:translate(-50%,-50%) scale(12)}
.portal-entering #portal-enter{opacity:0;pointer-events:none}
#portal.portal-dissolving{opacity:0;pointer-events:none}
.portal-awaiting .site-header,.portal-awaiting #main,.portal-awaiting .orbit-dock,.portal-awaiting .orbit-hint,.portal-awaiting .dolphin-fallback{visibility:hidden!important}
@media(max-width:650px){#portal-enter{height:calc(var(--portal-radius,150px)*2 + 96px)}#portal-enter span{font-size:32px}}
@media(max-height:520px){#portal-enter span{font-size:26px}#portal-enter{height:calc(var(--portal-radius,120px)*2 + 65px)}}
@media(prefers-reduced-motion:reduce){.portal-scene{transition:none}.portal-entering .portal-scene{transform:translate(-50%,-50%)}#portal{transition:opacity .2s}}

.portal-awaiting body{overflow:hidden!important;height:100dvh}

.portal-scene{mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent),linear-gradient(0deg,transparent,#000 8%,#000 92%,transparent);mask-composite:intersect;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent),linear-gradient(0deg,transparent,#000 8%,#000 92%,transparent);-webkit-mask-composite:source-in}
.portal-quiet.portal-entering .portal-scene{transform:translate(-50%,-50%)}

.portal-portrait .portal-scene{mask-image:none;-webkit-mask-image:none}
.portal-portrait .portal-backdrop{background-image:url('assets/images/portal-sanctuary-mobile.png');filter:none;transform:none;inset:0}
.portal-portrait #portal-enter{height:calc(var(--portal-radius,150px)*2 + 105px)}

/* A single camera move: reveal the threshold, approach, then come to rest. */
.portal-camera,.portal-loader-camera{position:absolute;inset:0 0 auto;height:var(--portal-viewport-height);transform-origin:var(--portal-x) var(--portal-y);transform:scale(.86) translateY(9px)}
.portal-loader-camera{z-index:5;pointer-events:none}
.portal-brand{--portal-brand-height:clamp(42px,6.8svh,66px);position:absolute;z-index:3;left:var(--portal-x);top:max(calc(22px + env(safe-area-inset-top)),calc(var(--portal-y) - var(--portal-radius)*1.3 - var(--portal-brand-height) - 18px));display:flex;align-items:center;gap:clamp(10px,1vw,18px);height:var(--portal-brand-height);max-width:calc(100% - 40px);white-space:nowrap;pointer-events:none;opacity:0;transform:translateX(-50%);transition:opacity 1.2s ease .2s,transform .6s cubic-bezier(.4,0,.4,1);text-shadow:0 2px 20px #011c29,0 0 26px #93d9c526}
.portal-brand img{width:calc(var(--portal-brand-height)*.63);height:100%;object-fit:contain}
.portal-brand span{font:400 clamp(34px,4vw,58px)/1 var(--serif);letter-spacing:-.055em}
.portal-ready .portal-brand{opacity:1}
.portal-entering .portal-brand{opacity:0;transform:translate(-50%,-12px);transition-delay:0s;transition-duration:.35s}
#portal::after{content:"";position:absolute;inset:0;z-index:4;background:#000;opacity:1;pointer-events:none;transition:opacity 1.35s ease}
#portal.portal-ready::after{opacity:0}
.portal-ready .portal-camera,.portal-ready .portal-loader-camera{animation:portal-approach 2.9s cubic-bezier(.22,.61,.28,1) both}
.portal-ready .portal-backdrop{animation:portal-distance 2.9s cubic-bezier(.22,.61,.28,1) both}
.portal-ready:not(.portal-entering) #portal-enter span{animation:portal-invitation 2.2s ease both}
@keyframes portal-approach{from{transform:scale(.86) translateY(9px)}to{transform:scale(1) translateY(0)}}
@keyframes portal-distance{from{transform:scale(1.025)}to{transform:scale(1.08)}}
@keyframes portal-invitation{0%,44%{opacity:0}100%{opacity:1}}
.portal-scene{transition:transform 1.7s cubic-bezier(.58,0,.72,.42)}
@media(prefers-reduced-motion:reduce){.portal-camera,.portal-loader-camera{transform:none}.portal-ready .portal-camera,.portal-ready .portal-loader-camera,.portal-ready .portal-backdrop,.portal-ready:not(.portal-entering) #portal-enter span{animation:none}#portal::after{transition-duration:.25s}}

/* Outpainted scenery covers every aspect ratio; no vignette or edge masks. */
.portal-scene,.portal-portrait .portal-scene{mask-image:none;-webkit-mask-image:none}
.portal-backdrop{display:none}
#portal{background:#000}
@media(min-aspect-ratio:3/1){#portal-enter span{font-size:clamp(24px,4vh,42px)}}

/* Enlarge in place; refraction, rim, wave and particles share the same rectangle. */
.spell-button:hover,.spell-button:focus-visible{transform:scale(1.065)}
.spell-button:active{transform:scale(1.025)}
/* Keep one composited text surface from rest through every enlargement. */
.spell-button{background:#075c4c42;transform-origin:center;will-change:transform;backface-visibility:hidden}
.webgl-ready:not(.reading) .spell-button,.webgl-ready:not(.reading) .spell-button:hover,.webgl-ready:not(.reading) .spell-button:focus-visible{transform:translate3d(0,0,0) scale(var(--spell-scale,1));transition:box-shadow .45s,border-color .45s}
.webgl-ready:not(.reading) .spell-button:active{transform:translate3d(0,0,0) scale(calc(var(--spell-scale,1)*.985))}
@media(prefers-reduced-motion:reduce){.spell-button:hover,.spell-button:focus-visible{transform:none;transition:none}}

#portal-mist{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;transform-origin:var(--portal-x,50%) var(--portal-y,43%);transition:transform 1.7s cubic-bezier(.58,0,.72,.42)}
.portal-entering #portal-mist{transform:scale(12)}
.portal-quiet.portal-entering #portal-mist{transform:none}
@media(prefers-reduced-motion:reduce){#portal-mist{transition:none}.portal-entering #portal-mist{transform:none}}

/* Navigation uses the same live scene refraction as the discovery glass. */
.orbit-nav{background:linear-gradient(160deg,#cdeeff10,#0a294b26 48%,#bbffe50a);border-color:#cceefa3d;box-shadow:inset 0 1px 1px #efffff42,inset 0 -1px 1px #89b6d42b,0 8px 28px #00102424;backdrop-filter:blur(18px) saturate(155%);-webkit-backdrop-filter:blur(18px) saturate(155%)}
.webgl-ready:not(.reading) .orbit-nav{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border-color:transparent;box-shadow:none}
.nav-indicator{border-color:#e3f5f889;background:linear-gradient(155deg,#efffff15,#bceeff04 48%,#79ddc40c);box-shadow:inset 0 1px 1px #fff8,inset 0 -1px 2px #98d0e12e,0 2px 9px #00000012;backdrop-filter:blur(4px) saturate(140%);-webkit-backdrop-filter:blur(4px) saturate(140%)}
.orbit-arrow{background:linear-gradient(145deg,#d9f7ff12,#08294b3d 58%,#8bdfd710);border-color:#d5edf366;box-shadow:inset 0 1px 1px #f3ffff42,inset 0 -1px 1px #9bd1e331,0 5px 18px #00182a20;backdrop-filter:blur(16px) saturate(155%);-webkit-backdrop-filter:blur(16px) saturate(155%)}
.orbit-arrow:hover:not(:disabled){background:linear-gradient(145deg,#d9fff226,#0a615a42 60%,#8bdfd719)}

/* Keep native indicator layers inside the capsule; refraction is already drawn
   by the scene, so a second moving backdrop surface would only duplicate it. */
.orbit-nav{isolation:isolate;overflow:hidden;clip-path:inset(0 round 999px)}
.nav-indicator{backdrop-filter:none;-webkit-backdrop-filter:none;pointer-events:none;overflow:hidden}
.orbit-arrow{isolation:isolate;overflow:hidden;clip-path:circle(50%);backdrop-filter:none;-webkit-backdrop-filter:none}
.webgl-ready:not(.reading) .orbit-arrow,.webgl-ready:not(.reading) .orbit-arrow:hover:not(:disabled){background:transparent;border-color:transparent;box-shadow:none}
.orbit-nav a:focus-visible,.orbit-arrow:focus-visible{outline-offset:-5px}

/* The collection is one composed screen: images take the space that remains
   after its introduction, labels and native detail controls. */
@media(min-width:651px){
  body:not(.reading) #unikate .chapter-scroll{display:flex;flex-direction:column;top:105px;bottom:120px;padding:0;overflow:visible}
  body:not(.reading) #unikate .shop-heading{min-height:calc(var(--dolphin-stage) - 42px);margin:12px 0 16px}
  body:not(.reading) #unikate .shop-heading h2{font-size:clamp(36px,3.7vw,56px)}
  body:not(.reading) #unikate .shop-heading>div{margin-top:16px}
  body:not(.reading) #unikate .shop-heading p{font-size:15px;line-height:1.55}
  body:not(.reading) #unikate .sample-note{margin-top:10px}
  body:not(.reading) #unikate .shop-products-scroll{display:flex;flex:1;flex-direction:column;min-height:0;padding:0;overflow:visible}
  body:not(.reading) #unikate .product-grid{flex:1;min-height:0;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:minmax(0,1fr)}
  body:not(.reading) #unikate .product-card{display:grid;grid-template-rows:minmax(0,1fr) auto;min-height:0}
  body:not(.reading) #unikate .product-image-button{min-height:0;height:auto;aspect-ratio:1;max-height:100%;align-self:end}
  body:not(.reading) #unikate .product-image-button img{height:100%;aspect-ratio:auto}
  body:not(.reading) #unikate .product-meta{margin-top:10px;display:flex;gap:8px}
  body:not(.reading) #unikate .product-meta h3{font-size:clamp(20px,2vw,27px)}
  body:not(.reading) #unikate .product-category{margin:0;font-size:10px}
  body:not(.reading) #unikate .product-link{justify-self:start;min-height:38px;margin-top:3px;font-size:13px}
  body:not(.reading) #unikate .shop-footnote{flex-shrink:0;margin-top:10px;font-size:14px;line-height:1.5}
}
@media(min-width:651px) and (max-width:1100px) and (max-aspect-ratio:10/9){
  body:not(.reading) #unikate .chapter-scroll{top:calc(92px + var(--dolphin-stage));bottom:132px}
  body:not(.reading) #unikate .shop-heading{display:flex;align-items:start;min-height:0;padding:0;margin:12px 0 22px;gap:22px}
  body:not(.reading) #unikate .shop-heading h2{font-size:42px;flex:1}
  body:not(.reading) #unikate .shop-heading>div{margin:0;max-width:46%}
  body:not(.reading) #unikate .product-meta{display:block}
  body:not(.reading) #unikate .product-category{display:block;margin-top:5px}
}
@media(min-width:651px) and (max-height:740px){
  body:not(.reading) #unikate .chapter-scroll{top:86px;bottom:105px}
  body:not(.reading) #unikate .shop-heading{min-height:calc(var(--dolphin-stage) - 24px);margin:5px 0 12px}
  body:not(.reading) #unikate .shop-heading h2{font-size:35px}
  body:not(.reading) #unikate .shop-heading>div{margin-top:10px}
  body:not(.reading) #unikate .shop-heading p{font-size:13px}
  body:not(.reading) #unikate .sample-note{font-size:10px!important;margin-top:6px}
}
@media(max-width:650px){
  body:not(.reading) #unikate .chapter-scroll{display:flex;flex-direction:column;top:calc(60px + var(--dolphin-stage));padding:0;overflow:visible;mask-image:none;-webkit-mask-image:none}
  body:not(.reading) #unikate .shop-heading{flex-shrink:0;margin:0 0 10px;padding:0;min-height:0}
  body:not(.reading) #unikate .shop-heading h2{font-size:29px;line-height:1.05}
  body:not(.reading) #unikate .shop-heading>div{margin-top:6px}
  body:not(.reading) #unikate .sample-note{font-size:10px!important;line-height:1.4!important;max-width:none;margin:0}
  body:not(.reading) #unikate .shop-products-scroll{display:flex;flex:1;flex-direction:column;min-height:0;padding:0}
  body:not(.reading) #unikate .product-grid{flex:1;min-height:0;grid-template-columns:1fr;grid-template-rows:repeat(3,minmax(0,1fr));gap:7px}
  body:not(.reading) #unikate .product-card{display:grid;grid-template-columns:84px minmax(0,1fr);grid-template-rows:1fr;column-gap:12px;min-height:0}
  body:not(.reading) #unikate .product-image-button{grid-row:1;min-height:0}
  body:not(.reading) #unikate .product-image-button img{height:100%;aspect-ratio:auto}
  body:not(.reading) #unikate .sample-badge{left:50%;top:auto;bottom:12%;font-size:7px;padding:2px 4px}
  body:not(.reading) #unikate .product-meta{display:flex;align-items:center;gap:6px;margin:0;min-height:0}
  body:not(.reading) #unikate .product-meta h3{font-size:20px}
  body:not(.reading) #unikate .product-category{font-size:8px}
  body:not(.reading) #unikate .product-link{justify-self:start;font-size:12px;min-height:44px;margin:0;padding:4px 0;gap:16px}
  body:not(.reading) #unikate .shop-footnote{font-size:12px;line-height:1.5;margin-top:8px;flex-shrink:0}
}

/* Andrea's own portrait, framed by open space instead of a photograph card. */
.andrea-portrait{margin:0;min-width:0;align-self:end}
#kontakt .contact-copy .eyebrow{text-transform:none}
.andrea-portrait img{display:block;width:125%;max-width:none;height:auto;margin-left:-12.5%;filter:brightness(.94) saturate(.94);mask-image:linear-gradient(#000 72%,transparent 100%);-webkit-mask-image:linear-gradient(#000 72%,transparent 100%)}
body:not(.reading) #andrea .about-layout{display:grid;grid-template-columns:24% 43% 27%;grid-template-areas:". story portrait";gap:3%;align-items:center;margin:22px 0 0;min-height:calc(100% - 35px)}
body:not(.reading) #andrea .about-copy{grid-area:story;min-width:0;margin:0;max-width:none}
body:not(.reading) #andrea .andrea-portrait{grid-area:portrait;align-self:center}
body:not(.reading) #andrea .about-copy h2{font-size:clamp(35px,3.7vw,57px);margin-bottom:22px}
body:not(.reading) #andrea .about-copy .eyebrow{font-size:10px;margin:0 0 20px;letter-spacing:.17em}
body:not(.reading) #andrea .about-copy p:not(.eyebrow){font-size:clamp(14px,1.25vw,17px);line-height:1.75;margin-top:14px}
body:not(.reading) #andrea .text-link{margin-top:18px}
@media(min-width:651px) and (max-width:1100px) and (max-aspect-ratio:10/9){
 body:not(.reading) #andrea .about-layout{grid-template-columns:58% 38%;grid-template-areas:"story portrait";gap:4%;margin-top:24px;min-height:0;align-items:start}
 body:not(.reading) #andrea .about-copy h2{font-size:43px}
 body:not(.reading) #andrea .about-copy p:not(.eyebrow){font-size:16px}
 body:not(.reading) #andrea .andrea-portrait{align-self:start;margin-top:22px}
}
@media(max-width:650px){
 body:not(.reading) #andrea .about-layout{display:grid;grid-template-columns:1fr;grid-template-areas:"portrait" "story";gap:8px;margin-top:20px;min-height:0}
 body:not(.reading) #andrea .andrea-portrait{width:200px;max-width:65%;justify-self:center;align-self:auto;margin:0}
 body:not(.reading) #andrea .about-copy h2{font-size:42px}
 body:not(.reading) #andrea .about-copy p:not(.eyebrow){font-size:16px}
 body:not(.reading) #andrea .about-copy .eyebrow{margin-bottom:16px}
}
.reading .andrea-portrait{max-width:360px;align-self:center}
@media(prefers-reduced-motion:reduce){.product-image-button img{transition:none}}

/* A single wandering light traces the as-yet-unseen portal against black. */
.portal-loading{position:absolute;z-index:5;left:var(--portal-x);top:var(--portal-y);width:calc(var(--portal-radius)*2);aspect-ratio:1;transform:translate(-50%,-50%) scaleX(1.0209424084);pointer-events:none;opacity:1;transition:opacity .6s ease}
@media(max-aspect-ratio:3/4){.portal-loading{transform:translate(-50%,-50%)}}
.portal-loading-orbit{position:absolute;inset:0;border-radius:50%;animation:portal-wisp-orbit 2.6s linear infinite;will-change:transform;filter:drop-shadow(0 0 5px #72f5dc99) drop-shadow(0 0 16px #0d857e88)}
.portal-loading-orbit::before{content:"";position:absolute;inset:0;border-radius:inherit;background:conic-gradient(from 0deg,transparent 0deg,transparent 220deg,#075a7010 262deg,#19948d59 302deg,#8cf5dca6 339deg,#edfff4 359deg,transparent 360deg);mask-image:radial-gradient(farthest-side,transparent calc(100% - 5px),#000 calc(100% - 2px),transparent);-webkit-mask-image:radial-gradient(farthest-side,transparent calc(100% - 5px),#000 calc(100% - 2px),transparent)}
.portal-loading-orbit::after{content:"";position:absolute;left:50%;top:2px;width:7px;height:7px;border-radius:50%;transform:translate(-50%,-50%);background:#f0fff9;box-shadow:0 0 6px #e0fff7,0 0 13px #46daba,0 0 26px #147da3}
.portal-loading-orbit i{position:absolute;inset:0;transform:rotate(-18deg);border-radius:50%}
.portal-loading-orbit i::after{content:"";position:absolute;left:50%;top:1px;width:3px;height:3px;border-radius:50%;background:#b8f9e4;box-shadow:0 0 8px #58d1b6;animation:portal-wisp-mote 1.7s ease-in-out infinite alternate}
.portal-loading-orbit i:nth-child(2){transform:rotate(-35deg)}.portal-loading-orbit i:nth-child(2)::after{top:-4px;width:2px;height:2px;animation-delay:-.7s}
.portal-loading-orbit i:nth-child(3){transform:rotate(-52deg)}.portal-loading-orbit i:nth-child(3)::after{top:5px;width:2px;height:2px;animation-delay:-1.2s}
#portal.portal-ready .portal-loading{opacity:0}
@keyframes portal-wisp-orbit{to{transform:rotate(360deg)}}
@keyframes portal-wisp-mote{from{opacity:.25;transform:translateY(-2px)}to{opacity:.9;transform:translateY(2px)}}
@media(prefers-reduced-motion:reduce){.portal-loading-orbit{animation:portal-wisp-mote 2s ease-in-out infinite alternate}.portal-loading-orbit i::after{animation:none}}

@media(min-width:651px) and (max-width:1100px) and (max-aspect-ratio:10/9){
 body:not(.reading) #andrea .chapter-scroll{padding-bottom:0}
}
@media(min-width:651px) and (max-width:1100px) and (max-aspect-ratio:10/9) and (max-height:1100px){
 body:not(.reading) #andrea .chapter-scroll{bottom:120px}
 body:not(.reading) #andrea .about-layout{margin-top:16px}
 body:not(.reading) #andrea .about-copy h2{font-size:40px;margin-bottom:18px}
 body:not(.reading) #andrea .about-copy .eyebrow{margin-bottom:16px}
 body:not(.reading) #andrea .about-copy p:not(.eyebrow){line-height:1.65;margin-top:12px}
}
@media(max-width:650px){
 body:not(.reading) #andrea .about-layout{display:block}
 body:not(.reading) #andrea .andrea-portrait{float:right;width:43%;max-width:170px;margin:0 0 8px 14px}
 body:not(.reading) #andrea .about-copy h2{font-size:34px;line-height:1.08}
 body:not(.reading) #andrea .about-copy .eyebrow{font-size:9px;letter-spacing:.09em}
 body:not(.reading) #andrea .about-layout::after{content:"";display:block;clear:both}
}

/* One measured composition scale for large monitors; tablet rules stay intact. */
.wide-display{--gutter:max(calc(112px * var(--display-scale)),calc((100vw - 1376px * var(--display-scale))/2))}
.wide-display .site-header{top:calc(26px * var(--display-scale));gap:calc(20px * var(--display-scale))}
.wide-display .brand{gap:calc(14px * var(--display-scale))}
.wide-display .brand img{width:calc(34px * var(--display-scale));height:calc(54px * var(--display-scale))}
.wide-display .brand span{font-size:calc(42px * var(--display-scale))}
.wide-display .maker-name{font-size:calc(13px * var(--display-scale))}
.wide-display .home-copy{bottom:calc(152px * var(--display-scale))}
.wide-display h1{font-size:calc(84px * var(--display-scale))}
.wide-display .home .eyebrow{font-size:calc(12px * var(--display-scale));margin-bottom:calc(18px * var(--display-scale))}
.wide-display .hero-description{font-size:calc(21px * var(--display-scale));max-width:calc(680px * var(--display-scale));margin:calc(15px * var(--display-scale)) auto calc(21px * var(--display-scale))}
.wide-display .spell-button{min-height:calc(55px * var(--display-scale));font-size:calc(20px * var(--display-scale));padding:calc(11px * var(--display-scale)) calc(34px * var(--display-scale));gap:calc(25px * var(--display-scale))}
.wide-display .spell-button .spell-arrow{font-size:calc(23px * var(--display-scale))}
.wide-display .orbit-dock{bottom:calc(43px * var(--display-scale));gap:calc(17px * var(--display-scale))}
.wide-display .orbit-nav{width:calc(640px * var(--display-scale));padding:calc(7px * var(--display-scale))}
.wide-display .orbit-nav a{min-height:calc(44px * var(--display-scale));padding:0 calc(12px * var(--display-scale));gap:calc(13px * var(--display-scale));font-size:calc(13px * var(--display-scale))}
.wide-display .orbit-nav small{font-size:calc(11px * var(--display-scale))}
.wide-display .nav-indicator{top:calc(7px * var(--display-scale));bottom:calc(7px * var(--display-scale));left:calc(7px * var(--display-scale));width:calc((100% - 14px * var(--display-scale))/4)}
.wide-display .orbit-arrow{min-width:calc(52px * var(--display-scale));min-height:calc(52px * var(--display-scale))}
.wide-display .orbit-arrow svg{width:calc(20px * var(--display-scale));height:calc(20px * var(--display-scale))}
.wide-display .orbit-hint{bottom:calc(14px * var(--display-scale));font-size:calc(11px * var(--display-scale))}
.wide-display .orbit-hint .desktop-hint{margin-right:calc(14px * var(--display-scale))}
.wide-display .chapter-scroll{top:calc(111px * var(--display-scale));bottom:calc(129px * var(--display-scale));padding-bottom:calc(35px * var(--display-scale))}
.wide-display body:not(.reading) #unikate .chapter-scroll{top:calc(105px * var(--display-scale));bottom:calc(120px * var(--display-scale));padding:0}
.wide-display body:not(.reading) #unikate .shop-heading{min-height:calc(var(--dolphin-stage) - 42px * var(--display-scale));margin:calc(12px * var(--display-scale)) 0 calc(16px * var(--display-scale))}
.wide-display body:not(.reading) #unikate .shop-heading h2{font-size:calc(50px * var(--display-scale))}
.wide-display body:not(.reading) #unikate .shop-heading>div{margin-top:calc(16px * var(--display-scale));max-width:calc(410px * var(--display-scale))}
.wide-display body:not(.reading) #unikate .shop-heading p{font-size:calc(15px * var(--display-scale))}
.wide-display body:not(.reading) #unikate .sample-note{font-size:calc(12px * var(--display-scale))!important;margin-top:calc(10px * var(--display-scale))}
.wide-display .product-grid{gap:calc(26px * var(--display-scale))}
.wide-display .sample-badge{top:auto;bottom:11%;left:50%;font-size:calc(10px * var(--display-scale));padding:calc(5px * var(--display-scale)) calc(9px * var(--display-scale))}
.wide-display body:not(.reading) #unikate .product-meta{margin-top:calc(10px * var(--display-scale));gap:calc(12px * var(--display-scale))}
.wide-display body:not(.reading) #unikate .product-meta h3{font-size:calc(27px * var(--display-scale))}
.wide-display body:not(.reading) #unikate .product-category{font-size:calc(11px * var(--display-scale))}
.wide-display body:not(.reading) #unikate .shop-footnote{margin-top:calc(14px * var(--display-scale));font-size:calc(17px * var(--display-scale))}
.wide-display body:not(.reading) #andrea .about-layout{max-width:none;margin-top:calc(22px * var(--display-scale));min-height:calc(100% - 35px * var(--display-scale))}
.wide-display body:not(.reading) #andrea .about-copy h2{font-size:calc(52px * var(--display-scale));margin-bottom:calc(22px * var(--display-scale))}
.wide-display body:not(.reading) #andrea .about-copy .eyebrow{font-size:calc(11px * var(--display-scale));margin-bottom:calc(20px * var(--display-scale))}
.wide-display body:not(.reading) #andrea .about-copy p:not(.eyebrow){font-size:calc(17px * var(--display-scale));margin-top:calc(14px * var(--display-scale));max-width:none}
.wide-display body:not(.reading) #kontakt .contact-copy{margin-top:calc(72px * var(--display-scale))}
.wide-display body:not(.reading) #kontakt .contact-copy h2{font-size:calc(82px * var(--display-scale))}
.wide-display .contact-copy .eyebrow{font-size:calc(12px * var(--display-scale));margin-bottom:calc(24px * var(--display-scale))}
.wide-display .contact-copy>p:not(.eyebrow){font-size:calc(22px * var(--display-scale));margin-top:calc(30px * var(--display-scale))}
.wide-display .contact-soon{font-size:calc(14px * var(--display-scale));margin-top:calc(26px * var(--display-scale))}
.wide-display .site-footer{font-size:calc(11px * var(--display-scale));margin-top:calc(70px * var(--display-scale));padding-top:calc(20px * var(--display-scale));gap:calc(20px * var(--display-scale))}
.wide-display .quiet-link{font-size:calc(11px * var(--display-scale));padding:calc(8px * var(--display-scale)) 0}
.wide-display #portal-enter span{font-size:calc(40px * var(--display-scale))}
.wide-display #portal-enter{height:calc(var(--portal-radius)*2 + 112px * var(--display-scale))}

/* Isolated craft objects sit directly in the nebula, with a native hit target. */
.product-orbit-dots{position:fixed;inset:0;width:100%;height:100%;z-index:3;pointer-events:none}
.reading .product-orbit-dots{display:none}
#unikate .product-image-button{background:transparent;border-radius:0;overflow:visible}
#unikate .product-image-button img{object-fit:contain;filter:drop-shadow(0 10px 16px #00000032)}
#unikate .product-image-button:hover img{filter:brightness(1.07) drop-shadow(0 10px 16px #00000032)}
#unikate .product-image-button img{animation:unikate-float 7s ease-in-out infinite;will-change:translate}
#unikate .product-card:nth-child(3n + 2) img{animation-delay:-2.4s}
#unikate .product-card:nth-child(3n) img{animation-delay:-4.8s}
@keyframes unikate-float{0%,100%{translate:0 calc(1.5px * var(--display-scale,1))}50%{translate:0 calc(-2.5px * var(--display-scale,1))}}
body #unikate .product-meta{display:flex;flex-direction:column;align-items:center;justify-content:start;text-align:center;gap:5px}
body #unikate .product-category{margin-top:0}
@media(max-width:650px){
  body:not(.reading) #unikate .product-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:minmax(0,1fr);gap:10px;align-items:center}
  body:not(.reading) #unikate .product-card{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;gap:12px}
  body:not(.reading) #unikate .product-image-button{width:100%;aspect-ratio:1}
  body:not(.reading) #unikate .product-image-button img{height:100%;aspect-ratio:1}
  body:not(.reading) #unikate .product-meta{grid-row:2;gap:5px;align-self:start}
  body:not(.reading) #unikate .product-meta h3{font-size:clamp(16px,4.5vw,22px);line-height:1.12;min-height:2.24em}
  body:not(.reading) #unikate .product-category{font-size:9px}
}
@media(prefers-reduced-motion:reduce){#unikate .product-image-button img{animation:none;will-change:auto}}
#unikate .product-name{min-width:0}
#unikate .product-sample{display:block;font-family:var(--mono);font-size:9px;line-height:1.4;letter-spacing:.035em;color:var(--muted);margin-top:5px}
.wide-display #unikate .product-sample{font-size:calc(9px * var(--display-scale));margin-top:calc(5px * var(--display-scale))}
.dialog-product>img{object-fit:contain;padding:24px}
@media(max-width:650px){#unikate .product-sample{font-size:8px;margin-top:3px}}

/* Readable supporting labels, together beneath the centered product title. */
#unikate .product-details{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:3px calc(12px * var(--display-scale,1));font-family:var(--mono);font-size:calc(14px * var(--display-scale,1));line-height:1.5;color:#d2e2e5}
html body #unikate .product-meta .product-details>.product-sample,html body #unikate .product-meta .product-details>.product-category{display:inline;margin:0;font:inherit;letter-spacing:0;color:inherit}
@media(max-width:650px){#unikate .product-details{font-size:12px;gap:2px 8px}}

/* A clear navy/phthalo glass sheet with a still, rounded optical bevel. */
#product-dialog{
  isolation:isolate;overflow:visible;border:1px solid #b8efe16b;border-radius:30px;outline:none;
  background:radial-gradient(ellipse at 8% 0%,#d4fff220,transparent 48%),linear-gradient(135deg,#0c5e6238,#041c354d 48%,#064a4938);
  backdrop-filter:blur(16px) saturate(155%);-webkit-backdrop-filter:blur(16px) saturate(155%);
  box-shadow:inset 0 2px 2px #edfff273,inset 0 -1px 2px #b1e8dc45,inset 1px 0 1px #d8faff40,inset -1px 0 1px #8bd3d527,0 26px 80px #0006;
  opacity:0;transform:perspective(1200px) translate3d(0,18px,0) rotateX(2deg) scale(.965);transform-origin:50% 58%;
  transition:opacity .58s cubic-bezier(.22,1,.36,1),transform .68s cubic-bezier(.22,1,.36,1);
}
#product-dialog.is-visible{opacity:1;transform:perspective(1200px) translate3d(0,0,0) rotateX(0) scale(1)}
#product-dialog.is-closing{opacity:0;transform:perspective(1200px) translate3d(0,12px,0) rotateX(-1deg) scale(.978);transition-duration:.4s;transition-timing-function:cubic-bezier(.4,0,.6,1)}
#product-dialog::backdrop{background:#01091e63;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);opacity:0;transition:opacity .58s cubic-bezier(.22,1,.36,1)}
#product-dialog.is-visible::backdrop{opacity:1}
#product-dialog.is-closing::backdrop{transition-duration:.4s;transition-timing-function:cubic-bezier(.4,0,.6,1)}
#product-dialog #dialog-content{position:relative;z-index:1;max-height:calc(100dvh - 62px);overflow:auto;overscroll-behavior:contain;border-radius:29px}
#product-dialog .dialog-close{position:absolute;float:none;top:13px;right:13px;margin:0;z-index:3;background:linear-gradient(145deg,#cefff322,#052b344d);border-color:#b5e5dc66;box-shadow:inset 0 1px 1px #eefff24d;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);outline:none;transition:background .25s,box-shadow .25s}
#product-dialog .dialog-close:focus-visible{box-shadow:inset 0 0 0 2px #c9fff0;outline:none}
#product-dialog .dialog-close:hover{background:linear-gradient(145deg,#cefff335,#07534e70)}
#product-dialog .dialog-close{display:grid;place-items:center;padding:0}
#product-dialog .dialog-close svg{display:block;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round}
#product-dialog .dialog-product>img{filter:drop-shadow(0 16px 26px #00152866)}
@media(prefers-reduced-motion:no-preference){#product-dialog[open] .dialog-product>img{animation:unikate-float 7s ease-in-out infinite;will-change:translate}}
#product-dialog .dialog-product-copy{background:linear-gradient(110deg,transparent,#021a3424)}
#product-dialog .purchase-placeholder{background:linear-gradient(150deg,#91e7d01f,#07544638 55%,#10536022);border-color:#a8ded06b;box-shadow:inset 0 1px 1px #eaffed38,inset 0 -1px 1px #88c8bd21;color:#dfefe9}
@media(max-width:650px){#product-dialog{border-radius:25px}#product-dialog #dialog-content{max-height:calc(100dvh - 32px);border-radius:24px}#product-dialog .dialog-product>img{height:210px;padding:25px 48px 5px}}
@media(prefers-reduced-motion:reduce){#product-dialog,#product-dialog::backdrop{transition:none}#product-dialog,#product-dialog.is-visible,#product-dialog.is-closing{transform:none}}

/* Touch devices show the same settled hover treatment without requiring a cursor. */
.ambient-hover #unikate .product-image-button img{opacity:1;filter:brightness(1.07) drop-shadow(0 10px 16px #00000032)}
.ambient-hover .spell-button.spell-touch-awake .spell-arrow{transform:translate3d(4px,0,0)}
.ambient-hover #portal-enter span{color:#fffdf0;text-shadow:0 0 22px #8dffe49c,0 2px 12px #020c14}
@media(prefers-reduced-motion:no-preference){
  .ambient-hover #unikate .product-image-button img{transform:scale(1.04)}
  .ambient-hover body:not(.webgl-ready) .spell-button{transform:scale(1.065);background:radial-gradient(ellipse at 50% 0%,#91f6be40,transparent 68%),linear-gradient(120deg,#08494d66,#107d6470 48%,#073e4666);border-color:#effff8bf;box-shadow:inset 0 1px 1px #f0fff5a3,inset 0 -1px 1px #8bbbc35c,0 7px 22px #00112247,0 0 17px #9cebc51a}
}
.copyright{border:0;margin:0;padding:0}
.reading .copyright{display:block}
.reading .orbit-dock{bottom:calc(43px + env(safe-area-inset-bottom))}
@media(max-width:650px){.reading .orbit-dock{bottom:calc(37px + env(safe-area-inset-bottom))}}

/* Keep vertical content scrollable without visible scrollbar chrome. */
html,body,.chapter-scroll,dialog,#product-dialog #dialog-content{scrollbar-width:none}
html::-webkit-scrollbar,body::-webkit-scrollbar,.chapter-scroll::-webkit-scrollbar,dialog::-webkit-scrollbar,#product-dialog #dialog-content::-webkit-scrollbar{display:none;width:0;height:0}
#andrea .chapter-scroll{overflow-x:hidden;overscroll-behavior-x:none}
#andrea .about-copy{min-width:0;max-width:100%;overflow-wrap:break-word;touch-action:pan-y}

/* The sculpture clearance scrolls away with the collection on phones. */
@media(max-width:650px){
  body:not(.reading) :is(#unikate,#andrea,#kontakt) .chapter-scroll{display:block;top:85px;bottom:calc(113px + env(safe-area-inset-bottom));left:20px;right:20px;padding:max(calc(var(--dolphin-stage,300px) - 25px),calc(100svh - 410px - var(--shop-extra-height,0px) - var(--dolphin-space-gain,0px))) 4px 40px;overflow-x:hidden;overflow-y:auto;mask-image:linear-gradient(transparent,#000 16px,#000 calc(100% - 18px),transparent);-webkit-mask-image:linear-gradient(transparent,#000 16px,#000 calc(100% - 18px),transparent)}
  body:not(.reading) #unikate .shop-heading{min-height:0;margin:0 0 24px;padding:0;max-width:100%}
  body:not(.reading) #unikate .shop-heading>div{min-width:0;max-width:100%}
  body:not(.reading) #unikate .shop-products-scroll{display:block;overflow:visible;padding:0;min-height:0}
  body:not(.reading) #unikate .product-grid{flex:none;grid-template-rows:auto}
  body:not(.reading) #andrea .chapter-scroll{padding-top:max(calc(var(--dolphin-stage,300px) - 25px),calc(100svh - 470px - var(--dolphin-space-gain,0px)))}
  body:not(.reading) #andrea .about-layout{margin-top:0}
  body.orbit-moving:not(.reading) :is(#unikate,#andrea) .chapter-scroll{overflow:hidden}
}
body:not(.reading) #unikate .shop-heading>div>.shop-intro{display:block}
.shop-intro-more{display:block;margin-top:.65em;max-width:32em}
@media(max-width:650px){body:not(.reading) #unikate .shop-heading .shop-intro{font-size:13px;line-height:1.5;color:#d2e2e5}}

/* Keep the approved tablet/phone composition; pair portrait and story more
   closely on desktop, compensating for transparent space above her hair. */
@media(min-width:1200px) and (min-aspect-ratio:10/9){
  html:not(.ambient-hover) body:not(.reading) #andrea .about-layout{width:100%;max-width:none;grid-template-columns:29% 38% 29%;column-gap:2%}
  html:not(.ambient-hover) body:not(.reading) #andrea .andrea-portrait{translate:0 calc(-18px * var(--display-scale,1))}
  html:not(.ambient-hover) body:not(.reading) #andrea .andrea-portrait img{width:112%;margin-left:-6%}
}

@media(min-width:1200px) and (min-aspect-ratio:10/9){
  html:not(.ambient-hover) body:not(.reading) #unikate .shop-heading{position:relative;left:7.8vw;top:calc(26px * var(--display-scale,1))}
}

/* The wide wordmark rests on the lake shoreline at source-image y=450/724.
   Tie its baseline to the artwork scale, rather than a viewport percentage. */
@media(min-aspect-ratio:3/4){
  #portal .portal-brand{--portal-brand-width:max(130px,min(calc(330px * var(--display-scale,1)),calc(48vw - var(--portal-radius)*1.38 - 18px)));--portal-brand-height:calc(var(--portal-brand-width)*.217);left:auto;right:2vw;top:calc(var(--portal-viewport-height)*.5 + var(--portal-scene-width)*.040515653775 - var(--portal-brand-height));height:var(--portal-brand-height);gap:calc(var(--portal-brand-width)*.046);transform:none}
  #portal .portal-brand span{font-size:calc(var(--portal-brand-width)*.171)}
  #portal.portal-entering .portal-brand{transform:translateY(-12px)}
}
@media(max-aspect-ratio:3/4){
  #portal .portal-brand{--portal-brand-height:clamp(62px,8.2svh,92px);top:max(calc(32px + env(safe-area-inset-top)),calc(var(--portal-y) - var(--portal-radius)*1.3 - var(--portal-brand-height) - 52px));gap:12px}
  #portal .portal-brand span{font-size:clamp(42px,6vw,70px)}
  #portal #portal-enter{height:calc(var(--portal-radius)*2.3 + 104px)}
  #portal #portal-enter span{top:calc(var(--portal-radius)*2.3 + 52px);bottom:auto;padding:0 20px;line-height:1.2;font-size:clamp(32px,5vw,42px)}
}
@media(max-height:520px) and (min-aspect-ratio:3/4){#portal .portal-brand{--portal-brand-height:36px;right:3vw;gap:7px}#portal .portal-brand span{font-size:29px}}

/* Additional pieces form three generous rows rather than shrinking the art. */
@media(min-width:651px){
  body:not(.reading) #unikate.expanded-collection .shop-products-scroll{display:block;container-type:size;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;padding:12px 14px 24px;margin:-12px -14px -12px;mask-image:linear-gradient(transparent,#000 12px,#000 calc(100% - 20px),transparent);-webkit-mask-image:linear-gradient(transparent,#000 12px,#000 calc(100% - 20px),transparent)}
  body:not(.reading) #unikate.expanded-collection .product-grid{flex:none;grid-template-rows:none;grid-auto-rows:max(190px,calc(100cqh - 24px * var(--display-scale,1)));row-gap:calc(38px * var(--display-scale,1));align-items:stretch}
  body:not(.reading) #unikate.expanded-collection .product-image-button{justify-self:stretch;min-width:0;max-width:100%;width:100%;height:100%;aspect-ratio:auto}
}
#unikate.expanded-collection .shop-products-scroll::-webkit-scrollbar{display:none;width:0;height:0}
@media(max-width:650px){
  body:not(.reading) #unikate.expanded-collection .product-grid{grid-template-rows:none;grid-auto-rows:auto;row-gap:30px;align-items:start}
  body:not(.reading) #kontakt .chapter-scroll{padding-top:max(calc(var(--dolphin-stage,300px) - 25px),calc(100svh - 420px - var(--dolphin-space-gain,0px)));}
  body:not(.reading) #kontakt .contact-copy{margin:0;}
}

/* The logo retraces the journey: page recedes, tunnel reverses, gate opens out. */
.departing #main{transform:scale(var(--arrival-zoom,1));transform-origin:50% 50%;animation:departure-copy .7s ease both;pointer-events:none}
.departing .site-header,.departing .orbit-dock,.departing .orbit-hint{animation:departure-copy .65s ease both;pointer-events:none}
@keyframes departure-copy{from{opacity:1}to{opacity:0}}
.portal-revisited .portal-camera,.portal-revisited .portal-backdrop{animation:none;transform:none}
.portal-revisited:not(.portal-entering) #portal-enter span{animation:none}
.portal-returning{pointer-events:none}
.portal-returning .portal-scene{transition:none;animation:portal-withdraw 1.8s cubic-bezier(.16,.7,.23,1) both}
.portal-returning #portal-mist{transition:none;animation:portal-mist-withdraw 1.8s cubic-bezier(.16,.7,.23,1) both}
@keyframes portal-withdraw{from{transform:translate(-50%,-50%) scale(12)}to{transform:translate(-50%,-50%) scale(1)}}
@keyframes portal-mist-withdraw{from{transform:scale(12)}to{transform:scale(1)}}
.portal-quiet.portal-returning .portal-scene,.portal-quiet.portal-returning #portal-mist{animation:none}
@media(prefers-reduced-motion:reduce){.departing #main,.departing .site-header,.departing .orbit-dock,.departing .orbit-hint{animation-duration:.2s}.portal-returning .portal-scene,.portal-returning #portal-mist{animation:none}}

/* Phone copy remains native scrolling, between the river and the sculpture. */
#mobile-nebula{display:none;position:fixed;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
@media(max-width:650px){
  .mobile-depth-layers #mobile-nebula{display:block}
  .mobile-depth-layers #scene,.mobile-depth-layers .dolphin-fallback{z-index:3}
  .mobile-depth-layers #main{display:contents;position:static;z-index:auto;contain:none;overflow:visible;animation:none;transform:none}
  .mobile-depth-layers #willkommen{z-index:4}
  .mobile-depth-layers.arriving .chapter>.home-copy,.mobile-depth-layers.arriving .chapter>.chapter-scroll{animation:arrival-copy 7.4s both}
  .mobile-depth-layers.departing .chapter>.home-copy,.mobile-depth-layers.departing .chapter>.chapter-scroll{animation:departure-copy .7s ease both}
  .mobile-depth-layers.arriving #main,.mobile-depth-layers.departing #main{transform:none}
  .mobile-depth-layers.arriving .home-copy{scale:var(--arrival-zoom,1)}
  .webgl-ready.arriving .orbit-dock,.webgl-ready.arriving .orbit-hint,
  .webgl-ready.departing .orbit-dock,.webgl-ready.departing .orbit-hint{animation:none;opacity:var(--nav-presence,0)}
}

/* Three pieces share each settling position. Native scrolling stays free until
   it ends; the collection then eases to the nearest complete row. */
body:not(.reading) #unikate.expanded-collection .product-grid{grid-auto-rows:var(--collection-row-height,260px)}
@media(min-width:651px){body:not(.reading) #unikate.expanded-collection .shop-products-scroll{padding-top:26px}}
@media(max-width:650px){
  body:not(.reading) #unikate .chapter-scroll{padding-top:max(160px,calc(var(--dolphin-stage,280px)*.63))}
  body:not(.reading) #unikate .shop-heading{width:62%;max-width:270px;margin:0 0 22px auto;text-align:right}
  body:not(.reading) #unikate .shop-heading h2{font-size:clamp(29px,7.7vw,36px)}
  body:not(.reading) #unikate .shop-heading>div{margin-top:14px}
  body:not(.reading) #unikate .shop-intro-more{margin-left:auto}
  body:not(.reading) #unikate.expanded-collection .product-grid{row-gap:30px;align-items:center}
  body:not(.reading) #unikate.expanded-collection .product-card{align-self:center}
}

@media(max-width:650px){
  body:not(.reading) #unikate{--shop-heading-top:calc(var(--dolphin-lower-edge,350px) - 72px)}
  body:not(.reading) #unikate>.shop-heading{position:absolute;z-index:1;top:var(--shop-heading-top);right:24px;width:62%;max-width:270px;margin:0;text-align:right;pointer-events:auto}
  body:not(.reading) #unikate>.shop-heading h2{font-size:clamp(27px,7.4vw,33px)}
  body:not(.reading) #unikate>.shop-heading>div{margin-top:17px}
  body:not(.reading) #unikate .chapter-scroll{padding-top:calc(var(--shop-heading-top) + var(--shop-heading-height,180px) - 85px + 12px)}
  .mobile-depth-layers.arriving #unikate>.shop-heading{animation:arrival-copy 7.4s both}
  .mobile-depth-layers.departing #unikate>.shop-heading{animation:departure-copy .7s ease both}
}

.header-legal{display:inline-flex;align-items:center;min-height:44px;font-family:var(--mono);font-size:13px;letter-spacing:.04em;color:#d4e2e5;transition:color .25s}
.header-legal:hover{color:var(--pearl)}
.wide-display .header-legal{font-size:calc(13px * var(--display-scale));min-height:calc(44px * var(--display-scale))}
.legal-page .info-content{padding:40px 32px 38px}
.legal-page h3{font-family:var(--sans);font-size:17px;line-height:1.4;letter-spacing:0;margin-top:30px}
.legal-page p{font-size:15px;line-height:1.8;overflow-wrap:anywhere}
.legal-page .legal-draft{color:#bce0d5;font-size:13px;padding:12px 0;border-bottom:1px solid #aacfc633}
.legal-placeholder{color:#afc5ce}
.legal-sources,.legal-back{font-family:var(--mono);font-size:12px!important}
.legal-sources a{text-decoration:underline;text-underline-offset:3px}


body.leaving-for-legal{opacity:0;transition:opacity .28s ease;pointer-events:none}
.legal-resuming body{opacity:0}
.legal-resuming #portal{visibility:hidden}
.legal-resumed{animation:legal-arrival .5s ease}
.legal-page{overflow:auto;min-height:100svh;background:#031223;animation:legal-arrival .65s ease}
#legal-stars{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.legal-header{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:max(26px,env(safe-area-inset-top)) var(--gutter) 20px}
.legal-page main{position:relative;z-index:1;max-width:780px;margin:24px auto 0;background:transparent}
.legal-page main>.eyebrow{color:#a8ded0}
.legal-back{display:inline-flex;align-items:center;min-height:44px;margin:0;white-space:nowrap;color:#d4e2e5}
.legal-footer{position:relative;z-index:1;text-align:center;padding:25px 24px max(32px,env(safe-area-inset-bottom));font:11px var(--mono);color:#94aabd}
@keyframes legal-arrival{from{opacity:0}to{opacity:1}}
.legal-page main{animation:legal-copy-arrival .65s ease both}
@keyframes legal-copy-arrival{from{translate:0 8px}to{translate:0 0}}
@media(max-width:650px){.header-legal{font-size:11px}.legal-page .info-content{padding:28px 25px}.legal-page h2{font-size:38px}.legal-header .brand span{font-size:28px}}
@media(prefers-reduced-motion:reduce){.legal-page{animation:none}body.leaving-for-legal{transition:none}}

.shop-copy-phone{display:none}
@media(max-width:650px){
  body:not(.reading) #unikate{--shop-heading-top:calc(var(--dolphin-lower-edge,350px) - 124px)}
  body:not(.reading) #unikate>.shop-heading{width:68%}
  body:not(.reading) #unikate>.shop-heading>div{width:75%;margin:12px 0 0 auto}
  body:not(.reading) #unikate .shop-copy-wide{display:none}
  body:not(.reading) #unikate .shop-copy-phone{display:inline}
  body:not(.reading) #unikate .shop-heading .shop-intro{font-size:12px;line-height:1.5}
  body:not(.reading) #unikate .shop-intro-more{margin-top:.5em}
  body:not(.reading) #unikate .chapter-scroll{top:calc(var(--shop-heading-top) + var(--shop-heading-height,180px) + 10px);bottom:calc(113px + env(safe-area-inset-bottom));padding:12px 4px 24px;mask-image:linear-gradient(transparent,#000 20px,#000 calc(100% - 20px),transparent);-webkit-mask-image:linear-gradient(transparent,#000 20px,#000 calc(100% - 20px),transparent)}
  body:not(.reading) #unikate.expanded-collection .product-card{display:grid;align-self:stretch;grid-template-rows:minmax(0,1fr) auto;min-height:0;gap:5px}
  body:not(.reading) #unikate.expanded-collection .product-image-button{height:100%;min-height:0;aspect-ratio:auto;align-self:stretch}
  body:not(.reading) #unikate.expanded-collection .product-image-button img{aspect-ratio:auto}
}

.orbit-hint #impressum-link{pointer-events:auto;display:inline-block;text-underline-offset:3px}
.orbit-hint #impressum-link:hover{text-decoration:underline;color:var(--pearl)}
.music-toggle{display:grid;place-items:center;width:40px;height:40px;flex:none;background:transparent;border:1px solid #d4e9e126;border-radius:50%;transition:background .3s,color .3s;color:#c8e2df;padding:0}
.music-toggle:hover{background:#96decb12;color:#effff9}
.music-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.music-toggle .sound-waves{display:none}
.music-toggle[data-audio-state="playing"] .sound-waves{display:block}
.music-toggle[data-audio-state="playing"] .sound-mute{display:none}
.music-toggle[data-audio-state="loading"] .sound-waves{display:block;opacity:.45}
.music-toggle[data-audio-state="loading"] .sound-mute{display:none}
@media(max-width:650px){.brand span{font-size:clamp(24px,7.2vw,30px)}.site-header .brand{gap:6px}.site-header .header-right{gap:8px}}


@media(min-aspect-ratio:3/4){
  #portal .portal-brand{right:3vw;--portal-brand-height:calc(var(--portal-brand-width)*.232)}
  #portal .portal-brand span{font-size:calc(var(--portal-brand-width)*.185)}
}
@media(max-aspect-ratio:3/4){
  #portal .portal-brand{--portal-brand-height:clamp(66px,8.7svh,98px);top:max(calc(32px + env(safe-area-inset-top)),calc(var(--portal-y) - var(--portal-radius)*1.3 - var(--portal-brand-height) - 36px))}
  #portal .portal-brand span{font-size:clamp(46px,6.5vw,76px)}
}

.portal-wordmark{display:flex;flex-direction:column;gap:5px;line-height:1}
/* Story and contact copy dissolve just beneath their shared tail position.
   Keep the original starting composition, with a smaller scrolling aperture. */
@media(max-width:650px){
  body:not(.reading) :is(#andrea,#kontakt) .chapter-scroll{--story-scroll-top:calc(var(--dolphin-story-edge,380px) - 10px);top:var(--story-scroll-top);padding-top:max(var(--story-start-clearance,30px),calc(var(--dolphin-stage,300px) + 60px - var(--story-scroll-top)),calc(100svh - var(--story-clearance) - var(--dolphin-space-gain,0px) + 85px - var(--story-scroll-top)));mask-image:linear-gradient(transparent,#000 32px,#000 calc(100% - 18px),transparent);-webkit-mask-image:linear-gradient(transparent,#000 32px,#000 calc(100% - 18px),transparent)}
  body:not(.reading) #andrea .chapter-scroll{--story-clearance:470px;--story-scroll-top:calc(var(--dolphin-story-edge,380px) - 38px);--story-start-clearance:58px}
  body:not(.reading) #kontakt .chapter-scroll{--story-clearance:420px}
}
@media(max-width:650px){
  body:not(.reading) #unikate .shop-intro-more{display:none}
  /* Row turns own vertical touch motion; Safari must not start a native pan
     before the fixed gesture animation takes over. Sideways turns stay in JS. */
  body:not(.reading) #unikate.expanded-collection .chapter-scroll{touch-action:none}
  body:not(.reading) #unikate .chapter-scroll{left:10px;right:10px;padding:26px 6px 24px}
  body:not(.reading) #unikate.expanded-collection .product-image-button img{width:calc(100% + 8px);max-width:none;margin-left:-4px}
  body:not(.reading) #unikate .product-meta{margin-top:8px}
}
