/* kacha.studio: shared styles for the chooser and both studio pages */
@font-face{font-family:"ZT Formom";src:url("/assets/fonts/zt-formom.otf") format("opentype");font-weight:400;font-style:normal;font-display:swap}

*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html,body{margin:0}
body{font-family:var(--body);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit}
img{max-width:100%}
:focus-visible{outline:2px solid currentColor;outline-offset:3px}

/* ---------- brand tokens ---------- */
.b-pbk{
  --bg:#3A231C;--ink:#3B2A20;--soft:#4A372B;--accent:#513229;
  --display:"IM Fell English","Iowan Old Style",Georgia,serif;--body:"Jost","Avenir Next","Segoe UI",system-ui,sans-serif;--mono:var(--body);
  --h-w:400;--h-track:-.01em;--hook-font:var(--display);--hook-style:italic;--hook-size:15px;
  --panel:rgba(251,246,234,.72);--border:1px solid rgba(255,255,255,.55);--r:22px;
  --shadow:0 1px 2px rgba(20,10,4,.2),0 16px 36px rgba(25,12,5,.3),inset 0 1px 0 rgba(255,255,255,.7);
  --card:rgba(255,255,255,.5);--card-border:1px solid rgba(255,255,255,.75);--card-r:14px;--rule:rgba(59,42,32,.16);
  --price-bg:linear-gradient(transparent 56%,#FEE9BD 56%,#FEE9BD 92%,transparent 92%);--note-bg:#FEE9BD;--faq-bg:rgba(216,235,249,.85);
  --d1:#D8EBF9;--d2:#FEE9BD;--d3:#D7D4B1;--d4:#D8EBF9;--d5:#FEE9BD;
  --btn-p:#513229;--btn-p-ink:#FFFFFF;--btn-solid:#513229;--star:#B8862B;--foot:#F4F1E2;
  --hcard:rgba(251,246,234,.52);--hcard-border:1px solid rgba(255,255,255,.6);--hink:#3B2A20;--hmuted:#4A372B;--rating-bg:rgba(254,233,189,.85);
  --bar-bg:rgba(48,28,16,.4);--bar-border:1px solid rgba(255,255,255,.35);--tab-on:rgba(255,255,255,.22);--tab-on-ink:#FFFFFF;--tab-ink:rgba(255,255,255,.8);
  --tb-bg:rgba(251,246,234,.66);--tb-ink:#4A2F1F;--tb-border:1px solid rgba(255,255,255,.6);
  --menu-bg:rgba(43,26,20,.86);--menu-ink:#F4F1E2;--menu-rule:rgba(244,241,226,.18);--menu-font:var(--display);--menu-w:400;--menu-btn:#F4F1E2;--menu-btn-ink:#513229;
  --frame:#FBF7EE;--back:#F4ECD8;--print-r:3px;--back-font:var(--display);--back-style:italic;
  --print-shadow:0 1px 1px rgba(10,5,2,.35),0 2px 4px rgba(10,5,2,.25),6px 12px 22px rgba(25,12,5,.4);
}
.b-kks{
  --bg:#D3D6DA;--ink:#141414;--soft:#45484D;--accent:#141414;
  --display:"Helvetica Neue",Helvetica,Arial,sans-serif;--body:"Helvetica Neue",Helvetica,Arial,sans-serif;--mono:var(--body);
  --h-w:700;--h-track:-.035em;--hook-font:"ZT Formom",serif;--hook-style:normal;--hook-size:20px;
  --panel:rgba(255,255,255,.5);--border:1px solid rgba(255,255,255,.7);--r:24px;
  --shadow:0 1px 2px rgba(20,24,28,.15),0 14px 32px rgba(30,34,40,.16),inset 0 1px 0 rgba(255,255,255,.95);
  --card:rgba(255,255,255,.62);--card-border:1px solid rgba(255,255,255,.95);--card-r:16px;--rule:rgba(20,20,20,.1);
  --price-bg:linear-gradient(transparent 55%,#E7FFAD 55%,#E7FFAD 92%,transparent 92%);--note-bg:transparent;--faq-bg:transparent;
  --d1:#E7FFAD;--d2:#E7FFAD;--d3:#E7FFAD;--d4:#E7FFAD;--d5:#E7FFAD;
  --btn-p:#E7FFAD;--btn-p-ink:#141414;--btn-solid:#141414;--star:#141414;--foot:#141414;
  --hcard:rgba(255,255,255,.5);--hcard-border:1px solid rgba(255,255,255,.7);--hink:#141414;--hmuted:#4E5862;--rating-bg:#E7FFAD;
  --bar-bg:rgba(255,255,255,.5);--bar-border:1px solid rgba(255,255,255,.9);--tab-on:#E7FFAD;--tab-on-ink:#24272B;--tab-ink:rgba(36,39,43,.72);
  --tb-bg:rgba(255,255,255,.55);--tb-ink:#141414;--tb-border:1px solid rgba(255,255,255,.85);
  --menu-bg:rgba(246,247,245,.86);--menu-ink:#141414;--menu-rule:rgba(20,20,20,.12);--menu-font:var(--display);--menu-w:700;--menu-btn:#E7FFAD;--menu-btn-ink:#141414;
  --frame:#FFFFFF;--back:#F1F2F4;--print-r:2px;--back-font:var(--display);--back-style:normal;
  --print-shadow:0 1px 1px rgba(20,24,28,.25),0 2px 4px rgba(20,24,28,.15),5px 10px 20px rgba(30,34,40,.22);
}

.glass{-webkit-backdrop-filter:blur(20px) saturate(150%);backdrop-filter:blur(20px) saturate(150%)}

/* ---------- background texture ---------- */
.bgfx{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.bgfx svg{position:absolute;inset:0;width:100%;height:100%}
.b-pbk .mottle{opacity:.32;mix-blend-mode:overlay}
.b-pbk .grain{opacity:.5;mix-blend-mode:overlay}
.b-kks .mottle{opacity:.2;mix-blend-mode:multiply}
.b-kks .grain{opacity:.34;mix-blend-mode:multiply}
.seams{position:absolute;inset:0;background-image:repeating-linear-gradient(90deg,transparent 0 279px,rgba(0,0,0,.08) 279px 280px,rgba(255,255,255,.7) 280px 281px)}

/* ---------- top bar ---------- */
.topbar{position:fixed;top:12px;left:16px;right:16px;z-index:900;display:flex;align-items:center;justify-content:space-between;pointer-events:none}
.topbar>*{pointer-events:auto}
.logo,.menu-btn{flex:none;width:44px;height:44px;border-radius:999px;display:flex;align-items:center;justify-content:center;border:var(--tb-border);background:var(--tb-bg);color:var(--tb-ink);box-shadow:0 6px 16px rgba(20,10,4,.22);cursor:pointer;padding:0}
.b-pbk .logo{color:#513229}
.b-kks .logo{background:#E7FFAD;border-color:transparent;color:#141414}
.switch{flex:1 1 auto;max-width:440px;height:44px;margin:0 8px;display:flex;gap:3px;padding:4px;border-radius:999px;background:var(--bar-bg);border:var(--bar-border);box-shadow:0 8px 20px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.4)}
.switch a{flex:1;min-width:0;border-radius:999px;display:flex;align-items:center;justify-content:center;color:var(--tab-ink);text-decoration:none;font:700 13px/1 "Helvetica Neue",Helvetica,Arial,sans-serif;letter-spacing:-.02em;white-space:nowrap;transition:background .25s}
.switch a[aria-current="page"]{background:var(--tab-on);color:var(--tab-on-ink)}
@media (min-width:1180px){
  .topbar{top:16px;left:40px;right:40px}
  .logo,.menu-btn{width:52px;height:52px}
  .switch{height:52px;max-width:420px;flex:0 1 420px}
  .switch a{font-size:15px}
}

/* logos (single-colour PNGs used as masks so they take the text colour) */
.lg{display:inline-block;flex:none;background-color:currentColor;-webkit-mask:center/contain no-repeat;mask:center/contain no-repeat}
.lg-pbk{-webkit-mask-image:url("/assets/img/portraits-wordmark.png");mask-image:url("/assets/img/portraits-wordmark.png");width:59px;height:10.5px}
.lg-kk{-webkit-mask-image:url("/assets/img/kacha-flash.png");mask-image:url("/assets/img/kacha-flash.png");width:50%;height:50%}
.lg-cat{-webkit-mask-image:url("/assets/img/portraits-cat.png");mask-image:url("/assets/img/portraits-cat.png");width:80%;height:52%}
@media (min-width:1180px){.switch .lg-pbk{width:68px;height:12px}}
@keyframes kidle{0%,84%,100%{transform:rotate(0) scale(1)}88%{transform:rotate(-12deg) scale(1.06)}92%{transform:rotate(9deg) scale(1.06)}96%{transform:rotate(-4deg)}}
@keyframes kwig{0%{transform:scale(1)}20%{transform:scale(.8) rotate(-8deg)}55%{transform:scale(1.18) rotate(6deg)}100%{transform:scale(1) rotate(0)}}
.idle{animation:kidle 5s ease-in-out infinite}
.wig{animation:kwig .55s ease-out}

.flash{position:fixed;inset:0;z-index:1150;background:#fff;opacity:0;pointer-events:none;transition:opacity .5s}
.flash.on{opacity:.9;transition:none}
.snap-cap{position:fixed;left:16px;top:66px;z-index:1160;margin:0;padding:8px 14px;border-radius:999px;font-size:15px;white-space:nowrap;opacity:0;transform:translateY(-6px);transition:opacity .3s,transform .3s;pointer-events:none;box-shadow:0 8px 20px rgba(0,0,0,.18)}
.b-pbk .snap-cap{background:#F4F1E2;color:#513229;font-family:var(--display)}
.b-kks .snap-cap{background:#E7FFAD;color:#141414;font-family:"ZT Formom",serif}
.snap-cap.show{opacity:1;transform:none}
@media (min-width:1180px){.snap-cap{left:40px;top:80px}}

/* ---------- menu ---------- */
.menu{position:fixed;inset:0;z-index:1200;background:var(--menu-bg);color:var(--menu-ink);overflow-y:auto}
.menu[hidden]{display:none}
.menu-in{max-width:720px;margin:0 auto;padding:12px 22px 32px}
.menu-top{height:44px;display:flex;align-items:center;justify-content:space-between}
.menu .eb{color:inherit;opacity:.75}
.menu-close{width:44px;height:44px;border-radius:999px;border:1px solid var(--menu-rule);background:transparent;color:inherit;display:flex;align-items:center;justify-content:center;cursor:pointer}
.menu-list{display:flex;flex-direction:column;margin-top:16px}
.menu-list a{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:14px 0;border-bottom:1px solid var(--menu-rule);text-decoration:none}
.mt{font-family:var(--menu-font);font-weight:var(--menu-w);font-size:30px;line-height:1.1;letter-spacing:var(--h-track)}
.ms{font:500 11px var(--mono);letter-spacing:.12em;text-transform:uppercase;opacity:.7;white-space:nowrap}
.menu-book{margin-top:24px;height:52px;border-radius:999px;background:var(--menu-btn);color:var(--menu-btn-ink);display:flex;align-items:center;justify-content:center;font:500 12px var(--mono);letter-spacing:.16em;text-transform:uppercase;text-decoration:none}
.menu-soc{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.menu-soc a{flex:1;min-width:100px;height:44px;border-radius:999px;border:1px solid var(--menu-rule);display:flex;align-items:center;justify-content:center;font:500 11px var(--mono);letter-spacing:.12em;text-decoration:none}
@media (min-width:1180px){.menu-in{padding:16px 40px 40px}.menu-top{height:52px}.mt{font-size:40px}}

/* ---------- hero ---------- */
.hero{position:relative;height:844px;overflow:hidden}
.hero-light{position:absolute;inset:0;pointer-events:none}
.b-pbk .hero-light{background:radial-gradient(55% 40% at 92% 4%,rgba(254,233,189,.16),transparent 70%),radial-gradient(45% 32% at 0% 34%,rgba(216,235,249,.10),transparent 70%),radial-gradient(70% 50% at 50% 55%,rgba(244,241,226,.05),transparent 70%)}
.b-kks .hero-light{background:radial-gradient(46% 34% at 88% 8%,rgba(231,255,173,.85),transparent 70%),radial-gradient(52% 40% at 8% 4%,rgba(255,255,255,.8),transparent 70%),radial-gradient(44% 30% at 10% 70%,rgba(231,255,173,.55),transparent 70%),radial-gradient(50% 40% at 94% 92%,rgba(120,132,146,.22),transparent 70%)}
.stage{position:absolute;top:0;left:0;transform-origin:0 0;transform:scale(var(--s,1))}
.stage-d{display:none}
@media (min-width:1180px){.stage-m{display:none}.stage-d{display:block}}
.window{position:absolute;z-index:14;pointer-events:none;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(3,1fr);transform:rotate(-22deg) skewX(-16deg);mix-blend-mode:screen}
.window i{background:rgba(255,198,132,var(--a))}
.glow{position:absolute;z-index:12;pointer-events:none}
.b-pbk .glow{background:radial-gradient(36% 30% at 22% 26%,rgba(254,233,189,.7),transparent 75%),radial-gradient(34% 30% at 78% 40%,rgba(216,235,249,.6),transparent 70%),radial-gradient(40% 32% at 40% 80%,rgba(215,212,177,.9),transparent 70%),radial-gradient(26% 22% at 84% 84%,rgba(232,160,120,.6),transparent 70%)}
.b-kks .glow{background:radial-gradient(38% 32% at 24% 30%,rgba(231,255,173,1),transparent 70%),radial-gradient(34% 30% at 78% 46%,rgba(255,255,255,.95),transparent 70%),radial-gradient(40% 32% at 46% 82%,rgba(231,255,173,.8),transparent 70%),radial-gradient(26% 22% at 86% 18%,rgba(170,182,196,.7),transparent 70%)}

/* draggable things */
.drag{position:absolute;transform:rotate(var(--r));touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:transform .15s}
.drag.lift{transform:rotate(var(--r)) scale(1.05);cursor:grabbing}
.prop svg{display:block}
.print{perspective:900px}
.flip{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .55s}
.print.flipped .flip{transform:rotateY(180deg)}
.front,.back{position:absolute;inset:0;-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:var(--print-r);box-shadow:var(--print-shadow);overflow:hidden}
.front{background:var(--frame);display:flex;flex-direction:column}
.front::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(125deg,rgba(255,255,255,.22) 0%,rgba(255,255,255,0) 30%)}
.pf{flex:1;display:flex;flex-direction:column;min-height:0}
.b-pbk .stage-m .pf{padding:7px 7px 0}.b-pbk .stage-d .pf{padding:10px 10px 0}
.b-kks .stage-m .pf{padding:5px}.b-kks .stage-d .pf{padding:8px}
.pimg{flex:1;position:relative;overflow:hidden;display:flex;align-items:flex-end;justify-content:center;border-radius:1px;min-height:0}
.pimg svg{display:block}
.pfoot{height:var(--footH);display:flex;align-items:center;justify-content:space-between;font-family:"IM Fell English",Georgia,serif;font-size:var(--foot);color:#3B2A20}
.pfoot span:last-child{font-family:"Jost",sans-serif;font-size:var(--lab);letter-spacing:.12em}
.strip{gap:4px}.stage-d .strip{gap:7px}
.strip>div{flex:1;display:flex;align-items:flex-end;justify-content:center;overflow:hidden}
.back{transform:rotateY(180deg);background:var(--back);padding:12px;display:flex;flex-direction:column;justify-content:space-between;font:500 var(--lab)/1.2 var(--body);letter-spacing:.14em;text-transform:uppercase;color:#4E5862}
.back b{font-family:var(--back-font);font-style:var(--back-style);font-weight:500;font-size:var(--cap);line-height:1.05;letter-spacing:0;text-transform:none;color:#2A2D31}
.tape{position:absolute;left:50%;top:calc(var(--tapeOff) * -1);width:44%;height:var(--tapeH);transform:translateX(-50%) rotate(-4deg);opacity:.85;box-shadow:0 1px 2px rgba(0,0,0,.15);pointer-events:none}
.clip{position:absolute;left:50%;top:calc(var(--clipOff) * -1);width:var(--clipW);height:var(--clipH);transform:translateX(-50%);filter:drop-shadow(1px 3px 2px rgba(0,0,0,.3));pointer-events:none}
.clip svg{width:100%;height:100%;display:block}

/* hero card */
.hcard{position:absolute;z-index:30;left:18px;right:18px;bottom:22px;max-width:420px;margin:0 auto;padding:20px;border-radius:24px;background:var(--hcard);border:var(--hcard-border);color:var(--hink);box-shadow:0 1px 2px rgba(20,10,4,.25),0 18px 40px rgba(25,12,5,.3),inset 0 1px 0 rgba(255,255,255,.7)}
.hhead{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font:500 10px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--hmuted)}
.b-kks .hhead{letter-spacing:.2em;padding-bottom:8px;border-bottom:1px solid rgba(46,50,56,.18)}
.b-kks .hhead>span:first-child{color:#24272B}
.hwm{font-family:"IM Fell English",Georgia,serif;font-size:19px;letter-spacing:0;text-transform:none;color:var(--hink)}
.hby{font-family:"Jost",sans-serif;font-weight:300;font-size:11px;letter-spacing:0;text-transform:none;color:var(--hink)}
.h1-seo{margin:12px 0 0;font:500 10px/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--hmuted)}
.headline{margin:16px 0 0;font-family:var(--display);font-weight:var(--h-w);font-size:38px;line-height:1.02;letter-spacing:-.01em}
.b-kks .headline{font-size:32px;line-height:1.04;letter-spacing:-.025em;font-weight:600}
.rot-line{display:block;margin-top:6px;white-space:nowrap}
.rot{display:inline-block;font-size:1.22em;font-style:italic;color:#513229;background:linear-gradient(transparent 58%,#FEE9BD 58%,#FEE9BD 94%,transparent 94%);padding:0 .06em;min-height:1em}
.b-kks .rot{font-family:"ZT Formom",serif;font-weight:400;font-style:normal;font-size:1.42em;letter-spacing:-.055em;color:#141414;background:none;padding:0 .1em;
  text-shadow:.05em 0 0 #E7FFAD,.046em .019em 0 #E7FFAD,.035em .035em 0 #E7FFAD,.019em .046em 0 #E7FFAD,0 .05em 0 #E7FFAD,-.019em .046em 0 #E7FFAD,-.035em .035em 0 #E7FFAD,-.046em .019em 0 #E7FFAD,-.05em 0 0 #E7FFAD,-.046em -.019em 0 #E7FFAD,-.035em -.035em 0 #E7FFAD,-.019em -.046em 0 #E7FFAD,0 -.05em 0 #E7FFAD,.019em -.046em 0 #E7FFAD,.035em -.035em 0 #E7FFAD,.046em -.019em 0 #E7FFAD,.095em 0 0 #E7FFAD,.088em .036em 0 #E7FFAD,.067em .067em 0 #E7FFAD,.036em .088em 0 #E7FFAD,0 .095em 0 #E7FFAD,-.036em .088em 0 #E7FFAD,-.067em .067em 0 #E7FFAD,-.088em .036em 0 #E7FFAD,-.095em 0 0 #E7FFAD,-.088em -.036em 0 #E7FFAD,-.067em -.067em 0 #E7FFAD,-.036em -.088em 0 #E7FFAD,0 -.095em 0 #E7FFAD,.036em -.088em 0 #E7FFAD,.067em -.067em 0 #E7FFAD,.088em -.036em 0 #E7FFAD,0 0 .06em #E7FFAD}
.caret{display:inline-block;width:2px;height:.8em;margin-left:4px;vertical-align:-.06em;background:currentColor;animation:caret 1s infinite}
@keyframes caret{0%,49%{opacity:1}50%,100%{opacity:0}}
.hsub{margin:8px 0 0;font-size:14px;line-height:1.45}
.hbtns{display:flex;gap:10px;margin-top:18px}
.hfoot{margin-top:12px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}
.rating{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 12px;border-radius:999px;background:var(--rating-bg);border:1px solid rgba(0,0,0,.08);text-decoration:none;font:500 10px var(--mono);letter-spacing:.04em;white-space:nowrap}
.rating span{color:var(--star)}
.hint{font:500 10px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--hmuted)}
@media (min-width:1180px){
  .hcard{left:calc(max(0px,(100% - 1440px * var(--s,1)) / 2) + 96px * var(--s,1));right:auto;bottom:auto;top:calc(200px * var(--s,1));width:520px;max-width:none;margin:0;padding:40px}
  .hhead,.h1-seo,.hint,.rating{font-size:12px}
  .hwm{font-size:26px}.hby{font-size:15px}
  .headline{margin-top:30px;font-size:56px}
  .b-kks .headline{font-size:46px}
  .rot-line{margin-top:10px}
  .hsub{margin-top:18px;font-size:18px}
}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;height:44px;padding:0 16px;border-radius:999px;font:500 11px var(--mono);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;white-space:nowrap;border:0;cursor:pointer;transition:opacity .2s}
.btn:hover{opacity:.88}
.btn-p{background:var(--btn-p);color:var(--btn-p-ink)}
.b-kks .btn-p{box-shadow:inset 0 0 0 1px rgba(20,20,20,.12)}
.btn-g{background:rgba(255,255,255,.35);color:var(--ink);border:1.5px solid var(--accent)}
.b-kks .btn-g{border:1px solid rgba(20,20,20,.25);background:rgba(255,255,255,.5)}
.btn-solid{background:var(--btn-solid);color:#fff}
@media (min-width:1180px){.btn{height:54px;padding:0 28px;font-size:13px}}

/* ---------- sections ---------- */
.secs{max-width:1240px;margin:16px auto 0;padding:0 12px;display:flex;flex-direction:column;gap:12px}
.sec{border-radius:var(--r);padding:24px 18px;background:var(--panel);border:var(--border);box-shadow:var(--shadow);color:var(--ink);scroll-margin-top:84px}
.eb{margin:0;display:flex;align-items:center;gap:8px;font:500 10px/1.3 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--soft)}
.dot{flex:none;width:10px;height:10px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(81,50,41,.25)}
.d1{background:var(--d1)}.d2{background:var(--d2)}.d3{background:var(--d3)}.d4{background:var(--d4)}.d5{background:var(--d5)}
.stars{color:var(--star);letter-spacing:.1em}
.sec h2{margin:10px 0 0;font-family:var(--display);font-weight:var(--h-w);font-size:34px;line-height:1.05;letter-spacing:var(--h-track)}
.lede{margin:10px 0 0;font-size:14px;line-height:1.55;max-width:620px;color:var(--soft)}
.grid{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin-top:20px}
.sub-eb{margin-top:26px;scroll-margin-top:84px}
.sub-eb+.grid{margin-top:10px}
.gin{background:var(--card);border:var(--card-border);border-radius:var(--card-r)}
.card{padding:18px;display:flex;flex-direction:column;gap:8px}
.sec h3{margin:0;font-family:var(--display);font-weight:var(--h-w);font-size:22px;line-height:1.1;letter-spacing:var(--h-track)}
.p{margin:0;font-size:14px;line-height:1.45;color:var(--soft)}
.price-row{margin:4px 0 0;display:flex;align-items:baseline;gap:6px}
.price{font-family:var(--display);font-weight:var(--h-w);font-size:28px;line-height:1;color:var(--accent);background:var(--price-bg);padding:0 .08em;letter-spacing:var(--h-track)}
.price.sm{font-size:24px}
.unit{font:500 11px var(--mono);color:var(--soft)}
.sec hr{border:0;height:1px;background:var(--rule);margin:4px 0;width:100%}
.inc,.pts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.inc li{display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:1.4}
.inc li::before{content:"—";color:var(--accent)}
.pts li{display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:1.45;color:var(--soft)}
.pts li::before{content:"";flex:none;width:5px;height:5px;border-radius:50%;background:var(--accent);margin-top:7px}
.note{align-self:flex-start;margin:6px 0 0;font:500 10px var(--mono);letter-spacing:.14em;text-transform:uppercase;background:var(--note-bg);border:1px solid var(--rule);border-radius:999px;padding:5px 10px}
.room,.merch{overflow:hidden;display:flex;flex-direction:column}
.room .ph{height:74px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.08)}
.merch .ph{height:200px}
.merch .card{flex:1}
.hook{margin:0;font-family:var(--hook-font);font-style:var(--hook-style);font-size:var(--hook-size);line-height:1.35;color:var(--ink)}
.merch-foot{margin:auto 0 0;padding-top:8px;display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}
.rows{padding:4px 18px}
.rows .row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:12px 0;border-top:1px solid var(--rule);margin:0}
.rows .row:first-child{border-top:0}
.addons{margin-top:16px}
.rn{margin:0;font-size:15px;font-weight:500}
.rd{margin:2px 0 0;font-size:13px;color:var(--soft)}
.rp{margin:0;font:500 13px var(--mono);white-space:nowrap;text-align:right}
.quote{margin:0;padding:20px;display:flex;flex-direction:column;gap:12px}
.qm{font-family:var(--display);font-size:40px;line-height:.6;color:var(--accent);opacity:.5}
.quote blockquote{margin:0;font-family:var(--display);font-size:19px;line-height:1.35;color:var(--ink)}
.b-kks .quote blockquote{font-weight:500;letter-spacing:-.01em}
.quote figcaption{margin-top:auto;font:500 11px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--soft)}
.ulink{display:inline-block;margin-top:18px;font:500 12px var(--mono);letter-spacing:.12em;text-underline-offset:4px}
.steps{list-style:none;margin:16px 0 0;padding:0}
.steps li{display:grid;grid-template-columns:40px minmax(0,1fr);gap:4px 14px;padding:16px 0;border-top:1px solid var(--rule)}
.steps li:first-child{border-top:0}
.sn{grid-row:span 2;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font:500 13px var(--mono);background:#513229;color:#F4F1E2}
.b-kks .sn{background:#E7FFAD;color:#141414}
.steps b{font-size:16px;font-weight:500}
.visit{display:grid;gap:14px;margin-top:18px}
.info{margin:0}
.info dt{font:500 11px/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--soft);flex:none;padding-top:2px}
.info dd{margin:0;font-size:14px;font-weight:500;text-align:right}
.visit-acts{display:flex;flex-direction:column;gap:8px}
.visit-acts .btn{height:48px}
.visit-acts .eb{margin-top:14px}
.soc{display:flex;justify-content:space-between;align-items:center;height:46px;padding:0 16px;border-radius:14px;text-decoration:none;font:500 13px var(--mono)}
.soc span:last-child{color:var(--soft)}
.faq{margin-top:12px}
.fq{border-top:1px solid var(--rule)}
.fq:first-child{border-top:0}
.fq summary{list-style:none;cursor:pointer;padding:16px 0;display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:15px;font-weight:500}
.fq summary::-webkit-details-marker{display:none}
.fq-i{flex:none;width:28px;height:28px;border-radius:50%;border:1px solid var(--rule);background:var(--faq-bg);position:relative}
.fq-i::before,.fq-i::after{content:"";position:absolute;left:50%;top:50%;width:10px;height:1.5px;background:var(--accent);transform:translate(-50%,-50%)}
.fq-i::after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .2s}
.fq[open] .fq-i::after{transform:translate(-50%,-50%) rotate(0)}
.fq p{margin:0 0 16px;max-width:680px;font-size:14px;line-height:1.6;color:var(--soft)}
.also{display:flex;flex-wrap:wrap;gap:18px;align-items:center;justify-content:space-between}
.also>div{flex:1 1 280px;min-width:0}
.also-name{margin:8px 0;font-size:30px;line-height:1.05;letter-spacing:-.02em}
.b-pbk .also-name{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:700}
.b-kks .also-name{font-family:"IM Fell English",Georgia,serif;font-weight:400}
.foot{max-width:1240px;margin:0 auto;padding:24px 18px calc(32px + env(safe-area-inset-bottom,0px));display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;font:500 11px/1.5 var(--mono);color:var(--foot)}
.foot span:first-child{letter-spacing:.12em;text-transform:uppercase}

@media (min-width:900px){
  .secs{gap:16px;padding:0 24px}
  .sec{padding:40px}
  .sec h2{font-size:48px}
  .lede{font-size:17px}
  .g3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .g3.n1{grid-template-columns:minmax(0,1fr)}
  .g3.n1 .merch .ph{height:300px}
  .g-pk.n2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sec h3{font-size:26px}
  .price{font-size:34px}
  .visit{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:start}
  .fq summary{font-size:17px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .idle,.wig,.caret{animation:none}
  .flip,.drag{transition:none}
}

/* ---------- chooser (home) ---------- */
.b-home{--ink:#3A3027;--bg:#EEE7D7;background:#EEE7D7;font-family:"Jost","Avenir Next","Segoe UI",system-ui,sans-serif;color:#3A3027}
.home{min-height:100vh;display:flex;flex-direction:column}
.home-head{padding:48px 22px 28px;text-align:center;max-width:760px;margin:0 auto}
.home-head h1{margin:0;font:400 40px/1.04 "IM Fell English",Georgia,serif;letter-spacing:-.01em;color:#3A231C}
.home-head p{margin:14px auto 0;max-width:520px;font-size:16px;line-height:1.55;color:#5C5043}
.home-cards{flex:1;display:grid;grid-template-columns:minmax(0,1fr)}
.home-side{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:48px 18px;min-height:420px}
.home-side .bgfx{position:absolute;z-index:0}
.side-pbk{background:#3A231C}
.side-pbk::before{content:"";position:absolute;inset:0;background:radial-gradient(40% 36% at 30% 40%,rgba(254,233,189,.45),transparent 70%),radial-gradient(36% 30% at 70% 60%,rgba(216,235,249,.35),transparent 70%),radial-gradient(34% 30% at 50% 85%,rgba(215,212,177,.4),transparent 70%);filter:blur(30px)}
.side-pbk .grain{opacity:.5;mix-blend-mode:overlay}
.side-kks{background:#D3D6DA}
.side-kks::before{content:"";position:absolute;inset:0;z-index:1;background:radial-gradient(40% 36% at 30% 40%,rgba(231,255,173,.95),transparent 70%),radial-gradient(36% 30% at 72% 62%,rgba(255,255,255,.9),transparent 70%);filter:blur(16px)}
.home-card{position:relative;z-index:2;width:100%;max-width:420px;padding:32px 26px;border-radius:24px;display:flex;flex-direction:column;align-items:flex-start;gap:12px;text-decoration:none;transition:transform .25s}
.home-card:hover{transform:translateY(-3px)}
.side-pbk .home-card{background:rgba(251,246,234,.6);border:1px solid rgba(255,255,255,.55);color:#3B2A20;box-shadow:0 18px 40px rgba(25,12,5,.35),inset 0 1px 0 rgba(255,255,255,.7)}
.side-kks .home-card{background:rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.8);color:#141414;box-shadow:0 16px 36px rgba(30,34,40,.18),inset 0 1px 0 rgba(255,255,255,.95);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}
.home-wm{width:220px;height:39px;color:#513229}
.home-by{margin-top:-6px;font:500 11px "Jost",sans-serif;letter-spacing:.3em;text-transform:uppercase;color:#513229}
.home-kk{display:flex;align-items:center;gap:12px;font:700 30px/1 "Helvetica Neue",Helvetica,Arial,sans-serif;letter-spacing:-.04em}
.home-kk .lg-kk{width:34px;height:34px;padding:0;background-color:#141414}
.home-text{font-size:17px;line-height:1.5;margin-top:6px}
.home-meta{font:500 11px/1.4 inherit;letter-spacing:.14em;text-transform:uppercase;opacity:.75}
.home-card .btn{margin-top:10px;font-family:inherit}
.side-pbk .btn-p{background:#513229;color:#fff}
.side-kks .btn-p{background:#E7FFAD;color:#141414;box-shadow:inset 0 0 0 1px rgba(20,20,20,.12)}
.home-foot{color:#5C5043}
@media (min-width:900px){
  .home-head{padding:72px 24px 40px}
  .home-head h1{font-size:64px}
  .home-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .home-side{min-height:560px}
}
/* polish */
.eb:has(> .dot:only-child){display:none}
.sec>.btn,.sec>p+.btn{margin-top:18px}
@media (min-width:900px){.g3.n1{max-width:560px}.g3.n1 .merch .ph{height:260px}}
