/* ==========================================================
   REGZA Art Vision — sections
   ========================================================== */
html.js .reveal{opacity:0;transform:translateY(48px)}

/* ---------- CONCEPT ---------- */
.concept{padding:clamp(96px,16vh,200px) 0 clamp(80px,12vh,160px);background:var(--paper)}
.concept__big{margin-top:28px;font-family:var(--f-jp);font-weight:900;font-size:clamp(40px,7.4vw,136px);line-height:1.06;letter-spacing:-.045em;max-width:15em}
.concept__big .ch{color:#d6d6d6;transition:color .25s}
.concept__big .ch.on{color:var(--ink)}
.concept__sub{margin-top:clamp(28px,5vh,56px);font-family:var(--f-jp);font-weight:500;font-size:clamp(17px,1.8vw,26px);line-height:1.7;letter-spacing:.02em;max-width:28em;margin-left:auto}
.concept__sub em{font-style:normal;font-weight:900;background:linear-gradient(transparent 62%,rgba(196,65,42,.28) 62%)}
.concept__three{margin-top:clamp(56px,10vh,120px);display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ink)}
.c3{position:relative;padding:22px 24px 28px 0;display:grid;grid-template-rows:auto auto auto 1fr;min-height:clamp(260px,34vh,380px)}
.c3+.c3{padding-left:24px;border-left:1px solid var(--line)}
.c3__n{font-family:var(--f-lat);font-size:13px;font-weight:800}
.c3__en{margin-top:28px;font-family:var(--f-lat);font-size:clamp(28px,3vw,48px);font-weight:800;letter-spacing:-.04em;line-height:1}
.c3 h3{margin-top:10px;font-family:var(--f-jp);font-size:clamp(16px,1.4vw,20px);font-weight:700}
.c3__icon{align-self:end;justify-self:end;width:clamp(90px,9vw,140px);aspect-ratio:1.675;position:relative}
.c3__icon i{position:absolute;display:block}
.c3__icon--frame i{inset:0;border:2px solid var(--ink);background:linear-gradient(160deg,#7a1f17,var(--ember) 45%,#e48a4f);box-shadow:inset 0 0 0 6px var(--paper)}
.c3:hover .c3__icon--frame i{animation:wobble 1s var(--ease)}
@keyframes wobble{30%{transform:rotate(-3deg)}60%{transform:rotate(2deg)}100%{transform:none}}
.c3__icon--room i{bottom:0;border:2px solid var(--ink);transition:transform .7s var(--ease),background .7s}
.c3__icon--room i:nth-child(1){left:0;width:30%;height:70%;background:var(--green)}
.c3__icon--room i:nth-child(2){left:35%;width:30%;height:100%;background:var(--gold)}
.c3__icon--room i:nth-child(3){left:70%;width:30%;height:55%;background:var(--ember)}
.c3:hover .c3__icon--room i:nth-child(1){transform:translateY(-20%)}
.c3:hover .c3__icon--room i:nth-child(3){transform:translateY(-40%)}
.c3__icon--home i{inset:12% 15% 0;border:2px solid var(--ink);border-top:0;background:linear-gradient(var(--paper),var(--paper)) padding-box}
.c3__icon--home i::before{content:"";position:absolute;left:-12%;right:-12%;top:-38%;height:40%;border:2px solid var(--ink);border-bottom:0;clip-path:polygon(50% 0,100% 100%,0 100%);background:var(--ink)}
.c3__icon--home i::after{content:"";position:absolute;left:22%;right:22%;top:22%;height:36%;background:linear-gradient(160deg,var(--green),#5d8c6f);outline:2px solid var(--ink);transition:transform .7s var(--ease)}
.c3:hover .c3__icon--home i::after{transform:scale(1.12)}

/* ---------- ROOMS ---------- */
.rooms{position:relative;height:360vh;background:var(--paper)}
.rooms__pin{position:sticky;top:0;height:100vh;height:100svh;display:grid;grid-template-columns:minmax(280px,29%) 1fr;gap:clamp(20px,3vw,56px);
  padding:calc(var(--hdr) + var(--tick) + clamp(16px,3vh,36px)) var(--gut) clamp(16px,3vh,32px);overflow:hidden}
.rooms__side{display:flex;flex-direction:column;min-height:0}
.rooms__h{margin-top:14px;font-family:var(--f-jp);font-weight:900;font-size:clamp(22px,2.2vw,36px);line-height:1.25;letter-spacing:-.02em}
.rooms__letter{margin-top:auto;height:clamp(110px,17vh,190px);overflow:hidden;font-family:var(--f-lat);font-weight:800;font-size:clamp(110px,17vh,190px);line-height:1;letter-spacing:-.06em}
.rooms__letter-in{display:block}
.rooms__info{margin-top:10px;min-height:clamp(170px,23vh,220px)}
.rooms__name{font-family:var(--f-lat);font-weight:800;font-size:clamp(22px,2vw,30px);letter-spacing:-.03em;line-height:1.1}
.rooms__plan{font-family:var(--f-jp);font-size:12px;font-weight:700;color:var(--mute);margin-top:4px}
.rooms__lead{margin-top:12px;font-family:var(--f-jp);font-weight:700;font-size:clamp(14px,1.1vw,16px);line-height:1.6}
.rooms__list{margin-top:10px;font-size:13px;line-height:1.6;color:var(--ink-2)}
.rooms__list li{position:relative;padding-left:16px}
.rooms__list li::before{content:"";position:absolute;left:0;top:.72em;width:7px;height:1.5px;background:var(--ember)}
.rooms__tabs{margin-top:18px;border-top:1px solid var(--ink)}
.rooms__tabs button{position:relative;display:grid;grid-template-columns:30px 1fr;width:100%;text-align:left;padding:11px 0;border-bottom:1px solid var(--line);
  font-family:var(--f-lat);font-weight:700;font-size:15px;color:#a3a3a3;transition:color .4s}
.rooms__tabs button b{font-weight:800}
.rooms__tabs button i{position:absolute;left:0;bottom:-1px;height:2px;width:100%;background:var(--ink);transform-origin:0 50%;transform:scaleX(var(--p,0))}
.rooms__tabs button[aria-selected="true"]{color:var(--ink)}
.rooms__tabs button:hover{color:var(--ink)}
.rooms__fig{display:flex;flex-direction:column;justify-content:center;min-height:0;min-width:0}
.room{position:relative;width:min(100%,calc((100svh - var(--hdr) - var(--tick) - 110px) * 1.4912));aspect-ratio:1785/1197;margin-left:auto;perspective:1600px}
.room__tilt{position:absolute;inset:0;overflow:hidden;background:var(--night);transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) scale(1.0);transition:transform .9s var(--ease);will-change:transform}
.room__base{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.room__alcove{position:absolute;left:19.048%;top:46.784%;width:58.263%;height:41.771%;overflow:hidden;visibility:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent),linear-gradient(180deg,transparent,#000 8%,#000 94%,transparent);
  -webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent),linear-gradient(180deg,transparent,#000 8%,#000 94%,transparent);mask-composite:intersect}
.room__alcove.is-on{visibility:visible}
.room__alcove img{position:absolute;width:171.635%;height:239.4%;left:-32.692%;top:-112%;max-width:none}
.room__tv{position:absolute;left:40.577%;top:17.6%;width:24.808%;height:30.8%;box-shadow:0 0 0 1.5px #1c1714}
.room__curtain{position:absolute;left:23.53%;top:48.29%;width:51.54%;height:36.34%;transform-origin:50% 0;transform:scaleY(0);pointer-events:none;
  background:repeating-linear-gradient(180deg,rgba(0,0,0,0) 0 9px,rgba(0,0,0,.05) 9px 10px),linear-gradient(90deg,#cbbfae,#e2d8ca 30%,#d6cab9 70%,#c2b5a3);
  box-shadow:0 10px 24px rgba(0,0,0,.35)}
.room__curtain i{position:absolute;left:-1%;right:-1%;bottom:-3px;height:6px;background:#2a221c;border-radius:2px}
.room__dim{position:absolute;inset:0;background:#000;opacity:0;pointer-events:none}
.room__spots{position:absolute;inset:0;z-index:8}
.room__curtain{z-index:5}.room__dim{z-index:6}.room .glows{z-index:7}
.spot{position:absolute;width:0;height:0}
.spot__dot{position:absolute;left:-9px;top:-9px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.4);cursor:pointer;display:grid;place-items:center}
.spot__dot::before{content:"";position:absolute;inset:-6px;border-radius:50%;border:1.5px solid rgba(255,255,255,.8);animation:ring 2.2s var(--ease) infinite}
.spot__dot::after{content:"+";font-family:var(--f-lat);font-weight:700;font-size:14px;line-height:1;color:var(--ink);transition:transform .4s var(--ease)}
@keyframes ring{0%{transform:scale(.7);opacity:1}100%{transform:scale(1.9);opacity:0}}
.spot__tip{position:absolute;left:16px;top:-14px;width:max-content;max-width:240px;padding:8px 12px;background:#fff;color:var(--ink);font-size:12.5px;line-height:1.5;font-weight:700;
  clip-path:inset(0 100% 0 0);transition:clip-path .55s var(--ease);pointer-events:none}
.spot__tip small{display:block;font-family:var(--f-lat);font-size:10.5px;font-weight:700;color:var(--ember);letter-spacing:.06em;text-transform:uppercase}
.spot.is-open .spot__tip,.spot:hover .spot__tip{clip-path:inset(0 0 0 0)}
.spot.is-open .spot__dot::after,.spot:hover .spot__dot::after{transform:rotate(45deg)}
.spot--left .spot__tip{left:auto;right:16px}
.rooms__cap{display:flex;justify-content:flex-end;gap:14px;align-items:baseline;margin-top:12px;font-size:12.5px;color:var(--ink-2);text-align:right}
.rooms__cap-plan{font-weight:800;color:var(--ink)}
.rooms__count{font-family:var(--f-lat);font-weight:600;font-variant-numeric:tabular-nums;margin-left:12px}
.rooms__count b{font-weight:800;color:var(--ink)}

/* ---------- EXPERIENCE ---------- */
.exp{padding:clamp(96px,16vh,200px) 0 clamp(80px,12vh,140px);background:var(--paper)}
.sec-head{display:grid;gap:18px}
.sec-head--split{grid-template-columns:1fr auto;align-items:end}
.sec-note{font-size:14px;color:var(--ink-2);text-align:right}
.myart{margin-top:clamp(40px,7vh,80px);display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(24px,4vw,64px);align-items:start}
.mini{position:relative;aspect-ratio:1.957;overflow:hidden;background:var(--night)}
.mini__room{position:absolute;inset:0;background:url(../assets/room-a.jpg) 48.555% 77.029%/194.02% auto no-repeat;transition:filter 1.1s var(--ease)}
.mini__tv{position:absolute;left:37.174%;top:18.723%;width:28.043%;height:32.766%;box-shadow:0 0 0 2px #1c1714;transition:box-shadow 1.1s var(--ease),filter 1.1s}
.mini__tv canvas{position:absolute;inset:0;width:100%;height:100%}
.mini__light{position:absolute;inset:0;pointer-events:none;transition:opacity 1.1s var(--ease),background 1.1s}
.mini[data-time="morning"] .mini__room{filter:brightness(1.18) saturate(.82) hue-rotate(-6deg)}
.mini[data-time="morning"] .mini__light{background:linear-gradient(180deg,rgba(214,232,255,.5),rgba(214,232,255,.1));mix-blend-mode:soft-light}
.mini[data-time="holiday"] .mini__room{filter:brightness(1.1) saturate(1.05)}
.mini[data-time="holiday"] .mini__light{background:linear-gradient(105deg,rgba(255,214,150,.55),rgba(255,214,150,0) 55%);mix-blend-mode:screen}
.mini[data-time="night"] .mini__room{filter:brightness(.62) saturate(.95)}
.mini[data-time="night"] .mini__light{background:radial-gradient(ellipse 40% 60% at 50% 35%,rgba(0,0,0,0),rgba(8,5,3,.55));mix-blend-mode:multiply}
.mini[data-time="night"] .mini__tv{box-shadow:0 0 0 2px #1c1714,0 0 60px 6px rgba(255,190,140,.28)}
.myart__cap{display:flex;justify-content:space-between;margin-top:12px;font-size:12.5px}
.myart__title{font-family:var(--f-lat);font-weight:800}
.myart__time{font-family:var(--f);color:var(--ink-2)}
.exp__tag{display:inline-grid;place-items:center;width:40px;height:40px;border:1.5px solid var(--ink);border-radius:50%;font-family:var(--f-lat);font-weight:800;font-size:16px}
.exp__h{margin-top:16px;font-family:var(--f-lat);font-weight:800;font-size:clamp(30px,3.4vw,56px);line-height:.95;letter-spacing:-.045em}
.exp__p{margin-top:16px;font-size:15px;line-height:1.85;color:var(--ink-2);max-width:32em}
.ctl__label{margin-top:28px;font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--mute)}
.chips{margin-top:10px;display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.chip{text-align:left;transition:transform .5s var(--ease)}
.chip canvas{width:100%;aspect-ratio:1.675;height:auto;outline:1.5px solid transparent;outline-offset:3px;transition:outline-color .3s}
.chip span{display:block;margin-top:8px;font-family:var(--f-lat);font-size:11px;font-weight:700;line-height:1.25}
.chip:hover{transform:translateY(-3px)}
.chip[aria-pressed="true"] canvas{outline-color:var(--ink)}
.seg{position:relative;margin-top:10px;display:inline-grid;grid-template-columns:repeat(3,88px);border:1.5px solid var(--ink);border-radius:999px;padding:3px}
.seg button{position:relative;z-index:1;height:36px;font-family:var(--f-jp);font-weight:700;font-size:14px;transition:color .4s}
.seg button[aria-checked="true"]{color:var(--paper)}
.seg__pill{position:absolute;top:3px;bottom:3px;left:3px;width:88px;border-radius:999px;background:var(--ink);transition:transform .6s var(--ease)}
.exp__rows{margin-top:clamp(64px,10vh,120px);border-top:1px solid var(--ink)}
.row{display:grid;grid-template-columns:72px 1fr minmax(260px,40%);gap:clamp(16px,3vw,48px);padding:clamp(28px,5vh,52px) 0;border-bottom:1px solid var(--line);align-items:center}
.row__body .exp__h{margin-top:0}
.flip{display:block;width:100%;text-align:left}
.flip__screen{position:relative;display:block;aspect-ratio:1.675;background:#1c1714;padding:6px;box-shadow:0 18px 40px -18px rgba(0,0,0,.45)}
.flip__screen canvas{width:100%;height:100%}
.flip__tv{position:absolute;inset:6px;clip-path:inset(0 0 100% 0);transition:clip-path .9s var(--ease-io);overflow:hidden;
  background:linear-gradient(180deg,#1b3a64,#3f78a8 40%,#f2b37a 72%,#3a2d3d);background-size:100% 260%;animation:sky 9s ease-in-out infinite alternate}
.flip__tv::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(0,0,0,.12) 0 1px,transparent 1px 3px)}
.flip__tv::after{content:"";position:absolute;left:0;right:0;bottom:0;height:34%;background:linear-gradient(180deg,#232a33,#0f1216);clip-path:polygon(0 60%,12% 40%,22% 55%,35% 20%,48% 50%,60% 30%,72% 52%,85% 26%,100% 48%,100% 100%,0 100%)}
@keyframes sky{to{background-position:0 100%}}
.flip__ch{position:absolute;left:4%;top:6%;z-index:1;font-family:var(--f-lat);font-weight:800;font-size:13px;color:#fff;letter-spacing:.04em}
.flip__onair{position:absolute;right:4%;top:6%;z-index:1;padding:2px 8px;background:var(--ember);color:#fff;font-family:var(--f-lat);font-weight:800;font-size:10px;letter-spacing:.08em;animation:blink 1.4s steps(2) infinite}
@keyframes blink{50%{opacity:.35}}
.flip[aria-pressed="true"] .flip__tv{clip-path:inset(0 0 0 0)}
.flip__btn{display:inline-flex;margin-top:14px;height:38px;padding:0 18px;align-items:center;border:1.5px solid var(--ink);border-radius:999px;font-weight:700;font-size:13px;overflow:hidden;position:relative;transition:background .3s,color .3s}
.flip:hover .flip__btn{background:var(--ink);color:var(--paper)}
.flip__b{position:absolute;left:18px;transform:translateY(160%);transition:transform .6s var(--ease)}
.flip__a{transition:transform .6s var(--ease)}
.flip[aria-pressed="true"] .flip__a{transform:translateY(-160%)}
.flip[aria-pressed="true"] .flip__b{transform:none}
.styles{margin-top:20px;display:flex;flex-wrap:wrap;gap:8px}
.styles button{height:34px;padding:0 16px;border:1.5px solid var(--ink);border-radius:999px;font-family:var(--f-lat);font-weight:700;font-size:13px;transition:background .3s,color .3s}
.styles button[aria-selected="true"]{background:var(--ink);color:var(--paper)}
.swatch{position:relative;display:grid;grid-template-columns:1.4fr 1fr 1fr .7fr;aspect-ratio:1.675;gap:6px}
.swatch i{transition:background-color .9s var(--ease)}
.swatch i:nth-child(2){transition-delay:.06s}.swatch i:nth-child(3){transition-delay:.12s}.swatch i:nth-child(4){transition-delay:.18s}
.swatch[data-s="modern"] i:nth-child(1){background:#cfcbc4}.swatch[data-s="modern"] i:nth-child(2){background:#1b1b1b}.swatch[data-s="modern"] i:nth-child(3){background:#ebe6dc}.swatch[data-s="modern"] i:nth-child(4){background:#7f868b}
.swatch[data-s="natural"] i:nth-child(1){background:#c8ae8a}.swatch[data-s="natural"] i:nth-child(2){background:#6c7b58}.swatch[data-s="natural"] i:nth-child(3){background:#f0e9dc}.swatch[data-s="natural"] i:nth-child(4){background:#a2805f}
.swatch[data-s="hotel"] i:nth-child(1){background:#3b2a21}.swatch[data-s="hotel"] i:nth-child(2){background:#b8955a}.swatch[data-s="hotel"] i:nth-child(3){background:#e6d9c6}.swatch[data-s="hotel"] i:nth-child(4){background:#5a2b2b}
.swatch__w{position:absolute;left:0;bottom:-30px;font-family:var(--f-lat);font-size:12px;font-weight:600;color:var(--ink-2)}

/* ---------- JOURNEY ---------- */
.journey{position:relative;height:420vh;background:var(--ink);color:var(--paper)}
.journey__pin{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:flex;flex-direction:column;padding-top:calc(var(--hdr) + var(--tick) + clamp(20px,4vh,48px))}
.journey__head{padding:0 var(--gut);display:grid;grid-template-columns:1fr auto;align-items:end;gap:12px 40px}
.journey__head .eyebrow{grid-column:1/-1}
.journey__bar{width:clamp(120px,18vw,260px);height:2px;background:rgba(255,255,255,.2);margin-bottom:14px}
.journey__bar i{display:block;height:100%;background:var(--paper);transform-origin:0 50%;transform:scaleX(0)}
.journey__track{flex:1;display:flex;align-items:stretch;gap:0;padding:clamp(28px,5vh,56px) var(--gut) clamp(24px,5vh,48px);will-change:transform}
.jcard{flex:0 0 clamp(280px,31vw,500px);display:flex;flex-direction:column;padding:0 clamp(18px,2vw,32px);border-left:1px solid rgba(255,255,255,.28)}
.jcard__n{font-family:var(--f-lat);font-weight:800;font-size:clamp(72px,9vw,150px);line-height:.85;letter-spacing:-.06em}
.jcard h3{margin-top:20px;font-family:var(--f-jp);font-weight:900;font-size:clamp(24px,2.4vw,40px);letter-spacing:-.02em}
.jcard p{margin-top:6px;font-size:14px;color:rgba(255,255,255,.72)}
.jcard__fig{margin-top:auto;position:relative;width:100%;aspect-ratio:1.675;max-height:30vh;border:1px solid rgba(255,255,255,.28)}
/* ---------- CAMPAIGN ---------- */
.camp{padding:clamp(96px,16vh,200px) 0 clamp(96px,14vh,160px);background:var(--paper)}
.camp__grid{margin-top:clamp(40px,7vh,80px);display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.6vw,28px)}
.card{display:flex;flex-direction:column;border-top:1.5px solid var(--ink)}
.card__art{position:relative;overflow:hidden;margin-top:18px;aspect-ratio:1.675;background:#ddd}
.card__art canvas{width:100%;height:100%;transition:transform 1.4s var(--ease)}
.card:hover .card__art canvas{transform:scale(1.07)}
.card__body{position:relative;padding-top:18px;display:grid;gap:10px}
.card__n{font-family:var(--f-lat);font-weight:800;font-size:13px}
.card h3{font-family:var(--f-jp);font-weight:900;font-size:clamp(22px,2vw,32px);letter-spacing:-.02em;line-height:1.25}
.card p{font-size:14px;line-height:1.8;color:var(--ink-2)}
.card__go{display:inline-flex;gap:8px;align-items:center;margin-top:6px;font-family:var(--f-lat);font-weight:800;font-size:15px}
.card__go i{font-style:normal;transition:transform .5s var(--ease)}
.card:hover .card__go i{transform:translateX(8px)}

/* ---------- VISIT ---------- */
.visit{background:var(--ink);color:var(--paper);padding:clamp(96px,15vh,180px) 0 clamp(80px,12vh,140px)}
.visit__grid{margin-top:26px;display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(24px,4vw,72px);align-items:end}
.visit__big{font-family:var(--f-lat);font-weight:800;font-size:clamp(76px,13vw,240px);line-height:.84;letter-spacing:-.06em;font-variant-numeric:tabular-nums}
.visit__dl{display:grid;border-top:1px solid rgba(255,255,255,.4)}
.visit__dl>div{display:grid;grid-template-columns:72px 1fr;gap:16px;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.2)}
.visit__dl dt{font-size:12px;font-weight:700;color:rgba(255,255,255,.6);padding-top:3px}
.visit__dl dd{font-family:var(--f-jp);font-weight:700;font-size:clamp(15px,1.3vw,19px);line-height:1.6}
.visit__dl small{font-weight:500;font-size:12px;color:rgba(255,255,255,.6)}
.cal{margin-top:clamp(48px,8vh,96px);display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid rgba(255,255,255,.4);border-left:1px solid rgba(255,255,255,.14)}
.cal__h{padding:10px 12px;font-family:var(--f-lat);font-size:11px;font-weight:700;letter-spacing:.08em;color:rgba(255,255,255,.55);border-right:1px solid rgba(255,255,255,.14);border-bottom:1px solid rgba(255,255,255,.14)}
.cal__d{position:relative;aspect-ratio:2.2;padding:10px 12px;font-family:var(--f-lat);font-weight:700;font-size:clamp(14px,1.6vw,26px);border-right:1px solid rgba(255,255,255,.14);border-bottom:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.35);overflow:hidden}
.cal__d.is-on{color:var(--ink)}
.cal__d.is-on::before{content:"";position:absolute;inset:0;background:var(--paper);transform:scaleY(var(--f,0));transform-origin:50% 100%;z-index:-1}
.cal__d{isolation:isolate}
.cal__d.is-first::after,.cal__d.is-last::after{position:absolute;right:10px;bottom:8px;font-size:10px;letter-spacing:.06em;color:var(--ember)}
.cal__d.is-first::after{content:"OPEN"}
.cal__d.is-last::after{content:"CLOSE"}
.visit__note{margin-top:20px;font-size:12px;color:rgba(255,255,255,.55)}

/* ---------- FOOTER ---------- */
.ftr{background:var(--paper);padding:clamp(64px,12vh,140px) 0 26px;overflow:hidden}
.ftr__tag{font-family:var(--f-jp);font-weight:700;font-size:clamp(15px,1.4vw,20px)}
.ftr__mark{margin-top:2vh;display:flex;gap:.18em;font-family:var(--f-lat);font-weight:800;font-size:clamp(64px,17.6vw,330px);line-height:.8;letter-spacing:-.065em;white-space:nowrap}
.ftr__mark span{display:inline-block}
.ftr__row{margin-top:clamp(28px,5vh,56px);padding-top:14px;border-top:1px solid var(--ink);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:12.5px;font-weight:600}

/* ---------- RESPONSIVE ---------- */
@media (max-width:1100px){
  .stepper{display:none}
  .chips{grid-template-columns:repeat(5,1fr)}
  .chip span{font-size:10px}
}
@media (max-width:860px){
  :root{--hdr:54px;--tick:26px}
  .hdr__nav{position:fixed;left:0;right:0;top:calc(var(--hdr) + var(--tick));flex-direction:column;gap:0;background:var(--paper);padding:8px var(--gut) 18px;border-bottom:1px solid var(--ink);
    font-size:22px;clip-path:inset(0 0 100% 0);transition:clip-path .6s var(--ease)}
  .hdr__nav a{padding:10px 0;border-bottom:1px solid var(--line)}
  .hdr.is-open .hdr__nav{clip-path:inset(0 0 0 0)}
  .hdr__menu{display:block}
  .hdr__date{display:none}
  .hdr__regza{font-size:19px}.hdr__av{font-size:15px}
  .hero__intro{grid-template-columns:1fr}
  .hero__meta{flex-direction:column;align-items:flex-start;gap:8px;padding-bottom:10px}
  .hero__when{align-items:flex-start;text-align:left}
  .tomb{width:min(260px,70vw)}
  .stepper{display:none}
  .hero__caption{flex-direction:column;gap:2px}
  .concept__three{grid-template-columns:1fr}
  .c3+.c3{padding-left:0;border-left:0;border-top:1px solid var(--line)}
  .c3{min-height:200px}
  .rooms{height:330vh}
  .rooms__pin{grid-template-columns:1fr;grid-template-rows:auto auto 1fr;gap:10px;padding-top:calc(var(--hdr) + var(--tick) + 14px)}
  .rooms__side{display:grid;grid-template-columns:auto 1fr;column-gap:16px;align-items:end}
  .rooms__side .eyebrow,.rooms__h,.rooms__tabs{grid-column:1/-1}
  .rooms__h{font-size:22px;margin-top:8px}
  .rooms__letter{margin-top:8px;height:96px;font-size:96px}
  .rooms__info{min-height:0;margin-top:0}
  .rooms__list{display:none}
  .rooms__tabs{display:grid;grid-template-columns:repeat(3,1fr);margin-top:12px}
  .rooms__tabs button{font-size:12px;grid-template-columns:18px 1fr}
  .rooms__fig{order:3;justify-content:flex-start}
  .room{width:100%}
  .rooms__cap{flex-wrap:wrap;justify-content:flex-start;text-align:left;font-size:11px;gap:6px}
  .myart{grid-template-columns:1fr}
  .chips{grid-template-columns:repeat(5,1fr);gap:6px}
  .chip span{display:none}
  .row{grid-template-columns:1fr}
  .swatch{margin-bottom:30px}
  .sec-head--split{grid-template-columns:1fr}
  .sec-note{text-align:left}
  .journey__head{grid-template-columns:1fr}
  .jcard{flex-basis:78vw}
  .camp__grid{grid-template-columns:1fr}
  .visit__grid{grid-template-columns:1fr}
  .cal__d{aspect-ratio:1.2;padding:6px}
  .cal__d.is-first::after,.cal__d.is-last::after{display:none}
}
@media (prefers-reduced-motion:reduce){
  .flip__tv,.flip__onair,.spot__dot::before{animation:none}
}

/* ---------- concept icons: one line-art system, each with its own loop ---------- */
.ic{display:block;width:clamp(170px,15vw,240px);height:auto;justify-self:end;align-self:end;overflow:visible;margin-top:18px}
.ic .ln{fill:none;stroke:var(--ink);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.ic .ln.thin{stroke-width:1.1}
.ic rect.ln[fill],.ic path.ln[fill],.ic circle.ln[fill]{fill:#fff}
.c3 .ic .ln{stroke-dasharray:640;stroke-dashoffset:640;transition:stroke-dashoffset 1.8s var(--ease)}
.c3.is-in .ic .ln{stroke-dashoffset:0}
.c3 .ic>g,.c3 .ic>rect:not(.ln),.c3 .ic text{opacity:0;transition:opacity .9s .6s}
.c3.is-in .ic>g,.c3.is-in .ic>rect:not(.ln){opacity:1}
/* I — a painting that turns out to be a TV */
.ic1-tv{clip-path:inset(0 100% 0 0);animation:ic1tv 7s cubic-bezier(.76,0,.24,1) infinite}
@keyframes ic1tv{0%,28%{clip-path:inset(0 100% 0 0)}40%,68%{clip-path:inset(0 0 0 0)}80%,100%{clip-path:inset(0 0 0 100%)}}
.ic1-wipe{stroke:#fff;stroke-width:2.5;opacity:0;animation:ic1wipe 7s cubic-bezier(.76,0,.24,1) infinite}
@keyframes ic1wipe{0%,28%{transform:translateX(0);opacity:0}29%{opacity:1}40%{transform:translateX(136px);opacity:1}41%,68%{transform:translateX(0);opacity:0}69%{opacity:1}80%{transform:translateX(136px);opacity:1}81%,100%{opacity:0}}
.ic1-ch{font:800 7px var(--f-lat);fill:#fff;letter-spacing:.06em}
.ic1-qt{font:700 13px var(--f-lat);fill:var(--ink);text-anchor:middle}
.c3.is-in .ic text{opacity:1}
.ic1-q{transform-box:fill-box;transform-origin:50% 50%;animation:ic1q 7s var(--ease) infinite}
@keyframes ic1q{0%,30%{transform:scale(1)}36%{transform:scale(1.25)}44%,100%{transform:scale(1)}}
/* II — the same room in three moods (A / B / C) */
.ic2-wall{fill:#efe6df;animation:ic2wall 9s ease-in-out infinite}
@keyframes ic2wall{0%,28%{fill:#efe6df}35%,61%{fill:#cbdcd1}68%,94%{fill:#f0d7cf}100%{fill:#efe6df}}
.ic2-art{fill:#d0582e;animation:ic2art 9s ease-in-out infinite}
@keyframes ic2art{0%,28%{fill:#d0582e}35%,61%{fill:#2d5a46}68%,94%{fill:#d9718a}100%{fill:#d0582e}}
.ic2-tags text{font:800 8px var(--f-lat);fill:var(--ink);text-anchor:middle;opacity:.22;animation:ic2tag 9s steps(1) infinite}
.c3.is-in .ic2-tags text{opacity:.22}
.ic2-tags text:nth-child(2){animation-delay:-6s}.ic2-tags text:nth-child(3){animation-delay:-3s}
@keyframes ic2tag{0%{opacity:1}33.3%,100%{opacity:.22}}
/* III — the artwork finds its place in your home */
.ic3-guide{fill:none;stroke:var(--ink);stroke-width:1.1;stroke-dasharray:4 4;animation:ic3guide 6.5s linear infinite}
@keyframes ic3guide{0%{stroke-dashoffset:0;opacity:.7}48%{stroke-dashoffset:-48;opacity:.7}54%,100%{stroke-dashoffset:-56;opacity:0}}
.ic3-art{transform-box:view-box;transform-origin:110px 44px;animation:ic3art 6.5s cubic-bezier(.16,1,.3,1) infinite}
@keyframes ic3art{0%,8%{transform:translate(62px,-34px) rotate(-12deg);opacity:0}20%{opacity:1}46%{transform:translate(0,0) rotate(4deg)}54%{transform:rotate(-2deg)}60%,90%{transform:none;opacity:1}100%{transform:none;opacity:0}}
.ic3-check{fill:none;stroke:var(--ember);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:30;stroke-dashoffset:30;animation:ic3check 6.5s var(--ease) infinite}
@keyframes ic3check{0%,58%{stroke-dashoffset:30;opacity:1}68%,90%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
.c3:hover .ic *{animation-duration:3.5s}
@media (prefers-reduced-motion:reduce){.ic *{animation:none!important}.ic1-tv{clip-path:inset(0 100% 0 0)}}
