
:root{
  --paper:#f7f1e7;--paper2:#efe5d7;--ink:#302822;--muted:#77675c;
  --wine:#64182d;--wine2:#7c2940;--gold:#b4986f;--line:rgba(143,112,76,.34);
  --line2:rgba(143,112,76,.18);--shadow:rgba(50,32,21,.12);
}
*{box-sizing:border-box}html,body{margin:0;min-width:320px}html{background:var(--paper)}
body{min-height:100svh;background:var(--paper);color:var(--ink);font-family:"Libre Franklin",system-ui,sans-serif;overflow-x:hidden}
button,input{font:inherit}a{color:inherit}.page{position:relative;min-height:100svh;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);background:var(--paper)}
.page::after{content:"";position:fixed;inset:0;pointer-events:none;opacity:.17;background-image:radial-gradient(rgba(85,62,45,.12) .45px,transparent .45px),radial-gradient(rgba(255,255,255,.7) .5px,transparent .5px);background-size:6px 6px;background-position:0 0,3px 3px;mix-blend-mode:multiply;z-index:20}
.frame{position:fixed;inset:14px;border:1px solid var(--line);z-index:30;pointer-events:none}.frame i{position:absolute;width:21px;height:21px}.frame i::before,.frame i::after{content:"";position:absolute;background:var(--gold);opacity:.85}.frame i::before{width:21px;height:1px}.frame i::after{width:1px;height:21px}.tl{left:-1px;top:-1px}.tr{right:-1px;top:-1px;transform:scaleX(-1)}.bl{left:-1px;bottom:-1px;transform:scaleY(-1)}.br{right:-1px;bottom:-1px;transform:scale(-1)}
.content{position:relative;z-index:2;min-height:100svh;padding:clamp(42px,6vh,76px) clamp(42px,6vw,108px) clamp(34px,5vh,58px);display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 20% 18%,rgba(255,255,255,.72),transparent 34%),linear-gradient(120deg,rgba(255,255,255,.18),transparent 54%),var(--paper)}
.content-inner{width:min(100%,720px);text-align:center}.brand{margin:0;padding-left:.11em;font:400 clamp(76px,8.2vw,138px)/.78 "Cormorant Garamond",Georgia,serif;letter-spacing:.11em;white-space:nowrap}.title-rule{width:min(250px,42%);margin:25px auto 18px;display:flex;align-items:center;gap:12px}.title-rule::before,.title-rule::after{content:"";height:1px;background:var(--line);flex:1}.title-rule span{width:7px;height:7px;border:1px solid var(--gold);transform:rotate(45deg)}.coming{margin:0;color:var(--wine);font-size:clamp(11px,.85vw,15px);letter-spacing:.48em;padding-left:.48em;text-transform:uppercase}.atelier{margin:54px 0 0;text-transform:uppercase;letter-spacing:.28em;font-size:clamp(9px,.68vw,11px);line-height:1.8}.atelier span{display:block;color:var(--muted);font-size:.82em}.mini-rule{width:240px;max-width:55%;height:1px;background:var(--line2);margin:31px auto;position:relative}.mini-rule::after{content:"✦";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:0 12px;background:var(--paper);color:var(--gold);font-size:11px}.tagline{margin:0 auto;max-width:510px;font:italic 400 clamp(16px,1.3vw,22px)/1.45 "Cormorant Garamond",Georgia,serif;color:#65574d;letter-spacing:.04em}.contact-row{margin:38px auto 0;display:flex;justify-content:center;align-items:center;gap:18px;flex-wrap:wrap}.contact-row i{width:1px;height:29px;background:var(--line)}.flow-button{--flow-bg:var(--wine);position:relative;isolation:isolate;min-height:42px;border:1px solid rgba(180,153,112,.58);border-radius:999px;background:rgba(255,255,255,.26);text-decoration:none;color:var(--muted);padding:0 42px 0 14px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:9px;overflow:hidden;font-size:9px;letter-spacing:.12em;text-transform:uppercase;box-shadow:0 7px 18px rgba(65,42,29,.035);transition:color .42s cubic-bezier(.2,.8,.2,1),border-color .42s ease,box-shadow .42s ease,transform .42s cubic-bezier(.2,.8,.2,1)}.flow-button::before{content:"";position:absolute;z-index:-1;inset:-1px;border-radius:inherit;background:var(--flow-bg);transform:scaleX(0);transform-origin:right center;transition:transform .48s cubic-bezier(.76,0,.24,1)}.flow-symbol{width:22px;height:22px;border:1px solid rgba(111,33,51,.34);border-radius:50%;display:grid;place-items:center;color:var(--wine);font-size:10px;flex:0 0 auto;transition:color .35s ease,border-color .35s ease,transform .48s cubic-bezier(.2,.8,.2,1)}.flow-label{position:relative;z-index:1;white-space:nowrap;transition:transform .48s cubic-bezier(.2,.8,.2,1);will-change:transform}.flow-arrow{position:absolute;top:50%;font:400 17px/1 "Cormorant Garamond",serif;transform:translateY(-53%);transition:opacity .34s ease,transform .48s cubic-bezier(.2,.8,.2,1);pointer-events:none}.flow-arrow-right{right:15px;opacity:.82}.flow-arrow-left{left:15px;opacity:0;transform:translate(-15px,-53%)}.flow-button:hover,.flow-button:focus-visible{color:#fbf4ea;border-color:rgba(111,33,51,.72);box-shadow:0 12px 27px rgba(72,29,39,.14);transform:translateY(-2px);outline:none}.flow-button:hover::before,.flow-button:focus-visible::before{transform:scaleX(1);transform-origin:left center}.flow-button:hover .flow-symbol,.flow-button:focus-visible .flow-symbol{color:#fbf4ea;border-color:rgba(255,245,233,.42);transform:translateX(18px);opacity:0}.flow-button:hover .flow-label,.flow-button:focus-visible .flow-label{transform:translateX(10px)}.flow-button:hover .flow-arrow-right,.flow-button:focus-visible .flow-arrow-right{opacity:0;transform:translate(18px,-53%)}.flow-button:hover .flow-arrow-left,.flow-button:focus-visible .flow-arrow-left{opacity:1;transform:translate(0,-53%)}.flow-button:active{transform:translateY(0) scale(.985);transition-duration:.12s}.notify{margin:38px auto 0;max-width:560px}.notify-label{margin:0 0 11px;text-transform:uppercase;letter-spacing:.2em;font-size:8px;color:var(--muted)}.notify-form{display:grid;grid-template-columns:1fr auto;border:1px solid var(--line);height:48px;background:rgba(255,255,255,.32)}.notify-form input{width:100%;min-width:0;border:0;outline:0;background:transparent;padding:0 18px;color:var(--ink);font-family:"Cormorant Garamond",serif;font-size:15px}.notify-form button{border:0;background:var(--wine);color:#f8eee5;padding:0 27px;cursor:pointer;text-transform:uppercase;letter-spacing:.11em;font-size:9px;transition:background .25s ease}.notify-form button:hover{background:#4d1121}.notify-status{min-height:17px;margin:8px 0 0;color:var(--wine);font-size:8px;letter-spacing:.12em;text-transform:uppercase}
.visual{position:relative;z-index:1;min-height:100svh;background:#d9cab7;overflow:hidden}.visual::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(45,25,17,.08),transparent 12%,transparent 88%,rgba(45,25,17,.06));z-index:8}
.reveal{opacity:0;transform:translateY(11px)}.loaded .reveal{opacity:1;transform:none;transition:opacity .85s ease,transform .85s ease}.loaded .delay1{transition-delay:.08s}.loaded .delay2{transition-delay:.17s}.loaded .delay3{transition-delay:.26s}.intro{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:var(--paper);transition:opacity .85s ease,visibility .85s ease}.intro span{padding-left:.27em;font:400 clamp(52px,8vw,118px)/1 "Cormorant Garamond",serif;letter-spacing:.27em;animation:intro 1.25s cubic-bezier(.18,.9,.18,1) both}.intro.done{opacity:0;visibility:hidden}@keyframes intro{from{opacity:0;filter:blur(5px);transform:translateY(12px);letter-spacing:.42em}to{opacity:1;filter:blur(0);transform:none;letter-spacing:.27em}}
@media(max-height:790px) and (min-width:801px){.content{padding-top:32px;padding-bottom:28px}.brand{font-size:clamp(70px,7vw,105px)}.title-rule{margin-top:17px;margin-bottom:13px}.atelier{margin-top:31px}.mini-rule{margin:22px auto}.contact-row{margin-top:24px}.notify{margin-top:23px}.notify-form{height:42px}}
@media(max-width:1050px){.page{grid-template-columns:1fr 47%}.content{padding-left:42px;padding-right:42px}.brand{font-size:clamp(64px,8vw,96px)}.atelier{margin-top:40px}.notify{max-width:500px}}
@media(max-width:800px){.page{display:block}.frame{inset:8px}.content{min-height:auto;padding:60px 25px 42px}.content-inner{max-width:600px}.brand{font-size:clamp(58px,17vw,86px);letter-spacing:.09em}.title-rule{margin:19px auto 13px}.coming{font-size:9px;letter-spacing:.36em;padding-left:.36em}.atelier{margin-top:32px;font-size:8px}.mini-rule{margin:22px auto}.tagline{font-size:16px}.contact-row{margin-top:25px}.notify{margin-top:24px}.notify-form{height:44px}.notify-form button{padding:0 18px}.visual{min-height:auto}.intro span{font-size:clamp(44px,14vw,66px);letter-spacing:.18em;padding-left:.18em;animation-name:introMob}@keyframes introMob{from{opacity:0;filter:blur(4px);transform:translateY(10px);letter-spacing:.27em}to{opacity:1;filter:none;transform:none;letter-spacing:.18em}}}
@media(max-width:460px){.content{padding:52px 20px 35px}.contact-row{gap:9px}.contact-row i{display:none}.flow-button{font-size:8px;min-height:39px;padding-left:12px;padding-right:38px}.flow-arrow-right{right:13px}.flow-arrow-left{left:13px}.notify-form{grid-template-columns:1fr 112px}.notify-form button{padding:0 10px;font-size:8px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.reveal{opacity:1!important;transform:none!important}}

.carousel{position:absolute;inset:0}.carousel-track{position:absolute;inset:0}.hero-slide{position:absolute;inset:0;margin:0;opacity:0;transform:scale(1.018);transition:opacity .9s ease,transform 6.8s cubic-bezier(.2,.7,.2,1);pointer-events:none}.hero-slide.active{opacity:1;transform:scale(1.035);pointer-events:auto}.hero-slide img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.92) contrast(1.02)}.hero-slide:nth-child(1) img{object-position:50% 51%}.hero-slide:nth-child(2) img{object-position:50% 54%}.hero-slide:nth-child(3) img{object-position:50% 48%}.hero-slide:nth-child(4) img{object-position:50% 50%}.hero-slide:nth-child(5) img{object-position:50% 50%}.hero-slide:nth-child(6) img{object-position:52% 50%}.carousel-ui{position:absolute;z-index:12;left:30px;right:30px;bottom:28px;display:flex;align-items:center;justify-content:space-between;gap:15px;color:#f7efe6}.carousel-count{font:400 11px/1 "Libre Franklin";letter-spacing:.2em;text-shadow:0 1px 5px rgba(0,0,0,.32)}.carousel-controls{display:flex;align-items:center;gap:9px}.carousel-controls button{position:relative;isolation:isolate;overflow:hidden;width:43px;height:43px;border:1px solid rgba(255,244,232,.58);border-radius:50%;background:rgba(39,25,18,.17);backdrop-filter:blur(7px);color:white;cursor:pointer;font:400 27px/1 "Cormorant Garamond";box-shadow:0 7px 18px rgba(20,10,7,.08);transition:transform .38s cubic-bezier(.2,.8,.2,1),border-color .3s ease,box-shadow .3s ease}.carousel-controls button::before{content:"";position:absolute;z-index:-1;inset:-1px;background:rgba(111,33,51,.86);transform:translateX(-105%);transition:transform .42s cubic-bezier(.76,0,.24,1)}.carousel-controls button:hover::before,.carousel-controls button:focus-visible::before{transform:translateX(0)}.carousel-controls button:hover,.carousel-controls button:focus-visible{transform:translateY(-2px);border-color:rgba(255,244,232,.82);box-shadow:0 12px 22px rgba(30,12,12,.18);outline:none}.carousel-controls button[data-prev]:hover,.carousel-controls button[data-prev]:focus-visible{transform:translateY(-2px) translateX(-2px)}.carousel-controls button[data-next]:hover,.carousel-controls button[data-next]:focus-visible{transform:translateY(-2px) translateX(2px)}.carousel-controls button:active{transform:scale(.94);transition-duration:.1s}.progress{height:1px;background:rgba(255,255,255,.35);flex:1;max-width:230px;position:relative;overflow:hidden}.progress span{position:absolute;inset:0 auto 0 0;width:0;background:#fff}.progress.run span{animation:progress 6.4s linear forwards}@keyframes progress{to{width:100%}}@media(max-width:800px){.visual{height:min(72svh,690px)}.carousel-ui{left:20px;right:20px;bottom:22px}.hero-slide.active{transform:scale(1.02)}}
@media(prefers-reduced-motion:reduce){.flow-button,.flow-button::before,.flow-symbol,.flow-label,.flow-arrow{transition:none!important}.flow-button:hover,.flow-button:focus-visible{transform:none}.flow-button:hover .flow-symbol,.flow-button:focus-visible .flow-symbol{transform:none;opacity:1}.flow-button:hover .flow-label,.flow-button:focus-visible .flow-label{transform:none}.flow-button:hover .flow-arrow-left,.flow-button:focus-visible .flow-arrow-left{display:none}.flow-button:hover .flow-arrow-right,.flow-button:focus-visible .flow-arrow-right{opacity:1;transform:translateY(-53%)}}

/* ===== Responsive finishing pass ===== */
.flow-button{max-width:100%}
@media (min-width:901px) and (max-height:700px){
  .content{padding-top:24px;padding-bottom:24px}
  .brand{font-size:clamp(64px,6.8vw,98px)}
  .title-rule{margin-top:15px;margin-bottom:11px}
  .atelier{margin-top:25px;line-height:1.62}
  .mini-rule{margin:18px auto}
  .tagline{font-size:clamp(15px,1.15vw,19px)}
  .contact-row{margin-top:20px}
}
@media (max-width:900px){
  .page{display:block}
  .frame{inset:8px}
  .content{
    min-height:auto;
    padding:max(52px,calc(env(safe-area-inset-top) + 34px)) max(24px,calc(env(safe-area-inset-right) + 18px)) 42px max(24px,calc(env(safe-area-inset-left) + 18px));
  }
  .content-inner{width:min(100%,620px);margin-inline:auto}
  .brand{font-size:clamp(54px,14vw,86px);letter-spacing:.085em;padding-left:.085em}
  .title-rule{margin:18px auto 12px}
  .coming{font-size:9px;letter-spacing:.34em;padding-left:.34em}
  .atelier{margin-top:31px;font-size:8px}
  .mini-rule{margin:22px auto}
  .tagline{font-size:clamp(16px,4.5vw,20px);max-width:430px}
  .contact-row{margin-top:25px}
  .visual{min-height:auto}
}
@media (max-width:560px){
  .content{padding-left:max(20px,calc(env(safe-area-inset-left) + 14px));padding-right:max(20px,calc(env(safe-area-inset-right) + 14px))}
  .brand{font-size:clamp(49px,15.6vw,74px);letter-spacing:.07em;padding-left:.07em}
  .coming{font-size:8px;letter-spacing:.28em;padding-left:.28em}
  .atelier{letter-spacing:.22em}
  .contact-row{flex-direction:column;gap:9px}
  .contact-row>i{display:none}
  .flow-button{width:min(100%,310px);min-height:42px}
}
@media (max-width:380px){
  .content{padding-top:46px;padding-bottom:34px}
  .brand{font-size:clamp(46px,15vw,60px)}
  .title-rule{width:44%;margin-top:15px}
  .atelier{margin-top:25px;font-size:7px}
  .mini-rule{margin:18px auto}
  .tagline{font-size:15px}
  .flow-button{font-size:7.5px;min-height:40px}
}
@media (max-width:900px) and (max-height:520px) and (orientation:landscape){
  .content{padding-top:34px;padding-bottom:28px}
  .brand{font-size:clamp(50px,10vw,68px)}
  .title-rule{margin-top:12px;margin-bottom:9px}
  .atelier{margin-top:20px}
  .mini-rule{margin:15px auto}
  .contact-row{margin-top:18px}
}

@media (max-width:900px){
  .visual{height:clamp(520px,72svh,760px)}
  .carousel-ui{left:max(20px,env(safe-area-inset-left));right:max(20px,env(safe-area-inset-right));bottom:max(22px,calc(env(safe-area-inset-bottom) + 14px))}
  .hero-slide.active{transform:scale(1.02)}
}
@media (max-width:560px){
  .visual{height:clamp(500px,74svh,690px)}
  .carousel-ui{left:17px;right:17px;bottom:max(18px,calc(env(safe-area-inset-bottom) + 12px));gap:10px}
  .progress{max-width:120px}
  .carousel-controls button{width:40px;height:40px}
}
@media (max-width:380px){
  .visual{height:clamp(470px,76svh,620px)}
  .carousel-controls{gap:6px}
  .carousel-controls button{width:38px;height:38px}
  .carousel-count{font-size:9px}
  .progress{max-width:92px}
}
@media (max-width:900px) and (max-height:520px) and (orientation:landscape){
  .visual{height:clamp(430px,68vw,620px)}
}

.carousel{touch-action:pan-y}
