/* sample-worlds.css: shared primitives (sw-), then one namespaced world per sample (el-, jt-, so-, fo-). */
body[data-preview] .sw-strip,body[data-preview] .sw-skip{display:none!important}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit}
button,input,select{font:inherit}
button{cursor:pointer}
h1,h2,h3,p,ul,ol,dl,dd,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
:focus-visible{outline:3px solid var(--focus,#12352E);outline-offset:3px}
[hidden]{display:none!important}
.sw-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.sw-skip{position:absolute;left:12px;top:-120px;z-index:100;background:#fff;color:#111;padding:12px 16px;font:700 1rem Arial,sans-serif;outline:3px solid #12352E}
.sw-skip:focus{top:12px}
.sw-strip{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0 16px;min-height:44px;padding:0 clamp(12px,3vw,40px);background:#12352E;color:#F7F6F2;font:400 .8125rem/1.3 DM,Arial,sans-serif;--focus:#FCA080}
.sw-strip-links{display:flex;flex-wrap:wrap}
.sw-strip a{display:inline-flex;align-items:center;min-height:44px;padding:0 6px 0 0;margin-right:10px;font-weight:700;text-decoration:underline;text-decoration-color:#FCA080;text-underline-offset:4px}
.sw-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 22px;border:2px solid currentColor;background:transparent;color:inherit;font-weight:700;text-decoration:none}
.sw-dialog{border:0;padding:0;width:min(640px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;color:var(--d-ink,#111);background:var(--d-bg,#fff);--focus:var(--d-ink,#111)}
.sw-dialog::backdrop{background:rgba(10,20,18,.76)}
.sw-dialog-in{position:relative;padding:32px clamp(18px,4vw,36px) 28px}
.sw-dialog-in>.sw-btn{margin-top:20px}
.sw-x{position:absolute;top:6px;right:6px;width:44px;height:44px;border:0;background:transparent;color:inherit;font-size:1.75rem;line-height:1}
.sw-note{font-size:.9rem;line-height:1.5;margin-top:18px}

/* ELSEWHERE · travel */
body[data-sample='travel']{--focus:#0F6E78;--d-bg:#FAF4E4;--d-ink:#12363A;background:#FAF4E4;color:#12363A;font:400 1.0625rem/1.65 DM,Arial,sans-serif}
.el-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0 24px;padding:6px clamp(16px,4vw,48px);background:#FAF4E4}
.el-brand{display:inline-flex;align-items:center;min-height:44px;font:400 2rem/1 Ibarra,Georgia,serif;color:#0F6E78;text-decoration:none}
.el-nav{display:flex;flex-wrap:wrap;gap:0 24px}
.el-nav a{display:inline-flex;align-items:center;min-height:44px;font-weight:700;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px;text-decoration-color:#E9D8B4}
.el-nav a:hover{text-decoration-color:#0F6E78}
.el-hero{position:relative;display:grid;align-items:end;min-height:min(86svh,820px);background:#0F6E78}
.el-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 62%}
.el-hero-copy{position:relative;width:min(100%,820px);background:#E9D8B4;padding:clamp(20px,3vw,40px) clamp(20px,5vw,72px) clamp(24px,3.5vw,48px)}
.el-hero-copy p:not(.el-kicker){max-width:40ch;margin-bottom:14px}
.el-kicker{font:700 .78rem/1.2 DM,Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#0F6E78;margin-bottom:12px}
.el-hero h1{font:400 clamp(3rem,10vw,8rem)/.92 Ibarra,Georgia,serif;letter-spacing:-.02em;color:#0B4F57;margin-bottom:18px}
.el-link{display:inline-flex;align-items:center;min-height:44px;font-weight:700;color:#0B4F57;text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:6px}
.el-plan{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,5vw,80px);padding:clamp(40px,7vw,104px) clamp(16px,5vw,72px);background:#0F6E78;color:#FAF4E4;--focus:#FAF4E4}
.el-plan .el-kicker,.el-form legend{color:#E9D8B4}
.el-plan h2{font:400 clamp(2.2rem,5vw,4.2rem)/1 Ibarra,Georgia,serif;margin-bottom:16px}
.el-plan-intro p:not(.el-kicker){max-width:38ch}
.el-form fieldset{border:0;margin:0 0 28px;padding:0;min-width:0}
.el-form legend{padding:0;margin-bottom:12px;font:700 .78rem/1 DM,Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase}
.el-chips{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.el-chip{position:relative;display:block}
.el-chip input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.el-chip span{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:10px;height:100%;min-height:104px;padding:14px;border:2px solid #E9D8B4;font:400 clamp(1.25rem,3.4vw,1.7rem)/1 Ibarra,Georgia,serif}
.el-dur span{min-height:58px;align-items:center;justify-content:center}
.el-chip svg{width:36px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linejoin:round}
.el-chip input:checked+span{background:#FAF4E4;color:#0B4F57;border-color:#FAF4E4}
.el-chip input:focus-visible+span{outline:3px solid #FAF4E4;outline-offset:3px}
.el-pick{max-width:34ch;margin-bottom:22px;font:italic 400 1.5rem/1.3 Ibarra,Georgia,serif}
.el-go{min-height:52px;padding:0 30px;border:0;background:#E9D8B4;color:#0B4F57;font-weight:700;font-size:1.0625rem}
.el-band img{width:100%;height:clamp(240px,48vw,560px);object-fit:cover;object-position:50% 18%}
.el-band figcaption{padding:10px clamp(16px,5vw,72px);font:italic 400 .95rem/1.4 Ibarra,Georgia,serif;background:#E9D8B4}
.el-notes{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(28px,5vw,80px);padding:clamp(48px,8vw,120px) clamp(16px,5vw,72px)}
.el-notes h2{font:400 clamp(2rem,4vw,3.4rem)/1.05 Ibarra,Georgia,serif;color:#0F6E78}
.el-notes blockquote{margin-top:28px;padding-left:18px;border-left:4px solid #E9D8B4;font:italic 400 1.4rem/1.4 Ibarra,Georgia,serif}
.el-cols{columns:2 260px;column-gap:48px}
.el-cols p{margin-bottom:1em;break-inside:avoid}
.el-cols p:first-child::first-letter{float:left;padding:4px 10px 0 0;font:400 3.6rem/.8 Ibarra,Georgia,serif;color:#0F6E78}
.el-rules{margin-top:36px;border-top:2px solid #12363A}
.el-rules div{display:grid;grid-template-columns:8rem minmax(0,1fr);gap:12px;padding:14px 0;border-bottom:1px solid #C9BC98}
.el-rules dt{font:700 .78rem/1.6 DM,Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#0F6E78}
.el-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 32px;padding:28px clamp(16px,5vw,72px);background:#E9D8B4;font-size:.95rem}
.el-foot p{max-width:46ch}
.el-foot-links{display:flex;flex-wrap:wrap;gap:0 20px}
.el-foot a{display:inline-flex;align-items:center;min-height:44px;font-weight:700;text-underline-offset:4px}
.el-dialog{--d-bg:#FAF4E4;--d-ink:#12363A}
.el-dialog h2{font:400 clamp(1.9rem,5vw,2.8rem)/1.05 Ibarra,Georgia,serif;color:#0F6E78;margin-bottom:12px}
.el-days li{padding:14px 0;border-top:1px solid #0F6E78}
.el-days strong{display:block;font:600 1.3rem/1.2 Ibarra,Georgia,serif;margin-bottom:4px}

/* JUNIPER TABLE · dining */
body[data-sample='dining']{--focus:#70252A;--d-bg:#F8EEDB;--d-ink:#3A1517;background:#F8EEDB;color:#3A1517;font:400 1.0625rem/1.6 Georgia,serif}
.jt-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0 20px;padding:6px clamp(16px,4vw,48px);background:#70252A;color:#F8EEDB;--focus:#E3BD54}
.jt-brand{display:inline-flex;align-items:center;min-height:44px;font:italic 400 1.9rem/1 Ibarra,Georgia,serif;text-decoration:none}
.jt-nav{display:flex;flex-wrap:wrap;align-items:center;gap:0 6px}
.jt-nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;text-decoration:underline;text-decoration-color:#E3BD54;text-underline-offset:6px}
.jt-plan{min-height:44px;padding:0 20px;border:0;background:#E3BD54;color:#3A1517;font:700 1rem Georgia,serif}
.jt-hero{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);background:#70252A;color:#F8EEDB;--focus:#E3BD54}
.jt-hero-copy{align-self:center;padding:clamp(32px,6vw,96px) clamp(16px,5vw,72px)}
.jt-script{font:italic 400 1.35rem/1.2 Ibarra,Georgia,serif;color:#E3BD54;margin-bottom:12px;transform:rotate(-1.5deg);transform-origin:left}
.jt-hero h1{font:italic 400 clamp(3.2rem,9vw,8.5rem)/.9 Ibarra,Georgia,serif;letter-spacing:-.02em;margin-bottom:24px}
.jt-hero h1 em{display:block;color:#E3BD54}
.jt-lede{max-width:44ch;margin-bottom:28px}
.jt-actions{display:flex;flex-wrap:wrap;gap:12px}
.jt-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border:2px solid currentColor;background:transparent;color:inherit;font:700 1rem Georgia,serif;text-decoration:none}
.jt-btn-solid{background:#E3BD54;border-color:#E3BD54;color:#3A1517}
.jt-btn-ink{background:#3A1517;border-color:#3A1517;color:#F8EEDB}
.jt-hero-photo{position:relative;min-height:560px}
.jt-hero-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:40% 50%}
.jt-menu{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(28px,5vw,88px);padding:clamp(48px,7vw,112px) clamp(16px,5vw,72px)}
.jt-menu h2,.jt-hours h2{font:italic 400 clamp(2.6rem,6vw,5rem)/.95 Ibarra,Georgia,serif;color:#70252A;margin-bottom:24px}
.jt-menu .jt-script,.jt-hours .jt-script{color:#70252A}
.jt-tabs{display:flex;flex-direction:column;gap:8px}
.jt-tab{min-height:56px;padding:0 18px;border:2px solid #70252A;background:transparent;color:#70252A;text-align:left;font:italic 400 1.5rem/1 Ibarra,Georgia,serif}
.jt-tab[aria-pressed='true']{background:#70252A;color:#F8EEDB}
.jt-sample{margin-top:20px;font-size:.9rem;font-style:italic}
.jt-dishes li{padding:18px 0;border-bottom:1px solid #D9C7A6}
.jt-row{display:flex;align-items:baseline;gap:12px}
.jt-row h3{font:600 clamp(1.3rem,3vw,1.9rem)/1.15 Ibarra,Georgia,serif}
.jt-lead{flex:1;min-width:16px;border-bottom:2px dotted #70252A;transform:translateY(-.3em)}
.jt-price{font:600 1.35rem/1 Ibarra,Georgia,serif;color:#70252A}
.jt-dishes p{margin-top:4px;font-style:italic;max-width:52ch}
.jt-hours{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,5vw,88px);padding:clamp(48px,7vw,104px) clamp(16px,5vw,72px);background:#E3BD54}
.jt-hours .jt-script,.jt-hours h2{color:#70252A}
.jt-dl div{display:grid;grid-template-columns:minmax(9rem,1fr) minmax(0,2fr);gap:8px 20px;padding:14px 0;border-top:2px solid #3A1517}
.jt-dl dt{font:700 1.15rem/1.3 Georgia,serif}
.jt-where{align-self:end}
.jt-where h3{font:italic 400 1.9rem/1.1 Ibarra,Georgia,serif;margin-bottom:10px}
.jt-where p{margin-bottom:20px;max-width:40ch}
.jt-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 32px;padding:28px clamp(16px,5vw,72px);background:#70252A;color:#F8EEDB;--focus:#E3BD54}
.jt-foot-links{display:flex;flex-wrap:wrap;gap:0 20px}
.jt-foot a{display:inline-flex;align-items:center;min-height:44px;text-underline-offset:4px}
.jt-dialog{--d-bg:#F8EEDB;--d-ink:#3A1517;--focus:#70252A}
.jt-dialog h2{font:italic 400 clamp(2rem,6vw,3rem)/1 Ibarra,Georgia,serif;color:#70252A}
.jt-dialog form{display:grid;gap:6px}
.jt-dialog label{margin-top:12px;font-weight:700}
.jt-dialog input,.jt-dialog select{min-height:48px;padding:0 12px;border:2px solid #70252A;background:#fff;color:#3A1517;width:100%}
.jt-submit{margin-top:20px}
.jt-res-text{margin:12px 0;font:italic 400 1.4rem/1.35 Ibarra,Georgia,serif;color:#70252A}
.jt-res-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}

/* SONA · retail */
body[data-sample='retail']{--focus:#C8F03C;--d-bg:#111;--d-ink:#F4F2EA;background:#111;color:#F4F2EA;font:400 1rem/1.55 DM,Arial,sans-serif}
.so-head{display:flex;flex-wrap:wrap;align-items:center;gap:0 12px;padding:6px clamp(16px,3vw,40px);border-bottom:1px solid #333}
.so-brand{display:inline-flex;align-items:center;min-height:44px;font:700 1.5rem/1 DM,Arial,sans-serif;letter-spacing:.3em;text-decoration:none}
.so-head nav{display:flex;margin-left:auto}
.so-head nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;font-weight:700;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;text-decoration:none}
.so-head nav a:hover{color:#C8F03C}
.so-bagbtn{min-height:44px;padding:0 18px;border:2px solid #C8F03C;background:transparent;color:#C8F03C;font-weight:700;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase}
.so-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:calc(100svh - 100px)}
.so-hero-copy{display:flex;flex-direction:column;justify-content:space-between;gap:32px;padding:clamp(24px,4vw,64px)}
.so-tag{margin-bottom:16px;font-weight:700;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:#C8F03C}
.so-hero h1{font:700 clamp(2.4rem,7.4vw,7rem)/.9 DM,Arial,sans-serif;letter-spacing:-.02em;text-transform:uppercase;overflow-wrap:anywhere}
.so-hero h1 span{color:#C8F03C}
.so-lede{margin-top:20px;max-width:40ch;color:#D8D6CE}
.so-finish{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 10px;padding:0;border:0;min-width:0}
.so-finish legend{margin-bottom:10px;padding:0;font-weight:700;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase}
.so-fin{position:relative;display:block}
.so-fin input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.so-fin span{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:0 16px;border:2px solid #666;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.so-fin input:checked+span{background:#C8F03C;border-color:#C8F03C;color:#111}
.so-fin input:focus-visible+span{outline:3px solid #C8F03C;outline-offset:3px}
.so-sw{width:20px;height:20px;border-radius:50%;border:2px solid currentColor}
.so-sw-butter{background:#F2D96B}.so-sw-chalk{background:#ECE9E0}.so-sw-ink{background:#1B1B1F}
.so-note{min-height:3em;color:#D8D6CE}
.so-buyrow{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:6px}
.so-price{font:700 2.4rem/1 DM,Arial,sans-serif}
.so-add{flex:1 1 220px;min-height:58px;padding:0 24px;border:0;background:#C8F03C;color:#111;font-weight:700;font-size:1rem;letter-spacing:.06em;text-transform:uppercase}
.so-fine{margin-top:12px;font-size:.85rem;color:#B8B6AE}
.so-shot{position:relative;min-height:440px;background:#CBB8EA}
.so-shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.so-sticker{position:absolute;top:20px;right:20px;padding:10px 16px;background:#C8F03C;color:#111;font:700 2rem/1 DM,Arial,sans-serif;transform:rotate(5deg)}
.so-shot figcaption{position:absolute;left:0;bottom:0;max-width:calc(100% - 24px);padding:10px 16px;background:#111;color:#C8F03C;font-weight:700;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}
.so-story{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,5vw,80px);padding:clamp(48px,8vw,120px) clamp(16px,4vw,64px);background:#F4F2EA;color:#111;--focus:#111}
.so-story .so-tag{color:#111}
.so-story h2{font:700 clamp(2rem,5.6vw,5rem)/.92 DM,Arial,sans-serif;letter-spacing:-.02em;text-transform:uppercase;margin-bottom:40px;overflow-wrap:anywhere}
.so-decisions li{display:grid;grid-template-columns:5rem minmax(0,1fr);gap:16px;padding:20px 0;border-top:3px solid #111}
.so-num{font:700 4.5rem/.85 DM,Arial,sans-serif;color:transparent;-webkit-text-stroke:2px #111}
.so-decisions h3{font:700 1.5rem/1.1 DM,Arial,sans-serif;text-transform:uppercase;margin-bottom:6px}
.so-decisions p{max-width:46ch}
.so-anatomy{align-self:start;padding:20px;background:#CBB8EA}
.so-anatomy svg{width:100%;height:auto;font:700 14px DM,Arial,sans-serif;fill:#111}
.so-anatomy figcaption{margin-top:12px;font-size:.85rem}
.so-line-art{fill:none;stroke:#111;stroke-width:14;stroke-linecap:round}
.so-cup{fill:#F2D96B;stroke:#111;stroke-width:3}
.so-dial{fill:#C8F03C;stroke:#111;stroke-width:3}
.so-hinge{fill:#111}
.so-lead{fill:none;stroke:#111;stroke-width:1.5}
.so-specs{padding:clamp(48px,7vw,104px) clamp(16px,4vw,64px)}
.so-specs h2{font:700 clamp(2rem,6vw,4.5rem)/.95 DM,Arial,sans-serif;text-transform:uppercase;letter-spacing:-.02em}
.so-specs-note{margin:12px 0 32px;color:#C8F03C;max-width:52ch}
.so-specs details{border-top:2px solid #444}
.so-specs details:last-child{border-bottom:2px solid #444}
.so-specs summary{display:flex;align-items:center;justify-content:space-between;min-height:64px;font:700 clamp(1.1rem,3vw,1.6rem)/1.2 DM,Arial,sans-serif;text-transform:uppercase;cursor:pointer;list-style:none}
.so-specs summary::-webkit-details-marker{display:none}
.so-specs summary::after{content:'+';font-size:2rem;color:#C8F03C}
.so-specs details[open] summary::after{content:'−'}
.so-specs details p{padding:0 0 22px;max-width:60ch;color:#D8D6CE}
.so-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 32px;padding:32px clamp(16px,4vw,64px);background:#C8F03C;color:#111;font-weight:700;--focus:#111}
.so-foot-links{display:flex;flex-wrap:wrap;gap:0 20px}
.so-foot a{display:inline-flex;align-items:center;min-height:44px;text-underline-offset:4px}
.so-dialog{--d-bg:#111;--d-ink:#F4F2EA;--focus:#C8F03C;border:2px solid #C8F03C}
.so-dialog h2{font:700 clamp(1.8rem,5vw,2.6rem)/1 DM,Arial,sans-serif;text-transform:uppercase;margin-bottom:16px}
.so-empty{padding:20px 0;border-top:2px solid #444;border-bottom:2px solid #444}
.so-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 12px;align-items:center;padding:16px 0;border-top:2px solid #444}
.so-line-info strong{display:block;text-transform:uppercase}
.so-line-info span{color:#B8B6AE;font-size:.9rem}
.so-line-price{font-weight:700;text-align:right}
.so-qty{display:flex;align-items:center;gap:6px}
.so-qty button,.so-rm{min-width:44px;min-height:44px;padding:0 12px;border:2px solid #F4F2EA;background:transparent;color:#F4F2EA;font-weight:700}
.so-q{min-width:2ch;text-align:center;font-weight:700}
.so-rm{justify-self:end;border-color:#777;font-size:.85rem}
.so-bag-foot{padding-top:16px;border-top:2px solid #C8F03C}
.so-sub{display:flex;justify-content:space-between;align-items:baseline;font-size:1.2rem}
.so-sub strong{font-size:2rem;color:#C8F03C}

/* FORMA · architecture */
body[data-sample='architecture']{--focus:#B63020;--d-bg:#fff;--d-ink:#141414;background:#ECEBE7;color:#141414;font:400 1rem/1.6 Arial,Helvetica,sans-serif}
.fo-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:0 28px;padding:0 clamp(16px,4vw,48px);border-bottom:1px solid #141414}
.fo-brand{display:inline-flex;align-items:center;gap:10px;min-height:56px;font:700 1.15rem/1 Jakarta,Arial,sans-serif;letter-spacing:.22em;text-decoration:none}
.fo-brand i{display:block;width:14px;height:14px;background:#B63020}
.fo-index{font-size:.8rem;color:#4A4A48}
.fo-nav{display:flex;gap:0 24px}
.fo-nav a{display:inline-flex;align-items:center;min-height:44px;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;text-decoration:none}
.fo-nav a:hover{text-decoration:underline;text-decoration-color:#B63020;text-underline-offset:6px;text-decoration-thickness:2px}
.fo-intro{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);align-items:end;gap:24px clamp(24px,5vw,72px);padding:clamp(32px,6vw,88px) clamp(16px,4vw,48px) clamp(24px,4vw,48px)}
.fo-intro h1{max-width:11ch;font:700 clamp(2.4rem,6.4vw,5.6rem)/1 Jakarta,Arial,sans-serif;letter-spacing:-.035em}
.fo-intro p{max-width:40ch;padding-top:14px;border-top:4px solid #B63020}
.fo-sel{display:flex;flex-wrap:wrap;margin:0;padding:0 clamp(16px,4vw,48px);border:0;min-width:0}
.fo-sel legend{padding:0;margin-bottom:10px;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:#4A4A48}
.fo-sel label{position:relative;display:block;flex:1 1 200px;max-width:320px}
.fo-sel input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.fo-sel span{display:flex;align-items:center;gap:12px;min-height:56px;padding:0 18px;border:1px solid #141414;margin-right:-1px;font:700 1rem Jakarta,Arial,sans-serif;background:transparent}
.fo-sel b{color:#B63020}
.fo-sel input:checked+span{background:#141414;color:#fff}
.fo-sel input:focus-visible+span{outline:3px solid #B63020;outline-offset:3px}
.fo-project{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:0 clamp(20px,3vw,40px);padding:20px clamp(16px,4vw,48px) clamp(40px,6vw,80px)}
.fo-photo img{width:100%;aspect-ratio:16/10;object-fit:cover}
.fo-info{padding-top:16px;border-top:4px solid #B63020}
.fo-code{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:#B63020;font-weight:700}
.fo-info h2{margin:8px 0 2px;font:700 clamp(1.8rem,3vw,2.6rem)/1.05 Jakarta,Arial,sans-serif;letter-spacing:-.02em}
.fo-kind{margin-bottom:14px;font-size:.9rem;text-transform:uppercase;letter-spacing:.08em;color:#4A4A48}
.fo-facts{margin:22px 0}
.fo-facts div{display:grid;grid-template-columns:7.5rem minmax(0,1fr);gap:12px;padding:10px 0;border-top:1px solid #141414}
.fo-facts dt{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:#4A4A48}
.fo-plan{min-height:52px;padding:0 24px;border:0;background:#B63020;color:#fff;font:700 1rem Jakarta,Arial,sans-serif}
.fo-approach{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,9fr);gap:clamp(24px,5vw,72px);padding:clamp(48px,7vw,104px) clamp(16px,4vw,48px);background:#fff}
.fo-label{display:flex;align-items:center;gap:10px;margin-bottom:14px;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase}
.fo-label i{display:block;width:12px;height:12px;background:#B63020}
.fo-approach h2{font:700 clamp(1.7rem,3vw,2.4rem)/1.1 Jakarta,Arial,sans-serif;letter-spacing:-.02em}
.fo-principles li{display:grid;grid-template-columns:4rem minmax(0,1fr) minmax(0,1.3fr);gap:8px 24px;padding:22px 0;border-top:1px solid #141414}
.fo-principles span{font:700 .95rem Jakarta,Arial,sans-serif;color:#B63020}
.fo-principles h3{font:700 1.3rem/1.2 Jakarta,Arial,sans-serif}
.fo-back{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px 40px;padding:clamp(36px,6vw,72px) clamp(16px,4vw,48px);background:#141414;color:#fff}
.fo-back h2{font:700 clamp(1.6rem,3.5vw,2.6rem)/1.1 Jakarta,Arial,sans-serif;margin-bottom:8px}
.fo-back p{max-width:52ch;color:#D6D5D0}
.fo-back-link{display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:0 32px;background:#B63020;color:#fff;font:700 1.1rem Jakarta,Arial,sans-serif;text-decoration:none;--focus:#fff}
.fo-back{--focus:#fff}
.fo-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 32px;padding:24px clamp(16px,4vw,48px);font-size:.9rem}
.fo-foot-links{display:flex;flex-wrap:wrap;gap:0 20px}
.fo-foot a{display:inline-flex;align-items:center;min-height:44px;text-underline-offset:4px;text-decoration-color:#B63020}
.fo-dialog{--d-bg:#fff;--d-ink:#141414;width:min(760px,calc(100vw - 24px))}
.fo-dialog h2{margin:6px 0 16px;font:700 clamp(1.5rem,4vw,2.2rem)/1.1 Jakarta,Arial,sans-serif;letter-spacing:-.02em;padding-right:36px}
.fo-svg{width:100%;height:auto;background:#ECEBE7;font:700 13px Arial,sans-serif}
.fo-svg text{fill:#141414;text-anchor:middle;dominant-baseline:middle}
.fo-room{fill:#fff;stroke:#141414;stroke-width:2}
.fo-open{fill:#ECEBE7;stroke:#B63020;stroke-width:2;stroke-dasharray:6 4}
.fo-green{fill:#DCE3D3;stroke:#141414;stroke-width:1}
.fo-desk{fill:#fff;stroke:#141414;stroke-width:1.5}
.fo-closed{fill:#F1D6D0;stroke:#141414;stroke-width:2}
.fo-quiet{fill:#DAD9D3;stroke:#141414;stroke-width:2}
.fo-legend{margin-top:16px;columns:2 240px;column-gap:28px}
.fo-legend li{padding:6px 0;border-top:1px solid #141414;break-inside:avoid}

/* Small screens */
@media (max-width:760px){
 .el-plan,.el-notes,.jt-menu,.jt-hours,.so-story,.fo-approach{grid-template-columns:minmax(0,1fr)}
 .el-hero{min-height:84svh}
 .el-rules div{grid-template-columns:minmax(0,1fr)}
 .jt-hero{grid-template-columns:minmax(0,1fr)}
 .jt-hero-photo{min-height:320px}
 .jt-dl div{grid-template-columns:minmax(0,1fr)}
 .so-hero{grid-template-columns:minmax(0,1fr);min-height:0}
 .so-hero h1{font-size:clamp(2.4rem,14vw,5rem)}
 .so-shot{min-height:340px;order:-1}
 .so-decisions li{grid-template-columns:3.5rem minmax(0,1fr)}
 .so-num{font-size:3.2rem}
 .so-line{grid-template-columns:minmax(0,1fr)}
 .so-line-price,.so-rm{justify-self:start;text-align:left}
 .fo-head{grid-template-columns:minmax(0,1fr) auto}
 .fo-index{display:none}
 .fo-intro,.fo-project{grid-template-columns:minmax(0,1fr)}
 .fo-info{margin-top:16px}
 .fo-principles li{grid-template-columns:minmax(0,1fr)}
 .fo-facts div{grid-template-columns:minmax(0,1fr)}
}
@media (prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 *,*::before,*::after{animation:none!important;transition:none!important}
}

html[data-preview]{overflow:hidden}
