/* V30 · local review. Targeted refinements, retaining the approved framing. */
.hero-intro h1[tabindex="-1"]:focus{outline:none;box-shadow:none}
.language-switch{display:inline-flex;align-items:center;gap:6px;font:600 12px var(--body);letter-spacing:.08em}
.language-switch button{border:0;background:transparent;color:inherit;font:inherit;padding:10px 4px;min-height:36px;opacity:.55;position:relative;cursor:pointer}
.language-switch button[aria-pressed="true"]{opacity:1}
.language-switch button[aria-pressed="true"]:after{content:"";position:absolute;bottom:5px;height:1px;background:currentColor;left:4px;right:4px}
.language-switch button:focus-visible{outline:1px solid currentColor;outline-offset:2px}
.language-switch>span{opacity:.35}
#header .header-language{position:absolute;right:3.5%;top:28px;color:var(--ink)}
#header nav{max-width:calc(100% - 330px)}
.entry-header .entry-origin{margin-right:98px}
.entry-language{position:absolute;right:5%;color:var(--ink)}
.footer-language{color:var(--cream)}
#age-entry .entry-submit{position:relative;align-items:center;gap:15px}
.entry-button-icon{position:relative;display:block;width:36px;height:44px;flex:0 0 36px}
.entry-button-icon svg{position:absolute;inset:0;width:100%;height:100%;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;transition:opacity .45s,transform .65s}
#age-entry .entry-invitation-icon{opacity:0;transform:translateX(-6px)}
#age-entry.age-ready .entry-lock{opacity:0;transform:translateY(-5px) rotate(-8deg)}
#age-entry.age-ready .entry-invitation-icon{opacity:1;transform:none;animation:rio-invitation 3.5s ease-in-out infinite}
#age-entry .entry-age-hint{font:400 12px/1.5 var(--body);margin:10px 0 14px;opacity:.65;min-height:18px}
#age-entry .entry-age-row:after{content:"";position:absolute;left:0;bottom:-1px;width:22%;height:2px;background:currentColor;transform-origin:left;animation:age-underline 3s ease-in-out infinite;opacity:.5}
#age-entry .entry-age-row{position:relative}
#age-entry.age-ready .entry-age-row:after{animation:none;width:100%;opacity:.75;transition:width .45s}
#age-entry .entry-eligibility{font:400 11px/1.65 var(--body);margin:16px 0 0;color:var(--ink);opacity:.8}
#age-entry .entry-eligibility span{opacity:.65}
#age-entry .entry-footer{justify-content:flex-end}

#age-entry #entry-message:empty{display:none}
#home .hero-side .hero-quote{display:flex;gap:.3em;white-space:nowrap;font-style:normal;font-size:clamp(14px,1.25vw,19px)!important;letter-spacing:.015em}
.quote-rotation{display:inline-grid;position:relative;text-align:left}
.quote-rotation>span{grid-area:1/1;animation:quote-drink 8s ease-in-out infinite}
.quote-rotation>.quote-fly{animation-name:quote-fly}
#home:not(.scene-near) .quote-rotation>span{animation-play-state:paused}
@keyframes quote-drink{0%,38%{opacity:1;transform:none}45%,92%{opacity:0;transform:translateY(-.3em)}100%{opacity:1;transform:none}}
@keyframes quote-fly{0%,38%{opacity:0;transform:translateY(.3em)}45%,86%{opacity:1;transform:none}94%,100%{opacity:0;transform:translateY(-.3em)}}
@keyframes age-underline{0%,100%{transform:scaleX(.35);opacity:.2}50%{transform:scaleX(1);opacity:.7}}
@keyframes rio-invitation{0%,60%,100%{translate:0 0}75%{translate:4px 0}85%{translate:0 0}}
#rio.scene-near .album-exit .cane-link-mark{animation:cane-sway 4.5s ease-in-out infinite;transform-origin:50% 100%}
#craft .colinas-contours path{stroke-width:1.2;opacity:.55}
#craft .colinas-contours path:first-child{stroke-width:2.6;opacity:.8}
#craft .colinas-contours path:nth-child(3){stroke-width:1.7;opacity:.6}
#craft .colinas-contours path:last-child{stroke-width:.75;opacity:.35}
#craft .colinas-botanical{stroke-width:.85;opacity:calc(var(--growth)*.58)}
#craft .colinas-botanical g:nth-child(3n){stroke-width:.65;opacity:.7}
#craft .colinas-botanical g:nth-child(5n){stroke-width:1;opacity:.8}
/* Fixed pigment layers avoid changing a large, masked blend surface every frame. */
#woods .cellar-tint{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .65s ease;will-change:opacity;background:linear-gradient(var(--tone),var(--tone));mix-blend-mode:soft-light}
#woods .cellar-tint:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 13.45% 14.35% at 62.5% 10.1%,var(--tone),transparent);opacity:.7}
#woods .cellar-tint.is-active{opacity:.48}
#woods .wood-heading h2 span,#woods .wood-flavors,#woods .wood-notes h3,#woods .wood-notes .text-link{transition:color .65s ease}
#woods .wood-notes{overflow-anchor:none}
#woods .wood-notes h3{min-height:1.15em}
#wood-description{min-height:5.2em}
#wood-process{min-height:3.5em}
/* A short natural pin, without intercepting wheel, touch or keyboard scrolling. */
#expressions{height:128svh;min-height:0;padding:0;overflow:visible;background:var(--expression-color,#b9d9d8)}
#expressions .expression-pin{position:sticky;top:0;height:100svh;min-height:640px;overflow:clip;padding:0 4.8%;background:inherit}
#expressions .expression-pin:after{content:"";position:absolute;left:4.8%;right:4.8%;bottom:100px;height:1px;background:#19263245;z-index:1;pointer-events:none}
#expressions .expression-picker{border-top:0}
#expressions .expression-bottle{z-index:2}
#expressions .expression-picker{z-index:5}
html[lang="pt-BR"] .bar-copy>.eyebrow{gap:8px 18px}
html[lang="pt-BR"] .cane-copy h2{font-size:clamp(52px,5.4vw,84px)}
html[lang="pt-BR"] .hero-intro h1{letter-spacing:-.06em}
@media(max-width:760px){
 #header .header-language{top:19px;right:74px;font-size:11px}
 #header nav{max-width:none}
 .entry-header .entry-origin{display:none}
 .entry-language{right:6%;top:20px}
 
 #age-entry .entry-age-hint{margin:6px 0;font-size:11px}
 #age-entry .entry-eligibility{font-size:10px;margin:8px 0 0}
 #age-entry .entry-footer{display:none}
 #home .hero-side .hero-quote{font-size:13px!important;white-space:normal;gap:.25em}
 #home .quote-rotation{min-width:0}
 #expressions{height:122svh;min-height:0}
 #expressions .expression-pin{padding:0 6%;min-height:700px}
 #expressions .expression-pin:after{display:none}
 #expressions .expression-picker{border-top:1px solid #19263245}
 #wood-description,#wood-process{min-height:0}
 html[lang="pt-BR"] #craft .cane-copy h2{font-size:clamp(37px,10.5vw,52px)}
}
@media(max-height:700px){#expressions{height:auto;min-height:0}#expressions .expression-pin{position:relative;height:max(100svh,700px)}}
@media(prefers-reduced-motion:reduce){
 #age-entry .entry-age-row:after,#age-entry.age-ready .entry-invitation-icon,#rio.scene-near .album-exit .cane-link-mark,.quote-rotation>span{animation:none}
 .quote-rotation>.quote-drink{display:none}.quote-rotation>.quote-fly{opacity:1}
 #woods .cellar-tint{transition:none}
 #expressions{height:auto}#expressions .expression-pin{position:relative}
}
body.reduce-motion #expressions{height:auto}
body.reduce-motion #expressions .expression-pin{position:relative}
@media(min-width:761px){#age-entry .entry-copy{top:49%}.entry-language{right:0}#age-entry .entry-responsible{color:var(--ink);opacity:.7}}
.language-switch{pointer-events:auto}
#age-entry:not([data-phase="age"]) .entry-language{visibility:hidden;pointer-events:none}
@media(min-width:761px){#woods #wood-description{min-height:8em}#woods #wood-process{min-height:3.5em}}
#woods:not(.scene-near) .cellar-tint{will-change:auto}
@media(max-width:760px){
 #expressions .expression-stage{height:calc(100% - 98px)!important;min-height:0;grid-template-rows:auto minmax(0,1fr);padding:26px 0 0}
 #expressions .expression-left{padding-top:0}
 #expressions .expression-bottle{height:clamp(275px,43svh,400px);align-self:end}
 #expressions .expression-picker{position:absolute;left:6%;right:6%;bottom:12px;top:auto;margin:0}
 #expressions .expression-right{align-self:center}
}
@media(max-width:760px) and (max-height:700px){#expressions .expression-pin{height:820px}}
#expressions{scroll-margin-top:0}
@media(max-width:960px) and (max-height:500px) and (orientation:landscape){
 #age-entry .entry-copy{top:13%;transform:none}
 #age-entry .entry-age-hint{font-size:10px;margin:3px 0}
 #age-entry .entry-eligibility{font-size:9px;margin-top:6px}
 #age-entry .entry-submit{min-height:35px}
 #age-entry .entry-footer{display:none}
}
@media(max-width:760px) and (max-height:700px){
 #age-entry #entry-message{font-size:11px;line-height:1.4;min-height:0;margin:7px 0 0}
 #age-entry .entry-eligibility{font-size:9px;line-height:1.45;margin-top:6px}
}
