/* Timber homepage only. Every scene has a complete, readable static state. */
.timber-opening{background:var(--forest);color:var(--cream)}
.timber-opening [hidden]{display:none!important}
.timber-opening .site-header{z-index:30}
.timber-opening .site-header nav{gap:clamp(16px,2.4vw,38px)}
.motion-toggle{padding:7px 0;min-height:44px;background:none;border:0;border-bottom:1px solid #f8f2e660;color:var(--cream);font:400 11px/1.4 var(--sans);cursor:pointer}
.motion-toggle:hover{border-color:var(--cream)}
.scene-stage{position:relative;overflow:hidden;isolation:isolate}
.timber-opening .readable-copy{isolation:isolate;position:relative;z-index:3}
.timber-opening .readable-copy::before{content:'';position:absolute;z-index:-1;pointer-events:none;inset:-42px -60px;background:rgba(5,25,17,.82);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);-webkit-mask-image:radial-gradient(ellipse at center,#000 48%,transparent 74%);mask-image:radial-gradient(ellipse at center,#000 48%,transparent 74%)}
.timber-hero-scroll{position:relative}
.timber-opening .timber-hero{height:100svh;min-height:650px;max-height:none;padding:155px var(--gutter) 108px;align-items:flex-end}
.ink-photo{position:absolute;inset:0;overflow:hidden;background:var(--forest)}
.ink-photo>.cover-image{width:100%;height:100%;object-position:center;transform-origin:70% 48%}
.timber-opening .hero-shade{z-index:1;background:linear-gradient(180deg,#031c1573,transparent 28%),linear-gradient(0deg,#031c15b8,transparent 52%)}
.timber-opening .timber-hero .hero-copy{width:74%;max-width:980px}
.timber-opening .timber-hero .hero-copy::before{inset:-110px -120px -95px -170px;background:rgba(3,24,16,.86);-webkit-mask-image:radial-gradient(ellipse at 28% 57%,#000 44%,transparent 76%);mask-image:radial-gradient(ellipse at 28% 57%,#000 44%,transparent 76%)}
.timber-opening .timber-hero h1{font-size:clamp(76px,8.1vw,148px);letter-spacing:-.045em;line-height:.92}
.timber-opening .hero-subtitle{font-size:clamp(17px,1.55vw,25px);margin:24px 0 28px}
.hero-bottom-line{position:absolute;z-index:4;inset:auto var(--gutter) 28px;display:flex;justify-content:space-between;gap:24px;align-items:center;font:400 11px/1.4 var(--sans)}
.hero-bottom-line>a{margin-left:auto;padding:6px 10px;background:#06281cd9;backdrop-filter:blur(8px)}
.scroll-invitation{display:none;align-items:center;gap:13px;font-size:10px;letter-spacing:.14em;text-transform:uppercase}
.scroll-invitation>span{font-size:23px;line-height:1}
.motion-active .scroll-invitation{display:flex}

.timber-story-scroll{position:relative}
.story-stage{min-height:700px;height:100svh;display:flex;align-items:flex-end;padding:70px var(--gutter)}
.story-media{position:absolute;inset:0;overflow:hidden}
.story-room{width:100%;height:100%;object-fit:cover;object-position:50% 52%}
.story-floor-shade{position:absolute;inset:0;background:linear-gradient(0deg,#041e18c7,transparent 75%);pointer-events:none}
.story-narrative{position:relative;z-index:3;display:grid;grid-template-columns:1.2fr 1fr;gap:7%;width:100%;align-items:end}
.story-date .eyebrow{margin-bottom:10px;font-size:12px}
.story-counter{display:block;width:4ch;font:500 clamp(160px,23vw,360px)/.82 var(--serif);letter-spacing:-.065em;font-variant-numeric:lining-nums tabular-nums;margin-left:-.04em}
.story-location{font:400 11px/1.5 var(--sans);letter-spacing:.2em;text-transform:uppercase;margin-top:26px}
.story-caption{padding-bottom:5px;max-width:500px}
.story-caption h2{font-size:clamp(46px,4.3vw,76px);line-height:1}
.story-caption>p{font:400 clamp(15px,1.25vw,20px)/1.7 var(--sans);margin-top:22px;max-width:40ch}
.story-caption::before{background:rgba(4,25,17,.87)!important}

.timber-opening .timber-editorial{padding:100px var(--gutter) 110px;overflow:hidden}
.timber-editorial .section-heading{padding:0 0 35px;position:relative;align-items:flex-end;margin-bottom:35px}
.timber-editorial .section-heading::after{content:'';position:absolute;inset:auto 0 0;height:1px;background:#f8f2e655;transform-origin:left}
.timber-editorial .section-heading .eyebrow{margin-bottom:22px}
.timber-editorial h2{font-size:clamp(70px,8.3vw,154px);line-height:.93;letter-spacing:-.04em}
.editorial-line{display:block;padding-bottom:.075em;overflow:hidden}
.editorial-line>span{display:block}
.timber-editorial .editorial-intro{max-width:290px;padding:0 0 10px;flex-shrink:1!important}
.timber-editorial .editorial-intro p{font-size:16px;margin-bottom:22px!important;max-width:25ch}
.timber-editorial .editorial-intro .text-link{font:500 25px/1.2 var(--serif)}
.timber-editorial .timber-menu-grid{grid-template-columns:1.5fr 1fr 1fr;grid-template-rows:auto;gap:24px;align-items:start}
.timber-editorial .food-tile{grid-row:auto;grid-column:auto;height:clamp(320px,34vw,570px);margin-top:0}
.timber-editorial .food-tile:nth-child(2){margin-top:70px;height:clamp(285px,28vw,470px)}
.timber-editorial .food-tile:nth-child(3){margin-top:140px;height:clamp(265px,25vw,430px)}
.timber-editorial .food-tile h3{font-size:clamp(23px,2vw,34px);left:22px;right:22px;bottom:22px}
.timber-editorial .food-tile::after{inset:66% 0 0;background:linear-gradient(transparent,#041c15e6);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);-webkit-mask-image:linear-gradient(transparent,#000 65%);mask-image:linear-gradient(transparent,#000 65%)}
.timber-editorial .boat-tile img{object-position:65% center}

.timber-door-visit{position:relative;scroll-margin-top:0!important}
.visit-stage{min-height:740px;height:100svh;display:flex;align-items:flex-end;padding:65px var(--gutter)}
.visit-room{position:absolute;inset:0}
.visit-room img{object-position:50% 45%}
.shoji-doors{display:none;position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:1}
.shoji-panel{position:absolute;inset:0 auto 0 0;width:50.05%;background-image:url('assets/timber-shoji-closed.png');background-size:200% 100%;background-repeat:no-repeat;box-shadow:0 0 28px #03190f66;will-change:transform}
.shoji-left{background-position:left center}
.shoji-right{left:auto;right:0;background-position:right center}
.visit-floor-shade{position:absolute;inset:0;z-index:2;background:linear-gradient(0deg,#031e15ed 0%,#031e15db 43%,#031e1599 65%,transparent 85%);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);-webkit-mask-image:linear-gradient(0deg,#000 55%,transparent 86%);mask-image:linear-gradient(0deg,#000 55%,transparent 86%);pointer-events:none}
.visit-content{position:relative;z-index:3;display:grid;grid-template-columns:1.1fr 1fr;align-items:end;gap:10%;width:100%}
.visit-content .readable-copy::before{content:none}
.visit-invitation .eyebrow{font-size:12px;margin-bottom:20px}
.visit-invitation h2{font-size:clamp(72px,8vw,136px);line-height:.92;margin-bottom:27px}
.visit-invitation address{font-style:normal;display:flex;flex-direction:column;gap:14px;font-size:18px;line-height:1.55}
.visit-invitation address a{width:fit-content}
.visit-invitation address a:hover{text-decoration:underline;text-underline-offset:5px}
.visit-practical::before{background:rgba(4,25,17,.9)!important}
.visit-practical .hours h3{font-size:35px;margin-bottom:23px}
.visit-practical .hours dl>div{font-size:16px;gap:16px;margin-bottom:10px}
.visit-practical .closed-note{font-size:12px;margin-top:15px}
.visit-practical .actions{margin-top:27px;gap:25px}
.visit-practical .actions .button{font-size:22px}
.visit-practical .actions .text-link{font-size:16px}
.visit-practical .footer-brand{margin-top:28px;padding-top:22px}
.visit-practical .footer-brand .brand-name{font-size:32px}
.visit-practical .footer-brand .brand-line{font-size:8px}

/* Motion styles only become active when the controller is ready. */
@media(prefers-reduced-motion:no-preference) and (min-height:600px){
 .motion-active .timber-hero-scroll{height:175svh;min-height:1138px}
 .motion-active .timber-story-scroll{height:200svh;min-height:1400px}
 .motion-active .timber-door-visit{height:185svh;min-height:1369px}
 .motion-active [data-scroll-scene]>.scene-stage{position:sticky;top:0}
 .motion-active .ink-photo{-webkit-mask-image:url('assets/ink-reveal.svg');mask-image:url('assets/ink-reveal.svg');-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:calc(50% + 16vw) center;mask-position:calc(50% + 16vw) center;-webkit-mask-size:var(--ink-size,110%) var(--ink-size,110%);mask-size:var(--ink-size,110%) var(--ink-size,110%)}
 .motion-active .ink-complete .ink-photo{-webkit-mask-image:none;mask-image:none}
 .motion-active .ink-photo>.cover-image{transform:scale(var(--hero-scale,1.07)) translateY(var(--hero-drift,0px))}
 .motion-active .story-media{clip-path:inset(var(--story-inset,10%) var(--story-inset,10%) 0);transform:scale(var(--story-scale,1.08))}
 .motion-active .paint-bleed{-webkit-mask-image:url('assets/ink-reveal.svg');mask-image:url('assets/ink-reveal.svg');-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:var(--paint-origin,50% 50%);mask-position:var(--paint-origin,50% 50%);-webkit-mask-size:var(--paint-size,26%) var(--paint-size,26%);mask-size:var(--paint-size,26%) var(--paint-size,26%)}
 .motion-active .paint-complete .paint-bleed{-webkit-mask-image:none;mask-image:none}
 .motion-active .paint-base{filter:grayscale(1) contrast(.94) brightness(1.03)}
 .motion-active .paint-complete .paint-base{filter:none}

 .motion-active .story-counter{transform:translateY(var(--year-rise,24px))}
 .motion-active .story-caption{transform:translateY(var(--story-rise,28px))}
 .motion-active .editorial-line>span{transform:translateY(var(--line-one,0%))}
 .motion-active .editorial-line:nth-child(2)>span{transform:translateY(var(--line-two,0%))}
 .motion-active .timber-editorial .section-heading::after{transform:scaleX(var(--editorial-rule,1))}
 .motion-active .timber-editorial .editorial-intro{transform:translateY(var(--intro-rise,0px))}
 .motion-active .timber-editorial .food-tile{clip-path:inset(var(--tile-clip,0%) 0 0);transform:translateY(var(--tile-rise,0px))}
 .motion-active .timber-editorial .food-tile img{transform:scale(var(--tile-zoom,1))}
 .motion-active .timber-editorial .food-tile:focus-visible{clip-path:none;transform:none}
 .motion-active .shoji-doors{display:block}
 .motion-active .shoji-left{transform:translateX(var(--door-left,-101%))}
 .motion-active .shoji-right{transform:translateX(var(--door-right,101%))}
 .motion-active .visit-room{transform:scale(var(--room-scale,1))}
}
@media(min-width:1800px){.timber-opening .timber-hero{height:100svh;max-height:none}}
@media(min-width:761px) and (max-width:1100px){
 .timber-opening .site-header nav{gap:16px}.timber-opening .site-header .button{padding:11px 17px}.timber-opening .brand-name{font-size:36px}
 .timber-editorial .section-heading{display:flex!important;gap:24px}.timber-editorial .section-heading>div:last-child{display:block;margin:0;max-width:230px}.timber-editorial h2{font-size:8.7vw}.timber-editorial .editorial-intro p{font-size:14px}
 .timber-editorial .timber-menu-grid{gap:16px}.timber-editorial .food-tile h3{left:15px;right:15px;font-size:25px}
 .visit-content{gap:7%}.visit-practical .hours dl>div{font-size:13px}.visit-practical .actions{gap:16px}.visit-practical .actions .button{font-size:20px;padding:14px 20px}
}
@media(max-width:760px){
 .timber-opening .timber-hero{min-height:700px;padding:135px 24px 96px;height:100svh}
 .timber-opening .timber-hero .hero-copy{width:100%}.timber-opening .timber-hero h1{font-size:clamp(65px,14.3vw,100px)}
 .timber-opening .hero-subtitle{font-size:16px;line-height:1.5;max-width:30ch;margin:21px 0 25px}
 .timber-opening .hero-copy::before{inset:-80px -90px -70px!important;background:rgba(3,24,16,.9)!important;-webkit-mask-image:linear-gradient(0deg,transparent,#000 14%,#000 82%,transparent)!important;mask-image:linear-gradient(0deg,transparent,#000 14%,#000 82%,transparent)!important}
 .ink-photo>.cover-image{object-position:60% center}
 .hero-bottom-line{inset:auto 24px 20px;display:block;font-size:9px}.hero-bottom-line>a{display:inline-block;margin:12px 0 0;padding:4px 6px}.scroll-invitation{font-size:8px;gap:10px}.scroll-invitation>span{font-size:16px}
 .motion-toggle{font-size:12px;min-width:100px;text-align:left}
 .story-stage{min-height:700px;height:100svh;padding:50px 24px}
 .story-narrative{grid-template-columns:1fr;gap:28px}.story-counter{font-size:clamp(145px,40vw,235px)}.story-date .eyebrow{font-size:10px;margin-bottom:20px}.story-location{font-size:9px;margin-top:18px}
 .story-caption h2{font-size:43px}.story-caption>p{font-size:14px;line-height:1.65;margin-top:14px;max-width:42ch}
 .story-room{object-position:51% center}.story-floor-shade{background:linear-gradient(0deg,#041e18e6,transparent 90%)}
 .timber-opening .readable-copy::before{inset:-30px -44px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 15%,#000 85%,transparent);mask-image:linear-gradient(90deg,transparent,#000 15%,#000 85%,transparent)}
 .timber-opening .timber-editorial{padding:55px 24px 65px}.timber-editorial .section-heading{display:block;padding:0 0 24px;margin-bottom:25px}.timber-editorial h2{font-size:clamp(62px,14.8vw,105px);max-width:none}.timber-editorial .section-heading .eyebrow{font-size:10px;margin-bottom:20px}
 .timber-editorial .section-heading>div:last-child{display:block;margin-top:20px;max-width:100%}.timber-editorial .editorial-intro p{font-size:14px;max-width:none;margin-bottom:13px!important}.timber-editorial .editorial-intro .text-link{font-size:22px}
 .timber-editorial .timber-menu-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto;gap:14px}
 .timber-editorial .food-tile{height:340px;margin-top:0}.timber-editorial .boat-tile{grid-column:span 2}.timber-editorial .food-tile:nth-child(2){height:255px;margin-top:0}.timber-editorial .food-tile:nth-child(3){height:225px;margin-top:30px}.timber-editorial .food-tile h3{font-size:22px;left:12px;right:12px;bottom:16px}
 .visit-stage{min-height:820px;height:100svh;padding:40px 24px;align-items:flex-end}
 .visit-content{grid-template-columns:1fr;gap:26px}.visit-invitation .eyebrow{font-size:10px;margin-bottom:13px}.visit-invitation h2{font-size:67px;margin-bottom:20px}.visit-invitation address{font-size:15px;gap:10px}
 .visit-practical .hours h3{font-size:29px;margin-bottom:14px}.visit-practical .hours dl>div{font-size:13px;gap:12px;margin-bottom:7px}.visit-practical .closed-note{font-size:11px;margin-top:11px}.visit-practical .actions{margin-top:20px;gap:23px}.visit-practical .actions .button{font-size:20px;padding:13px 20px}.visit-practical .actions .text-link{font-size:14px}.visit-practical .footer-brand{margin-top:20px;padding-top:17px}.visit-practical .footer-brand .brand-name{font-size:28px}.visit-practical .footer-brand .brand-line{font-size:7px}
 .visit-floor-shade{background:linear-gradient(0deg,#031e15f2 0%,#031e15de 64%,#031e1599 80%,transparent);-webkit-mask-image:linear-gradient(0deg,#000 72%,transparent 96%);mask-image:linear-gradient(0deg,#000 72%,transparent 96%)}
}
@media(max-width:380px){.timber-opening .timber-hero h1{font-size:62px}.timber-opening .hero-subtitle{font-size:15px}.story-counter{font-size:142px}.timber-editorial h2{font-size:57px}.timber-editorial .food-tile h3{font-size:19px}.visit-invitation h2{font-size:59px}.visit-practical .actions{gap:17px}.visit-practical .actions .button{padding:13px 16px}}
@media(prefers-reduced-motion:no-preference) and (min-height:600px) and (max-width:760px){
 .motion-active .ink-photo{-webkit-mask-size:var(--ink-mobile-size,45%) var(--ink-mobile-size,45%);mask-size:var(--ink-mobile-size,45%) var(--ink-mobile-size,45%);-webkit-mask-position:center calc(50% - 18svh);mask-position:center calc(50% - 18svh)}
 .motion-active .timber-hero-scroll{height:165svh;min-height:1155px}
 .motion-active .timber-story-scroll{height:180svh;min-height:1260px}
 .motion-active .timber-door-visit{height:180svh;min-height:1476px}
}
@media(max-height:599px){.scroll-invitation{display:none!important}.timber-opening .timber-hero{height:auto;min-height:630px}.story-stage{height:auto;min-height:700px}.visit-stage{height:auto;min-height:760px}}
@media(prefers-reduced-motion:reduce){.scroll-invitation{display:none!important}.ink-photo,.story-media,.shoji-panel,.editorial-line>span,.food-tile,.food-tile img{transform:none!important;transition:none!important}}
