/* V7: photographic scenes, paper, gallery and printed ephemera. */

/* Hero photographs move beneath a stable foreground. */
.hero-scene{position:absolute;inset:0;opacity:0;transition:opacity var(--scene-fade,1200ms) linear;overflow:hidden}
.hero-scene.is-current{opacity:1}
.hero-scene picture,.hero-scene img{display:block;width:100%;height:100%}
.hero-scene img{object-fit:cover;object-position:center}
.hero-logo{transform:none!important;transition:none!important}
.hero-content .opening-status{display:table;margin:14px auto 17px;color:var(--cream);border:1px solid #fff5;background:#071d3a8c;font-size:11px;padding:8px 13px;border-radius:30px;line-height:1.5}
.opening-status:before{content:'';display:inline-block;width:7px;height:7px;margin-right:9px;border-radius:50%;background:#c1a99b;vertical-align:1px}
.opening-status[data-open=true]:before{background:#a7e6b1;box-shadow:0 0 0 4px #a7e6b118}
.visit-panel .opening-status{font-size:12px;line-height:1.7;margin:18px 0;color:var(--navy)}
.visit-panel .opening-status[data-open=true]:before{background:#27723d}

/* A real photograph and a note from the people behind it. */
.home-about{position:relative;background:var(--cream)}
.home-about .about-heading{margin-bottom:54px}
.about-small-line{font-size:12px;letter-spacing:.03em;padding-bottom:8px;border-bottom:2px solid var(--red)}
.home-about .about-editorial{grid-template-columns:1.15fr 1fr;gap:0;align-items:center}
.home-about .about-people{position:relative;z-index:1;transform:rotate(-1.2deg);margin-right:-20px}
.home-about .about-people picture{padding:12px 12px 0;background:#fff;box-shadow:0 15px 35px #0b2d5b13}
.home-about .about-people img{aspect-ratio:5/5.4;object-position:center}
.home-about .about-people figcaption{background:#fff;padding:15px 18px 19px;color:var(--navy)}
.home-about .about-note{position:relative;padding:105px 42px 40px 60px;background:linear-gradient(120deg,#f1e8d8,#f8f0e3);transform:rotate(1.1deg);box-shadow:0 20px 45px #0b2d5b0e;margin:28px 0 0;z-index:2;border:1px solid #dcd0bd}
.about-note:before{content:'';position:absolute;left:10px;top:0;bottom:0;border-left:1px solid #d71e281a}
.home-about .opening-stamp{position:absolute;right:28px;top:22px;color:#b21e26;border:2px solid currentColor;padding:8px 13px;transform:rotate(-7deg);text-align:center;font-size:8px;letter-spacing:.13em;line-height:1.6}
.opening-stamp strong{display:block;font:400 21px/1.2 var(--display);letter-spacing:.02em}
.opening-stamp small{font-size:6px}
.home-about .note-greeting{font:400 30px/1.1 var(--display);text-transform:uppercase;color:var(--navy);margin-bottom:23px;max-width:250px}
.home-about .about-opening{font-size:18px;line-height:1.7}
.home-about .about-copy{font-size:15px;line-height:1.85;color:#43516a}
.home-about .note-signoff{font-size:15px;font-weight:600;color:var(--navy);margin:28px 0 0;padding-top:18px;border-top:1px solid #0b2d5b25}
.about-below{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-top:45px}
.about-below .about-facts{margin:0;padding:0;border:0}
.about-below .social-links{margin:0}

/* The six-cut chapter. Only the window clips; the sticky ancestors do not. */
.home-gallery{background:#eee9e2;position:relative}
.gallery-stage{padding:90px 0 45px}
.featured-track{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 22px}
.featured-track .cut-card{min-width:0;margin:0;padding:0}
.featured-track .cut-card img{width:100%;aspect-ratio:4/5;object-fit:cover}
.featured-track .cut-caption{font-size:11px;padding-top:13px}
.gallery-controls{display:flex;gap:25px;align-items:center;margin-top:25px}
.gallery-arrows{display:flex;align-items:center;gap:18px;flex-shrink:0}
.gallery-arrows button{border:1px solid #0b2d5b4d;border-radius:50%;width:44px;height:44px;background:transparent;color:var(--navy);font-size:20px;transition:background .2s,color .2s}
.gallery-arrows button:hover{background:var(--navy);color:var(--cream)}
.featured-count{font-size:10px;font-variant-numeric:tabular-nums;letter-spacing:.08em}
.featured-progress{height:2px;background:#0b2d5b26;flex:1}
.featured-progress i{display:block;height:100%;background:var(--red);transform:scaleX(0);transform-origin:left}
.gallery-controls .button{min-height:48px;padding:12px 18px;gap:20px}
.gallery-controls .button-label{font-size:10px}
.gallery-expanded{padding-bottom:80px}
.gallery-expanded .cut-card:first-child{grid-column:auto}
.gallery-expanded .cut-card:first-child img{aspect-ratio:4/5}
.all-gallery-link{text-align:center;margin-top:35px}
.gallery-enhanced .featured-window{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin}
.gallery-enhanced .featured-track{display:flex;gap:24px;width:max-content}
.gallery-enhanced .featured-track .cut-card{width:min(38vw,520px);flex:none}
.gallery-pin-ready .gallery-chapter{--gallery-stage:calc(100svh - var(--header) - env(safe-area-inset-top,0px));height:calc(var(--gallery-stage) + 180svh)}
.gallery-pin-ready .gallery-stage{position:sticky;top:calc(var(--header) + env(safe-area-inset-top,0px));height:var(--gallery-stage);padding:28px 0 24px}
.gallery-pin-ready .gallery-stage-inner{height:100%;display:flex;flex-direction:column}
.gallery-pin-ready .gallery-stage .section-head{margin-bottom:23px;gap:35px}
.gallery-pin-ready .gallery-stage h2{font-size:clamp(38px,4.2vw,60px);line-height:1}
.gallery-pin-ready .gallery-stage h2 br{display:none}
.gallery-pin-ready .gallery-stage .eyebrow{margin-bottom:11px}
.gallery-pin-ready .gallery-stage .lede{font-size:13px;line-height:1.7}
.gallery-pin-ready .featured-window{flex:1;min-height:0;overflow:hidden;touch-action:pan-y}
.gallery-pin-ready .featured-track{height:100%}
.gallery-pin-ready .featured-track .cut-card{height:100%;display:flex;flex-direction:column}
.gallery-pin-ready .featured-track .image-link{flex:1;min-height:0;display:block;overflow:hidden}
.gallery-pin-ready .featured-track picture,.gallery-pin-ready .featured-track img{height:100%;width:100%}
.gallery-pin-ready .featured-track img{aspect-ratio:auto;object-fit:cover;object-position:center 35%}
.gallery-pin-ready .gallery-controls{margin-top:20px}

/* Loyalty uses the supplied printed design with accessible live text. */
.home .shop-feature,.home .loyalty-section,.home .visit-section{content-visibility:auto;contain-intrinsic-size:auto 1100px}
@media print{.home .shop-feature,.home .loyalty-section,.home .visit-section{content-visibility:visible;contain-intrinsic-size:none}}
.loyalty-section{position:relative;background:var(--navy);color:var(--cream);isolation:isolate}
.loyalty-section:before{content:'';position:absolute;inset:0;z-index:-1;opacity:.18;background:repeating-linear-gradient(135deg,transparent 0 36px,#d7dadf15 37px 38px,transparent 39px 74px)}
.loyalty-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:8%;align-items:center}
.loyalty-copy h2{font-size:clamp(48px,5.5vw,76px)}
.loyalty-copy .lede{font-size:19px;margin-top:25px;max-width:340px;color:var(--cream)}
.loyalty-terms{font-size:11px;line-height:1.8;margin-top:18px;max-width:300px;color:#c2ccda}
.reward-card{background:#fff9f2;color:var(--navy);padding:32px;box-shadow:12px 14px 0 #0002;transform:rotate(-2deg);border-top:4px solid var(--red);position:relative}
.reward-card:after{content:'';position:absolute;inset:9px;pointer-events:none;border:1px solid #0b2d5b25}
.reward-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px}
.reward-top img{width:150px;height:auto}
.reward-top>span{font-size:8px;line-height:1.8;letter-spacing:.08em;text-align:right}
.reward-stamps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px}
.loyalty-stamp{display:flex;flex-direction:column;align-items:center;justify-content:center;aspect-ratio:1;border:1px dashed #0b2d5b66;border-radius:50%;color:var(--navy);position:relative;background:#f2e9db}
.loyalty-stamp>.icon{width:27px;height:27px}
.loyalty-stamp small{font-size:9px;line-height:1.4;margin-top:4px}
.free-stamp{background:var(--red);border-color:var(--red);color:var(--cream)}
.free-stamp strong{font:400 36px/1 var(--display)}
.free-stamp small{font-size:7px;letter-spacing:.06em}
.reward-footer{display:flex;justify-content:space-between;gap:16px;margin-top:25px;padding-top:15px;border-top:1px solid #0b2d5b33;font-size:8px;letter-spacing:.06em}

/* A dimensional business card. The practical actions remain on a stable panel. */
.visit-panel .social-links{margin-top:24px;font-size:11px}
.business-experience{position:relative;margin:100px auto 0;max-width:100%;text-align:center;padding:0 15px 35px;--card-shadow:.16}
.business-caption .eyebrow{justify-content:center;margin-bottom:12px}
.business-caption>span{font:400 clamp(30px,4vw,48px)/1.1 var(--display);text-transform:uppercase}
.business-perspective{perspective:1100px;max-width:540px;margin:48px auto 20px}
.business-card{display:grid;gap:20px;text-align:left;width:100%;position:relative}
.business-face{width:100%;min-width:0;max-width:100%;padding:32px 36px;aspect-ratio:1.75;border-radius:5px;border:1px solid #0b2d5b26;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;box-shadow:0 25px 45px #0b2d5b26}
.business-front{background:var(--navy);color:var(--cream);border-bottom:4px solid var(--red)}
.business-front img{width:55%;height:auto;max-height:135px;object-fit:contain}
.business-front p{font:400 clamp(20px,2.8vw,32px)/1.1 var(--display);text-transform:uppercase}
.business-front>span{font-size:8px;letter-spacing:.13em}
.business-back{background:var(--cream);color:var(--navy);display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:8px 16px}
.business-back .card-back-label{grid-column:1/-1;grid-row:1}
.business-back>strong{grid-column:1;grid-row:2}
.business-back>span:not(.card-social){grid-column:1;grid-row:3}
.business-back .card-hours{grid-column:2;grid-row:2/4}
.business-back .card-social{grid-column:1/-1;grid-row:4}
.business-back .card-hours>div{display:block}
.card-back-label{font-size:8px;letter-spacing:.13em;text-transform:uppercase;border-bottom:2px solid var(--red);padding-bottom:8px}
.business-back strong{font:400 25px/1.1 var(--display);text-transform:uppercase}
.business-back>span{font-size:12px}
.business-back .card-social{font-size:9px;line-height:1.7;color:#43516a}
.card-hours{width:100%;gap:5px;margin:0;padding-block:10px;border-block:1px solid #0b2d5b26;font-size:11px}
.card-hours dd{font-size:inherit}
.visit-details,.visit-details>div,.visit-details dd{min-width:0}
.visit-details .visit-hours>div{flex-wrap:wrap;gap:4px 10px}
.card-3d-ready .business-card{display:block;aspect-ratio:1.75;transform-style:preserve-3d}
.card-3d-ready .business-card.is-manual{transition:transform .75s cubic-bezier(.16,1,.3,1)}
.card-3d-ready .business-face{position:absolute;inset:0;height:100%;min-height:0;aspect-ratio:auto;backface-visibility:hidden;-webkit-backface-visibility:hidden;box-shadow:0 26px 35px rgb(11 45 91 / var(--card-shadow))}
.card-3d-ready .business-front img{max-height:44%;width:55%}
.card-3d-ready .business-front{transform:translateZ(1.5px)}
.card-3d-ready .business-back{transform:rotateY(180deg) translateZ(1.5px)}
.card-3d-ready .business-card:before,.card-3d-ready .business-card:after{content:'';position:absolute;top:2px;bottom:2px;width:3px;background:#cfbfab;transform:rotateY(90deg);transform-style:preserve-3d}
.card-3d-ready .business-card:before{left:-1.5px}.card-3d-ready .business-card:after{right:-1.5px}
.card-flip{display:inline-flex;align-items:center;gap:18px;min-height:44px;border:0;border-bottom:1px solid var(--navy);background:transparent;color:var(--navy);font-size:11px;text-transform:uppercase;letter-spacing:.08em}
.card-flip .icon{width:15px}

@media(max-width:1100px){
 .home-about .about-note{padding:105px 30px 35px 40px}.home-about .about-opening{font-size:16px}.home-about .about-copy{font-size:14px}.home-about .note-greeting{font-size:27px}
 .reward-card{padding:26px}.reward-stamps{gap:12px}.reward-top img{width:125px}.reward-top>span{font-size:7px}
}
@media(max-width:820px){
 .hero-content .opening-status{font-size:10px;margin:10px auto 15px;padding:7px 12px}.hero-slogan{margin-bottom:13px}.hero-location{margin-bottom:20px}
 .home-about .about-heading{margin-bottom:35px}.about-small-line{display:inline-block;margin-top:23px}
 .home-about .about-editorial{grid-template-columns:1fr;gap:0}.home-about .about-people{margin:0 12px 0 0;transform:rotate(-.7deg)}.home-about .about-people img{aspect-ratio:5/4}
 .home-about .about-note{margin:25px 0 0 8px;padding:105px 26px 30px 30px;transform:rotate(.6deg)}.home-about .about-opening{font-size:18px}.home-about .about-copy{font-size:16px}.home-about .note-greeting{font-size:29px;max-width:230px}
 .about-below{display:block;margin-top:33px}.about-below .social-links{margin-top:22px}.home-about .opening-stamp{right:20px}
 .featured-track{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 15px}.gallery-stage{padding:65px 0 35px}
 .gallery-enhanced .featured-track .cut-card{width:76vw;max-width:430px}.gallery-enhanced .featured-track{gap:17px}
 .gallery-pin-ready .gallery-chapter{--gallery-stage:calc(100svh - var(--header) - var(--dock) - env(safe-area-inset-top,0px));height:calc(var(--gallery-stage) + 100svh)}
 .gallery-pin-ready .gallery-stage{padding:18px 0 16px}.gallery-pin-ready .gallery-stage .section-head{display:block;margin-bottom:18px}.gallery-pin-ready .gallery-stage h2{font-size:34px}.gallery-pin-ready .gallery-stage .lede{display:none}.gallery-pin-ready .gallery-stage .eyebrow{font-size:9px;margin-bottom:9px}
 .gallery-controls{flex-wrap:wrap;gap:13px 16px}.gallery-arrows{gap:10px}.gallery-arrows button{width:44px;height:44px}.gallery-controls .button{padding:10px 13px;gap:10px;margin-left:auto}.gallery-controls .button-label{font-size:9px}.featured-progress{flex-basis:100%;order:3}.gallery-pin-ready .gallery-controls{margin-top:14px}.gallery-expanded{padding-bottom:60px}
 .loyalty-layout{grid-template-columns:1fr;gap:42px}.loyalty-copy h2{font-size:52px}.loyalty-copy .lede{font-size:19px;max-width:310px}.reward-card{padding:25px;max-width:540px;width:calc(100% - 8px);margin-inline:auto;transform:rotate(-1deg)}.reward-top img{width:130px}.reward-stamps{gap:13px}.reward-footer{font-size:7px;line-height:1.6}
 .business-experience{margin-top:65px;padding-inline:0}.business-perspective{margin-top:32px}.business-face{padding:23px 25px;gap:10px}.business-front img{max-height:90px;width:53%}.business-front p{font-size:25px}.business-front>span{font-size:6px}.business-back{gap:8px}.business-back strong{font-size:22px}.business-back>span{font-size:11px}.business-back .card-social{font-size:8px}.card-hours{font-size:10px;padding-block:8px}.card-back-label{font-size:7px;padding-bottom:6px}
}
@media(max-width:360px){
 .hero-logo{width:230px}.hero-content .opening-status{font-size:9px}.hero .hero-slogan{font-size:39px}.hero h1{font-size:8px}.hero-location{font-size:11px}
 .gallery-controls{gap:10px}.gallery-controls .button{gap:7px;padding-inline:10px}.gallery-controls .button-label{font-size:8px}.gallery-arrows{gap:7px}.featured-count{font-size:9px}
 .home-about .about-note{padding-inline:25px}.home-about .about-opening{font-size:17px}.home-about .about-copy{font-size:15px}.reward-card{padding:22px}.reward-stamps{gap:10px}.reward-top img{width:100px}.reward-top>span{font-size:6px}.loyalty-stamp>.icon{width:20px;height:20px}.free-stamp strong{font-size:28px}.reward-footer{font-size:6px}
 .business-face{padding:18px 20px;gap:8px}.business-front p{font-size:21px}.business-back{gap:6px}.business-back strong{font-size:19px}.business-back>span{font-size:10px}.business-back .card-social{font-size:7px}.card-hours{font-size:9px;padding-block:6px}
}
@media(prefers-reduced-motion:reduce){
 .hero-scene{transition:none}.hero-scene picture{transform:none!important}.home-about .about-people,.home-about .about-note,.reward-card{transform:none!important}.business-card{transform:none!important}
}
/* V8: full artwork faces, family photographs, and stable mobile rendering. */
.home .shop-feature,.home .loyalty-section,.home .visit-section{content-visibility:visible;contain-intrinsic-size:none}
.business-card,.card-3d-ready .business-card{aspect-ratio:1280/767}
.business-face,.business-back,.business-front{display:block;padding:0;border:0;border-radius:1.8% / 3%;overflow:hidden;aspect-ratio:1280/767;background:var(--cream)}
.business-face picture,.business-face img,.business-front img,.card-3d-ready .business-front img{display:block;width:100%;height:100%;max-height:none;max-width:none;object-fit:contain}
.business-face picture{aspect-ratio:1280/767}
.card-3d-ready .business-card:before,.card-3d-ready .business-card:after{top:5%;bottom:5%;background:#ded8ce;width:2px}
.card-3d-ready .business-front{transform:translateZ(1px)}
.card-3d-ready .business-back{transform:rotateY(180deg) translateZ(1px)}
.business-card img{image-rendering:auto}
.kids-chair-section{background:#eae4da;position:relative;isolation:isolate}
.kids-chair-section:before{content:'';position:absolute;left:6%;right:6%;top:28px;height:1px;background:#0b2d5b2a}
.kids-chair-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:9%;align-items:center}
.kids-chair-copy h2{font-size:clamp(48px,5.5vw,78px);line-height:1.03;max-width:510px}
.kids-chair-copy>.lede{margin-top:28px;font-size:20px;line-height:1.7}
.kids-chair-copy>p:not(.eyebrow):not(.lede){font-size:16px;line-height:1.85;color:#43516a;margin-top:20px}
.kids-chair-facts{display:flex;gap:12px 20px;flex-wrap:wrap;padding:20px 0;margin:25px 0 20px;border-block:1px solid #0b2d5b26;list-style:none;font-size:11px}
.kids-chair-facts li:before{content:'';display:inline-block;width:9px;height:5px;border-block:1px solid var(--red);margin:0 7px 2px 0}
.kids-chair-photos{position:relative;padding:0 0 70px 0;min-width:0}
.kids-chair-main{width:82%;margin:0;border:9px solid var(--cream);background:var(--cream);box-shadow:0 18px 35px #0b2d5b1a;transform:rotate(-1deg)}
.kids-chair-main img{width:100%;aspect-ratio:3/4;object-fit:contain;display:block}
.kids-chair-main figcaption,.kids-chair-support figcaption{font-size:10px;padding:12px 5px 5px;color:var(--navy);line-height:1.6}
.kids-chair-support{position:relative;margin:-125px 0 0 auto;width:44%;border:7px solid var(--cream);background:var(--cream);box-shadow:0 15px 30px #0b2d5b24;transform:rotate(3deg)}
.kids-chair-support img{display:block;width:100%;aspect-ratio:3/4;object-fit:contain}
.kids-ticket{border:1px solid #b2212c;color:#a51c26;display:table;margin-top:38px;padding:15px 24px;transform:rotate(-3deg);position:relative;text-align:center}
.kids-ticket:after{content:'';position:absolute;inset:4px;border:1px dashed #b2212c66;pointer-events:none}
.kids-ticket span{display:block;font-size:8px;letter-spacing:.12em;line-height:1.8}.kids-ticket strong{display:block;font:400 24px/1.5 var(--display)}
.shop-detail-row{display:grid;grid-template-columns:1fr 2fr;gap:8%;align-items:center;margin-top:65px;max-width:1000px;margin-inline:auto}
.shop-detail-row>figure{margin:0}.shop-detail-row img{width:100%;aspect-ratio:3/4;object-fit:cover}.shop-detail-row figcaption{font-size:10px;line-height:1.6;margin-top:12px;color:#43516a}
.shop-detail-row h3{font:400 clamp(32px,4vw,48px)/1.1 var(--display);text-transform:uppercase}
.visit-steps{list-style:none;margin:25px 0 0;padding:0;counter-reset:visit}
.visit-steps li{counter-increment:visit;position:relative;padding:18px 0 18px 40px;border-top:1px solid #0b2d5b22;font-size:14px;line-height:1.7}
.visit-steps li:before{content:'0' counter(visit);position:absolute;left:0;top:18px;font-size:10px;color:var(--red)}
.visit-steps strong,.visit-steps span{display:block}.visit-steps span{color:#43516a;margin-top:4px}
@media(max-width:820px){
 .kids-chair-layout{grid-template-columns:1fr;gap:38px}.kids-chair-copy h2{font-size:clamp(43px,11vw,66px);max-width:480px}.kids-chair-copy>.lede{font-size:18px}.kids-chair-copy>p:not(.eyebrow):not(.lede){font-size:16px}.kids-ticket{margin-top:27px;padding:12px 24px}.kids-chair-photos{padding-bottom:5px}.kids-chair-main{width:83%;transform:none}.kids-chair-support{margin-top:-105px;transform:rotate(2deg);width:46%}
 .business-face,.business-back,.business-front{padding:0;gap:0}.business-front img,.card-3d-ready .business-front img{width:100%;max-height:none}
 .shop-detail-row{margin-top:40px;grid-template-columns:1fr;gap:28px}.shop-detail-row>figure{display:grid;grid-template-columns:35% 1fr;gap:20px;align-items:end}.shop-detail-row figcaption{max-width:150px;margin-bottom:10px}.visit-steps li{padding-block:16px}.visit-steps li:before{top:16px}
}
@media(prefers-reduced-motion:reduce){.kids-chair-main,.kids-chair-support,.kids-ticket{transform:none!important}.business-face{position:relative!important;transform:none!important}.business-card{display:grid!important;aspect-ratio:auto!important}}
/* Interior visit guidance sits on the navy shop surface. */
.shop-feature .shop-detail-row figcaption,.shop-feature .visit-steps span{color:#d7dadf}
.shop-feature .visit-steps li{border-color:#ffffff30}
.shop-feature .visit-steps li:before{color:#ff9299}

html.restoring-history{scroll-behavior:auto!important}
/* Film sits over its real-photo poster; failed or blocked playback retains the poster. */
.hero-craft-film{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center;opacity:0;transition:opacity .3s linear;pointer-events:none}
.hero-craft-film.is-playing{opacity:1}
@media(max-width:820px){.video-player.has-portrait{aspect-ratio:9/16}}
@media(prefers-reduced-motion:reduce){.hero-craft-film{display:none!important}}
