@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap');
:root{--paper:#fbf3ed;--plum:#551329;--plum-deep:#381020;--tomato:#e65327;--ink:#351c25;--muted:#8c7471;--line:rgba(85,19,41,.2);--serif:"Playfair Display",Georgia,serif;--sans:"DM Sans","Segoe UI",sans-serif;--ease:cubic-bezier(.2,.7,.2,1)}
*{box-sizing:border-box}
html{scroll-behavior:auto;background:var(--paper)}
body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);-webkit-font-smoothing:antialiased}
body,button,a{-webkit-tap-highlight-color:transparent}
a{color:inherit}
.webgl-canvas{position:fixed;inset:0;z-index:2;width:100vw;height:100vh;pointer-events:none;opacity:0;transition:opacity .7s ease}
.scene-ready .webgl-canvas{opacity:1}
.scene-loading{position:absolute;z-index:6;left:50%;top:66%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:10px;color:var(--paper);font-size:8px;font-weight:600;letter-spacing:.17em;white-space:nowrap;transition:opacity .35s ease}
.scene-loading p{margin:0}
.loading-mark{width:16px;height:16px;border:1px solid rgba(251,243,237,.35);border-top-color:#f7b18d;border-radius:50%;animation:loading-turn .8s linear infinite}
#scene-loading-progress{color:#edaa91;font-variant-numeric:tabular-nums}
@keyframes loading-turn{to{transform:rotate(360deg)}}
.skip-link{position:fixed;left:16px;top:-50px;z-index:30;padding:12px 18px;background:var(--paper);border-radius:30px}.skip-link:focus{top:16px}
.experience{height:1000svh;position:relative;background:transparent}
.scene-frame{height:100svh;min-height:640px;position:sticky;top:0;z-index:3;isolation:isolate;overflow:hidden;background:transparent;outline:none}
.scene-backdrop{position:absolute;z-index:0;inset:0;background:radial-gradient(ellipse at 52% 34%,#fffaf5 0,#fbf3ed 47%,#f1e5dc 100%)}
.topbar{height:118px;position:absolute;z-index:8;inset:0 0 auto;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:start;padding:27px 2.4vw}
.language-pair{justify-self:start;display:flex;align-items:center;gap:5px;color:var(--plum);text-decoration:none;font-size:11px;font-weight:600;letter-spacing:.04em}
.language-pair span,.language-pair strong{width:38px;height:38px;border:1px solid rgba(85,19,41,.25);border-radius:50%;display:grid;place-items:center;font-weight:600}
.language-pair strong{color:var(--paper);background:var(--tomato);border-color:var(--tomato)}
.wordmark{justify-self:center;display:flex;align-items:center;flex-direction:column;text-decoration:none;color:var(--plum);gap:1px}
.wordmark-mark{width:39px;height:32px;color:var(--tomato)}
.wordmark>span{font-family:var(--serif);font-size:20px;line-height:1.05;letter-spacing:.04em}
.wordmark small{font-size:8px;letter-spacing:.28em;margin-top:4px}
.top-actions{justify-self:end;display:flex;align-items:center;gap:7px}
.concept-note{font-size:8px;font-weight:600;letter-spacing:.16em;color:var(--muted);margin-right:16px}
.menu-link,.menu-dot{height:38px;border:1px solid rgba(85,19,41,.35);border-radius:24px;display:grid;place-items:center;text-decoration:none;font:600 10px/1 var(--sans);letter-spacing:.1em;color:var(--plum)}
.menu-link{padding:0 17px}
.menu-dot{width:38px;background:var(--tomato);border-color:var(--tomato);color:var(--paper);font-size:17px}
.orbit-disc{position:absolute;z-index:1;width:119vw;height:113vh;min-height:780px;left:-9.5vw;bottom:-71vh;border-radius:50% 50% 0 0/35% 35% 0 0;background:var(--plum);transform:rotate(-2deg);will-change:background-color}
.orbit-type{position:absolute;left:0;width:100%;height:54%;top:0;overflow:visible}
.orbit-type text{fill:var(--tomato);font:500 77px var(--serif);letter-spacing:.015em}
.hero-copy{position:absolute;z-index:5;left:50%;bottom:11%;transform:translateX(-50%);width:min(430px,68vw);min-height:142px;color:var(--paper);text-align:center;pointer-events:none}
.copy-panel{position:absolute;inset:0;display:flex;align-items:center;flex-direction:column;justify-content:flex-start;padding:4px 0;will-change:transform,opacity}
.copy-panel>p{margin:0 0 8px;color:#edaa91;font-size:9px;font-weight:600;letter-spacing:.2em}
.copy-panel h2{margin:0;font:500 clamp(30px,3vw,43px)/1.04 var(--serif);letter-spacing:-.025em}
.copy-panel>span{margin-top:5px;color:#f1d6ca;font:italic 15px var(--serif)}
.copy-panel>small{margin-top:7px;color:#e0c6c0;font:400 10px var(--sans);letter-spacing:.04em}
.hero-controls{position:absolute;z-index:7;left:0;right:0;top:52%;display:flex;align-items:center;justify-content:space-between;padding:0 4vw;pointer-events:none}
.hero-arrow{width:47px;height:47px;display:grid;place-items:center;border:1px solid rgba(85,19,41,.3);border-radius:50%;background:rgba(251,243,237,.82);backdrop-filter:blur(6px);color:var(--plum);font-size:22px;cursor:pointer;transition:background .2s,color .2s,transform .2s;pointer-events:auto}
.hero-arrow:hover{background:var(--tomato);color:white;transform:scale(1.06)}
.active-readout{margin:0}
.hero-rail{position:absolute;z-index:6;top:50%;left:4.5vw;display:flex;align-items:center;gap:12px;writing-mode:vertical-rl;transform:translateY(-50%);color:var(--plum);font-size:7px;font-weight:600;letter-spacing:.18em}
.rail-line{width:1px;height:28px;background:var(--tomato)}
.scene-progress{position:absolute;z-index:7;left:50%;bottom:7%;width:min(330px,46vw);height:1px;transform:translateX(-50%);background:rgba(251,243,237,.25);overflow:hidden}
.scene-progress span{display:block;width:100%;height:100%;background:#f7b18d;transform:scaleX(0);transform-origin:left center}
.scroll-cue{position:absolute;z-index:7;bottom:25px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--paper);font-size:8px;letter-spacing:.2em;font-weight:600;white-space:nowrap}
.scroll-line{width:30px;height:1px;background:var(--tomato)}
.concept-stamp{position:absolute;z-index:7;right:3.3vw;bottom:21px;color:rgba(251,243,237,.7);font-size:7px;line-height:1.55;letter-spacing:.14em;text-align:right}
.collection{padding:116px 5.2vw 100px;background:var(--paper);position:relative;z-index:3}
.micro-label{margin:0;font-size:9px;font-weight:600;letter-spacing:.2em;line-height:1.5;color:var(--tomato)}
.collection-heading{display:grid;grid-template-columns:1fr auto;align-items:end;gap:14px;margin:0 auto 38px;max-width:1500px}
.collection-heading .micro-label{grid-column:1/-1}
.collection-heading h2{margin:0;color:var(--plum);font:400 clamp(43px,6vw,86px)/.98 var(--serif);letter-spacing:-.055em}
.collection-heading h2 em{color:var(--tomato);font-weight:400}
.collection-heading>p:last-child{margin:0 0 7px;color:var(--muted);font-size:12px}
.flavour-nav{max-width:1500px;margin:auto;display:grid;grid-template-columns:repeat(10,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.flavour-button{appearance:none;min-height:65px;padding:8px 5px;border:0;border-right:1px solid var(--line);background:transparent;color:var(--muted);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;cursor:pointer;font:500 9px var(--sans);transition:background .2s,color .2s}
.flavour-button:last-child{border-right:0}
.flavour-button:hover,.flavour-button.is-active{background:#f1e3da;color:var(--plum)}
.flavour-swatch{width:7px;height:7px;border-radius:50%;background:var(--swatch);box-shadow:0 0 0 3px color-mix(in srgb,var(--swatch) 18%,transparent)}
.flavour-button.is-active .flavour-swatch{box-shadow:0 0 0 5px color-mix(in srgb,var(--swatch) 19%,transparent)}
.flavour-number{font-size:8px;letter-spacing:.12em;color:#a28b85}
.product-focus{max-width:1500px;margin:92px auto 110px;display:grid;grid-template-columns:.72fr 1.28fr;gap:6vw;align-items:center}
.focus-copy{padding:0 5%}
.focus-number{margin:28px 0 8px;color:var(--tomato);font-size:10px;letter-spacing:.2em}
.focus-copy h3{margin:0;color:var(--plum);font:400 clamp(37px,4vw,62px)/1.02 var(--serif);letter-spacing:-.045em}
.focus-translation{margin:10px 0 21px;color:#805c63;font:italic 17px var(--serif)}
.focus-note{max-width:250px;color:var(--ink);font-size:13px;line-height:1.7}
.concept-disclaimer{max-width:290px;margin-top:45px;padding-top:14px;border-top:1px solid var(--line);font-size:9px;line-height:1.6;color:var(--muted)}
.campaign-frame{margin:0;position:relative;background:var(--plum);overflow:hidden;border-radius:3px}
.campaign-frame img{display:block;width:100%;height:min(70vw,690px);max-height:75vh;object-fit:cover;object-position:center 46%;transition:opacity .25s}
.campaign-frame figcaption{position:absolute;inset:auto 0 0;display:flex;justify-content:space-between;gap:20px;padding:17px 20px;background:linear-gradient(transparent,rgba(46,11,27,.75));color:#fff7ef;font-size:8px;letter-spacing:.15em}
.range-track{max-width:1500px;margin:auto}
.range-track-label{display:flex;justify-content:space-between;padding:0 0 13px;border-bottom:1px solid var(--line);color:var(--muted);font-size:8px;font-weight:600;letter-spacing:.18em}
.product-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:17px;margin-top:19px}
.product-card{appearance:none;text-align:left;padding:0;border:0;background:transparent;color:var(--plum);cursor:pointer}
.card-image{display:block;position:relative;overflow:hidden;background:#eee1d8;aspect-ratio:1.12}
.card-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s var(--ease),filter .4s}
.product-card:hover .card-image img{transform:scale(1.035)}
.card-swatch{position:absolute;right:12px;bottom:12px;width:13px;height:13px;border:2px solid var(--paper);border-radius:50%;background:var(--swatch)}
.card-copy{position:relative;display:block;padding:11px 26px 0 0}
.card-name{display:block;font:500 16px var(--serif)}
.card-english{display:block;margin-top:3px;color:var(--muted);font-size:10px}
.card-arrow{position:absolute;right:2px;top:16px;color:var(--tomato);font-size:16px}
.product-card.is-active .card-name{color:var(--tomato)}
.site-footer{min-height:95px;padding:23px 5.2vw;background:var(--plum);color:var(--paper);display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:8px;letter-spacing:.17em}
.site-footer a{text-decoration:none}
.footer-wordmark{font:500 17px var(--serif);letter-spacing:.06em}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1800px){.scene-frame{max-height:1100px}.hero-copy{bottom:10%}}
@media(max-width:1050px){.concept-note{display:none}.orbit-disc{width:140vw;left:-20vw}.flavour-nav{grid-template-columns:repeat(5,1fr)}.flavour-button:nth-child(5){border-right:0}.flavour-button:nth-child(-n+5){border-bottom:1px solid var(--line)}.product-focus{grid-template-columns:.8fr 1.2fr;gap:3vw}.product-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}}
@media(max-width:700px){.experience{height:1000svh}.scene-frame{min-height:600px}.topbar{height:87px;padding:16px 14px;grid-template-columns:1fr 1fr 1fr}.language-pair span,.language-pair strong{width:31px;height:31px;font-size:9px}.wordmark-mark{width:30px;height:23px}.wordmark>span{font-size:16px}.wordmark small{font-size:6px}.menu-link{height:31px;padding:0 10px;font-size:7px}.menu-dot{height:31px;width:31px;font-size:14px}.top-actions{gap:5px}.orbit-disc{height:100vh;min-height:690px;width:186vw;left:-43vw;bottom:-66vh}.orbit-type{width:99%;left:.5%;top:8%;height:48%}.orbit-type text{font-size:65px}.hero-copy{bottom:12%;width:75vw;min-height:125px}.copy-panel>p{font-size:7px}.copy-panel h2{font-size:28px}.copy-panel>span{font-size:13px}.copy-panel>small{font-size:9px}.hero-controls{top:52%;padding:0 3vw}.hero-arrow{height:36px;width:36px;font-size:17px}.hero-rail{left:2.3vw;font-size:6px}.scene-progress{bottom:8%;width:40vw}.scroll-cue{bottom:13px;font-size:7px}.concept-stamp{right:4vw;bottom:13px;font-size:6px}.collection{padding:77px 6vw 64px}.collection-heading{display:block;margin-bottom:27px}.collection-heading h2{margin-top:12px;font-size:52px}.collection-heading>p:last-child{margin-top:12px;font-size:11px}.flavour-nav{grid-template-columns:repeat(5,minmax(0,1fr))}.flavour-button{min-height:58px;font-size:8px}.flavour-button:nth-child(5){border-right:0}.flavour-button:nth-child(10){border-right:0}.product-focus{margin:58px auto 65px;grid-template-columns:1fr;gap:24px}.focus-copy{padding:0}.focus-number{margin:19px 0 5px}.focus-copy h3{font-size:47px}.focus-translation{margin:6px 0 14px;font-size:15px}.concept-disclaimer{margin-top:23px}.campaign-frame img{height:115vw;max-height:560px}.campaign-frame figcaption{padding:12px;flex-direction:column;gap:4px;font-size:7px}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:19px 12px}.card-name{font-size:15px}.site-footer{padding:22px 6vw;min-height:80px;font-size:6px;letter-spacing:.08em}.footer-wordmark{font-size:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}.experience{height:100svh}.webgl-canvas{opacity:.75}}
@media(max-width:700px){.scene-loading{top:64%;font-size:7px;gap:7px}.loading-mark{width:13px;height:13px}}

/* Approved Blender master; collection images remain separate from the 3D view. */
[hidden]{display:none!important}
.experience{height:320svh}
.experience.is-reduced-motion{height:100svh}
.scene-frame{min-height:0;height:100svh;max-height:none}
.webgl-canvas{position:absolute;width:100%;height:100%}
.model-fallback{position:absolute;z-index:2;left:50%;top:12%;transform:translateX(-50%);height:54%;max-width:75%;object-fit:contain}
.model-error .webgl-canvas{display:none}
.model-error .scene-loading{white-space:normal;text-align:center;color:var(--plum);top:70%;width:80%;justify-content:center}
.motion-debug{position:absolute;z-index:20;left:12px;top:110px;background:#fff;padding:9px;font:12px monospace}
.hero-copy,.hero-rail,.hero-controls,.concept-stamp{display:none}
.orbit-disc{width:78vw;height:78vw;left:11vw;bottom:calc(-78vw + 58vh);border-radius:46%;min-height:0;transform-origin:50% 50%}
.orbit-type{height:54%;top:3%}
.scroll-cue{bottom:25px}
.scene-backdrop{background:#fbf3ed}
.experience{height:100svh}
.scene-frame{position:relative;touch-action:none}
.orbit-disc,.scene-progress{display:none}
.scene-loading{top:92%;color:#f7e8db;z-index:7}
.scroll-cue{z-index:6;bottom:26px;color:#fbf3ed}
.scroll-line{display:none}
.topbar{z-index:8}
.webgl-canvas{transition:opacity .4s ease}
.campaign-frame img,.card-image img{object-fit:contain}
@media(prefers-reduced-motion:reduce){.experience{height:100svh}.webgl-canvas{opacity:1}}
