@import url("https://fonts.googleapis.com/css2?family=Sawarabi+Gothic&display=swap");
:root{
  --ink:#111;
  --paper:#fff;
  --muted:#777;
  --line:#d9d9d9;
  --dark:#292929;
  --blue:#143fc4;
  --brand-serif:"Cooper Black","Cooper Std Black","Bookman Old Style","URW Bookman",Georgia,serif;
  --pad:clamp(22px,3.2vw,58px);
  --section-gap:clamp(120px,15vw,250px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,"Helvetica Neue","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;width:100%}
button{font:inherit}
.site-shell{width:100%;overflow:hidden}

/* HERO — intentionally close to the reference site's inset photographic first view */
.hero{position:relative;margin:14px var(--pad) 0;height:min(76vh,760px);min-height:540px;overflow:hidden;background:#fff}
.hero-media,.hero-slide,.hero-slide img,.hero-shade{position:absolute;inset:0}
.hero-media{top:230px;left:9vw;right:9vw;bottom:0;overflow:hidden}
.hero-slide{margin:0;opacity:0;transition:opacity 1.35s cubic-bezier(.2,.65,.2,1);z-index:0}
.hero-slide.is-active{opacity:1;z-index:1}
.hero-slide img{height:100%;object-fit:cover;object-position:50% 43%;transform:scale(1.015);transition:transform 6s linear}
.hero-slide.is-active img{transform:scale(1.055)}
.hero-slide:nth-child(2) img{object-position:50% 55%}
.hero-slide:nth-child(3) img{object-position:50% 48%}
.hero-slide:nth-child(4) img{object-position:50% 34%}
.hero-shade{z-index:2;background:linear-gradient(180deg,rgba(0,0,0,.14) 0%,rgba(0,0,0,0) 38%,rgba(0,0,0,.13) 100%);pointer-events:none}
.site-header{position:fixed;z-index:100;top:14px;left:var(--pad);right:var(--pad);height:72px;display:grid;grid-template-columns:130px 1fr 70px;align-items:center;padding:0 26px;color:#111;transition:background-color .35s ease,color .35s ease,box-shadow .35s ease,top .35s ease,left .35s ease,right .35s ease}
.site-header.is-scrolled{top:0;left:0;right:0;background:rgba(255,255,255,.68);color:#111;box-shadow:0 1px 0 rgba(0,0,0,.055),0 8px 28px rgba(0,0,0,.035);backdrop-filter:blur(16px) saturate(135%);-webkit-backdrop-filter:blur(16px) saturate(135%)}
.header-logo{position:relative;width:76px;height:48px;opacity:.94}
.header-logo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:opacity .3s ease}
.header-logo-blue{opacity:1}
.header-logo-white{opacity:0}
.site-header.is-scrolled .header-logo-white{opacity:0}
.site-header.is-scrolled .header-logo-blue{opacity:1}
.desktop-nav{justify-self:center;display:flex;gap:clamp(17px,2vw,34px);font-size:11px;letter-spacing:.02em}
.desktop-nav a{position:relative;padding:6px 0;text-shadow:none}
.site-header.is-scrolled .desktop-nav a{text-shadow:none}
.site-header.is-scrolled .menu-toggle span{background:#111;box-shadow:none}
.desktop-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:1px;height:1px;background:currentColor;transition:.3s}
.desktop-nav a:hover:after{right:0}
.menu-toggle{display:none;justify-self:end;width:38px;height:38px;border:0;background:rgba(255,255,255,.92);padding:12px;cursor:pointer}
.menu-toggle span{display:block;width:22px;height:2px;background:#111;margin:0;border-radius:999px;opacity:1;box-shadow:none}
.hero-center{position:absolute;z-index:5;top:230px;left:9vw;right:9vw;bottom:0;display:flex;align-items:center;justify-content:center;transform:translateY(4%);pointer-events:none}
.hero-logo{width:clamp(92px,11vw,150px);opacity:.98}
.hero-tagline{position:absolute;z-index:5;top:130px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:4px;color:#111;text-align:center;pointer-events:none;width:min(70vw,420px)}
.hero-tagline p,.hero-tagline h1{margin:0;text-shadow:none}
.hero-tagline-en{font-size:clamp(12px,1.1vw,16px);font-weight:700;letter-spacing:.08em}
.hero-tagline-ja{font-size:clamp(10px,.95vw,13px);font-weight:700;letter-spacing:.03em}
.hero-counter{position:absolute;z-index:6;right:calc(9vw + 14px);bottom:calc(9vw + 12px);color:#fff;font-size:9px;display:flex;gap:8px;align-items:center;font-variant-numeric:tabular-nums}
.hero-counter i{width:28px;height:1px;background:rgba(255,255,255,.55)}
.mobile-menu{display:none}

main{padding-top:0}
.section{padding-left:var(--pad);padding-right:var(--pad)}
.section-title{display:flex;align-items:baseline;gap:15px}
.section-title h2{margin:0;font-family:var(--brand-serif);font-size:clamp(25px,2.85vw,47px);font-weight:700;letter-spacing:-.045em;line-height:.94}
.section-title span{font-size:10px;letter-spacing:.04em}

/* CONCEPT / VISION rhythm */
.concept{padding-top:clamp(145px,15vw,245px)}
.concept-copy{display:grid;grid-template-columns:1.05fr .95fr;gap:10vw;margin-top:clamp(95px,12vw,170px);align-items:end}
.concept-slogan{margin-left:5vw}
.concept-slogan-lockup{width:max-content;max-width:100%;display:flex;flex-direction:column;align-items:flex-start}
.concept-slogan-lockup span{display:block;white-space:nowrap}
.concept-slogan-en{font-size:clamp(39px,3.62vw,58px);line-height:1;font-weight:500;letter-spacing:-.045em}
.concept-slogan-ja{margin-top:14px;font-size:clamp(20.7px,1.94vw,31px);line-height:1.25;font-weight:500;letter-spacing:-.045em}
.concept-en{max-width:430px;margin-top:0;font-size:11px;line-height:2.1;align-self:end}
.concept-en p{margin:0;color:#333}
.concept-copy-text{grid-template-columns:1fr}
.concept-text{max-width:820px;margin-left:5vw;font-size:clamp(14px,1.25vw,18px);line-height:2.05;letter-spacing:.015em}
.concept-text p{margin:0 0 1.35em}
.concept-text p:last-child{margin-bottom:0}
/* Concept body: stagger each paragraph from right to left on scroll. */
.concept-text.reveal{opacity:1;transform:none}
.concept-text.reveal p{
  opacity:0;
  transform:translateX(42px);
  transition:opacity .72s ease,transform .82s cubic-bezier(.18,.7,.25,1);
}
.concept-text.reveal.is-visible p{opacity:1;transform:translateX(0)}
.concept-text.reveal.is-visible p:nth-child(1){transition-delay:.02s}
.concept-text.reveal.is-visible p:nth-child(2){transition-delay:.16s}
.concept-text.reveal.is-visible p:nth-child(3){transition-delay:.30s}
.concept-text.reveal.is-visible p:nth-child(4){transition-delay:.44s}
.concept-text.reveal.is-visible p:nth-child(5){transition-delay:.58s}
.concept-text.reveal.is-visible p:nth-child(6){transition-delay:.72s}
.interior-view{margin-top:clamp(125px,13vw,190px);margin-left:0}
.concept-collage{position:relative;height:clamp(850px,72vw,1120px);margin-top:clamp(46px,6vw,78px);isolation:isolate}
.concept-collage::before{content:"";position:absolute;z-index:0;inset:3% -8% 1% -8%;background:url("../images/concept-photo-02.jpg") center 46%/cover no-repeat;opacity:.10;filter:saturate(.72) brightness(1.08);transform:scale(1.10);transform-origin:center;-webkit-mask-image:radial-gradient(ellipse at center, rgba(0,0,0,1) 56%, rgba(0,0,0,.95) 68%, rgba(0,0,0,.55) 84%, rgba(0,0,0,0) 100%);mask-image:radial-gradient(ellipse at center, rgba(0,0,0,1) 56%, rgba(0,0,0,.95) 68%, rgba(0,0,0,.55) 84%, rgba(0,0,0,0) 100%)}
.concept-collage figure{position:absolute;z-index:2;margin:0;overflow:hidden;background:#eee;box-shadow:0 20px 46px rgba(0,0,0,.16),0 6px 18px rgba(0,0,0,.09)}
.concept-collage img{width:100%;height:100%;object-fit:cover}
/* Interior view composition: salon interior is the anchor; two model visuals float above it. */
.collage-small-a{width:66%;aspect-ratio:1.33/1;left:calc(17% + var(--ceri-interior-pc-photo2-x,0%));top:calc(23% + var(--ceri-interior-pc-photo2-y,0%));z-index:2!important}
.collage-main{width:38%;aspect-ratio:1.78/1;right:calc(4% - var(--ceri-interior-pc-photo1-x,0%));top:calc(4% + var(--ceri-interior-pc-photo1-y,0%));z-index:10!important}
.collage-small-b{width:25%;aspect-ratio:.67/1;left:calc(4% + var(--ceri-interior-pc-photo3-x,0%));top:calc(52% + var(--ceri-interior-pc-photo3-y,0%));z-index:10!important}

/* SEASON VISUAL replaces the reference Brand block but keeps the same white-space-heavy cadence */
.season{padding-top:var(--section-gap)}
@media(min-width:801px){#season{padding-top:calc(var(--section-gap) + clamp(90px,7vw,130px))}}
.season .section-title{margin-bottom:clamp(52px,6vw,90px)}
.season .section-title span{font-size:12px}
.season-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.6vw,28px)}
.season-card{display:block}
.season-card:nth-child(2){margin-top:clamp(82px,7.5vw,132px)}
.season-card:nth-child(3){margin-top:clamp(164px,15vw,264px)}
.season-photo{height:clamp(330px,41vw,630px);overflow:hidden;background:#eee}
.season-photo img{height:100%;object-fit:cover;object-position:50% 45%;transition:transform .8s cubic-bezier(.18,.7,.24,1)}
.season-card:hover .season-photo img{transform:scale(1.025)}
.season-meta{display:grid;grid-template-columns:1fr 1fr auto;padding:10px 0 0;font-size:9px;text-transform:none;border-top:1px solid #aaa;margin-top:8px}
.season-meta span:nth-child(2){text-align:center}
.season-list{display:grid;grid-template-columns:repeat(3,1fr);margin-top:clamp(55px,7vw,100px);border-top:1px solid var(--line)}
.season-list a{font-size:13px;padding:18px 2px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}
.season-list a:nth-child(3n+2),.season-list a:nth-child(3n+3){margin-left:28px}
.season-list{padding-bottom:0}

/* MENU: follows the terse two-column recruitment blocks */
.menu{padding-top:var(--section-gap)}
.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 8vw;margin-top:clamp(65px,8vw,110px)}
.menu-grid a,.menu-grid .menu-item{border-top:1px solid #999;padding:17px 0 22px;display:flex;align-items:flex-start;justify-content:space-between;min-height:115px}
.menu-grid a:nth-last-child(-n+2),.menu-grid .menu-item:nth-last-child(-n+2){border-bottom:1px solid #999}
.menu-grid div{display:flex;align-items:baseline}
.menu-grid small{font-size:9px;font-weight:400}
.menu-grid strong{font-size:18px;font-weight:500}
.menu-grid>a>span{font-size:10px;color:#444;margin-top:3px}
.menu-main-link{display:flex;align-items:center;justify-content:space-between;width:min(260px,100%);margin:28px 0 0 auto;padding:15px 0;border-top:1px solid #111;border-bottom:1px solid #111;font-size:11px;text-transform:none;letter-spacing:.05em}
.menu-main-link span{font-size:13px}

/* BLOG CARD LIST */
.journal-list{border-top:1px solid #aaa}
.journal-item{display:grid;grid-template-columns:190px 1fr 24px;gap:25px;padding:18px 0;border-bottom:1px solid #aaa;align-items:center}
.journal-item:nth-child(2){position:relative;left:calc(-1 * clamp(28px,3vw,52px))}
.journal-item:nth-child(3){position:relative;left:calc(-2 * clamp(28px,3vw,52px))}
.journal-item img{width:190px;height:116px;object-fit:cover}
.journal-item small{font-size:9px;color:#555}
.journal-item h3{font-size:15px;font-weight:500;margin:9px 0 8px;line-height:1.45}
.journal-item p{margin:0;font-size:10px;color:#555;line-height:1.6}
.journal-item b{font-size:14px;font-weight:400;justify-self:end}
/* NEWS */
.news{padding-top:var(--section-gap);display:grid;grid-template-columns:32% 68%;align-items:start}
.news-list{border-top:1px solid #999}
.news-list a{display:grid;grid-template-columns:110px 95px 1fr 22px;gap:20px;align-items:center;min-height:66px;border-bottom:1px solid #999;font-size:10px}
.news-list time,.news-list span{color:#555}
.news-list p{margin:0;font-size:11px}
.news-list b{font-weight:400;justify-self:end}

/* SHOP */
.shop{padding-top:var(--section-gap)}
.shop .section-title{margin-bottom:clamp(52px,6vw,86px)}
.shop-panel{min-height:clamp(290px,29vw,430px);border-top:1px solid #aaa;border-bottom:1px solid #aaa;display:grid;grid-template-columns:1fr auto;align-items:end;padding:clamp(36px,4.5vw,68px) clamp(20px,2.4vw,38px);background:linear-gradient(115deg,#f8f8f7 0%,#f0f1f3 55%,#fafafa 100%);position:relative;overflow:hidden}
.shop-panel:after{content:"";position:absolute;right:-8%;top:-42%;width:42%;aspect-ratio:1;border-radius:50%;border:1px solid rgba(20,63,196,.17)}
.shop-mark{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;gap:22px}
.shop-mark img{width:clamp(95px,10vw,160px)}
.shop-mark span{font-size:10px;letter-spacing:.1em}
.shop-link{position:relative;z-index:1;font-size:11px;border-bottom:1px solid #111;padding:0 0 4px;align-self:end}
.shop-link span{margin-left:28px}
.shop-actions{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-end;gap:14px}
.shop-actions .shop-link{align-self:auto}


/* ACCESS / COMPANY rhythm */
.access{padding-top:var(--section-gap)}
.access-head{display:flex;justify-content:flex-start;align-items:flex-end;gap:10vw;margin-bottom:clamp(58px,7vw,95px)}
.access-head .section-title{display:block}
.access-head .section-title h2{margin-bottom:9px}
.access-head>p{font-size:10px;margin:0 0 7px;letter-spacing:.08em}
.access-visuals{margin:0 0 30px;width:100%;display:grid;grid-template-columns:1.03fr .97fr;gap:clamp(14px,1.8vw,28px);align-items:stretch}
.access-exterior,.access-map{margin:0;height:clamp(390px,36vw,570px);overflow:hidden;background:#eee}
.access-exterior img{width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.access-map iframe{width:100%;height:100%;border:0;filter:grayscale(1) saturate(.08) contrast(.92) brightness(1.02)}
.access-info{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:7vw;font-size:10px;line-height:1.7}
.access-info strong{font-size:15px;font-weight:500}
.access-info p{margin:8px 0 0}
.access-links{display:flex;flex-direction:column;align-items:flex-start;gap:11px}
.access-links a{border-bottom:1px solid #111;padding-bottom:2px}

.reserve{margin-top:var(--section-gap);padding:0 var(--pad) clamp(120px,13vw,200px)}
.reserve-title{margin-bottom:clamp(52px,6vw,86px)}
.reserve-inner{border-top:1px solid #999;border-bottom:1px solid #999;padding:clamp(55px,7vw,90px) 0;display:grid;grid-template-columns:2fr auto;align-items:end;gap:30px}
.reserve-inner h2{font-size:clamp(23px,3.35vw,51px);line-height:.95;font-weight:400;letter-spacing:-.05em;margin:0}
.reserve-inner a{font-size:11px;border-bottom:1px solid #111;padding-bottom:3px}
.reserve-inner a span{margin-left:25px}

.footer{background:var(--dark);color:#fff;padding:60px var(--pad) 24px;display:grid;grid-template-columns:1.4fr 1fr;min-height:270px;position:relative}
.footer-brand img{width:92px;filter:brightness(0) invert(1);margin-bottom:28px}
.footer-brand p{font-size:9px;line-height:1.75;margin:0;color:#d6d6d6}
.footer-nav{display:grid;grid-template-columns:1fr 1fr;gap:30px;font-size:10px}
.footer-nav div{display:flex;flex-direction:column;gap:12px}
.footer-nav-mobile{display:none}
.footer-nav-pending{color:#8f8f8f}
.footer-nav-spacer{display:block;min-height:1em}
.footer small{position:absolute;left:var(--pad);bottom:23px;font-size:8px;color:#aaa}

.reveal-photo.reveal-from-right{transform:translateX(46px) scale(.992)}
.reveal-photo.reveal-from-left{transform:translateX(-46px) scale(.992)}

/* Motion */
.reveal,.reveal-photo{opacity:0;transform:translateY(24px);transition:opacity .9s ease,transform .9s cubic-bezier(.18,.7,.25,1)}
.reveal-photo{transform:translateY(28px) scale(.992)}
.reveal.is-visible,.reveal-photo.is-visible{opacity:1;transform:none}




@media(max-width:800px){
  :root{--pad:15px;--section-gap:115px}
  .hero{margin:8px 10px 0;height:calc(100svh - 16px);min-height:610px}
  .site-header{top:8px;left:10px;right:0;height:58px;padding:0 0 0 13px;grid-template-columns:100px 1fr 48px}
  .site-header.is-scrolled{top:0;left:0;right:0}
  .header-logo{width:62px;height:40px}
  .desktop-nav{display:none}
  .menu-toggle{display:flex;position:absolute;right:0;top:0;justify-content:center;align-items:center;flex-direction:column;gap:6px;width:48px;height:58px;margin:0;padding:0 10px;border:0;background:transparent}
  .hero-logo{width:min(22vw,120px)}
  .hero-media{top:200px;left:13vw;right:13vw;bottom:13vw;overflow:hidden}
  .hero-tagline{top:106px;gap:3px;width:78%}
  .hero-tagline-en{font-size:11px}
  .hero-tagline-ja{font-size:10px}
  .hero-center{top:200px;left:13vw;right:13vw;bottom:13vw;transform:translateY(4%)}
  .hero-counter{right:calc(13vw + 10px);bottom:calc(13vw + 10px)}
  .mobile-menu{position:fixed;z-index:80;inset:0;background:rgba(255,255,255,.68);padding:86px 20px 24px;display:flex;flex-direction:column;justify-content:space-between;opacity:0;visibility:hidden;transition:.25s;backdrop-filter:blur(16px) saturate(135%);-webkit-backdrop-filter:blur(16px) saturate(135%)}
  .mobile-menu.is-open{opacity:1;visibility:visible}
  .mobile-menu nav{display:flex;flex-direction:column}
  .mobile-menu nav a{font-size:23.33px;letter-spacing:-.04em;border-bottom:1px solid #ddd;padding:11px 0}
  .mobile-menu small{font-size:9px}
  body.menu-open{overflow:hidden}
  body.menu-open .menu-toggle{position:fixed;right:0;top:0;z-index:100;background:transparent}
  body.menu-open .menu-toggle span{background:#111}
  body.menu-open .menu-toggle span:first-child{transform:translateY(4px) rotate(45deg)}
  body.menu-open .menu-toggle span:last-child{transform:translateY(-4px) rotate(-45deg)}

  .section-title h2{font-size:28px}
  .concept{padding-top:110px}
  .concept-copy{grid-template-columns:1fr;margin-top:78px;gap:55px;align-items:start}
  .concept-slogan{margin-left:10vw}
  .concept-slogan-lockup{width:max-content;max-width:90vw}
  .concept-slogan-en{font-size:clamp(32px,10vw,39px)}
  .concept-slogan-ja{margin-top:10px;font-size:clamp(18px,5.37vw,20.95px);letter-spacing:-.045em}
  .concept-en{width:64%;margin-left:auto;font-size:10px}
  .concept-copy-text{display:block}
  .concept-text{max-width:none;margin-left:5vw;margin-right:2vw;font-size:13px;line-height:1.95}
  .interior-view{margin-top:90px;margin-left:0}
  .concept-collage{height:700px;margin-top:38px}
  .concept-collage::before{top:calc(5% + var(--ceri-interior-mobile-bg-y,0%));right:calc(-32% - var(--ceri-interior-mobile-bg-x,0%));bottom:calc(2% - var(--ceri-interior-mobile-bg-y,0%));left:calc(-32% + var(--ceri-interior-mobile-bg-x,0%));opacity:.09;transform:scale(1.04);background-position:50% 48%;-webkit-mask-image:radial-gradient(ellipse at center, rgba(0,0,0,1) 54%, rgba(0,0,0,.92) 68%, rgba(0,0,0,.5) 84%, rgba(0,0,0,0) 100%);mask-image:radial-gradient(ellipse at center, rgba(0,0,0,1) 54%, rgba(0,0,0,.92) 68%, rgba(0,0,0,.5) 84%, rgba(0,0,0,0) 100%)}
  .concept-collage figure{box-shadow:0 16px 34px rgba(0,0,0,.14),0 5px 14px rgba(0,0,0,.08)}
  .collage-small-a{width:82%;left:calc(9% + var(--ceri-interior-mobile-photo2-x,0%));top:calc(23% + var(--ceri-interior-mobile-photo2-y,0%));aspect-ratio:1.33/1;z-index:2!important}
  .collage-main{width:66%;right:calc(0% - var(--ceri-interior-mobile-photo1-x,0%));left:auto;top:calc(2% + 20px + var(--ceri-interior-mobile-photo1-y,0%));aspect-ratio:1.78/1;z-index:10!important}
  .collage-small-b{width:42%;left:calc(1% + var(--ceri-interior-mobile-photo3-x,0%));right:auto;top:calc(54% + var(--ceri-interior-mobile-photo3-y,0%));aspect-ratio:.67/1;z-index:10!important}

  .season{padding-top:var(--section-gap)}
  .season .section-title{margin-bottom:38px}
  .season-grid{grid-template-columns:1fr 1fr;gap:8px}
  .season-card:nth-child(2),.season-card:nth-child(3){margin-top:0}
  .season-card:first-child{grid-column:1 / -1}
  .season-card:first-child .season-photo{height:255px}
  .season-card:not(:first-child) .season-photo{height:205px}
  .season-meta{font-size:7px;grid-template-columns:1fr 1.4fr auto}
  .season-list{grid-template-columns:1fr 1fr;margin-top:55px}
  .season-list a{font-size:11px;padding:15px 0}
  .season-list a:nth-child(n){margin-left:0;transform:none}
  .season-list a:nth-child(even){margin-left:17px}
  .season-list{padding-bottom:0}

  .menu-grid{grid-template-columns:1fr;margin-top:55px}
  .menu-grid a,.menu-grid .menu-item{min-height:86px}
  .menu-grid a:nth-last-child(-n+2),.menu-grid .menu-item:nth-last-child(-n+2){border-bottom:0}
  .menu-grid a:last-child,.menu-grid .menu-item:last-child{border-bottom:1px solid #999}
  .menu-main-link{margin-top:24px;width:100%}

  .news{display:block}
  #ceri-blog .section-title{margin-bottom:55px}
  .journal-item{grid-template-columns:105px 1fr 15px;gap:12px;padding:13px 0}
  .journal-item:nth-child(2){left:0}
  .journal-item:nth-child(3){left:0}
  .journal-item img{width:105px;height:76px}
  .journal-item h3{font-size:11px;margin:5px 0}
  .journal-item p{font-size:8px}
  .journal-item small{font-size:7px}
  .news .section-title{margin-bottom:54px}
  .news-list a{grid-template-columns:73px 54px 1fr 15px;gap:9px;min-height:58px;font-size:8px}
  .news-list p{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

  .access-head{display:block;margin-bottom:48px}
  .access-head>p{margin-top:16px}
  .shop .section-title{margin-bottom:42px}
  .shop-panel{min-height:245px;padding:30px 18px}
  .shop-mark img{width:105px}
  .access-visuals{grid-template-columns:1fr;gap:10px}
  .access-exterior,.access-map{height:310px}
  .access-info{grid-template-columns:1.2fr 1fr;gap:35px 20px;font-size:9px}
  .access-links{grid-column:1 / -1;flex-direction:row;gap:25px}

  .reserve-title{margin-bottom:42px}
  .reserve-inner{grid-template-columns:1fr;padding:50px 0;gap:20px}
  .reserve-inner h2{font-size:29px}
  .reserve-inner a{width:max-content}

  .footer{grid-template-columns:1fr;gap:45px;min-height:330px;padding-top:45px}
  .footer-nav{grid-template-columns:1fr 1fr}
  .footer-nav-desktop{display:none}
  .footer-nav-mobile{display:grid}
  .footer-nav-mobile>div:last-child{align-items:flex-end;text-align:right}
}

@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important}
  .hero-slide,.hero-slide img,.reveal,.reveal-photo{transition:none!important;transform:none!important}
  .concept-text.reveal p{opacity:1!important;transform:none!important;transition:none!important}
}


/* Staff preview / detail pages */
.staff{padding-top:var(--section-gap)}
.staff-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:clamp(55px,7vw,95px)}
.staff-head>a{font-size:11px;border-bottom:1px solid #111;padding-bottom:4px}
.staff-head>a span{margin-left:22px}
.staff-preview-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(12px,1.5vw,26px);align-items:start}
.staff-preview-visual{aspect-ratio:4/5;overflow:hidden;background:#eee}
.staff-preview-visual img{width:100%;height:100%;object-fit:cover;object-position:50% 50%;transition:transform .8s cubic-bezier(.18,.7,.24,1)}
.staff-preview-card:hover .staff-preview-visual img{transform:scale(1.025)}
.staff-preview-meta{border-top:1px solid #999;margin-top:9px;padding-top:9px;display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.staff-preview-meta strong{font-size:12px;font-weight:500;letter-spacing:.02em}
.staff-preview-meta span{font-size:8px;color:#666}

.inner-page{padding:135px var(--pad) 120px;min-height:100vh}
.inner-page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:clamp(90px,11vw,160px)}
.inner-page-header img{width:80px}
.inner-page-header nav{display:flex;gap:28px;font-size:10px}
.inner-kicker{font-size:9px;letter-spacing:.1em;margin-bottom:12px;text-transform:none}
.inner-title{font-family:var(--brand-serif);font-size:clamp(44px,7vw,105px);line-height:.9;letter-spacing:-.05em;margin:0}
.inner-lead{max-width:620px;margin:38px 0 0 auto;font-size:11px;line-height:2;color:#333}
.menu-detail-list{margin-top:clamp(90px,10vw,150px);border-top:1px solid #999}
.menu-detail-row{display:grid;grid-template-columns:160px 1fr 150px;gap:36px;padding:25px 0;border-bottom:1px solid #bbb;align-items:start}
.menu-detail-row .cat{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#666}
.menu-detail-row h2{font-size:17px;font-weight:500;margin:0 0 8px}
.menu-detail-row p{font-size:10px;line-height:1.7;color:#555;margin:0}
.menu-detail-row .price{text-align:right;font-size:13px;white-space:nowrap}
.menu-source-note{font-size:8px;color:#777;margin-top:22px;line-height:1.7}

.staff-index{margin-top:clamp(80px,9vw,130px)}
.staff-person{display:grid;grid-template-columns:minmax(270px,44%) 1fr;gap:clamp(45px,8vw,130px);padding:clamp(65px,8vw,120px) 0;border-top:1px solid #aaa;align-items:start}
.staff-person:nth-child(even){grid-template-columns:1fr minmax(270px,44%)}
.staff-person:nth-child(even) .staff-person-visual{order:2}
.staff-person-visual{aspect-ratio:4/5;background:#f1f2f3;overflow:hidden;position:relative}
.staff-person-visual img{width:100%;height:100%;object-fit:cover;object-position:50% 50%;filter:saturate(.88)}
.staff-person-visual:after{content:"STYLE VISUAL / PHOTO TBD";position:absolute;left:12px;bottom:10px;font-size:7px;letter-spacing:.08em;background:rgba(255,255,255,.7);padding:4px 6px}
.staff-person-copy{padding-top:8px}
.staff-person-copy .num{font-size:9px;color:#777}
.staff-person-copy h2{font-size:clamp(34px,4.7vw,70px);font-weight:400;letter-spacing:-.05em;line-height:.95;margin:28px 0 10px}
.staff-person-copy .handle{font-size:10px;color:#555;margin-bottom:42px}
.staff-person-copy .role{font-size:10px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px}
.staff-person-copy .specialty{font-size:16px;line-height:1.6;margin:0 0 28px}
.staff-person-copy .bio{font-size:10px;line-height:1.85;color:#555;max-width:480px}
.staff-links{display:flex;gap:24px;margin-top:34px;font-size:9px}
.staff-links a{border-bottom:1px solid #111;padding-bottom:3px}

@media(max-width:800px){
  .staff-head{margin-bottom:42px}
  .staff-preview-grid{display:flex;overflow-x:auto;gap:10px;scroll-snap-type:x mandatory;padding-bottom:8px}
  .staff-preview-card{flex:0 0 72%;scroll-snap-align:start}
  .staff-preview-card:nth-child(2),.staff-preview-card:nth-child(3),.staff-preview-card:nth-child(4),.staff-preview-card:nth-child(5){margin-top:0}
  .staff-preview-meta{display:block}
  .staff-preview-meta span{display:block;margin-top:4px}
  .inner-page{padding:88px 15px 90px}
  .inner-page-header{margin-bottom:80px}
  .inner-page-header img{width:64px}
  .inner-page-header nav{gap:16px;font-size:9px}
  .inner-lead{margin-top:28px;font-size:10px}
  .menu-detail-row{grid-template-columns:1fr auto;gap:12px 20px;padding:20px 0}
  .menu-detail-row .cat{grid-column:1 / -1}
  .menu-detail-row p{font-size:9px}
  .menu-detail-row .price{font-size:11px}
  .staff-person,.staff-person:nth-child(even){grid-template-columns:1fr;gap:28px;padding:58px 0}
  .staff-person:nth-child(even) .staff-person-visual{order:0}
  .staff-person-copy h2{font-size:42px;margin-top:20px}
  .staff-person-copy .handle{margin-bottom:26px}
}


/* Recruit page */
.recruit-grid{margin-top:clamp(90px,10vw,150px);border-top:1px solid #999}
.recruit-block{display:grid;grid-template-columns:90px 220px 1fr;gap:clamp(20px,4vw,70px);padding:clamp(34px,4vw,58px) 0;border-bottom:1px solid #bbb;align-items:start}
.recruit-block>span{font-size:9px;color:#777}
.recruit-block h2{margin:0;font-size:clamp(22px,2.4vw,36px);font-weight:400;letter-spacing:-.04em}
.recruit-block p{margin:0;max-width:620px;font-size:10px;line-height:1.9;color:#555}
.recruit-block a{grid-column:3;width:max-content;margin-top:18px;font-size:10px;border-bottom:1px solid #111;padding-bottom:3px}
@media(max-width:800px){
  .recruit-grid{margin-top:70px}
  .recruit-block{grid-template-columns:42px 1fr;gap:12px 18px;padding:30px 0}
  .recruit-block h2{font-size:26px}
  .recruit-block p{grid-column:2;font-size:9px}
  .recruit-block a{grid-column:2}
}




/* Fixed site typography */
.section-title h2,
.inner-title{
  font-family:var(--brand-serif)!important;
  font-weight:700!important;
  line-height:.94!important;
  letter-spacing:-.045em!important;
}

.concept-text,
.journal-item h3,
.journal-item p,
.news-list p,
.access-info,
.menu-detail-row h2,
.menu-detail-row p,
.staff-person-copy .specialty,
.staff-person-copy .bio,
.recruit-block p,
.contact-panel p,
.contact-form label,
.contact-form input,
.contact-form textarea,
.contact-form select{
  font-family:"Sawarabi Gothic","Noto Sans JP","Yu Gothic",Meiryo,sans-serif!important;
  font-weight:400!important;
  letter-spacing:.03em!important;
}
.concept-text{font-size:calc(clamp(14px,1.25vw,18px) * .93);line-height:2.05!important}
.journal-item h3{font-size:calc(15px * .93)}
.journal-item p{font-size:calc(10px * .93)}
.news-list p{font-size:calc(11px * .93)}
.access-info{font-size:calc(10px * .93)}
.menu-detail-row h2{font-size:calc(17px * .93)}
.menu-detail-row p{font-size:calc(10px * .93)}
.staff-person-copy .specialty{font-size:calc(16px * .93)}
.staff-person-copy .bio,.recruit-block p{font-size:calc(10px * .93)}

/* Contact */
.contact{padding-top:var(--section-gap)}
.contact-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:clamp(52px,6vw,86px)}
.contact-head>p{font-size:9px;letter-spacing:.09em;margin:0 0 6px}
.contact-panel{border-top:1px solid #999;border-bottom:1px solid #999;padding:clamp(44px,6vw,80px) 0;display:grid;grid-template-columns:1fr auto;align-items:end;gap:30px}
.contact-panel strong{font-size:clamp(22px,2.4vw,36px);font-weight:400;letter-spacing:-.03em}
.contact-panel p{max-width:520px;margin:18px 0 0;font-size:10px;line-height:1.9;color:#555}
.contact-panel a{font-size:11px;border-bottom:1px solid #111;padding-bottom:4px;display:inline-flex;align-items:center;justify-self:start;width:fit-content;max-width:100%}
.contact-panel a span{margin-left:26px}

.contact-page{padding:135px var(--pad) 120px;min-height:100vh}
.contact-form-wrap{margin-top:clamp(80px,10vw,145px);display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(50px,8vw,120px);border-top:1px solid #999;padding-top:clamp(45px,6vw,80px)}
.contact-form-note h2{font-size:clamp(26px,3vw,44px);font-weight:400;letter-spacing:-.04em;margin:0 0 20px}
.contact-form-note p{font-size:10px;line-height:1.9;color:#555;margin:0;max-width:350px}
.contact-form{display:grid;gap:18px}
.contact-form label{display:grid;gap:7px;font-size:9px;color:#555}
.contact-form input,.contact-form textarea,.contact-form select{width:100%;border:0;border-bottom:1px solid #999;background:transparent;border-radius:0;padding:11px 0;font-size:12px;color:#111;outline:none}
.contact-form textarea{min-height:140px;resize:vertical}
.contact-form button{justify-self:start;margin-top:12px;border:0;border-bottom:1px solid #111;background:transparent;padding:0 0 4px;font-size:11px;cursor:default;color:#777}
.contact-form-status{font-size:8px;color:#777;line-height:1.7;margin-top:5px}

@media(max-width:800px){
  .concept-text{font-size:calc(13px * .93)}
  .journal-item h3{font-size:calc(11px * .93)}
  .journal-item p{font-size:calc(8px * .93)}
  .news-list p{font-size:calc(9px * .93)}
  .contact-head{display:block;margin-bottom:42px}
  .contact-head>p{margin-top:14px}
  .contact-panel{grid-template-columns:1fr;gap:30px;padding:40px 0}
  #contact{padding-bottom:var(--section-gap)}
  .contact-panel p{font-size:9px}
  .contact-form-wrap{grid-template-columns:1fr;gap:45px;margin-top:65px}
}


/* Legal pages / privacy consent */
.privacy-consent{display:flex!important;grid-template-columns:none!important;align-items:center;gap:9px!important;margin-top:2px}
.privacy-consent input{width:14px!important;height:14px;margin:0;flex:0 0 auto;border:1px solid #999!important}
.privacy-consent span{font-size:9px;line-height:1.7}
.privacy-consent a{border-bottom:1px solid #777;padding-bottom:1px}

.legal-page{padding:135px var(--pad) 120px;min-height:100vh}
.legal-content{margin-top:clamp(80px,10vw,145px);border-top:1px solid #999}
.legal-content article{display:grid;grid-template-columns:minmax(190px,300px) 1fr;gap:clamp(25px,5vw,80px);padding:clamp(30px,4vw,52px) 0;border-bottom:1px solid #bbb}
.legal-content h2{margin:0;font-family:"Sawarabi Gothic","Noto Sans JP","Yu Gothic",Meiryo,sans-serif;font-size:13px;font-weight:500;letter-spacing:.03em}
.legal-content p{margin:0 0 10px;font-family:"Sawarabi Gothic","Noto Sans JP","Yu Gothic",Meiryo,sans-serif;font-size:10px;line-height:2;letter-spacing:.03em;color:#555;max-width:780px}
.needs-confirmation{color:#d10000!important;font-weight:500!important}
.legal-ja-title{font-family:"Sawarabi Gothic","Noto Sans JP","Yu Gothic",Meiryo,sans-serif!important;font-size:clamp(30px,5vw,66px)!important;line-height:1.2!important;letter-spacing:.01em!important}
.commerce-table{margin-top:clamp(80px,10vw,145px);border-top:1px solid #999}
.commerce-table>div{display:grid;grid-template-columns:minmax(190px,300px) 1fr;gap:clamp(25px,5vw,80px);padding:24px 0;border-bottom:1px solid #bbb}
.commerce-table dt,.commerce-table dd{margin:0;font-family:"Sawarabi Gothic","Noto Sans JP","Yu Gothic",Meiryo,sans-serif;font-size:10px;line-height:1.9;letter-spacing:.03em}
.commerce-table dt{font-weight:500;color:#222}.commerce-table dd{color:#555}
.legal-draft-note{margin:35px 0 0;font-family:"Sawarabi Gothic","Noto Sans JP","Yu Gothic",Meiryo,sans-serif;font-size:9px;line-height:1.9;letter-spacing:.03em;color:#777}
@media(max-width:800px){
  .legal-page{padding-top:105px}
  .legal-content,.commerce-table{margin-top:65px}
  .legal-content article,.commerce-table>div{grid-template-columns:1fr;gap:12px;padding:26px 0}
  .legal-content p,.commerce-table dt,.commerce-table dd{font-size:9px}
}

/* Inner-page heading size aligned with top-page section headings */
.inner-title{
  font-size:clamp(25px,2.85vw,47px)!important;
}
.legal-ja-title{
  font-size:clamp(25px,2.85vw,47px)!important;
}
@media(max-width:800px){
  .inner-title,
  .legal-ja-title{
    font-size:28px!important;
  }
}

/* Temporary production memo link */
.footer-nav .dev-memo-link{color:#8f8f8f;margin-top:6px}


/* Basic accessibility */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid currentColor;outline-offset:4px}
.contact-form input:focus-visible,.contact-form textarea:focus-visible,.contact-form select:focus-visible{outline:2px solid #111;outline-offset:3px}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* ceri official blog */
.ceri-blog-note{grid-column:2;margin:18px 0 30px;max-width:720px}
.ceri-blog-note p{margin:0;font-size:10px;line-height:1.8;color:#666}
.ceri-blog-list{grid-column:2}
.ceri-blog-empty{border-bottom:1px solid #aaa;padding:26px 0}
.ceri-blog-empty small{font-size:9px;color:#555}
.ceri-blog-empty p{margin:10px 0 0;font-size:10px;line-height:1.7;color:#555}
.ceri-blog-actions{grid-column:2;display:flex;justify-content:flex-end}
.ceri-blog-actions .view-all{grid-column:auto;justify-self:auto}

.blog-admin-main,.blog-post-main{min-height:100vh;padding:150px clamp(24px,7vw,110px) 90px;background:#fff}
.blog-admin-wrap,.blog-post-wrap{max-width:980px;margin:0 auto}
.blog-page-title{margin:0 0 52px;font-family:Georgia,'Times New Roman',serif;font-size:clamp(34px,5vw,72px);line-height:.94;letter-spacing:-.045em;font-weight:700;text-transform:lowercase}
.blog-admin-intro{max-width:720px;margin:0 0 36px;font-size:12px;line-height:1.9;color:#555}
.blog-badge{display:inline-flex;margin:0 0 28px;padding:7px 10px;border:1px solid #111;font-size:9px;letter-spacing:.08em}
.blog-form{display:grid;gap:22px;max-width:760px}
.blog-form label{display:grid;gap:8px;font-size:10px;letter-spacing:.02em}
.blog-form input,.blog-form textarea,.blog-form select{width:100%;border:1px solid #aaa;background:#fff;padding:12px 13px;font:inherit;font-size:12px;color:#111;border-radius:0}
.blog-form textarea{min-height:220px;resize:vertical;line-height:1.8}
.blog-form input[type=file]{padding:10px}
.blog-form-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.blog-form button,.blog-admin-link{appearance:none;border:1px solid #111;background:#111;color:#fff;padding:12px 18px;font-size:10px;cursor:pointer;text-decoration:none}
.blog-form button.secondary,.blog-admin-link.secondary{background:#fff;color:#111}
.blog-form-status{min-height:20px;font-size:10px;color:#555}
.blog-preview-image{display:none;width:min(100%,420px);aspect-ratio:4/3;object-fit:cover;border:1px solid #ddd}
.blog-preview-image.is-visible{display:block}
.blog-admin-posts{margin-top:70px;border-top:1px solid #999}
.blog-admin-post-row{display:grid;grid-template-columns:120px 1fr auto;gap:18px;align-items:center;border-bottom:1px solid #aaa;padding:16px 0;font-size:10px}
.blog-admin-post-row strong{font-size:12px;font-weight:500}
.blog-admin-post-row button{border:0;background:none;text-decoration:underline;cursor:pointer;font:inherit}
.blog-post-meta{font-size:10px;color:#666;margin-bottom:22px}
.blog-post-visual{width:min(100%,860px);margin:0 0 38px}
.blog-post-visual img{display:block;width:100%;max-height:70vh;object-fit:cover}
.blog-post-title{max-width:850px;margin:0 0 30px;font-size:clamp(26px,4.5vw,52px);line-height:1.25;font-weight:500;letter-spacing:.01em}
.blog-post-body{max-width:760px;font-size:13px;line-height:2.05;white-space:pre-wrap}
.blog-post-body h2,.blog-post-body h3{white-space:normal;font-weight:500;letter-spacing:.01em}.blog-post-body h2{margin:42px 0 14px;font-size:18px}.blog-post-body h3{margin:30px 0 12px;font-size:15px}.blog-post-body p{margin:0 0 1.45em}.blog-post-body a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.blog-post-related{max-width:760px;margin-top:56px;padding-top:18px;border-top:1px solid #111}
.blog-post-related-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:16px}.blog-post-related-head span{font-size:10px;letter-spacing:.12em}.blog-post-related-head small{font-size:9px;color:#777;letter-spacing:.04em}
.blog-post-related-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #d9d9d9}
.blog-post-related-link{display:flex;align-items:center;justify-content:space-between;gap:14px;min-width:0;padding:15px 0;border-bottom:1px solid #d9d9d9;color:#111;text-decoration:none;font-size:11px;text-transform:lowercase}.blog-post-related-link span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.blog-post-related-link span:last-child{flex:0 0 auto;font-size:10px}
.blog-post-related-link+ .blog-post-related-link{padding-left:16px}.blog-post-related-link:not(:last-child){padding-right:16px;border-right:1px solid #d9d9d9}
.blog-post-related+.blog-post-back{margin-top:38px}
.blog-post-back{display:inline-block;margin-top:60px;border-bottom:1px solid #111;padding-bottom:4px;font-size:10px}
.blog-post-missing{font-size:12px;line-height:1.8;color:#555}

@media(max-width:700px){
  .ceri-blog-note,.ceri-blog-list,.ceri-blog-actions{grid-column:1}
  .ceri-blog-note{margin:10px 0 22px}
  .ceri-blog-note p{font-size:9px}
  .blog-admin-main,.blog-post-main{padding:112px 20px 70px}
  .blog-page-title{margin-bottom:34px}
  .blog-admin-post-row{grid-template-columns:82px 1fr;gap:10px}
  .blog-admin-post-row .blog-row-actions{grid-column:2}
  .blog-post-related{margin-top:46px}.blog-post-related-list{grid-template-columns:1fr}.blog-post-related-link+ .blog-post-related-link{padding-left:0}.blog-post-related-link:not(:last-child){padding-right:0;border-right:0}.blog-post-related-link{padding:14px 0}
}

/* V53 confirmed-only additions: Shop coming soon / Instagram / official app reserve */
.shop-coming{border-bottom:0;cursor:default;color:#555;display:inline-flex;align-items:baseline;justify-content:flex-end;gap:.05em;font-size:clamp(23px,3.35vw,51px);line-height:.95;font-weight:400;letter-spacing:-.05em;min-width:clamp(220px,27vw,390px)}
.shop-coming-text{text-transform:lowercase}
.shop-coming-dots{display:inline-block;min-width:1.75ch;text-align:left}
.instagram{padding-top:var(--section-gap)}
.instagram-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:clamp(48px,6vw,82px)}
.instagram-head>a{font-size:10px;border-bottom:1px solid #111;padding-bottom:3px}
.instagram-head>a span{margin-left:18px}
.insta-stack{width:calc(100% + (var(--pad) * 2));margin-left:calc(-1 * var(--pad));overflow:hidden;display:grid;gap:8px}
.insta-marquee{overflow:hidden;width:100%}
.insta-track{display:flex;width:max-content;will-change:transform}
.insta-group{display:flex;flex-shrink:0}
.insta-card{display:block;width:clamp(120px,13.5vw,220px);aspect-ratio:1/1;overflow:hidden;background:#eee;flex:0 0 auto}
.insta-card img{width:100%;height:100%;object-fit:cover;object-position:50% 50%;display:block}
.insta-forward .insta-track{animation:ceri-insta-forward 52s linear infinite}
.insta-reverse .insta-track{animation:ceri-insta-reverse 52s linear infinite}
@keyframes ceri-insta-forward{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes ceri-insta-reverse{from{transform:translateX(-50%)}to{transform:translateX(0)}}
.insta-marquee:hover .insta-track{animation-play-state:paused}
.reserve-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:14px 24px}
.reserve-links a{display:inline-block}
@media(max-width:800px){
  .instagram-head{margin-bottom:42px}
  .insta-stack{gap:5px}
  .insta-card{width:32vw}
  .insta-forward .insta-track,.insta-reverse .insta-track{animation-duration:42s}
  .reserve-links{justify-content:flex-start;gap:12px 22px}
}
@media(prefers-reduced-motion:reduce){
  .insta-track{animation:none!important;transform:none!important}
  .insta-marquee{overflow-x:auto}
}

/* V55 reserve app links */
.reserve-app-panel{display:grid;gap:22px;justify-items:end;min-width:min(100%,360px)}
.reserve-app-open-wrap,.reserve-download-wrap{display:grid;gap:9px;justify-items:end}
.reserve-app-label{font-size:9px;letter-spacing:.04em;color:#666}
.reserve-app-open{font-size:11px;border-bottom:1px solid #111;padding-bottom:3px}
.reserve-app-open span{margin-left:22px}
.reserve-store-badges{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.store-badge{display:flex!important;flex-direction:column;justify-content:center;min-width:150px;height:48px;padding:6px 14px!important;border:0!important;border-radius:7px;background:#050505;color:#fff;line-height:1.05;box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)}
.store-badge-kicker{font-size:7px;letter-spacing:.03em;opacity:.92}
.store-badge strong{font-size:18px;font-weight:500;letter-spacing:-.02em;margin-top:2px}
.store-badge-google strong{font-size:16px}
@media(max-width:800px){
  .reserve-app-panel{justify-items:start;min-width:0;width:100%}
  .reserve-app-open-wrap,.reserve-download-wrap{justify-items:start}
  .reserve-store-badges{justify-content:flex-start}
  .store-badge{min-width:142px}
}


/* SHOP — top link + product listing */
.shop-view-link{font-size:clamp(23px,3.35vw,51px);line-height:.95;font-weight:400;letter-spacing:-.05em;border-bottom:0;text-transform:lowercase;display:inline-flex;align-items:baseline;gap:.35em}
.shop-view-link span{margin-left:0;font-size:.55em}
.shop-page{background:#fff}
.shop-page-heading{display:grid;grid-template-columns:1fr minmax(280px,520px);gap:clamp(50px,10vw,150px);align-items:end;margin-bottom:clamp(90px,11vw,165px)}
.shop-page-intro{margin:0;font-size:11px;line-height:2;color:#444;max-width:520px}
.shop-products{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(70px,8vw,125px) clamp(20px,3vw,48px);border-top:1px solid #aaa;padding-top:clamp(28px,3vw,48px)}
.shop-product-card{min-width:0}
.shop-product-visual{position:relative;aspect-ratio:4/5;overflow:hidden;background:#f0f1f3;display:flex;align-items:center;justify-content:center;border:1px solid #ededed}
.shop-product-visual:before{content:"";position:absolute;inset:10%;border:1px solid rgba(20,63,196,.16)}
.shop-product-visual:after{content:"";position:absolute;width:38%;aspect-ratio:1;border-radius:50%;border:1px solid rgba(20,63,196,.14)}
.shop-product-visual span{position:relative;z-index:1;font-family:var(--brand-serif);font-size:clamp(28px,4.2vw,68px);letter-spacing:-.05em;color:var(--blue)}
.shop-product-visual i{position:absolute;right:16px;bottom:14px;font-size:9px;font-style:normal;color:#555}
.shop-product-visual-b{background:#f8f8f7}
.shop-product-visual-b:after{width:58%;border-radius:0;transform:rotate(18deg)}
.shop-product-visual-c{background:linear-gradient(145deg,#f8f8f7 0%,#eef0f5 100%)}
.shop-product-visual-c:before{inset:16% 25%;transform:rotate(-8deg)}
.shop-product-visual-d{background:#f4f4f2}
.shop-product-visual-d:after{width:70%;border-radius:0;transform:rotate(45deg)}
.shop-product-meta{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding-top:14px;border-top:1px solid #aaa;margin-top:10px}
.shop-product-meta small{display:block;font-size:8px;color:#666;margin-bottom:8px;letter-spacing:.05em}
.shop-product-meta h2{margin:0;font-size:15px;font-weight:500;text-transform:lowercase;letter-spacing:.01em}
.shop-product-meta>span{font-size:9px;color:#666;white-space:nowrap;text-transform:lowercase}
.shop-page-foot{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-top:clamp(120px,14vw,220px);padding-top:28px;border-top:1px solid #999}
.shop-page-foot p{margin:0;font-size:9px;line-height:1.8;color:#666}
.shop-page-foot a{font-size:11px;border-bottom:1px solid #111;padding-bottom:3px}
.shop-page-foot a span{margin-left:20px}
@media(max-width:800px){
  .shop-view-link{font-size:29px}
  .shop-page-heading{grid-template-columns:1fr;gap:34px;margin-bottom:80px}
  .shop-page-intro{font-size:10px}
  .shop-products{grid-template-columns:1fr;gap:68px;padding-top:22px}
  .shop-product-visual span{font-size:13vw}
  .shop-product-meta h2{font-size:13px}
  .shop-page-foot{margin-top:110px;align-items:flex-start;flex-direction:column}
}

/* V64: white translucent ripple — mobile touch/swipe + desktop click */
.ceri-touch-ring{
  display:block;
  position:fixed;
  z-index:2147483000;
  pointer-events:none;
  border:1.5px solid rgba(255,255,255,var(--ceri-ring-opacity,.5));
  border-radius:50%;
  transform:translate(-50%,-50%) scale(.35);
  opacity:1;
  box-shadow:0 0 10px rgba(255,255,255,.16);
  animation:ceri-touch-ring-expand var(--ceri-ring-duration,620ms) cubic-bezier(.16,.72,.25,1) forwards;
}
@keyframes ceri-touch-ring-expand{
  0%{transform:translate(-50%,-50%) scale(.35);opacity:1}
  100%{transform:translate(-50%,-50%) scale(4.4);opacity:0}
}
@media(prefers-reduced-motion:reduce){
  .ceri-touch-ring{display:none!important}
}


/* V69: BeautyMerit hair menu detail + restored six category links */
.menu-category-nav{display:grid;grid-template-columns:repeat(3,1fr);gap:0 28px;margin-top:clamp(58px,7vw,95px);border-top:1px solid #999}
.menu-category-nav a{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid #999;font-size:11px;text-transform:lowercase}
.menu-category-nav a span{font-size:10px;color:#555}
.menu-category-block{scroll-margin-top:90px;margin-top:clamp(78px,9vw,130px)}
.menu-category-heading{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:18px}
.menu-category-heading>span{font-size:8px;letter-spacing:.1em;color:#777}
.menu-category-heading h2{font-family:var(--brand-serif);font-size:clamp(30px,4vw,58px);font-weight:700;line-height:.95;letter-spacing:-.045em;margin:0;text-transform:lowercase}
.menu-category-block .menu-detail-list{margin-top:0}
.menu-detail-row{grid-template-columns:150px 1fr 85px 130px}
.menu-detail-row .menu-time{text-align:right;font-size:10px;color:#666;white-space:nowrap}
@media(max-width:800px){
  .menu-category-nav{grid-template-columns:1fr 1fr;gap:0 18px;margin-top:48px}
  .menu-category-block{margin-top:72px;scroll-margin-top:70px}
  .menu-category-heading{margin-bottom:14px}
  .menu-detail-row{grid-template-columns:1fr auto;gap:8px 16px}
  .menu-detail-row .cat{grid-column:1 / -1}
  .menu-detail-row .menu-time{grid-column:1;text-align:left;font-size:8px}
  .menu-detail-row .price{grid-column:2;grid-row:3}
}


/* V70: stylist menu — additive only */
.stylist-menu-entry{display:flex;align-items:center;justify-content:space-between;margin-top:22px;padding:15px 0;border-top:1px solid #111;border-bottom:1px solid #111;font-size:11px;text-transform:lowercase;letter-spacing:.04em}
.stylist-menu-entry span:last-child{font-size:9px;color:#555}
.stylist-menu-entry--back{margin-top:22px}
.stylist-name-nav{display:grid;grid-template-columns:repeat(5,1fr);gap:0 20px;margin-top:clamp(58px,7vw,95px);border-top:1px solid #999}
.stylist-name-nav a{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid #999;font-size:10px}
.stylist-name-nav a span{font-size:9px;color:#555}
.stylist-price-section{scroll-margin-top:90px;margin-top:clamp(82px,9vw,135px)}
.stylist-price-heading{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:20px}
.stylist-price-heading>span{font-size:8px;letter-spacing:.1em;color:#777}
.stylist-price-heading h2{font-family:var(--brand-serif);font-size:clamp(30px,4vw,58px);font-weight:700;line-height:.95;letter-spacing:-.045em;margin:0;text-transform:lowercase}
.stylist-price-group{margin-top:32px}
.stylist-price-category{margin:0 0 8px;font-size:10px;font-weight:500;text-transform:lowercase;letter-spacing:.05em}
.stylist-price-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;padding:14px 0;border-top:1px solid #c7c7c7}
.stylist-price-row:last-child{border-bottom:1px solid #c7c7c7}
.stylist-price-row h3{margin:0 0 4px;font-size:13px;font-weight:500}
.stylist-price-row span{font-size:9px;color:#777}
.stylist-price-row strong{font-size:12px;font-weight:500;white-space:nowrap}
.stylist-source-alert{margin:16px 0 26px;padding:13px 15px;border:1px solid #bbb;font-size:10px;line-height:1.8;color:#555}
@media (max-width:760px){
  .stylist-name-nav{display:flex;overflow-x:auto;gap:0;margin-top:48px;border-top:1px solid #999;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .stylist-name-nav::-webkit-scrollbar{display:none}
  .stylist-name-nav a{flex:0 0 auto;min-width:145px;margin-right:18px}
  .stylist-price-section{margin-top:72px;scroll-margin-top:70px}
  .stylist-price-row{gap:14px;padding:13px 0}
  .stylist-menu-entry span:last-child{font-size:8px}
}

/* v3 trial: horizontal drift for Interior View photos ①/② on PC and mobile.
   Keep vertical position, size, stacking, and all other layout unchanged. */
.collage-main.is-visible{
  animation:ceri-interior-drift-main-pc 20s ease-in-out infinite alternate;
}
.collage-small-b.is-visible{
  animation:ceri-interior-drift-small-pc 24s ease-in-out infinite alternate;
}
/* v6.79 PC smoothness fix: keep the approved horizontal travel range/timing,
   but move the two foreground photos with compositor-friendly translate instead
   of animating right/left (which forces layout work on every frame). */
@keyframes ceri-interior-drift-main-pc{
  from{translate:0 0}
  to{translate:-142.105263% 0}
}
@keyframes ceri-interior-drift-small-pc{
  from{translate:0 0}
  to{translate:268% 0}
}
@media(min-width:801px){
  .collage-main.is-visible,.collage-small-b.is-visible{will-change:translate}
}
@media(max-width:800px){
  .collage-main.is-visible{
    animation-name:ceri-interior-drift-main-mobile;
    animation-duration:20s;
  }
  .collage-small-b.is-visible{
    animation-name:ceri-interior-drift-small-mobile;
    animation-duration:24s;
  }
  @keyframes ceri-interior-drift-main-mobile{
    from{right:calc(0% - var(--ceri-interior-mobile-photo1-x,0%))}
    to{right:calc(34% - var(--ceri-interior-mobile-photo1-x,0%))}
  }
  @keyframes ceri-interior-drift-small-mobile{
    from{left:calc(1% + var(--ceri-interior-mobile-photo3-x,0%))}
    to{left:calc(58% + var(--ceri-interior-mobile-photo3-x,0%))}
  }
}

/* v5.1 temporary tuning: only Interior View depth + drift duration are adjustable.
   Level 1 float = v3, level 5 float = v5. Layout/position/size/stacking remain untouched. */
.concept-collage figure{box-shadow:var(--ceri-interior-shadow-pc,0 40px 86px rgba(0,0,0,.28),14px 24px 38px rgba(0,0,0,.18),4px 8px 14px rgba(0,0,0,.12))}
.collage-main.is-visible{animation-duration:var(--ceri-interior-main-duration,20s)}
.collage-small-b.is-visible{animation-duration:var(--ceri-interior-small-duration,24s)}
@media(max-width:800px){
  .concept-collage figure{box-shadow:var(--ceri-interior-shadow-mobile,0 32px 66px rgba(0,0,0,.26),12px 20px 32px rgba(0,0,0,.17),3px 6px 12px rgba(0,0,0,.11))}
}
.interior-tuning-panel{position:absolute;left:14px;bottom:14px;z-index:20;width:230px;box-sizing:border-box;padding:11px 12px 10px;border:1px solid rgba(255,255,255,.52);border-radius:10px;background:rgba(255,255,255,.62);box-shadow:0 8px 28px rgba(0,0,0,.08);backdrop-filter:blur(14px) saturate(135%);-webkit-backdrop-filter:blur(14px) saturate(135%);font:600 10px/1.25 Arial,sans-serif;color:#111}
.interior-tuning-title{margin-bottom:8px;font-size:9px;letter-spacing:.12em;color:#6d6d6d;cursor:grab;user-select:none;touch-action:none}
.interior-tuning-panel label{display:block;margin-top:8px}
.interior-tuning-panel label span{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}
.interior-tuning-panel label b{font-size:10px;font-weight:700;color:#111}
.interior-tuning-panel input[type="range"]{display:block;width:100%;margin:0;accent-color:#1458ff;cursor:pointer}
.interior-tuning-readout{margin-top:8px;padding-top:7px;border-top:1px solid rgba(0,0,0,.10);font-size:9px;font-weight:400;line-height:1.45;color:#696969}
.interior-tuning-panel.is-dragging{box-shadow:0 10px 32px rgba(0,0,0,.12)}
.interior-tuning-panel.is-dragging .interior-tuning-title{cursor:grabbing}
@media(max-width:800px){.interior-tuning-panel{left:10px;bottom:10px;width:205px;padding:10px 11px}}

/* v5.3 temporary comparison toggles: disable only Interior View drift/shadow. */
.interior-tuning-toggles{display:flex;gap:14px;margin-top:10px;padding-top:8px;border-top:1px solid rgba(0,0,0,.10)}
.interior-tuning-panel .interior-tuning-check{display:flex;align-items:center;gap:5px;margin:0;font-weight:500;cursor:pointer}
.interior-tuning-panel .interior-tuning-check input{margin:0;accent-color:#1458ff}
.interior-tuning-panel .interior-tuning-check span{display:inline;margin:0}
html.interior-motion-off .collage-main.is-visible,html.interior-motion-off .collage-small-b.is-visible{animation:none!important}
html.interior-shadow-off .concept-collage figure{box-shadow:none!important}

/* v5.4 temporary Interior View motion-pattern comparison.
   Pattern only: horizontal / bounded random collision. */
.interior-motion-pattern{margin-top:10px;padding-top:8px;border-top:1px solid rgba(0,0,0,.10)}
.interior-motion-pattern>span{display:block;margin-bottom:6px;font-weight:600}
.interior-motion-pattern label{display:inline-flex!important;align-items:center;gap:4px;margin:0 8px 0 0!important;font-weight:500;cursor:pointer}
.interior-motion-pattern label span{display:inline!important;margin:0!important}
.interior-motion-pattern input{margin:0;accent-color:#1458ff}
html.interior-motion-script .collage-main.is-visible,
html.interior-motion-script .collage-small-b.is-visible{animation:none!important;will-change:transform}

/* v6.53: Site Adjustment only. Interior View initial-position drag editor. */
.interior-position-tuning{margin-top:10px;padding-top:8px;border-top:1px solid rgba(0,0,0,.10)}
.interior-position-tuning>span{display:block;margin-bottom:6px;font-weight:600}
.interior-position-targets{display:flex;flex-wrap:wrap;gap:5px}
.interior-position-targets button{appearance:none;border:1px solid rgba(0,0,0,.22);border-radius:999px;background:rgba(255,255,255,.74);padding:5px 7px;font:600 9px/1 Arial,sans-serif;color:#333;cursor:pointer}
.interior-position-targets button.is-active{border-color:#1458ff;background:#1458ff;color:#fff}
.interior-position-help{margin-top:6px;font-size:8px;font-weight:400;line-height:1.45;color:#777}
.interior-position-device-mobile{display:none}
html.interior-position-adjusting .collage-main.is-visible,html.interior-position-adjusting .collage-small-b.is-visible{animation:none!important}
html.ceri-site-edit-mode.interior-position-adjusting .concept-collage figure.is-interior-position-target{cursor:move;touch-action:none;outline:2px solid #1458ff;outline-offset:3px}
html.ceri-site-edit-mode.interior-position-adjusting[data-interior-position-target="background"] .concept-collage{cursor:move;touch-action:none}
html.ceri-site-edit-mode.interior-position-adjusting[data-interior-position-target="background"] .concept-collage::before{outline:2px solid rgba(20,88,255,.55);outline-offset:-2px}
@media(max-width:800px){
  .interior-position-device-pc{display:none}
  .interior-position-device-mobile{display:flex}
}


/* v5.8 temporary Instagram frame comparison. Existing two-row marquee motion is unchanged. */
.instagram-frame-test{display:flex;align-items:center;flex-wrap:wrap;gap:7px 9px;width:max-content;max-width:100%;margin:-34px 0 18px auto;padding:8px 10px;border:1px solid rgba(0,0,0,.10);border-radius:999px;background:rgba(255,255,255,.72);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font:600 9px/1 Arial,sans-serif;color:#555}
.instagram-frame-test>span{margin-right:3px;letter-spacing:.1em;color:#888}
.instagram-frame-test label{display:inline-flex;align-items:center;gap:4px;cursor:pointer;margin:0}
.instagram-frame-test input{margin:0;accent-color:#1458ff}
.instagram-frame-test b{font-weight:600;color:#333;white-space:nowrap}

.insta-stack[class*="insta-frame-"] .insta-marquee{position:relative;transition:background-color .2s ease,padding .2s ease,border-color .2s ease}
.insta-stack[class*="insta-frame-"] .insta-card{box-sizing:border-box;transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease}

/* No frame: exact original appearance. */
.insta-frame-plain .insta-marquee{padding:0;background:transparent}
.insta-frame-plain .insta-card{border:0;box-shadow:none}
.insta-frame-plain .insta-marquee::before,.insta-frame-plain .insta-marquee::after{content:none}

/* 35mm black: continuous film strip with sprocket holes. */
.insta-frame-film-black .insta-marquee{padding:22px 0;background:#0b0b0b}
.insta-frame-film-black .insta-card{border:4px solid #0b0b0b;background:#111}
.insta-frame-film-black .insta-marquee::before,.insta-frame-film-black .insta-marquee::after,
.insta-frame-film-white .insta-marquee::before,.insta-frame-film-white .insta-marquee::after,
.insta-frame-film-silver .insta-marquee::before,.insta-frame-film-silver .insta-marquee::after{content:"";position:absolute;left:0;right:0;height:13px;z-index:5;pointer-events:none;background-size:24px 13px;background-repeat:repeat-x}
.insta-frame-film-black .insta-marquee::before{top:4px;background-image:radial-gradient(ellipse at center,#f4f4f0 0 3px,transparent 3.5px)}
.insta-frame-film-black .insta-marquee::after{bottom:4px;background-image:radial-gradient(ellipse at center,#f4f4f0 0 3px,transparent 3.5px)}

/* 35mm white: editorial/light film stock. */
.insta-frame-film-white .insta-marquee{padding:22px 0;background:#f6f5f0;border-top:1px solid #d9d7cf;border-bottom:1px solid #d9d7cf}
.insta-frame-film-white .insta-card{border:4px solid #f6f5f0;background:#fff}
.insta-frame-film-white .insta-marquee::before{top:4px;background-image:radial-gradient(ellipse at center,#1c1c1c 0 2.8px,transparent 3.4px)}
.insta-frame-film-white .insta-marquee::after{bottom:4px;background-image:radial-gradient(ellipse at center,#1c1c1c 0 2.8px,transparent 3.4px)}

/* Silver/chrome: cooler material tone suited to ceri's inorganic interior. */
.insta-frame-film-silver .insta-marquee{padding:22px 0;background:linear-gradient(180deg,#d7d9dc,#aeb2b7 50%,#dfe1e3);border-top:1px solid #92969b;border-bottom:1px solid #92969b}
.insta-frame-film-silver .insta-card{border:4px solid #bfc3c7;background:#c7cacf;box-shadow:inset 0 0 0 1px rgba(255,255,255,.34)}
.insta-frame-film-silver .insta-marquee::before{top:4px;background-image:radial-gradient(ellipse at center,#26282a 0 3px,transparent 3.5px)}
.insta-frame-film-silver .insta-marquee::after{bottom:4px;background-image:radial-gradient(ellipse at center,#26282a 0 3px,transparent 3.5px)}

/* Contact sheet: photographic proof-sheet feel, quieter than perforated film. */
.insta-frame-contact .insta-marquee{padding:10px 0;background:#f3f3f1;border-top:1px solid #cfcfca;border-bottom:1px solid #cfcfca}
.insta-frame-contact .insta-card{position:relative;border:5px solid #f3f3f1;box-shadow:inset 0 0 0 1px #9d9d98;background:#e8e8e4}
.insta-frame-contact .insta-card::after{content:"ceri";position:absolute;left:8px;bottom:6px;z-index:2;padding:2px 4px;background:rgba(0,0,0,.62);color:#fff;font:500 7px/1 Arial,sans-serif;letter-spacing:.08em;pointer-events:none}
.insta-frame-contact .insta-marquee::before,.insta-frame-contact .insta-marquee::after{content:none}

@media(max-width:800px){
  .instagram-frame-test{margin:-28px 0 14px 0;border-radius:12px;gap:7px 8px}
  .instagram-frame-test>span{width:100%;margin-bottom:1px}
  .insta-frame-film-black .insta-marquee,.insta-frame-film-white .insta-marquee,.insta-frame-film-silver .insta-marquee{padding:18px 0}
  .insta-frame-film-black .insta-marquee::before,.insta-frame-film-black .insta-marquee::after,
  .insta-frame-film-white .insta-marquee::before,.insta-frame-film-white .insta-marquee::after,
  .insta-frame-film-silver .insta-marquee::before,.insta-frame-film-silver .insta-marquee::after{height:10px;background-size:20px 10px}
}


/* v5.11 Instagram film fidelity correction.
   Only the Instagram film strip presentation is adjusted here.
   Reference priorities: thin frame dividers, square perforations, edge-positioned markings,
   and restrained reflections on the film stock. */
.instagram-frame-test{display:grid;gap:9px;width:min(100%,1080px);margin:-34px 0 18px auto;padding:12px 14px;border-radius:16px;border:1px solid rgba(0,0,0,.08);background:rgba(255,255,255,.74);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 10px 24px rgba(17,17,17,.06)}
.instagram-test-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px}
.instagram-test-row>span,.instagram-speed-control>span,.instagram-range-control>span{min-width:58px;font:700 8px/1 Arial,sans-serif;letter-spacing:.12em;color:#777}
.instagram-test-row label{display:inline-flex;align-items:center;gap:4px;margin:0;cursor:pointer}
.instagram-test-row b{font:600 10px/1.2 Arial,sans-serif;color:#333;white-space:nowrap}
.instagram-speed-control,.instagram-range-control{display:grid!important;grid-template-columns:74px minmax(180px,320px);align-items:center;gap:8px;margin:0!important;padding-top:2px}
.instagram-speed-control>span,.instagram-range-control>span{display:flex!important;justify-content:space-between!important;margin:0!important}
.instagram-speed-control input[type="range"],.instagram-range-control input[type="range"]{width:100%;margin:0;accent-color:#1458ff}
.instagram-test-actions{display:flex;justify-content:flex-end}
.instagram-reset-button{appearance:none;border:1px solid rgba(17,17,17,.16);background:rgba(255,255,255,.86);border-radius:999px;padding:8px 14px;font:700 10px/1 Arial,sans-serif;letter-spacing:.08em;color:#222;cursor:pointer}

.insta-stack{
  --film-gap:2px;
  --film-side-pad:14px;
  --film-band:34px;
  --film-window-border:1px;
  --film-radius:7px;
  --film-surface:linear-gradient(180deg,#33281f 0%,#251d17 48%,#34281f 100%);
  --film-reflection:linear-gradient(180deg,rgba(255,255,255,.18) 0%,rgba(255,255,255,.055) 3%,rgba(255,255,255,0) 11%,rgba(255,255,255,0) 88%,rgba(255,255,255,.045) 96%,rgba(255,255,255,.14) 100%);
  --film-edge-light:linear-gradient(90deg,rgba(255,255,255,.15) 0%,rgba(255,255,255,.035) .7%,rgba(255,255,255,0) 2.1%,rgba(255,255,255,0) 97.9%,rgba(255,255,255,.04) 99.2%,rgba(255,255,255,.16) 100%);
  --film-micro:linear-gradient(90deg,rgba(255,255,255,.016),transparent 12%,rgba(0,0,0,.025) 34%,rgba(255,255,255,.012) 61%,rgba(0,0,0,.028));
  --film-card-bg:#0d0b09;
  --film-ink:#c9975d;
  --film-outline:1px solid rgba(255,255,255,.055);
  --film-shadow:2px 6px 14px rgba(82,82,82,.18),1px 2px 4px rgba(42,42,42,.12);
  --film-hole-filter:none;
}
.insta-stack .insta-marquee{overflow:hidden;width:100%;position:relative;padding:0!important;background:transparent!important;border:0!important}
.insta-stack .insta-track{display:flex;width:max-content;will-change:transform;position:relative;box-sizing:border-box;padding:var(--film-band) 0;background-image:var(--film-corner-gloss),var(--film-edge-light),var(--film-reflection),var(--film-micro),var(--film-surface);background-color:#251d17;border-radius:var(--film-radius);box-shadow:var(--film-shadow),inset 0 1px 0 rgba(255,255,255,.11),inset 0 -1px 0 rgba(255,255,255,.07);outline:var(--film-outline);outline-offset:-1px;transition:background .18s ease,box-shadow .18s ease;isolation:isolate}
/* Square film perforations. Text is deliberately kept outside this perforation row. */
.insta-stack .insta-track::before,.insta-stack .insta-track::after{content:"";position:absolute;left:0;right:0;height:15px;z-index:2;pointer-events:none;background-repeat:repeat-x;background-size:37px 15px;background-position:0 0;background-image:var(--film-hole-image);opacity:1;filter:var(--film-hole-filter)}
.insta-stack .insta-track::before{top:11px}
.insta-stack .insta-track::after{bottom:11px}
.insta-stack .insta-group{display:flex;flex-shrink:0;gap:var(--film-gap);padding:0 var(--film-side-pad)}
.insta-stack .insta-card{display:block;position:relative;width:clamp(120px,13.5vw,220px);aspect-ratio:1/1;overflow:visible;background:var(--film-card-bg);flex:0 0 auto;border:var(--film-window-border) solid rgba(0,0,0,.62)!important;box-shadow:none!important}
.insta-stack .insta-card img{width:100%;height:100%;object-fit:cover;object-position:50% 50%;display:block;background-color:var(--film-card-bg);box-shadow:inset 0 0 0 .5px rgba(255,255,255,.035)}
/* Edge printing sits at the outer edge of the film, not on top of the perforations. */
.insta-stack .insta-card::before,.insta-stack .insta-card::after{position:absolute;left:4px;right:4px;z-index:4;pointer-events:none;color:var(--film-ink);font-family:"Courier New",monospace;letter-spacing:.065em;white-space:nowrap;overflow:hidden;text-overflow:clip;text-transform:uppercase}
.insta-stack .insta-card::before{content:attr(data-film-top);top:-31px;font-size:6.4px;font-weight:700;line-height:1}
.insta-stack .insta-card::after{content:attr(data-film-bottom);bottom:-31px;font-size:6px;font-weight:700;line-height:1;opacity:.94}
.insta-stack .insta-card:hover img{transform:none}

/* Texture changes the physical surface finish only. */
.insta-texture-standard{--film-reflection:linear-gradient(180deg,rgba(255,255,255,.16) 0%,rgba(255,255,255,.05) 3%,transparent 11%,transparent 89%,rgba(255,255,255,.04) 96%,rgba(255,255,255,.13) 100%);--film-micro:linear-gradient(90deg,rgba(255,255,255,.014),transparent 11%,rgba(0,0,0,.024) 34%,rgba(255,255,255,.011) 61%,rgba(0,0,0,.025));--film-shadow:0 8px 18px rgba(0,0,0,.12)}
.insta-texture-gloss{--film-reflection:linear-gradient(180deg,rgba(255,255,255,.32) 0%,rgba(255,255,255,.15) 4%,rgba(255,255,255,.025) 12%,transparent 24%,transparent 77%,rgba(255,255,255,.03) 89%,rgba(255,255,255,.18) 96%,rgba(255,255,255,.34) 100%);--film-edge-light:linear-gradient(90deg,rgba(255,255,255,.28) 0%,rgba(255,255,255,.07) .9%,transparent 2.8%,transparent 97.2%,rgba(255,255,255,.08) 99.1%,rgba(255,255,255,.30) 100%);--film-shadow:0 10px 22px rgba(0,0,0,.15)}
.insta-texture-matte{--film-reflection:linear-gradient(180deg,rgba(255,255,255,.055) 0%,rgba(255,255,255,.016) 4%,transparent 13%,transparent 88%,rgba(255,255,255,.012) 96%,rgba(255,255,255,.045) 100%);--film-edge-light:linear-gradient(90deg,rgba(255,255,255,.07),transparent 2.2%,transparent 97.8%,rgba(255,255,255,.07));--film-micro:repeating-linear-gradient(90deg,rgba(255,255,255,.011) 0 1px,transparent 1px 4px),linear-gradient(90deg,transparent,rgba(0,0,0,.025));--film-shadow:0 6px 14px rgba(0,0,0,.10)}

/* Frame/material color only. Geometry stays identical across choices. */
.insta-frame-none .insta-track{padding:0;background:none!important;box-shadow:none;outline:none;border-radius:0}
.insta-frame-none .insta-track::before,.insta-frame-none .insta-track::after{content:none}
.insta-frame-none .insta-group{gap:8px;padding:0}
.insta-frame-none .insta-card{overflow:hidden;border:0!important;background:#eee}
.insta-frame-none .insta-card::before,.insta-frame-none .insta-card::after{content:none}
.insta-frame-black{--film-surface:linear-gradient(180deg,#161616,#080808 48%,#171717);--film-card-bg:#080808;--film-ink:#d69a54;--film-outline:1px solid rgba(255,255,255,.045)}
.insta-frame-brown{--film-surface:linear-gradient(180deg,#34291f,#251c16 48%,#35291f);--film-card-bg:#0f0c09;--film-ink:#c9975d;--film-outline:1px solid rgba(255,255,255,.055)}
.insta-frame-gray{--film-surface:linear-gradient(180deg,#4c4d50,#393a3d 48%,#505155);--film-card-bg:#151618;--film-ink:#d7b07b;--film-outline:1px solid rgba(255,255,255,.05)}
.insta-frame-white{--film-surface:linear-gradient(180deg,#faf9f6,#efede8 50%,#fbfbf8);--film-card-bg:#f4f4f1;--film-ink:#6d6963;--film-outline:1px solid rgba(0,0,0,.16);--film-shadow:0 7px 16px rgba(0,0,0,.08)}
.insta-frame-white .insta-card{border-color:rgba(120,120,120,.34)!important}
.insta-frame-metal{--film-surface:linear-gradient(180deg,#b8bcc0 0%,#8e9398 18%,#c6c9cc 36%,#777d83 51%,#b9bdc1 72%,#898e94 100%);--film-card-bg:#b4b8bc;--film-ink:#42474d;--film-outline:1px solid rgba(255,255,255,.30)}
.insta-frame-chrome{--film-surface:linear-gradient(180deg,#f7f9fb 0%,#a9afb5 8%,#fefefe 20%,#757b82 34%,#e5e8ea 48%,#686f77 62%,#ffffff 77%,#969ca3 91%,#eef1f3 100%);--film-card-bg:#d9dde0;--film-ink:#44494e;--film-outline:1px solid rgba(255,255,255,.58);--film-shadow:0 9px 20px rgba(0,0,0,.13)}

/* Perforation contrast follows the chosen material but the hole geometry never changes. */
.insta-frame-black .insta-track::before,.insta-frame-black .insta-track::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='37' height='15' viewBox='0 0 37 15'%3E%3Crect x='7' y='1' width='14' height='13' fill='%23F3F1EB'/%3E%3C/svg%3E")}
.insta-frame-brown .insta-track::before,.insta-frame-brown .insta-track::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='37' height='15' viewBox='0 0 37 15'%3E%3Crect x='7' y='1' width='14' height='13' fill='%23F1EEE6'/%3E%3C/svg%3E")}
.insta-frame-gray .insta-track::before,.insta-frame-gray .insta-track::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='37' height='15' viewBox='0 0 37 15'%3E%3Crect x='7' y='1' width='14' height='13' fill='%23F3F3EF'/%3E%3C/svg%3E")}
.insta-frame-white .insta-track::before,.insta-frame-white .insta-track::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='37' height='15' viewBox='0 0 37 15'%3E%3Crect x='7' y='1' width='14' height='13' fill='%23242424'/%3E%3C/svg%3E");opacity:.72}
.insta-frame-metal .insta-track::before,.insta-frame-metal .insta-track::after,.insta-frame-chrome .insta-track::before,.insta-frame-chrome .insta-track::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='37' height='15' viewBox='0 0 37 15'%3E%3Crect x='7' y='1' width='14' height='13' fill='%23131313'/%3E%3C/svg%3E");opacity:.72}

.insta-forward .insta-track{animation:ceri-insta-forward var(--ceri-insta-duration,52s) linear infinite}
.insta-reverse .insta-track{animation:ceri-insta-reverse var(--ceri-insta-duration,52s) linear infinite}
@keyframes ceri-insta-forward{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes ceri-insta-reverse{from{transform:translateX(-50%)}to{transform:translateX(0)}}

@media(max-width:800px){
  .instagram-frame-test{margin:-28px 0 14px 0;width:100%;box-sizing:border-box;padding:12px}
  .instagram-test-row{align-items:flex-start}
  .instagram-test-row>span{width:100%;margin-bottom:1px}
  .instagram-speed-control,.instagram-range-control{grid-template-columns:66px minmax(0,1fr);width:100%}
  .instagram-test-actions{justify-content:flex-start}
  .insta-stack{--film-gap:1px;--film-side-pad:8px;--film-band:27px;--film-window-border:1px;--film-radius:5px}
  .insta-stack .insta-track{padding:var(--film-band) 0}
  .insta-stack .insta-track::before,.insta-stack .insta-track::after{height:12px;background-size:30px 12px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='12' viewBox='0 0 30 12'%3E%3Crect x='6' y='1' width='11' height='10' fill='%23F1EEE6'/%3E%3C/svg%3E")}
  .insta-stack .insta-track::before{top:9px}.insta-stack .insta-track::after{bottom:9px}
  .insta-stack .insta-card{width:32vw;border-width:1px!important}
  .insta-stack .insta-card::before{top:-25px;font-size:5px}
  .insta-stack .insta-card::after{bottom:-25px;font-size:4.8px}
  .insta-forward .insta-track,.insta-reverse .insta-track{animation-duration:var(--ceri-insta-duration-mobile,42s)!important}
}




/* v5.12 Instagram film fidelity correction only.
   Preserve the existing Instagram layout/animation controls; correct only strip geometry. */
#instagramFrameTarget{
  --film-gap:2px;
  --film-band:34px;
  --film-window-border:1px;
}
/* Every inter-frame divider is identical, including the loop join. */
#instagramFrameTarget .insta-track{gap:0!important}
#instagramFrameTarget .insta-group{
  position:relative;
  display:flex;
  flex-shrink:0;
  gap:var(--film-gap)!important;
  padding:0!important;
  margin:0 var(--film-gap) 0 0!important;
}
#instagramFrameTarget .insta-card{
  margin:0!important;
  border-width:var(--film-window-border)!important;
}
/* Perforations are square and sit close to the image aperture, as in the supplied reference. */
#instagramFrameTarget .insta-track::before,
#instagramFrameTarget .insta-track::after{
  height:14px!important;
  background-size:36px 14px!important;
  background-position:0 0!important;
}
#instagramFrameTarget .insta-track::before{top:18px!important}
#instagramFrameTarget .insta-track::after{bottom:18px!important}
#instagramFrameTarget .insta-track::before,
#instagramFrameTarget .insta-track::after{
  background-image:var(--film-hole-image)!important;
}
/* Edge printing remains in the outer margin, never over the perforation row. */
#instagramFrameTarget .insta-card::before{top:-31px!important;left:3px!important;right:3px!important}
#instagramFrameTarget .insta-card::after{bottom:-31px!important;left:3px!important;right:3px!important}
/* Narrow light strike/reflection at the physical left edge of each repeated film length. */
#instagramFrameTarget:not(.insta-frame-none) .insta-group::before{
  content:"";
  position:absolute;
  z-index:12;
  pointer-events:none;
  left:0;
  top:calc(-1 * var(--film-band));
  bottom:calc(-1 * var(--film-band));
  width:9px;
  background:linear-gradient(90deg,
    rgba(255,255,255,.42) 0%,
    rgba(255,255,255,.22) 16%,
    rgba(255,255,255,.075) 36%,
    rgba(255,255,255,0) 100%);
  mix-blend-mode:screen;
  opacity:.62;
}
#instagramFrameTarget.insta-texture-gloss .insta-group::before{opacity:.92;width:11px}
#instagramFrameTarget.insta-texture-matte .insta-group::before{opacity:.25;width:7px}
#instagramFrameTarget.insta-frame-none .insta-group{gap:8px!important;margin-right:8px!important}
#instagramFrameTarget.insta-frame-none .insta-group::before{content:none!important}
@media(max-width:800px){
  #instagramFrameTarget{--film-gap:1px;--film-band:27px;--film-window-border:1px}
  #instagramFrameTarget .insta-track::before,
  #instagramFrameTarget .insta-track::after{height:11px!important;background-size:29px 11px!important}
  #instagramFrameTarget .insta-track::before{top:15px!important}
  #instagramFrameTarget .insta-track::after{bottom:15px!important}
  #instagramFrameTarget .insta-track::before,
  #instagramFrameTarget .insta-track::after{
    background-image:var(--film-hole-image-mobile,var(--film-hole-image))!important;
  }
  #instagramFrameTarget .insta-card::before{top:-25px!important}
  #instagramFrameTarget .insta-card::after{bottom:-25px!important}
}




/* v5.15 Instagram shadow visibility boost.
   Make the frame shadow clearly perceptible without spreading too widely.
   Keep it tight around the strip and around each perforation. */
#instagramFrameTarget .insta-track{
  box-shadow:var(--film-shadow),inset 0 1px 0 rgba(255,255,255,.11),inset 0 -1px 0 rgba(255,255,255,.07)!important;
}
#instagramFrameTarget .insta-track::before,
#instagramFrameTarget .insta-track::after{
  filter:var(--film-hole-filter)!important;
}
#instagramFrameTarget:not(.insta-frame-none) .insta-track::selection{background:transparent}

/* v5.13 Instagram film fine adjustment only.
   1) Move perforations slightly away from the photo aperture (approx. 2x the v5.12 gap).
   2) Move edge text to the midpoint between perforations and the outer film edge.
   3) Show sparse, fixed text only: date on top / ceri omotesando on bottom. */
#instagramFrameTarget .insta-track::before{top:16px!important}
#instagramFrameTarget .insta-track::after{bottom:16px!important}
#instagramFrameTarget .insta-card::before,
#instagramFrameTarget .insta-card::after{content:none!important}
#instagramFrameTarget .insta-group .insta-card:nth-child(3n+1)::before{
  content:attr(data-film-top)!important;
  top:-34px!important;
  height:16px!important;
  left:0!important;
  right:0!important;
  width:auto!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  color:var(--film-ink)!important;
  font-size:6.4px!important;
  line-height:1!important;
  letter-spacing:.12em!important;
}
#instagramFrameTarget .insta-group .insta-card:nth-child(3n+1)::after{
  content:none!important;
}
#instagramFrameTarget .insta-group .insta-card:nth-child(3n+2)::before{
  content:none!important;
}
#instagramFrameTarget .insta-group .insta-card:nth-child(3n+2)::after{
  content:attr(data-film-bottom)!important;
  bottom:-34px!important;
  height:16px!important;
  left:0!important;
  right:0!important;
  width:auto!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  color:var(--film-ink)!important;
  font-size:6.4px!important;
  line-height:1!important;
  letter-spacing:.10em!important;
  text-transform:none!important;
}
@media(max-width:800px){
  #instagramFrameTarget .insta-track::before{top:14px!important}
  #instagramFrameTarget .insta-track::after{bottom:14px!important}
  #instagramFrameTarget .insta-group .insta-card:nth-child(3n+1)::before{top:-27px!important;height:14px!important;font-size:5.5px!important}
  #instagramFrameTarget .insta-group .insta-card:nth-child(3n+2)::after{bottom:-27px!important;height:14px!important;font-size:5.5px!important}
}


/* v5.16 Instagram perforation tuning only.
   HOLE GAP: 1 = nearly touching, 10 = v5.15 spacing.
   HOLE ROUND: 0 = v5.15 square hole, 10 = ellipse inside the same maximum hole envelope. */
#instagramFrameTarget{
  --film-hole-pitch:36px;
  --film-hole-pitch-mobile:29px;
  --film-hole-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='14' viewBox='0 0 36 14'%3E%3Crect x='7' y='1' width='13' height='12' fill='%23F1EEE6'/%3E%3C/svg%3E");
  --film-hole-image-mobile:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='11' viewBox='0 0 29 11'%3E%3Crect x='6' y='1' width='10' height='9' fill='%23F1EEE6'/%3E%3C/svg%3E");
}
#instagramFrameTarget .insta-track::before,
#instagramFrameTarget .insta-track::after{
  background-image:var(--film-hole-image)!important;
  background-size:var(--film-hole-pitch) 14px!important;
}
@media(max-width:800px){
  #instagramFrameTarget .insta-track::before,
  #instagramFrameTarget .insta-track::after{
    background-image:var(--film-hole-image-mobile,var(--film-hole-image))!important;
    background-size:var(--film-hole-pitch-mobile) 11px!important;
  }
}

/* v5.17 Instagram perforation shadow fidelity.
   Directional light source from top-left: each sprocket hole gets a tight gray cast shadow to the lower-right,
   while the strip itself gets a restrained directional shadow instead of a broad black blur. */
#instagramFrameTarget .insta-track{
  box-shadow:var(--film-shadow),inset 0 1px 0 rgba(255,255,255,.12),inset 0 -1px 0 rgba(255,255,255,.06)!important;
}
#instagramFrameTarget .insta-track::before,
#instagramFrameTarget .insta-track::after{
  filter:var(--film-hole-filter)!important;
  background-repeat:repeat-x!important;
  background-position:0 0!important;
}



/* v5.18 physical correction only: perforation shadow is inside the hole on the top/left edges.
   No exterior lower-right sprocket shadow. Film-strip shadow remains separate and gray/directional. */
#instagramFrameTarget .insta-track::before,
#instagramFrameTarget .insta-track::after{
  filter:none!important;
}

/* v5.22 edge-label vertical centering: both top date and bottom ceri omotesando are centered in the band between the sprocket row and the outer edge. */

/* v5.23: stagger bottom text so it sits between the repeating top date marks, not directly opposite them. */


/* v5.27 temporary section tuning panels */
.section-tuning-panel{display:grid;gap:10px;width:min(100%,460px);margin:-12px 0 24px auto;padding:14px 16px;border:1px solid rgba(0,0,0,.08);border-radius:16px;background:rgba(255,255,255,.78);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 10px 24px rgba(17,17,17,.06);font:600 10px/1.25 Arial,sans-serif;color:#555}
.section-tuning-title{font-size:9px;letter-spacing:.12em;color:#8a8a8a}
.section-tuning-control{display:grid;gap:6px}
.section-tuning-control span{display:flex;justify-content:space-between;align-items:center}
.section-tuning-control b{font-size:10px;color:#111}
.section-tuning-control input[type="range"]{display:block;width:100%;margin:0;accent-color:#1458ff;cursor:pointer}
@media(max-width:800px){.section-tuning-panel{width:100%;margin:0 0 16px;padding:12px}}

/* v5.27: section shadow/layout tuning hooks */
#season .season-photo{box-shadow:var(--ceri-season-shadow-pc,0 40px 86px rgba(0,0,0,.28),14px 24px 38px rgba(0,0,0,.18),4px 8px 14px rgba(0,0,0,.12))}
#season .season-card:nth-child(2){margin-top:calc(var(--ceri-season-layout-multiplier,1) * clamp(82px,7.5vw,132px))}
#season .season-card:nth-child(3){margin-top:calc(var(--ceri-season-layout-multiplier,1) * clamp(164px,15vw,264px))}
#staff .staff-preview-visual{box-shadow:var(--ceri-staff-shadow-pc,0 40px 86px rgba(0,0,0,.28),14px 24px 38px rgba(0,0,0,.18),4px 8px 14px rgba(0,0,0,.12))}
.ceri-blog{padding-top:var(--section-gap);display:grid;grid-template-columns:32% 68%;align-items:start}
.ceri-blog .section-title,.ceri-blog-note,.ceri-blog-list,.ceri-blog-actions,.ceri-blog .section-tuning-panel{grid-column:2}
.ceri-blog .section-title{grid-column:1}
#ceri-blog .journal-item img,#ceri-blog .journal-item .blog-card-noimage{box-shadow:var(--ceri-ceriblog-shadow-pc,0 40px 86px rgba(0,0,0,.28),14px 24px 38px rgba(0,0,0,.18),4px 8px 14px rgba(0,0,0,.12))}
#ceri-blog .journal-item:nth-child(2){position:relative;left:calc(-1 * var(--ceri-ceriblog-layout-multiplier,1) * clamp(28px,3vw,52px))}
#ceri-blog .journal-item:nth-child(3){position:relative;left:calc(-2 * var(--ceri-ceriblog-layout-multiplier,1) * clamp(28px,3vw,52px))}
.blog-card-noimage{width:190px;height:116px;background:#f1f2f3}
@media(max-width:800px){
  #season .season-photo{box-shadow:var(--ceri-season-shadow-mobile,0 32px 66px rgba(0,0,0,.26),12px 20px 32px rgba(0,0,0,.17),3px 6px 12px rgba(0,0,0,.11))}
  #staff .staff-preview-visual{box-shadow:var(--ceri-staff-shadow-mobile,0 32px 66px rgba(0,0,0,.26),12px 20px 32px rgba(0,0,0,.17),3px 6px 12px rgba(0,0,0,.11))}
  #ceri-blog .journal-item img,#ceri-blog .journal-item .blog-card-noimage{box-shadow:var(--ceri-ceriblog-shadow-mobile,0 32px 66px rgba(0,0,0,.26),12px 20px 32px rgba(0,0,0,.17),3px 6px 12px rgba(0,0,0,.11))}
  .ceri-blog{display:block}
  .ceri-blog .section-title,.ceri-blog-note,.ceri-blog-list,.ceri-blog-actions,.ceri-blog .section-tuning-panel{grid-column:auto}
  #season .season-card:nth-child(2),#season .season-card:nth-child(3),#ceri-blog .journal-item:nth-child(2),#ceri-blog .journal-item:nth-child(3){left:0;margin-top:0}
  .blog-card-noimage{width:105px;height:76px}
}

/* v5.30 Instagram tuning controls only.
   DIVIDER: level 5 matches the former level-10 width; level 1 keeps the former level-1 width.
   PHOTO ROUND: level 5 keeps the former level-5 radius; level 1 is square. */
#instagramFrameTarget{
  --film-divider-gap-desktop:6.67px;
  --film-divider-gap-mobile:3.33px;
  --film-photo-radius:10px;
  --film-gap:var(--film-divider-gap-desktop);
}
#instagramFrameTarget .insta-card,
#instagramFrameTarget .insta-card img{
  border-radius:var(--film-photo-radius)!important;
}
@media(max-width:800px){
  #instagramFrameTarget{--film-gap:var(--film-divider-gap-mobile)}
}


/* v5.31 Instagram shadow split only.
   SHADOW 1 remains exclusively inside the perforation SVG.
   SHADOW 2 reuses the exact approved section-shadow calculation and applies it to both film rows. */
#instagramFrameTarget{overflow:visible}
#instagramFrameTarget .insta-track{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),inset 0 -1px 0 rgba(255,255,255,.06)!important;
}
#instagramFrameTarget:not(.insta-frame-none) .insta-marquee{
  box-shadow:var(--ceri-instagram-shadow2-pc,0 40px 86px rgba(0,0,0,.28),14px 24px 38px rgba(0,0,0,.18),4px 8px 14px rgba(0,0,0,.12));
}
#instagramFrameTarget.insta-frame-none .insta-marquee{box-shadow:none}
@media(max-width:800px){
  #instagramFrameTarget:not(.insta-frame-none) .insta-marquee{
    box-shadow:var(--ceri-instagram-shadow2-mobile,0 32px 66px rgba(0,0,0,.26),12px 20px 32px rgba(0,0,0,.17),3px 6px 12px rgba(0,0,0,.11));
  }
}

/* v5.32 Instagram frame-mode controls only.
   FRAME is the first selector row.
   With black/brown film: existing film controls stay enabled and SHADOW 3 is disabled.
   With no frame: GLOSS / SHADOW 1 / SHADOW 2 / HOLE GAP / HOLE ROUND are disabled,
   while SHADOW 3 uses the exact approved section-shadow calculation on each photo. */
.instagram-range-control.is-disabled{
  opacity:.38;
  cursor:not-allowed!important;
}
.instagram-range-control.is-disabled input[type="range"]{
  cursor:not-allowed!important;
}
#instagramFrameTarget.insta-frame-none .insta-card{
  box-shadow:var(--ceri-instagram-shadow3-pc,0 40px 86px rgba(0,0,0,.28),14px 24px 38px rgba(0,0,0,.18),4px 8px 14px rgba(0,0,0,.12))!important;
}
/* Keep enough paint area for the approved lower-right shadow without changing row spacing. */
#instagramFrameTarget.insta-frame-none .insta-marquee{
  padding-bottom:96px;
  margin-bottom:-96px;
}
@media(max-width:800px){
  #instagramFrameTarget.insta-frame-none .insta-card{
    box-shadow:var(--ceri-instagram-shadow3-mobile,0 32px 66px rgba(0,0,0,.26),12px 20px 32px rgba(0,0,0,.17),3px 6px 12px rgba(0,0,0,.11))!important;
  }
  #instagramFrameTarget.insta-frame-none .insta-marquee{
    padding-bottom:74px;
    margin-bottom:-74px;
  }
}

/* v5.33 Instagram no-frame spacing controls only.
   OVERLAP: FRAME none only. 1 restores the former non-overlap layout; 10 preserves the v5.32 overlap state.
   DIVIDER: with FRAME none, controls the actual photo-to-photo gap while black/brown film behavior stays unchanged. */
#instagramFrameTarget{
  --photo-divider-gap-desktop:8px;
  --photo-divider-gap-mobile:8px;
  --photo-row-overlap-desktop:96px;
  --photo-row-overlap-mobile:74px;
}
#instagramFrameTarget.insta-frame-none .insta-group{
  gap:var(--photo-divider-gap-desktop)!important;
  margin-right:var(--photo-divider-gap-desktop)!important;
}
#instagramFrameTarget.insta-frame-none .insta-marquee{
  padding-bottom:0!important;
  margin-bottom:calc(-1 * var(--photo-row-overlap-desktop))!important;
}
@media(max-width:800px){
  #instagramFrameTarget.insta-frame-none .insta-group{
    gap:var(--photo-divider-gap-mobile)!important;
    margin-right:var(--photo-divider-gap-mobile)!important;
  }
  #instagramFrameTarget.insta-frame-none .insta-marquee{
    padding-bottom:0!important;
    margin-bottom:calc(-1 * var(--photo-row-overlap-mobile))!important;
  }
}

/* v5.34 Instagram no-frame SHADOW 3 paint clearance only.
   Preserve the v5.33 OVERLAP geometry while giving the lower-right photo shadow
   enough vertical paint area to remain visible through the marquee's overflow clip. */
#instagramFrameTarget.insta-frame-none .insta-marquee{
  padding-bottom:220px!important;
  margin-bottom:calc(-220px - var(--photo-row-overlap-desktop))!important;
}
@media(max-width:800px){
  #instagramFrameTarget.insta-frame-none .insta-marquee{
    padding-bottom:170px!important;
    margin-bottom:calc(-170px - var(--photo-row-overlap-mobile))!important;
  }
}


/* v5.35 Instagram OVERLAP extension only.
   Reuse the existing 1-10 overlap geometry for black and brown film.
   Level 1 preserves the approved non-overlap film layout; no-frame keeps its v5.34 behavior. */
#instagramFrameTarget:not(.insta-frame-none) .insta-marquee{
  margin-bottom:calc(-1 * var(--photo-row-overlap-desktop))!important;
}
@media(max-width:800px){
  #instagramFrameTarget:not(.insta-frame-none) .insta-marquee{
    margin-bottom:calc(-1 * var(--photo-row-overlap-mobile))!important;
  }
}
/* v5.37 cleanup: public admin demo entry style isolated from admin stylesheet */

/* Approved adjustment controls: Hero managed motion/crop, mobile-only image sizing,
   mobile layout-control lockout, and Staff mobile shadow paint clearance. */
.hero-slide-managed img{
  object-position:var(--hero-x,50%) var(--hero-y,43%);
  transform:scale(var(--hero-scale-base,1.015));
  transform-origin:var(--hero-x,50%) var(--hero-y,43%);
  transition:none;
}
.hero-slide-managed.is-active[data-hero-motion="none"] img{animation:none;transform:scale(var(--hero-scale-base,1.015))}
.hero-slide-managed.is-active[data-hero-motion="zoom-in"] img{animation:ceriHeroZoomIn var(--hero-motion-duration,6s) linear both}
.hero-slide-managed.is-active[data-hero-motion="zoom-out"] img{animation:ceriHeroZoomOut var(--hero-motion-duration,6s) linear both}
.hero-slide-managed.is-active[data-hero-motion="left"] img{animation:ceriHeroPanLeft var(--hero-motion-duration,6s) linear both}
.hero-slide-managed.is-active[data-hero-motion="right"] img{animation:ceriHeroPanRight var(--hero-motion-duration,6s) linear both}
.hero-slide-managed.is-active[data-hero-motion="up"] img{animation:ceriHeroPanUp var(--hero-motion-duration,6s) linear both}
.hero-slide-managed.is-active[data-hero-motion="down"] img{animation:ceriHeroPanDown var(--hero-motion-duration,6s) linear both}
@keyframes ceriHeroZoomIn{from{transform:scale(var(--hero-scale-base,1.015))}to{transform:scale(var(--hero-scale-active,1.055))}}
@keyframes ceriHeroZoomOut{from{transform:scale(var(--hero-scale-active,1.055))}to{transform:scale(var(--hero-scale-base,1.015))}}
@keyframes ceriHeroPanLeft{from{object-position:var(--hero-x-low,44%) var(--hero-y,43%);transform:scale(var(--hero-scale-pan,1.035))}to{object-position:var(--hero-x-high,56%) var(--hero-y,43%);transform:scale(var(--hero-scale-pan,1.035))}}
@keyframes ceriHeroPanRight{from{object-position:var(--hero-x-high,56%) var(--hero-y,43%);transform:scale(var(--hero-scale-pan,1.035))}to{object-position:var(--hero-x-low,44%) var(--hero-y,43%);transform:scale(var(--hero-scale-pan,1.035))}}
@keyframes ceriHeroPanUp{from{object-position:var(--hero-x,50%) var(--hero-y-low,37%);transform:scale(var(--hero-scale-pan,1.035))}to{object-position:var(--hero-x,50%) var(--hero-y-high,49%);transform:scale(var(--hero-scale-pan,1.035))}}
@keyframes ceriHeroPanDown{from{object-position:var(--hero-x,50%) var(--hero-y-high,49%);transform:scale(var(--hero-scale-pan,1.035))}to{object-position:var(--hero-x,50%) var(--hero-y-low,37%);transform:scale(var(--hero-scale-pan,1.035))}}

.section-tuning-control.is-disabled{opacity:.38;cursor:not-allowed}
.section-tuning-control.is-disabled input[type="range"]{cursor:not-allowed}

@media(max-width:800px){
  /* Season / ceri blog mobile layouts remain intentionally un-staggered. */
  #season .season-card:first-child .season-photo{height:var(--ceri-season-mobile-main-height,255px)}
  #season .season-card:not(:first-child) .season-photo{height:var(--ceri-season-mobile-small-height,205px)}

  /* Staff horizontal scroller: reserve paint area for the strongest approved lower-right shadow,
     then cancel that reserve in document flow so existing section spacing is preserved. */
  #staff .staff-preview-grid{padding-bottom:180px;margin-bottom:-172px}
  #staff .staff-preview-card{flex-basis:var(--ceri-staff-mobile-card-width,72%)}

  #ceri-blog .journal-item{grid-template-columns:var(--ceri-ceriblog-mobile-thumb-width,105px) 1fr 15px}
  #ceri-blog .journal-item img,#ceri-blog .journal-item .blog-card-noimage{width:var(--ceri-ceriblog-mobile-thumb-width,105px);height:var(--ceri-ceriblog-mobile-thumb-height,76px)}
}

@media(prefers-reduced-motion:reduce){
  .hero-slide-managed img{animation:none!important;transform:scale(var(--hero-scale-base,1.015))!important;object-position:var(--hero-x,50%) var(--hero-y,43%)!important}
}


/* v6.2: production edit-mode gate for the existing tuning UI.
   Public/default view hides tuning panels completely; edit mode restores the existing UI only. */
#interiorTuningPanel,
#seasonTuningPanel,
#staffTuningPanel,
#ceriBlogTuningPanel,
#instagramFrameTest{display:none!important}
html.ceri-site-edit-mode #interiorTuningPanel{display:block!important}
html.ceri-site-edit-mode #seasonTuningPanel,
html.ceri-site-edit-mode #staffTuningPanel,
html.ceri-site-edit-mode html.ceri-site-edit-mode #ceriBlogTuningPanel{display:grid!important}
html.ceri-site-edit-mode #instagramFrameTest{display:flex!important}
.ceri-site-editbar{position:fixed;right:14px;bottom:14px;z-index:10000;display:flex;align-items:center;gap:8px;max-width:calc(100vw - 28px);padding:9px 10px;border:1px solid rgba(0,0,0,.14);border-radius:12px;background:rgba(255,255,255,.94);box-shadow:0 12px 36px rgba(0,0,0,.16);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);font:600 10px/1.2 Arial,sans-serif;color:#111}
.ceri-site-editbar strong{font-size:9px;letter-spacing:.08em;white-space:nowrap}
.ceri-site-editbar-status{font-weight:500;color:#666;white-space:nowrap}
.ceri-site-editbar button{appearance:none;border:1px solid #111;border-radius:999px;background:#fff;color:#111;padding:7px 10px;font:600 10px/1 Arial,sans-serif;cursor:pointer;white-space:nowrap}
.ceri-site-editbar button[data-site-tuning-save]{background:#111;color:#fff}
.ceri-site-editbar.is-dirty .ceri-site-editbar-status{color:#b24a00}
.ceri-site-editbar.is-saved .ceri-site-editbar-status{color:#16713a}
@media(max-width:800px){.ceri-site-editbar{left:10px;right:10px;bottom:10px;justify-content:flex-end;flex-wrap:wrap}.ceri-site-editbar strong{margin-right:auto}.ceri-site-editbar-status{order:3;width:100%;text-align:right}}

/* v6.2: confirmed secondary reservation routes; existing app panel layout remains unchanged. */
.reserve-secondary-links{display:flex;gap:14px;flex-wrap:wrap;justify-content:flex-end;font-size:10px}
.reserve-secondary-links a{border-bottom:1px solid currentColor;padding-bottom:2px}
@media(max-width:800px){.reserve-secondary-links{justify-content:flex-start}}


/* v6.3: contact/recruit forms only */
.form-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.contact-form button{cursor:pointer;color:#111}
.contact-form button:focus-visible{outline:2px solid #111;outline-offset:4px}
.recruit-entry{margin-top:clamp(90px,10vw,150px);display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(50px,8vw,120px);border-top:1px solid #999;padding-top:clamp(45px,6vw,80px)}
.recruit-entry-head h2{margin:12px 0 22px;font-size:clamp(26px,3vw,44px);font-weight:400;letter-spacing:-.04em}
.recruit-entry-head>p:last-child{margin:0;max-width:390px;font-size:10px;line-height:1.9;color:#555}
.recruit-entry-head a{border-bottom:1px solid currentColor}
.recruit-form-row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,3vw,34px)}
@media(max-width:720px){
  .recruit-entry{grid-template-columns:1fr;gap:45px;margin-top:70px}
  .recruit-form-row{grid-template-columns:1fr;gap:18px}
}


/* v6.25 Style Gallery: category-only, incremental image loading. */
.style-gallery-page .inner-page-header{margin-bottom:clamp(70px,8vw,120px)}
.style-gallery-categories{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 28px;margin-top:clamp(62px,7vw,105px);border-top:1px solid #aaa}
.style-gallery-categories a{display:flex;align-items:center;justify-content:space-between;min-height:58px;border-bottom:1px solid #bbb;font-size:10px;letter-spacing:.02em;color:#555}
.style-gallery-categories a.is-active{color:#111;font-weight:700}
.style-gallery-categories a.is-active:after{content:'●';font-size:6px;color:#1358ff}
.style-gallery-wrap{margin-top:clamp(70px,8vw,120px)}
.style-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,1.6vw,24px)}
.style-gallery-card{appearance:none;display:block;width:100%;aspect-ratio:4/5;padding:0;border:0;background:#eee;overflow:hidden;cursor:zoom-in;box-shadow:0 18px 38px rgba(0,0,0,.12),0 5px 14px rgba(0,0,0,.06)}
.style-gallery-card img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%;transition:transform .65s cubic-bezier(.18,.7,.24,1)}
.style-gallery-card:hover img{transform:scale(1.018)}
.style-gallery-empty{margin:0;padding:80px 0;border-top:1px solid #aaa;border-bottom:1px solid #aaa;color:#777;font-size:10px;letter-spacing:.08em;text-transform:uppercase}
.style-gallery-more-wrap{display:flex;justify-content:flex-end;align-items:center;gap:18px;margin-top:32px;font-size:9px;color:#777}
.style-gallery-more{appearance:none;border:0;border-bottom:1px solid #111;background:transparent;padding:0 0 4px;font:10px/1 inherit;cursor:pointer}.style-gallery-more:disabled{opacity:.45}
.style-gallery-sentinel{height:1px}
.style-gallery-lightbox[hidden]{display:none}.style-gallery-lightbox{position:fixed;z-index:300;inset:0;display:grid;place-items:center;padding:clamp(18px,4vw,54px);background:rgba(255,255,255,.94);backdrop-filter:blur(10px)}
.style-gallery-lightbox img{max-width:min(92vw,1500px);max-height:88vh;width:auto;height:auto;object-fit:contain;box-shadow:0 22px 60px rgba(0,0,0,.18)}
.style-gallery-lightbox-close{position:fixed;top:18px;right:22px;width:42px;height:42px;border:0;background:transparent;font:300 32px/1 Arial,sans-serif;cursor:pointer}.style-gallery-modal-open{overflow:hidden}
@media(max-width:800px){.style-gallery-categories{grid-template-columns:1fr 1fr;gap:0 18px;margin-top:48px}.style-gallery-categories a{min-height:48px;font-size:9px}.style-gallery-wrap{margin-top:55px}.style-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.style-gallery-card{box-shadow:0 12px 26px rgba(0,0,0,.11),0 4px 10px rgba(0,0,0,.05)}}

/* v6.34 managed content: preserve existing card geometry while allowing managed product images. */
.shop-product-visual img{display:block;width:100%;height:100%;object-fit:cover}.shop-product-card-link{display:block;color:inherit;text-decoration:none}.news-list a[aria-disabled="true"]{pointer-events:none}

/* v6.38 Style Gallery lightbox: existing image expansion retained; optional Instagram link is additive. */
.style-gallery-lightbox-content{display:flex;flex-direction:column;align-items:center;gap:16px;max-width:94vw;max-height:92vh}.style-gallery-lightbox-content img{max-width:min(92vw,1500px);max-height:82vh}.style-gallery-lightbox-instagram{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 14px;border-bottom:1px solid #111;color:#111;font-size:11px;letter-spacing:.04em}.style-gallery-lightbox-instagram[hidden]{display:none}

/* v6.38 per-slot crop variables: dimensions/layout/z-index remain owned by the existing components. */
img[data-ceri-photo-slot]{object-position:var(--ceri-photo-x,50%) var(--ceri-photo-y,50%);transform:scale(var(--ceri-photo-scale,1));transform-origin:var(--ceri-photo-x,50%) var(--ceri-photo-y,50%)}
.season-card:hover .season-photo img[data-ceri-photo-slot]{transform:scale(calc(var(--ceri-photo-scale,1) * 1.025))}


/* v6.47 Instagram seamless loop correction only.
   Keep the v6.46 measured-distance loop fix, while restoring the approved SHADOW 2 rules already defined above (v5.31) without overriding them here. */
.insta-forward .insta-track{animation:ceri-insta-forward var(--ceri-insta-duration,52s) linear infinite}
.insta-reverse .insta-track{animation:ceri-insta-reverse var(--ceri-insta-duration,52s) linear infinite}
@keyframes ceri-insta-forward{from{transform:translateX(0)}to{transform:translateX(calc(-1 * var(--insta-loop-distance,50%)))}}
@keyframes ceri-insta-reverse{from{transform:translateX(calc(-1 * var(--insta-loop-distance,50%)))}to{transform:translateX(0)}}
#instagramFrameTarget .insta-group{margin-right:0!important}

/* v6.59 focal-point crop. Existing POSITION data remains legacy until a focal point is explicitly saved. */
.hero-slide-managed.hero-slide-focus img.ceri-focus-point-active{max-width:none;transition:none}
.hero-slide-managed.hero-slide-focus.is-active[data-hero-motion="none"] img.ceri-focus-point-active{animation:none;transform:none}
.hero-slide-managed.hero-slide-focus.is-active[data-hero-motion="zoom-in"] img.ceri-focus-point-active{animation:ceriHeroFocusZoomIn var(--hero-motion-duration,6s) linear both}
.hero-slide-managed.hero-slide-focus.is-active[data-hero-motion="zoom-out"] img.ceri-focus-point-active{animation:ceriHeroFocusZoomOut var(--hero-motion-duration,6s) linear both}
.hero-slide-managed.hero-slide-focus.is-active[data-hero-motion="left"] img.ceri-focus-point-active{animation:ceriHeroFocusPanLeft var(--hero-motion-duration,6s) linear both}
.hero-slide-managed.hero-slide-focus.is-active[data-hero-motion="right"] img.ceri-focus-point-active{animation:ceriHeroFocusPanRight var(--hero-motion-duration,6s) linear both}
.hero-slide-managed.hero-slide-focus.is-active[data-hero-motion="up"] img.ceri-focus-point-active{animation:ceriHeroFocusPanUp var(--hero-motion-duration,6s) linear both}
.hero-slide-managed.hero-slide-focus.is-active[data-hero-motion="down"] img.ceri-focus-point-active{animation:ceriHeroFocusPanDown var(--hero-motion-duration,6s) linear both}
@keyframes ceriHeroFocusZoomIn{from{transform:scale(1)}to{transform:scale(var(--hero-focus-active-scale,1.0394))}}
@keyframes ceriHeroFocusZoomOut{from{transform:scale(var(--hero-focus-active-scale,1.0394))}to{transform:scale(1)}}
@keyframes ceriHeroFocusPanLeft{from{transform:translateX(var(--hero-focus-pan-x-from,0px))}to{transform:translateX(var(--hero-focus-pan-x-to,0px))}}
@keyframes ceriHeroFocusPanRight{from{transform:translateX(var(--hero-focus-pan-x-to,0px))}to{transform:translateX(var(--hero-focus-pan-x-from,0px))}}
@keyframes ceriHeroFocusPanUp{from{transform:translateY(var(--hero-focus-pan-y-from,0px))}to{transform:translateY(var(--hero-focus-pan-y-to,0px))}}
@keyframes ceriHeroFocusPanDown{from{transform:translateY(var(--hero-focus-pan-y-to,0px))}to{transform:translateY(var(--hero-focus-pan-y-from,0px))}}
@media(prefers-reduced-motion:reduce){.hero-slide-managed.hero-slide-focus img.ceri-focus-point-active{animation:none!important;transform:none!important;object-position:50% 50%!important}}


/* ceri-mobile-interior-compositor-fix-v1
   Mobile only. Preserve approved positions, travel, timing and shadows. */
@media (max-width:800px) {
  @keyframes ceri-interior-drift-main-mobile {
    from { translate:0 0; }
    to   { translate:-51.515152% 0; }
  }
  @keyframes ceri-interior-drift-small-mobile {
    from { translate:0 0; }
    to   { translate:135.714286% 0; }
  }
  html:not(.interior-motion-script):not(.interior-motion-off) .collage-main.is-visible,
  html:not(.interior-motion-script):not(.interior-motion-off) .collage-small-b.is-visible {
    will-change:translate;
  }
}