/* Concept: an atelier after dark. Deep aubergine-black surfaces alternate with porcelain ones,
   brass hairlines, very large thin Italiana headings, Cormorant italics for voice, and a pointer-lit lamp theme.
   Dark: hero, collection, reviews, contact. Light: intro, signature, featured, sellers, crafts, gallery. */
:root{
  --ink:#0E0B12;
  --ink-2:#18131F;
  --porcelain:#EEEDEA;
  --stone:#DFDDD8;
  --text:#17131D;
  --muted:#5C5766;
  --light:#F0EBE3;
  --light-muted:#B9B2BE;
  --brass:#C8A265;
  --glow:#EBA43C;
  --display:"Italiana","Didot","Times New Roman",serif;
  --voice:"Cormorant Garamond","Times New Roman",serif;
  --body:"Jost",system-ui,-apple-system,"Segoe UI",sans-serif;
  --shade:polygon(13% 0,87% 0,100% 100%,0 100%);
  --ease:cubic-bezier(.22,.8,.24,1);
}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth;overflow-x:clip}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{background:var(--porcelain);color:var(--text);font-family:var(--body);font-size:17px;line-height:1.75;font-weight:300;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
.wrap{width:min(1320px,100%);margin-inline:auto;padding-inline:max(24px,env(safe-area-inset-left,0px)) max(24px,env(safe-area-inset-right,0px))}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.02;text-wrap:balance;letter-spacing:-.005em}
h1{font-size:clamp(2.9rem,6.3vw,6.2rem);line-height:1}
h2{font-size:clamp(2.5rem,5.6vw,5rem)}
h3{font-size:clamp(1.9rem,3.6vw,3.2rem)}
p{max-width:60ch}
.voice{font-family:var(--voice);font-style:italic;font-weight:400}
.dark{background:var(--ink);color:var(--light)}
.dark p{color:#D9D3DE}

/* film grain over the whole page */
.grain{position:fixed;inset:0;z-index:90;pointer-events:none;opacity:.07;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .5 0 0 0 0 .5 0 0 0 0 .5 0 0 0 1.3 -.15'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}

/* split text */
.sp{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.12em;margin-bottom:-.12em}
.sp>span{display:inline-block;will-change:transform}

/* buttons */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:1.05em 2.2em;border-radius:999px;background:transparent;color:var(--text);text-decoration:none;font-weight:400;letter-spacing:.04em;font-size:.95rem;border:1px solid currentColor;overflow:hidden;isolation:isolate;transition:color .4s var(--ease),border-color .4s;cursor:pointer;font-family:var(--body)}
.btn::before{content:"";position:absolute;inset:0;background:var(--brass);transform:translateY(101%);transition:transform .5s var(--ease);z-index:-1}
.btn:hover{color:var(--ink);border-color:var(--brass)}
.btn:hover::before{transform:none}
.dark .btn,.hero .btn,.contact .btn{color:var(--light)}
.hero .btn.fill,.contact .btn.fill{color:var(--ink)}
.btn.fill{background:var(--brass);border-color:var(--brass);color:var(--ink)}
.btn.fill::before{background:var(--light)}
.btn.fill:hover{border-color:var(--light)}
.link{display:inline-block;text-decoration:none;font-weight:400;letter-spacing:.04em;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;padding-bottom:.25em;transition:background-size .5s var(--ease),color .3s}
.link:hover{background-size:0 1px;color:var(--brass)}

/* preloader */
.pre{position:fixed;inset:0;z-index:200;background:var(--ink);color:var(--light);display:grid;place-items:center;animation:preFail .6s 7s forwards}
@keyframes preFail{to{opacity:0;visibility:hidden}}
.pre .core{position:relative;display:grid;justify-items:center;gap:1.6rem}
.pre .halo{position:absolute;left:50%;top:42%;width:min(90vw,720px);aspect-ratio:1;translate:-50% -50%;background:radial-gradient(closest-side,rgba(235,164,60,.55),rgba(235,164,60,0) 70%);opacity:.05;scale:.4}
.pre img{position:relative;width:min(78vw,440px);opacity:0;filter:brightness(0) invert(1)}
.pre .yr{position:relative;font-family:var(--voice);font-style:italic;font-size:1.3rem;color:var(--brass);letter-spacing:.06em}
.pre .line{position:relative;width:min(60vw,260px);height:1px;background:rgba(240,235,227,.2);overflow:hidden}
.pre .line i{position:absolute;inset:0;background:var(--brass);transform:scaleX(0);transform-origin:left}

/* pointer ring */
.ring{position:fixed;left:0;top:0;width:44px;height:44px;margin:-22px 0 0 -22px;border:1px solid var(--brass);border-radius:50%;pointer-events:none;z-index:120;opacity:0;transition:opacity .3s,width .35s var(--ease),height .35s var(--ease),margin .35s var(--ease),background .3s}
.ring.big{width:86px;height:86px;margin:-43px 0 0 -43px;background:rgba(200,162,101,.14)}
@media(hover:none){.ring{display:none}}

/* header */
.top{background:#07050A;color:var(--light-muted);font-size:clamp(.66rem,1.9vw,.82rem);letter-spacing:.04em}
.top .wrap{display:flex;justify-content:space-between;align-items:center;gap:clamp(.7rem,2.5vw,1.6rem);padding-block:.6rem;flex-wrap:nowrap}
.top a{text-decoration:none;transition:color .2s;white-space:nowrap}.top a:hover{color:var(--brass)}
.top .tel{display:flex;gap:clamp(.7rem,2.5vw,1.6rem);flex-wrap:nowrap}
header.nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:60;background:rgba(14,11,18,.82);backdrop-filter:blur(16px);color:var(--light);border-bottom:1px solid rgba(240,235,227,.1)}
header .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:1rem;transition:padding .35s}
header.stuck .wrap{padding-block:.55rem}
.logo{display:block;line-height:0}
.logo img{height:38px;width:auto;filter:brightness(0) invert(1);transition:height .35s}
header.stuck .logo img{height:30px}
nav ul{list-style:none;padding:0;display:flex;gap:2.4rem;align-items:center}
nav a,nav summary{position:relative;text-decoration:none;cursor:pointer;list-style:none;font-size:.95rem;letter-spacing:.05em}
nav summary::-webkit-details-marker{display:none}
nav ul>li>a::after,nav summary::after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:1px;background:var(--brass);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}
nav ul>li>a:hover::after,nav summary:hover::after{transform:none}
details.svc{position:relative}
details.svc .menu{position:absolute;top:2.5rem;left:-1.3rem;min-width:280px;background:var(--ink-2);border:1px solid rgba(240,235,227,.12);padding:.6rem;display:grid;gap:.1rem;box-shadow:0 30px 60px -20px rgba(0,0,0,.6)}
details.svc .menu a{padding:.7rem .9rem;display:block}
details.svc .menu a::after{display:none}
details.svc .menu a:hover{background:rgba(200,162,101,.12);color:var(--brass)}
.burger{display:none;background:none;border:1px solid var(--light);border-radius:999px;padding:.5rem 1.2rem;font:inherit;color:var(--light);cursor:pointer;letter-spacing:.05em}
@media(max-width:900px){
  .burger{display:block}
  nav{position:absolute;left:0;right:0;top:100%;background:var(--ink-2);border-bottom:1px solid rgba(240,235,227,.12);display:none;padding:1.2rem max(24px,env(safe-area-inset-left,0px)) 1.8rem}
  nav.open{display:block}
  nav ul{flex-direction:column;align-items:flex-start;gap:1.1rem}
  details.svc .menu{position:static;box-shadow:none;border:0;padding:.5rem 0 0 .8rem;background:none;min-width:0}
}

/* hero */
.hero{position:relative;overflow:hidden;padding-block:clamp(3rem,6vw,5.5rem) clamp(3rem,6vw,5rem);background:radial-gradient(900px 600px at 78% 40%,rgba(235,164,60,.13),transparent 70%),var(--ink);color:var(--light)}
.hero .wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.hero .tag{display:flex;align-items:center;gap:1rem;font-family:var(--voice);font-style:italic;font-size:clamp(1.2rem,1.9vw,1.55rem);color:var(--brass);margin-bottom:1.8rem;max-width:56ch;line-height:1.3}
.hero .tag::before{content:"";flex:0 0 3.2rem;height:1px;background:var(--brass)}
.hero .hanglamp{position:absolute;top:0;right:clamp(1rem,7vw,6rem);width:clamp(78px,10vw,140px);z-index:3;pointer-events:none;transform-origin:top center;animation:lampSway 6.5s ease-in-out infinite}
.hero .hanglamp img{position:relative;display:block;width:100%;height:auto}
.hero .hanglamp .lamp-glow{position:absolute;left:46%;top:86%;width:46%;height:20%;translate:-50% 0;background:radial-gradient(50% 60% at 50% 8%,rgba(255,226,165,.95),rgba(255,180,90,.4) 55%,transparent 82%),linear-gradient(to bottom,rgba(255,190,95,.5),transparent 92%);clip-path:polygon(38% 0,62% 0,100% 100%,0 100%);filter:blur(4px);mix-blend-mode:screen;animation:lampPulse 3s ease-in-out infinite}
@keyframes lampPulse{0%,100%{opacity:.15}50%{opacity:1}}
@keyframes lampSway{0%,100%{transform:rotate(-2.4deg)}50%{transform:rotate(2.4deg)}}
@media(max-width:560px){.hero .hanglamp{display:none}}
.hero h1{max-width:12.5ch}
.hero .lede{margin-top:2.2rem;max-width:46ch;font-size:1.1rem;color:#D9D3DE}
.hero .cta{display:flex;gap:1rem;flex-wrap:wrap;margin-top:2.4rem}
.hero .meta{margin-top:3.4rem;display:grid;grid-template-columns:repeat(3,1fr);align-items:baseline;gap:0;padding-top:1.6rem;border-top:1px solid rgba(240,235,227,.16)}
.hero .meta>div{padding-inline:clamp(1rem,2.6vw,2.6rem);border-left:1px solid rgba(240,235,227,.16)}
.hero .meta>div:first-child{padding-left:0;border-left:0}
.hero .meta b{display:block;font-family:var(--display);font-weight:400;font-size:clamp(1.8rem,3vw,2.6rem);line-height:1;color:var(--light);font-variant-numeric:lining-nums tabular-nums}
.hero .meta span{font-size:.84rem;color:var(--light-muted);line-height:1.4;display:block;margin-top:.4rem;max-width:none;text-align:left}
.shade-frame{position:relative;justify-self:center;width:min(100%,520px)}
.shade-frame .halo{position:absolute;inset:-18% -26% -12%;background:radial-gradient(closest-side,rgba(235,164,60,.55),rgba(235,164,60,0) 68%);z-index:0;translate:var(--gx,0) var(--gy,0);transition:translate .6s ease-out}
.shade-frame .shade{position:relative;z-index:1;clip-path:var(--shade);aspect-ratio:1004/1080;background:var(--ink-2);overflow:hidden}
.shade-frame .shade img{width:100%;height:100%;object-fit:cover;object-position:center 40%}
.mini{position:absolute;z-index:2;right:-7%;bottom:-5%;width:36%;aspect-ratio:3/4;border-radius:999px 999px 0 0;overflow:hidden;border:6px solid var(--ink);box-shadow:0 30px 60px -20px rgba(0,0,0,.7);background:var(--ink-2)}
.mini img{width:100%;height:100%;object-fit:cover}
.cue{position:absolute;left:max(24px,env(safe-area-inset-left,0px));bottom:1.6rem;display:flex;align-items:center;gap:.9rem;font-size:.8rem;letter-spacing:.2em;color:var(--light-muted)}
.cue i{display:block;width:1px;height:46px;background:rgba(240,235,227,.25);position:relative;overflow:hidden}
.cue i::after{content:"";position:absolute;left:0;top:-50%;width:1px;height:50%;background:var(--brass);animation:drip 2.2s ease-in-out infinite}
@keyframes drip{to{top:110%}}
@media(max-width:860px){.cue{display:none}.mini{right:-2%}}
.badge{position:absolute;z-index:2;left:-12%;bottom:6%;width:clamp(96px,12vw,148px);aspect-ratio:1;border-radius:50%;background:var(--ink);border:1px solid var(--brass);display:grid;place-items:center}
.badge svg{position:absolute;inset:6%;width:88%;height:88%;animation:spin 26s linear infinite}
.badge svg text{font-family:var(--body);font-size:9.5px;letter-spacing:.2em;fill:var(--light)}
.badge i{width:9px;height:9px;border-radius:50%;background:var(--glow);box-shadow:0 0 18px 4px rgba(235,164,60,.7)}
@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:860px){.hero .wrap{grid-template-columns:1fr}.shade-frame{order:-1;width:min(80%,400px)}.badge{left:-4%}h1,.hero h1{max-width:none}}
@media(max-width:560px){.hero .meta{grid-template-columns:1fr 1fr}.hero .meta>div:nth-child(3){grid-column:1/-1;border-left:0;padding-left:0;margin-top:1.2rem}}

/* press marquee */
.press{background:var(--ink);color:var(--light);border-top:1px solid rgba(240,235,227,.12);padding-block:1.6rem;overflow:hidden}
.marquee{display:flex;width:max-content;animation:slide 40s linear infinite}
.marquee span{font-family:var(--voice);font-style:italic;font-size:clamp(1.6rem,3.2vw,2.6rem);padding-inline:clamp(1.6rem,3vw,3.2rem);white-space:nowrap;position:relative;color:#D9D3DE}
.marquee span::after{content:"";position:absolute;right:-4px;top:52%;width:7px;height:7px;background:var(--brass);rotate:45deg;translate:0 -50%}
@keyframes slide{to{transform:translateX(-50%)}}

/* intro */
.intro{position:relative;overflow:hidden;padding-block:clamp(5rem,11vw,10rem)}
.intro .mark{position:absolute;right:-2vw;top:2vw;font-family:var(--display);font-size:clamp(9rem,27vw,26rem);line-height:.8;color:transparent;-webkit-text-stroke:1px rgba(23,19,29,.13);pointer-events:none;user-select:none}
.intro .wrap{position:relative;display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(2.5rem,7vw,7rem);align-items:center}
.intro .copy{display:grid;gap:1.5rem;min-width:0;justify-items:start}
.intro .copy .voice{font-size:clamp(1.3rem,2vw,1.65rem);color:var(--muted);line-height:1.4}
.media{position:relative;overflow:hidden;background:var(--stone)}
.media img{width:100%;height:100%;object-fit:cover;transform:scale(1.14)}
.collage{position:relative;padding-bottom:14%}
.collage .a{width:80%;aspect-ratio:4/4.8}
.collage .b{position:absolute;right:0;bottom:0;width:48%;aspect-ratio:1/1;border:10px solid var(--porcelain);box-sizing:content-box}
.collage .b{box-sizing:border-box}
@media(max-width:860px){.intro .wrap{grid-template-columns:1fr}}

/* signature: floor lamp + index */
.signature{overflow:hidden;background:var(--stone);padding-block:clamp(5rem,10vw,9rem)}
.signature .wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2.5rem,7vw,7rem);align-items:center}
.lampstage{position:relative;display:grid;place-items:center;padding:1rem}
.lampstage .halo{position:absolute;left:50%;top:12%;width:120%;aspect-ratio:1;translate:-50% -30%;background:radial-gradient(closest-side,rgba(235,164,60,.5),rgba(235,164,60,0) 68%)}
.lampstage img{position:relative;width:min(100%,400px);mix-blend-mode:multiply}
.signature .lede{margin-top:1.4rem;color:var(--muted)}
.index{list-style:none;padding:0;margin-top:2.2rem;border-top:1px solid rgba(23,19,29,.25)}
.index li{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.15rem 0;border-bottom:1px solid rgba(23,19,29,.25);font-family:var(--display);font-size:clamp(1.7rem,3.6vw,2.8rem);line-height:1.1;cursor:default;transition:padding .5s var(--ease),color .3s}
.index li::after{content:"";width:9px;height:9px;background:var(--brass);rotate:45deg;opacity:0;transition:opacity .3s}
.index li:hover{padding-left:1.3rem;color:var(--plum,#4A3350)}
.index li:hover::after{opacity:1}
.peek{position:fixed;left:0;top:0;width:200px;aspect-ratio:4/5;z-index:70;pointer-events:none;overflow:hidden;opacity:0;scale:.85;transition:opacity .3s,scale .4s var(--ease);box-shadow:0 30px 60px -20px rgba(14,11,18,.55)}
.peek img{width:100%;height:100%;object-fit:cover}
.peek.on{opacity:1;scale:1}
@media(hover:none){.peek{display:none}}
@media(max-width:860px){.signature .wrap{grid-template-columns:1fr}.lampstage img{width:min(66%,300px)}}

/* collection */
.collection{position:relative;background:var(--ink);color:var(--light);padding-top:clamp(3rem,5vw,4.5rem);padding-bottom:clamp(5rem,9vw,7rem);overflow:hidden}
.collection::before{content:"";position:absolute;left:50%;top:55%;width:90vw;aspect-ratio:1;translate:-50% -50%;background:radial-gradient(closest-side,rgba(235,164,60,.1),transparent 70%);pointer-events:none}
.collection .chead{position:relative;display:flex;justify-content:space-between;align-items:end;gap:1.5rem;flex-wrap:wrap;margin-bottom:clamp(1.4rem,2.6vw,2.2rem)}
.collection h2{max-width:12ch}
.collection .now{font-family:var(--voice);font-style:italic;font-size:clamp(1.6rem,3.4vw,2.8rem);color:var(--brass);min-height:1.3em;text-align:right;line-height:1.2}
.viewport{position:relative;overflow-x:auto;scrollbar-width:none}
.viewport::-webkit-scrollbar{display:none}
.track{display:flex;gap:clamp(1.2rem,3vw,2.8rem);width:max-content;padding-inline:max(24px,env(safe-area-inset-left,0px)) max(24px,env(safe-area-inset-right,0px))}
.lamp{flex:0 0 clamp(260px,28vw,420px);display:grid;gap:1.1rem;transition:box-shadow .9s}
.lamp .ph{aspect-ratio:4/5;overflow:hidden;background:#241d2d}
.lamp img{width:100%;height:100%;object-fit:cover;transition:filter .9s,transform 1.4s var(--ease)}
.lamp figcaption{font-family:var(--voice);font-style:italic;font-size:1.25rem;color:#D9D3DE;transition:opacity .8s}
.collection.pinned .viewport{overflow:visible}
.collection.pinned .lamp:not(.on) img{filter:brightness(.28) saturate(.35)}
.collection.pinned .lamp:not(.on) figcaption{opacity:.35}
.collection.pinned .lamp.on{box-shadow:0 0 140px -10px rgba(235,164,60,.42)}
.collection.pinned .lamp.on img{transform:scale(1.05)}
.collection .bar{margin:2.4rem max(24px,env(safe-area-inset-left,0px)) 0;height:1px;background:rgba(240,235,227,.18);display:none}
.collection.pinned .bar{display:block}
.collection .bar i{display:block;height:100%;background:var(--brass);transform:scaleX(0);transform-origin:left}

/* featured: prints mounted on a gallery wall */
.featured{position:relative;padding-block:clamp(5rem,10vw,9rem) clamp(6rem,11vw,10rem);overflow:hidden;background:var(--porcelain)}
.featured::before{content:"Press";position:absolute;left:-1vw;top:3vw;font-family:var(--display);font-size:clamp(9rem,26vw,25rem);line-height:.8;color:transparent;-webkit-text-stroke:1px rgba(23,19,29,.1);pointer-events:none;user-select:none}
.featured .wrap{position:relative}
.featured .head{display:flex;justify-content:space-between;align-items:end;gap:2rem;flex-wrap:wrap;margin-bottom:clamp(3rem,6vw,5.5rem)}
.featured .head p{font-family:var(--voice);font-style:italic;font-size:clamp(1.3rem,2.1vw,1.7rem);color:var(--muted);line-height:1.35;max-width:26ch}
.fgrid{display:grid;grid-template-columns:1.05fr .9fr 1.35fr;gap:clamp(1.4rem,3.4vw,3.6rem);align-items:start}
.print{display:grid;gap:1.3rem;min-width:0;rotate:var(--r,0deg);transition:rotate .8s var(--ease)}
.print:hover{rotate:0deg}
.print .mat{background:#FBFAF8;padding:clamp(9px,1.1vw,16px);box-shadow:0 1px 0 rgba(23,19,29,.06),0 30px 60px -28px rgba(23,19,29,.5),0 8px 18px -10px rgba(23,19,29,.25);transition:box-shadow .6s,translate .6s var(--ease)}
.print:hover .mat{translate:0 -8px;box-shadow:0 1px 0 rgba(23,19,29,.06),0 44px 70px -30px rgba(235,164,60,.5),0 12px 24px -12px rgba(23,19,29,.3)}
.print .media{background:var(--stone)}
.print.p1 .media{aspect-ratio:5/6}
.print.p2 .media{aspect-ratio:3/4}
.print.p3 .media{aspect-ratio:4/3}
.print.p2{margin-top:clamp(2.5rem,9vw,8rem)}
.print.p3{margin-top:clamp(1rem,4vw,3.5rem)}
.print figcaption h3{font-size:clamp(1.6rem,2.4vw,2.2rem);line-height:1.1;display:inline;background:linear-gradient(var(--brass),var(--brass)) 0 100%/0 1px no-repeat;transition:background-size .6s var(--ease)}
.print:hover figcaption h3{background-size:100% 1px}
.print figcaption p{font-family:var(--voice);font-style:italic;font-size:1.2rem;line-height:1.35;color:var(--muted);margin-top:.5rem}
@media(max-width:860px){.fgrid{grid-template-columns:1fr 1fr}.print.p3{grid-column:1/-1;margin-top:0}.print.p2{margin-top:2.5rem}}
@media(max-width:520px){.fgrid{grid-template-columns:1fr}.print.p2{margin-top:0}.print{rotate:0deg}}

/* best sellers */
.sellers{padding-block:clamp(5rem,9vw,8rem);background:var(--stone)}
.sellers .head{display:flex;justify-content:space-between;align-items:end;gap:1rem;flex-wrap:wrap;margin-bottom:clamp(2rem,4vw,3.2rem)}
.arrows{display:flex;gap:.7rem}
.arrows button{width:3.4rem;height:3.4rem;border-radius:50%;border:1px solid var(--text);background:transparent;color:var(--text);font-size:1.2rem;cursor:pointer;transition:background .35s,color .35s,border-color .35s}
.arrows button:hover{background:var(--ink);color:var(--light);border-color:var(--ink)}
.arrows button:disabled{opacity:.3;cursor:default;pointer-events:none}
.rail{display:flex;gap:clamp(1.2rem,2.5vw,2.2rem);overflow-x:auto;scroll-snap-type:x mandatory;padding:0 max(24px,env(safe-area-inset-right,0px)) 1.4rem max(24px,env(safe-area-inset-left,0px));scrollbar-width:none}
.rail::-webkit-scrollbar{display:none}
.card{flex:0 0 clamp(240px,27vw,320px);scroll-snap-align:start;display:grid;gap:1.1rem;text-decoration:none}
.card .pic{background:var(--porcelain);aspect-ratio:4/5;display:grid;place-items:center;padding:2rem;position:relative;overflow:hidden;border:1px solid rgba(23,19,29,.08)}
.card .pic::after{content:"";position:absolute;left:50%;top:34%;width:130%;aspect-ratio:1;translate:-50% -50%;background:radial-gradient(closest-side,rgba(235,164,60,.5),rgba(235,164,60,0) 70%);opacity:0;transition:opacity .7s}
.card:hover .pic::after{opacity:1}
.card img{position:relative;z-index:1;max-height:100%;width:auto;object-fit:contain;transition:transform .8s var(--ease)}
.card:hover img{transform:translateY(-8px) scale(1.05)}
.card h3{font-size:1.55rem;line-height:1.15}

/* crafts */
.crafts{padding-block:clamp(5rem,10vw,9rem)}
.crafts .region{max-width:980px;margin-bottom:clamp(4rem,8vw,7rem);display:grid;gap:1.6rem;justify-items:start}
.craft{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(2.5rem,7vw,7rem);align-items:center;padding-block:clamp(2rem,5vw,4rem);border-top:1px solid rgba(23,19,29,.25)}
.craft:nth-of-type(even){grid-template-columns:1.05fr 1fr}
.craft:nth-of-type(even) .txt{order:2}
.craft .txt{display:grid;gap:1.4rem;min-width:0;justify-items:start}
.craft .media{aspect-ratio:4/3.5}
@media(max-width:800px){.craft,.craft:nth-of-type(even){grid-template-columns:1fr}.craft:nth-of-type(even) .txt{order:0}}

/* reviews: slider */
.evening{position:relative;background:var(--ink);color:var(--light);padding-block:clamp(5rem,10vw,9rem);overflow:hidden;--mx:50%;--my:30%}
.evening::before{content:"";position:absolute;inset:0;background:radial-gradient(640px circle at var(--mx) var(--my),rgba(235,164,60,.24),rgba(235,164,60,0) 70%);pointer-events:none}
.evening .wrap{position:relative}
.evening .rhead{display:flex;justify-content:space-between;align-items:end;gap:2rem;flex-wrap:wrap;margin-bottom:clamp(2.2rem,4vw,3.6rem)}
.evening h2{max-width:16ch}
.rctl{display:flex;align-items:center;gap:1.6rem}
.rctl .count{font-family:var(--voice);font-style:italic;font-size:1.3rem;color:var(--brass);min-width:3.4rem;text-align:right}
.evening .arrows button{border-color:rgba(240,235,227,.5);color:var(--light)}
.evening .arrows button:hover{background:var(--brass);border-color:var(--brass);color:var(--ink)}
.rview{overflow:hidden;touch-action:pan-y}
.rtrack{display:flex;transition:transform .95s var(--ease)}
.rslide{flex:0 0 100%;min-width:0;padding-right:1px}
.rcard{display:grid;grid-template-columns:minmax(220px,.36fr) 1fr;gap:clamp(1.8rem,5vw,5rem);padding:clamp(1.8rem,4.5vw,4.2rem);border:1px solid rgba(240,235,227,.2);background:linear-gradient(135deg,rgba(240,235,227,.06),rgba(240,235,227,.015));min-height:clamp(300px,36vw,420px);align-items:center}
.rwho{display:grid;gap:1rem;justify-items:start;align-content:center;min-width:0}
.av{width:68px;height:68px;border-radius:50%;display:grid;place-items:center;font-family:var(--display);font-size:1.6rem;color:var(--ink);background:radial-gradient(circle at 30% 25%,#E7C98F,var(--brass));box-shadow:0 0 0 5px rgba(200,162,101,.18)}
.rwho b{font-family:var(--display);font-weight:400;font-size:clamp(1.4rem,2vw,1.8rem);line-height:1.15}
.rwho small{display:block;font-size:.88rem;letter-spacing:.04em;color:var(--light-muted);line-height:1.5}
.stars{color:var(--glow);letter-spacing:.3em;font-size:.95rem}
.gtag{display:inline-flex;align-items:center;gap:.5rem;font-size:.8rem;letter-spacing:.05em;color:var(--light-muted);border:1px solid rgba(240,235,227,.25);border-radius:999px;padding:.3rem .8rem}
.gtag i{font-style:normal;font-family:var(--body);font-weight:500;color:var(--ink);background:var(--light);width:1.2rem;height:1.2rem;border-radius:50%;display:grid;place-items:center;font-size:.72rem}
.rquote{position:relative;min-width:0}
.rquote::before{content:"“";position:absolute;left:-.1em;top:-.55em;font-family:var(--display);font-size:clamp(5rem,9vw,8rem);line-height:1;color:var(--brass);opacity:.45}
.rquote p{position:relative;font-family:var(--voice);font-style:italic;font-weight:400;font-size:clamp(1.35rem,2.5vw,2.1rem);line-height:1.35;color:var(--light);max-width:none}
.rquote p.long{font-size:clamp(1.1rem,1.7vw,1.4rem);line-height:1.55}
.dots{display:flex;gap:.5rem;margin-top:1.8rem}
.dots button{width:2.4rem;height:2px;border:0;background:rgba(240,235,227,.25);cursor:pointer;padding:0;position:relative;overflow:hidden}
.dots button i{position:absolute;inset:0;background:var(--brass);transform:scaleX(0);transform-origin:left}
.dots button.on i{transform:scaleX(1)}
.dots button.on.run i{animation:fillbar var(--dur,8s) linear forwards}
@keyframes fillbar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(max-width:860px){.rcard{grid-template-columns:1fr;gap:1.6rem}.rquote::before{top:-.7em}}

/* gallery */
.gallery{padding-block:clamp(5rem,9vw,8rem) 0;background:var(--porcelain)}
.gallery .wrap{margin-bottom:2.4rem}
.strip{display:flex;gap:1.1rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 max(24px,env(safe-area-inset-right,0px)) 1.6rem max(24px,env(safe-area-inset-left,0px));scrollbar-width:thin;cursor:grab}
.strip.drag{cursor:grabbing;scroll-snap-type:none}
.strip img{flex:0 0 auto;height:clamp(260px,34vw,460px);width:auto;scroll-snap-align:start;object-fit:cover;background:var(--stone);user-select:none;-webkit-user-drag:none;transition:filter .5s}
.strip img:hover{filter:brightness(1.06) saturate(1.1)}
.strip.loop{display:block;width:auto;overflow:hidden;cursor:default;scroll-snap-type:none;padding-inline:0}
.strip-track{display:flex;width:max-content;animation:stripSlide var(--stripdur,60s) linear infinite}
.strip.loop:hover .strip-track{animation-play-state:paused}
.strip-group{display:flex;gap:1.1rem;padding-right:1.1rem}
@keyframes stripSlide{to{transform:translateX(-50%)}}

/* contact */
.contact{position:relative;background:var(--ink);color:var(--light);padding-block:clamp(5rem,10vw,9rem);overflow:hidden}
.contact::before{content:"";position:absolute;left:-10%;bottom:-30%;width:70vw;aspect-ratio:1;background:radial-gradient(closest-side,rgba(235,164,60,.14),transparent 70%);pointer-events:none}
.contact .wrap{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(3rem,7vw,7rem);align-items:start}
.contact .info{display:grid;gap:2rem;min-width:0}
.contact .num a{display:block;font-family:var(--display);font-size:clamp(2.1rem,5vw,4.2rem);line-height:1.15;text-decoration:none;transition:color .3s}
.contact .num a:hover{color:var(--brass)}
.contact dl{display:grid;gap:1.6rem;padding-top:2rem;border-top:1px solid rgba(240,235,227,.2)}
.contact dt{font-family:var(--voice);font-style:italic;font-size:1.1rem;color:var(--brass)}
.contact dd{font-size:1.1rem;line-height:1.6}
.contact dd a{text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .45s var(--ease)}
.contact dd a:hover{background-size:100% 1px}
form{display:grid;gap:1.5rem;align-content:start;min-width:0;padding:clamp(1.6rem,3.5vw,3rem);border:1px solid rgba(240,235,227,.2);background:rgba(240,235,227,.03)}
label{display:grid;gap:.3rem;font-size:.88rem;letter-spacing:.06em;color:var(--light-muted)}
input{font:inherit;font-size:1.05rem;padding:.7rem 0;background:transparent;border:0;border-bottom:1px solid rgba(240,235,227,.35);color:var(--light);border-radius:0;width:100%;transition:border-color .3s}
input:focus{outline:none;border-bottom-color:var(--brass)}
.note{font-size:.92rem;color:var(--brass);min-height:1.5em}
@media(max-width:860px){.contact .wrap{grid-template-columns:1fr}}

/* footer */
footer{position:relative;background:#07050A;color:var(--light);padding-top:4rem;padding-bottom:clamp(2.5rem,7vw,6rem);overflow:hidden}
footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2rem}
footer .brandcol img{height:56px;width:auto;max-width:100%;filter:brightness(0) invert(1)}
footer h4{font-family:var(--voice);font-style:italic;font-weight:400;font-size:1.2rem;color:var(--brass);margin-bottom:.9rem}
footer ul{list-style:none;padding:0;display:grid;gap:.5rem}
footer a{text-decoration:none;color:#CFC9D6;transition:color .25s}footer a:hover{color:var(--brass)}
footer .base{margin-top:3rem;padding-block:1.3rem;border-top:1px solid rgba(240,235,227,.14);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.86rem;color:var(--light-muted)}
footer .giant{font-family:var(--display);font-size:clamp(4rem,19vw,19rem);line-height:1;text-align:center;color:transparent;-webkit-text-stroke:1px rgba(240,235,227,.14);white-space:nowrap;margin-top:1rem;margin-bottom:0;user-select:none}
@media(max-width:800px){footer .cols{grid-template-columns:1fr 1fr}}
@media(max-width:480px){footer .cols{grid-template-columns:1fr}}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .marquee,.badge svg,.strip-track,.hero .hanglamp,.hero .hanglamp .lamp-glow{animation:none}
  .pre{display:none}
  *{transition:none!important}
}
