:root{
  --ink:#252525;
  --forest:#303030;
  --muted:#686868;
  --paper:#fff;
  --white:#fff;
  --mist:#f3f3f3;
  --line:#dedede;
  --accent:#727272;
  --font:'Noto Sans KR','Apple SD Gothic Neo','Malgun Gothic',sans-serif;
  --latin:'Cinzel','Noto Serif KR',Georgia,serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--font);font-size:15px;line-height:1.65;word-break:keep-all;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
img{display:block;max-width:100%}
p{margin:0;line-height:1.8}
:focus-visible{outline:2px solid var(--forest);outline-offset:4px}
::selection{background:#e3e3e3;color:var(--ink)}
.skip{position:absolute;left:-9999px;top:8px;background:#fff;padding:12px 18px;z-index:100}
.skip:focus{left:12px}
.section-wrap{width:min(1440px,calc(100% - 9vw));margin-inline:auto}
.eyebrow{font:600 10px/1.5 var(--latin),var(--font);letter-spacing:.23em;text-transform:uppercase;color:var(--forest)}
.text-link{display:inline-flex;align-items:center;gap:46px;border-bottom:1px solid currentColor;padding:0 0 10px;font-size:13px;font-weight:600;letter-spacing:-.02em;transition:gap .25s}
.text-link:hover{gap:58px}
.text-link span{font-size:17px;font-weight:400}
.more{margin-top:40px}
.button-dark,.button-light{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:14px 24px;border:1px solid var(--forest);background:var(--forest);color:#fff;font-size:13px;font-weight:600;transition:background .2s,color .2s}
.button-dark:hover{background:#4a4a4a}
.button-light{background:transparent;color:var(--forest);border-color:#c9c9c9}
.button-light:hover{background:var(--mist)}

/* Navigation */
.site-header{height:100px;display:grid;grid-template-columns:minmax(205px,1fr) auto minmax(205px,1fr);align-items:center;padding:0 4.5vw;background:#fff;border-bottom:1px solid var(--line);position:relative;z-index:20}
.brand{display:inline-flex;flex-direction:column;width:max-content;color:var(--ink);font:700 24px/.9 var(--latin),var(--font);letter-spacing:-.075em;white-space:nowrap}
.brand span{font:600 8px/1.1 var(--latin),var(--font);letter-spacing:.29em;margin-top:8px}
.desktop-nav{display:flex;gap:clamp(28px,2.8vw,50px);align-items:center;white-space:nowrap}
.desktop-nav a{font-size:13px;font-weight:600;letter-spacing:-.02em;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:7px;transition:text-decoration-color .2s}
.desktop-nav a:hover,.desktop-nav a:focus-visible{text-decoration-color:#777}
.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:26px}
.header-book{display:inline-flex;align-items:center;justify-content:space-between;gap:36px;min-height:44px;padding:9px 0;border-bottom:1px solid var(--ink);font-size:13px;font-weight:600;white-space:nowrap}
.header-book span{font-size:15px}
.mobile-menu{display:none}

/* First visit introduction */
body.intro-open{overflow:hidden}
.site-intro[hidden]{display:none}
html.intro-pending .site-intro[hidden]{display:block}
.site-intro{position:fixed;inset:0;z-index:200;height:100vh;height:100dvh;overflow:hidden;background:#fff;color:#242424;transition:transform .9s cubic-bezier(.76,0,.24,1)}
.site-intro.is-leaving{transform:translateY(-101%);pointer-events:none}
.site-intro:focus{outline:none}
.site-intro-media{position:absolute;inset:0 0 auto;height:70%;overflow:hidden;background:#f1f1f1}
.site-intro-media img{width:100%;height:100%;max-width:none;object-fit:cover;object-position:center 42%;filter:grayscale(1);opacity:0;transform:scale(1.035);transition:opacity 1.2s ease,transform 2s ease}
.site-intro.is-ready .site-intro-media img{opacity:.3;transform:none}
.site-intro-media:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.7) 0%,rgba(255,255,255,.45) 36%,#fff 100%)}
.site-intro.is-image-unavailable .site-intro-media img{display:none}
.site-intro-copy{--gate-gutter:clamp(12px,1.3vw,20px);position:relative;display:flex;flex-direction:column;width:100%;height:100%;padding:0 var(--gate-gutter) clamp(18px,2.8vw,42px);overflow:auto}
.site-intro-top{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:38px;margin-inline:calc(-1 * var(--gate-gutter));padding-inline:var(--gate-gutter);background:#e8e8e8;font:600 10px/1.4 var(--latin),var(--font);letter-spacing:.21em;text-transform:uppercase;color:#454545}
.site-intro-top span:last-child{text-align:right}
.site-intro-message{flex:1;min-height:clamp(80px,19vh,260px);max-width:420px;padding-top:clamp(38px,7vh,100px);font-size:clamp(12px,.9vw,15px);line-height:1.7;color:#555}
.site-intro-choices{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.site-intro-choice{display:inline-flex;align-items:center;gap:12px;width:max-content;max-width:100%;min-height:44px;padding:4px 0;border:0;background:none;color:#242424;text-align:left;cursor:pointer}
.site-intro-choice:last-child{justify-self:end}
.site-intro-choice .category-label{font:600 clamp(12px,1.2vw,17px)/1 var(--latin),var(--font);letter-spacing:.02em}
.site-intro-choice>[aria-hidden]{font-size:16px;line-height:1;transition:transform .25s}
.site-intro-choice:is(:hover,:focus-visible)>[aria-hidden]{transform:translate(3px,-3px)}
.site-intro-choice:focus-visible{outline:2px solid #242424;outline-offset:3px}
.site-intro-brand{background:transparent}
.site-intro-brand h2{display:flex;flex-direction:column;margin:clamp(6px,1.4vh,16px) 0 0;font-family:var(--latin),var(--font);font-weight:500;text-transform:uppercase;overflow-wrap:anywhere}
.site-intro-brand h2 span{display:block;overflow:clip;font-size:clamp(120px,27.5vw,530px);line-height:.9;letter-spacing:-.08em}
.site-intro-brand h2 small{align-self:flex-end;margin-top:clamp(10px,1.3vh,20px);font-size:clamp(11px,1vw,16px);line-height:1.2;letter-spacing:.48em;font-weight:600}
body.intro-open .hero-slide.is-active>img,body.intro-open .hero-slide-copy{animation:none}

/* Home hero */
.hero.hero-wide{display:block;min-height:0;background:#333}
.hero-slides{height:min(69vw,820px);min-height:610px;position:relative;overflow:hidden}
.hero-slide{display:none;position:absolute;inset:0}
.hero-slide.is-active{display:block}
.hero-slide>img{width:100%;height:100%;object-fit:cover;max-width:none}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(22,22,22,.77),rgba(22,22,22,.3) 55%,rgba(22,22,22,.06)),linear-gradient(0deg,rgba(22,22,22,.2),transparent 45%)}
.hero-slide-copy{position:absolute;inset:0 auto 0 4.5vw;width:min(700px,62vw);display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:20px 0 70px;color:#fff}
.hero-slide-copy .eyebrow{color:#f2f2f2}
.hero-slide-copy h1{margin:32px 0 22px;font-size:clamp(52px,6.5vw,108px);line-height:1.2;letter-spacing:-.095em;font-weight:500;text-wrap:balance}
.hero-slide-copy p{max-width:520px;margin-bottom:22px;font-size:17px;color:#ededed}
.hero-slide-copy .text-link{margin-top:28px}
.hero-controls{position:absolute;right:4.5vw;bottom:35px;display:flex;align-items:center;gap:18px;color:#fff;z-index:2}
.hero-controls button{border:1px solid rgba(255,255,255,.55);color:#fff;background:rgba(30,30,30,.3);width:44px;height:44px;font-size:19px}
.hero-controls button:hover{background:rgba(255,255,255,.18)}
.hero-controls button[hidden]{display:none}
.hero-controls span{min-width:60px;text-align:center;font:600 12px var(--latin);letter-spacing:.14em}
.hero-concept,.hero-concept .hero-slides{background:#eee}
.hero-concept .hero-slide>img{object-position:center}
.hero-concept .hero-shade{background:linear-gradient(90deg,rgba(250,250,250,.94),rgba(250,250,250,.78) 35%,rgba(250,250,250,.2) 65%,transparent 76%)}
.hero-concept .hero-slide-copy{width:min(570px,44vw);color:var(--ink)}
.hero-concept .hero-slide-copy .eyebrow{color:var(--forest)}
.hero-concept .hero-slide-copy p{color:var(--muted)}
.hero-concept .hero-controls{color:var(--ink)}
.hero-concept .hero-controls button{color:var(--ink);background:rgba(255,255,255,.55);border-color:rgba(35,35,35,.35)}
.hero-concept .hero-controls button:hover{background:#fff}
@keyframes heroImageIn{from{opacity:.7;transform:scale(1.025)}to{opacity:1;transform:scale(1)}}
@keyframes heroCopyIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
.hero-slide.is-active>img{animation:heroImageIn .9s ease-out both}
.hero-slide-copy{animation:heroCopyIn .65s ease-out both}

/* Home sections */
.intro{display:grid;grid-template-columns:1.2fr .8fr;align-items:start;gap:10vw;padding-block:165px 185px}
.intro h2,.section-heading h2,.visit-strip h2,.about-body h2{font-size:clamp(39px,4.6vw,72px);font-weight:500;line-height:1.33;letter-spacing:-.065em;margin:23px 0 0}
.intro>div:last-child{padding-top:90px}
.intro p{font-size:17px;max-width:510px;color:var(--muted);line-height:1.9;margin-bottom:40px}
.section-heading h2{margin:18px 0 12px}
.section-heading p{font-size:14px;color:var(--muted)}
.category-section{padding-bottom:185px}
.category-list{border-top:1px solid var(--ink);margin-top:62px}
.category-list a{display:grid;grid-template-columns:70px minmax(150px,1fr) minmax(150px,1fr) 40px;align-items:center;column-gap:28px;border-bottom:1px solid var(--line);padding:34px 5px;transition:background .3s,box-shadow .3s}
.category-list a:is(:hover,:focus-visible){background:var(--mist);box-shadow:inset 2px 0 var(--accent)}
.category-list span{font:600 12px var(--latin);color:var(--accent);letter-spacing:.12em}
.category-list strong{font-size:clamp(30px,3.1vw,52px);font-weight:500;letter-spacing:-.075em}
.category-list strong>.category-label{font:inherit;color:inherit;letter-spacing:inherit}
.category-list small{font-size:13px;color:var(--muted);line-height:1.7}
.category-list b{font-size:22px;font-weight:400;text-align:right;transition:transform .3s}
.category-list a:is(:hover,:focus-visible) b{transform:translate(3px,-3px)}
.feature-section{padding:145px 0 160px;background:var(--mist)}
.feature-section+.feature-section{background:var(--paper)}
.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin-top:56px}
.service-card{display:flex;flex-direction:column;min-width:0;border-top:1px solid var(--ink);transition:transform .35s}
.service-card:is(:hover,:focus-visible){transform:translateY(-4px)}
.service-card>img,.card-art{width:100%;aspect-ratio:4/5;object-fit:cover;margin-top:18px;transition:filter .35s}
.service-card:is(:hover,:focus-visible)>img{filter:contrast(1.04)}
.card-art{position:relative;overflow:hidden;background:linear-gradient(145deg,#e3e3e3,#a3a3a3 65%,#606060)}
.card-art:before,.card-art:after,.card-art i{content:"";position:absolute;width:80%;height:180%;top:-35%;left:20%;border:solid rgba(55,55,55,.6);border-width:0 0 0 35px;border-radius:50%;transform:rotate(27deg)}
.card-art:after{left:50%;border-color:rgba(35,35,35,.42);transform:rotate(-20deg)}
.card-art i{left:0;border-color:rgba(250,250,250,.46);transform:rotate(50deg)}
.card-body{display:flex;flex-direction:column;padding:29px 0 18px;min-height:205px}
.card-body small{font:600 10px var(--latin),var(--font);letter-spacing:.18em;color:var(--forest)}
.card-body strong{font-size:clamp(23px,2.2vw,34px);letter-spacing:-.06em;font-weight:500;margin-top:8px}
.card-body>span{font-size:13px;color:var(--muted);margin-top:8px;line-height:1.7}
.card-body b{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:16px;margin-top:auto;font-size:12px;font-weight:600}
.gallery-feature{padding-block:150px 165px}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin-top:56px}
.gallery-card{margin:0;min-width:0}
.gallery-card img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:filter .35s}
.gallery-card:hover img{filter:contrast(1.04)}
.gallery-card figcaption{padding:20px 0}
.gallery-card small{display:block;font:600 10px var(--latin),var(--font);letter-spacing:.18em;color:var(--forest);margin-bottom:6px}
.gallery-card strong{font-size:23px;font-weight:500;letter-spacing:-.05em}
.gallery-card p{font-size:13px;color:var(--muted);margin-top:8px}
.team-section{padding-block:150px 165px;border-top:1px solid var(--line)}
.team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:1fr;gap:32px;margin-top:56px}
.team-section .team-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.team-card{display:flex;flex-direction:column;min-width:0;height:100%;border-top:1px solid var(--ink);padding-top:18px;transition:transform .25s}
.team-card:hover{transform:translateY(-5px)}
.team-card img,.team-photo-placeholder{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;background:linear-gradient(145deg,#e7e7e7,#aaa)}
.team-card-copy{display:flex;flex:1;flex-direction:column;padding:24px 0 20px}
.team-card .eyebrow{font-size:10px}
.team-card h3{font-size:clamp(27px,2.6vw,42px);font-weight:500;letter-spacing:-.07em;margin:8px 0 12px}
.team-card p{font-size:13px;color:var(--muted);line-height:1.8;margin-bottom:12px;overflow-wrap:anywhere}
.team-card .team-specialties{color:var(--forest);font-weight:600}
.team-card-bio{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.team-card-more{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:auto;padding-top:16px;font-size:12px;font-weight:600}
.visit-strip{display:flex;justify-content:space-between;align-items:end;gap:40px;padding:100px 4.5vw 105px;background:var(--forest);color:#f7f7f7}
.visit-strip .eyebrow{color:#c8c8c8}
.visit-strip h2{margin:19px 0 25px}
.visit-strip p{font-size:14px;color:#d7d7d7}
.visit-strip a{min-width:190px;display:flex;justify-content:space-between;border-bottom:1px solid #d7d7d7;padding-bottom:13px;font-size:13px}
.site-footer{display:grid;grid-template-columns:1fr 1fr;gap:70px;padding:90px 4.5vw 25px;background:#252525;color:#fafafa}
.footer-brand{color:#fafafa;font-size:32px}
.site-footer p{font-size:12px;color:#c6c6c6;line-height:2.1;margin-top:33px}
.site-footer>div:nth-child(2){display:flex;flex-direction:column;gap:13px;align-items:flex-start;font-size:12px;color:#e0e0e0}
.site-footer>small{grid-column:1/-1;border-top:1px solid #525252;padding-top:25px;color:#b2b2b2;font:500 10px var(--latin);letter-spacing:.15em}

/* Directories */
.page-hero{padding-block:130px 110px;border-bottom:1px solid var(--line)}
.page-hero h1{margin:24px 0 24px;font-size:clamp(56px,7vw,116px);font-weight:500;line-height:1.15;letter-spacing:-.095em}
.page-hero>p{font-size:16px;color:var(--muted)}
.page-hero h1{animation:heroCopyIn .65s ease-out both}
.period{color:#9a9a9a}
.service-directory{padding-bottom:160px}
.directory-section{padding-top:100px;scroll-margin-top:100px}
.directory-heading{display:grid;grid-template-columns:1fr 1.1fr;gap:20px}
.directory-heading .eyebrow{grid-column:1/-1}
.directory-heading h2{font-size:clamp(42px,5vw,75px);font-weight:500;letter-spacing:-.08em;margin:10px 0}
.directory-heading p{align-self:center;font-size:14px;color:var(--muted)}
.directory-section .card-grid{margin-top:38px}
.directory-empty{display:grid;grid-template-columns:155px minmax(170px,.7fr) minmax(0,1fr);align-items:center;gap:24px;border-top:1px solid var(--line);padding:28px 0;scroll-margin-top:100px}
.directory-empty:first-child{margin-top:90px}
.directory-empty h2{font-size:clamp(28px,3vw,42px);font-weight:500;letter-spacing:-.07em;margin:0}
.directory-empty p{font-size:13px;color:var(--muted)}
.category-empty,.team-empty{padding:36px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:14px;color:var(--muted);margin-top:28px}
.service-directory>.gallery-grid{margin-top:90px}
.services-overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:90px;border-top:1px solid var(--ink);border-left:1px solid var(--line)}
.services-overview>div{min-height:260px;padding:26px 34px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);scroll-margin-top:100px}
.services-overview span{font:600 12px var(--latin);letter-spacing:.12em;color:var(--accent)}
.services-overview h2{font-size:clamp(38px,4vw,62px);font-weight:500;letter-spacing:-.08em;margin:36px 0 8px}
.services-overview p{font-size:13px;color:var(--muted)}
.services-note{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:30px 0;font-size:13px;color:var(--muted)}
.services-note a{white-space:nowrap;color:var(--forest);border-bottom:1px solid currentColor;padding-bottom:5px;font-weight:600}
.team-directory{padding-block:90px 160px}
.team-directory .team-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:25px;margin-top:0}
.team-directory .team-card h3{font-size:clamp(25px,2vw,34px)}

/* Long-form detail */
.detail-page{--service-accent:#303030;--service-page-bg:var(--paper);--service-panel:var(--mist);--service-block-space:48px;--service-layout-space:110px;--service-empty-space:46px;padding-block:60px 165px;background:var(--service-page-bg);box-shadow:0 0 0 100vmax var(--service-page-bg);clip-path:inset(0 -100vmax)}
.back-link{display:inline-block;color:var(--muted);font-size:12px;font-weight:500}
.detail-top{max-width:900px;padding:95px 0 80px}
.detail-page:not(:has(.detail-image)) .detail-top{padding-top:38px;padding-bottom:34px}
.detail-top .eyebrow{display:block;margin-top:32px}
.detail-top h1{font-size:clamp(58px,7vw,112px);font-weight:500;line-height:1.15;letter-spacing:-.09em;margin:22px 0}
.detail-top p{font-size:20px;color:var(--muted)}
.detail-image{margin:0}
.detail-image img{width:100%;max-height:780px;object-fit:cover}
.detail-image figcaption{padding-top:12px;text-align:right;color:var(--muted);font-size:11px}
.detail-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,.85fr);gap:12vw;padding-top:var(--service-layout-space)}
.detail-page:not(:has(.detail-image)) .detail-layout{padding-top:var(--service-empty-space)}
.detail-main h2,.detail-extra h2{font-size:clamp(32px,3vw,48px);font-weight:500;letter-spacing:-.07em;margin:16px 0 28px}
.detail-main p{font-size:16px;color:#555;margin:0 0 23px}
.detail-extra{border-top:1px solid var(--line);margin-top:75px;padding-top:36px}
.detail-extra h3{font-size:20px}
.detail-layout aside{align-self:start;border-top:2px solid var(--service-accent);background:var(--service-panel);padding:34px}
.detail-layout aside strong{font-size:21px;font-weight:500;line-height:1.5}
.detail-layout aside p{font-size:13px;color:var(--muted);margin:20px 0 30px}
.service-content-block{padding:0 0 var(--service-block-space);margin:0 0 var(--service-block-space);border-bottom:1px solid var(--line)}
.service-content-block:first-child h2{margin-top:0}
.service-content-block .eyebrow{display:block;margin-bottom:12px}
.service-faq h2{font-size:clamp(24px,2.3vw,34px)}
.service-inline-image{margin:0 0 50px}
.service-inline-image img{width:100%;max-height:640px;object-fit:cover}
.service-inline-image figcaption,.service-photo-grid figcaption{font-size:12px;color:var(--muted);padding-top:10px}
.service-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:28px}
.service-photo-grid figure{margin:0}
.service-photo-grid img{width:100%;aspect-ratio:4/5;object-fit:cover}
.service-booking .text-link{display:inline-block;margin-top:10px}
.service-preview-banner{padding:15px 5vw;background:#363636;color:white;text-align:center;font-size:13px}
.service-font-serif .detail-top h1,.service-font-serif .detail-main h2,.service-font-serif .detail-layout aside strong{font-family:'Noto Serif KR','Nanum Myeongjo',Georgia,serif;letter-spacing:-.055em}
.service-accent-olive{--service-accent:#626262}
.service-accent-cocoa{--service-accent:#484848}
.service-background-ivory{--service-page-bg:#fcfcfc;--service-panel:#f5f5f5}
.service-background-mist{--service-page-bg:#f4f4f4;--service-panel:#ebebeb}
.service-spacing-compact{--service-block-space:30px;--service-layout-space:75px;--service-empty-space:30px}
.service-spacing-spacious{--service-block-space:72px;--service-layout-space:150px;--service-empty-space:70px}
.detail-page .eyebrow,.detail-page .detail-main h2,.detail-page .text-link{color:var(--service-accent)}
.detail-page .button-dark{background:var(--service-accent);border-color:var(--service-accent);color:#fff}
.detail-page .button-dark:hover{filter:brightness(1.15)}
.service-preset-editorial .detail-main h2{font-weight:400;letter-spacing:-.055em}
.service-preset-editorial .detail-image figcaption{font-style:italic}
.service-preset-warm .detail-layout aside{box-shadow:inset 0 0 0 1px #d3d3d3}

/* About and contact */
.about-hero{border-bottom:0;min-height:570px}
.about-hero h1{font-size:clamp(56px,6.4vw,102px)}
.about-hero h1 em,.statement em{font-style:normal;color:#888}
.about-body{display:grid;grid-template-columns:1.15fr .85fr;gap:8vw;align-items:center;padding-bottom:150px}
.about-art{height:min(50vw,730px);min-height:500px;overflow:hidden;background:#ebebeb}
.about-art img{width:100%;height:100%;object-fit:cover}
.about-body>div:last-child{max-width:510px}
.about-body h2{margin:18px 0 36px}
.about-body p{font-size:16px;color:var(--muted);margin-bottom:20px}
.about-body .text-link{margin-top:30px}
.statement{border-top:1px solid var(--line);padding-block:115px 155px}
.statement p{font-size:clamp(45px,5.7vw,93px);font-weight:500;line-height:1.4;letter-spacing:-.08em;margin-top:36px}
.contact-section{display:grid;grid-template-columns:1fr 1fr;gap:8vw;padding-block:100px 160px}
.contact-art{min-height:610px;background:var(--forest);color:#f8f8f8;display:flex;flex-direction:column;justify-content:space-between;padding:54px}
.contact-art span{font:600 clamp(55px,6vw,92px)/.96 var(--latin),var(--font);letter-spacing:-.08em}
.contact-art small{font:600 10px var(--latin);letter-spacing:.25em;color:#d0d0d0}
.contact-info{padding-top:20px}
.contact-info h2{font-size:clamp(35px,3.8vw,60px);font-weight:500;letter-spacing:-.07em;margin:20px 0 55px}
.contact-info dl{margin:0}
.contact-info dl>div{display:grid;grid-template-columns:115px 1fr;gap:15px;border-top:1px solid var(--line);padding:26px 0;font-size:14px}
.contact-info dl>div:last-child{border-bottom:1px solid var(--line)}
.contact-info dt{font-weight:600}
.contact-info dd{margin:0;color:var(--muted)}
.contact-actions{display:flex;gap:10px;margin-top:40px}

/* Team detail */
.profile-page{padding-block:60px 160px}
.profile-layout{display:grid;grid-template-columns:minmax(240px,31%) minmax(0,1fr);gap:5%;margin-top:50px}
.profile-heading{position:sticky;top:38px;align-self:start;border-right:1px solid var(--line);padding:12px 35px 40px 0}
.profile-heading h1{font-size:clamp(52px,5vw,82px);font-weight:500;letter-spacing:-.085em;line-height:1.2;margin:22px 0 10px;overflow-wrap:anywhere}
.profile-role{font-size:17px;color:var(--muted)}
.profile-intro{padding:37px 0 22px;color:var(--muted);font-size:15px}
.profile-intro p{margin-bottom:17px}
.profile-actions{display:grid;gap:10px;width:min(100%,250px);margin-top:24px}
.profile-actions a{justify-content:space-between;min-height:50px}
.profile-figure{margin:0}
.profile-figure img,.profile-photo-placeholder{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center top;background:linear-gradient(145deg,#e8e8e8,#aaa)}
.profile-sections{padding-top:60px}
.profile-sections section{border-top:1px solid var(--line);padding:32px 0 40px;display:grid;grid-template-columns:minmax(140px,25%) minmax(0,1fr);gap:28px}
.profile-sections h2{font-size:16px;font-weight:600;margin:0}
.profile-sections section>p{grid-column:2;color:var(--muted);font-size:14px;margin:0 0 12px;overflow-wrap:anywhere}

/* Owner dashboard */
.admin-body{background:#f6f6f6}
.admin-header{display:flex;justify-content:space-between;align-items:center;gap:30px;min-height:78px;padding:18px 4vw;background:var(--forest);color:#fafafa}
.admin-header>a{font:700 16px var(--latin),var(--font);letter-spacing:.04em}
.admin-header nav{display:flex;align-items:center;flex-wrap:wrap;gap:20px;font-size:12px}
.admin-header nav a:hover{text-decoration:underline}
.admin-header form{margin:0}
.admin-header button{padding:0;border:0;background:none;color:inherit;font-size:12px}
.admin-wrap{width:min(1160px,92vw);margin:74px auto 130px}
.admin-title{margin-bottom:38px}
.admin-title h1{font-size:clamp(39px,4vw,65px);font-weight:500;letter-spacing:-.075em;line-height:1.2;margin:17px 0}
.admin-title p{font-size:14px;color:var(--muted)}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}
.stat-grid a{display:flex;flex-direction:column;gap:16px;padding:32px;background:#fff;border-top:2px solid var(--forest)}
.stat-grid strong{font:500 46px var(--latin),var(--font)}
.stat-grid span{color:var(--muted);font-size:12px}
.admin-panel{padding:38px;margin-top:48px;background:var(--mist)}
.admin-panel h2{font-size:26px;font-weight:500;margin:0 0 14px}
.admin-panel p{font-size:14px;color:var(--muted)}
.admin-panel audio{display:block;width:100%;max-width:100%}
.admin-list{margin-top:30px;border-top:1px solid var(--ink)}
.admin-list>div{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:23px 8px}
.admin-list strong{font-size:16px;font-weight:600}
.admin-list small{display:block;color:var(--muted);font-size:11px;margin-top:5px}
.admin-list a{font-size:12px;font-weight:600}
.admin-form{display:flex;flex-direction:column;gap:24px;background:#fff;border:1px solid var(--line);padding:42px;margin-top:24px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.field{display:flex;flex-direction:column;gap:9px;min-width:0;font-size:12px;font-weight:600}
.field input,.field textarea,.field select{width:100%;padding:14px 15px;border:1px solid #d2d2d2;border-radius:0;background:#fff;color:var(--ink);font-size:14px;font-weight:400;outline:0}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--forest);box-shadow:0 0 0 2px #e7e7e7}
.field textarea{resize:vertical;line-height:1.75}
.field input[type=file]{font-size:12px}
.check-field{display:flex;align-items:center;gap:10px;font-size:13px}
.check-field input{width:18px;height:18px;accent-color:var(--forest)}
.form-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.upload-preview,.current-image img{max-width:260px;max-height:190px;object-fit:cover}
.upload-preview[hidden]{display:none}
.current-image label{font-size:12px}
.service-editor-section{border-top:1px solid var(--line);padding-top:30px}
.service-editor-section h2{font-size:23px;font-weight:500;letter-spacing:-.04em;margin:0 0 8px}
.service-editor-heading{display:flex;align-items:start;justify-content:space-between;gap:20px;margin-bottom:18px}
.service-editor-heading p,.form-hint{font-size:12px;color:var(--muted);margin:0}
.service-editor-block{border:1px solid var(--line);background:#fafafa;padding:20px;margin:0 0 14px}
.service-editor-block .field{margin-top:12px}
.service-editor-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}
.service-editor-toolbar button{border:1px solid var(--line);background:white;color:var(--forest);padding:8px 12px;cursor:pointer;font-size:12px}
.service-editor-toolbar button:focus-visible{outline:2px solid var(--forest);outline-offset:2px}
.service-photo-editor{display:grid;grid-template-columns:135px minmax(0,1fr) auto;gap:18px;padding:18px 0;border-top:1px solid var(--line)}
.service-photo-editor>img{width:135px;height:150px;object-fit:cover}
.service-photo-editor .field{margin-bottom:12px}
.service-photo-editor .service-editor-toolbar{align-self:start;gap:5px}
[data-photo-selection]{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
[data-photo-selection] img{width:95px;height:100px;object-fit:cover}
.preview-devices{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:30px}
.preview-devices>input{position:absolute;width:1px;height:1px;opacity:0}
.preview-devices>label{padding:10px 16px;border:1px solid var(--line);cursor:pointer;font-size:13px}
.preview-devices>input:checked+label{background:var(--forest);border-color:var(--forest);color:white}
.preview-devices>input:focus-visible+label{outline:2px solid var(--forest);outline-offset:2px}
.preview-frame-wrap{width:100%;display:flex;justify-content:center;padding:24px;background:#ebebeb;border:1px solid var(--line)}
.preview-frame-wrap iframe{width:100%;height:760px;border:0;background:white;box-shadow:0 10px 30px #25252520}
#preview-mobile:checked~.preview-frame-wrap iframe{width:390px;max-width:100%}
.danger-form{margin-top:32px}
.danger-form button,.text-danger{padding:8px 0;border:0;background:none;color:#a4483e;text-decoration:underline;font-size:12px}
.text-danger:disabled{opacity:.4;cursor:not-allowed}
.category-admin .compact{margin-bottom:18px}
.auth-box{max-width:510px;margin:95px auto;background:#fff;border-top:3px solid var(--forest);padding:48px}
.auth-box h1{font-size:38px;font-weight:500;letter-spacing:-.07em;margin:16px 0}
.auth-box p{font-size:14px;color:var(--muted)}
.auth-box form{display:flex;flex-direction:column;gap:20px;margin:30px 0}
.form-error,.admin-message{padding:13px 17px;background:#fae9e4;color:#8d3e35!important;font-size:13px}
.admin-message{margin-bottom:25px}

@media(max-width:1100px){
  .site-header{grid-template-columns:1fr auto;gap:25px}
  .desktop-nav{grid-row:2;grid-column:1/-1;justify-content:center;padding-bottom:19px}
  .site-header{height:auto;min-height:108px;padding-top:20px}
  .team-directory .team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .team-section .team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:740px){
  .site-intro-copy{--gate-gutter:18px;padding:0 var(--gate-gutter) max(18px,env(safe-area-inset-bottom))}
  .site-intro-top{min-height:44px;font-size:9px;letter-spacing:.1em}
  .site-intro-top>span{min-width:0;overflow-wrap:anywhere}
  .site-intro-message{min-height:90px;padding-top:50px;font-size:13px}
  .site-intro-choices{gap:12px}
  .site-intro-choice{gap:7px;min-height:44px}
  .site-intro-choice .category-label{font-size:clamp(11px,3vw,14px)}
  .site-intro-choice>[aria-hidden]{font-size:15px}
  .site-intro-brand h2 span{font-size:clamp(65px,26vw,190px)}
  .site-intro-brand h2 small{font-size:10px;letter-spacing:.34em}
  .site-intro-media img{object-position:63% center}
  .section-wrap{width:calc(100% - 40px)}
  .site-header{display:flex;justify-content:space-between;height:76px;min-height:76px;padding:0 20px;gap:15px}
  .brand{font-size:20px}
  .brand span{font-size:7px}
  .desktop-nav{display:none}
  .header-actions{gap:18px}
  .header-book{padding:7px 0;gap:12px;font-size:11px}
  .mobile-menu{display:block}
  .mobile-menu summary{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:5px;width:44px;height:44px;list-style:none;cursor:pointer}
  .mobile-menu summary::-webkit-details-marker{display:none}
  .mobile-menu summary span{display:block;width:24px;height:1px;background:var(--ink)}
  .mobile-menu[open] summary span:first-child{transform:translateY(3px) rotate(45deg)}
  .mobile-menu[open] summary span:last-child{transform:translateY(-3px) rotate(-45deg)}
  .mobile-menu nav{position:absolute;top:76px;left:0;right:0;display:flex;flex-direction:column;gap:0;padding:12px 20px 25px;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 12px 25px rgba(30,30,30,.08)}
  .mobile-menu nav a{padding:15px 0;border-bottom:1px solid var(--line);font-size:18px;font-weight:500;letter-spacing:-.04em}
  .hero-slides{height:min(690px,calc(100svh - 76px));min-height:560px}
  .hero-slide>img{object-position:58% center}
  .hero-slide-copy{left:20px;right:20px;top:auto;bottom:90px;width:auto;display:block;padding:0}
  .hero-slide-copy h1{font-size:clamp(47px,11vw,73px);line-height:1.2;margin:18px 0 14px}
  .hero-slide-copy p{font-size:14px}
  .hero-slide-copy .text-link{margin-top:18px}
  .hero-shade{background:linear-gradient(0deg,rgba(24,24,24,.75),rgba(24,24,24,.08) 75%)}
  .hero-controls{bottom:20px;right:20px;gap:10px}
  .hero-controls button{width:44px;height:44px}
  .hero-concept .hero-slide>img{object-position:58% center}
  .hero-concept .hero-shade{background:linear-gradient(0deg,rgba(250,250,250,.97),rgba(250,250,250,.8) 45%,rgba(250,250,250,.13) 84%)}
  .hero-concept .hero-slide-copy{width:auto;color:var(--ink)}
  .intro{grid-template-columns:1fr;gap:28px;padding-block:94px 105px}
  .intro h2,.section-heading h2,.visit-strip h2,.about-body h2{font-size:clamp(38px,9vw,58px)}
  .intro>div:last-child{padding-top:0}
  .intro p{font-size:15px;margin-bottom:28px}
  .category-section{padding-bottom:110px}
  .category-list{margin-top:36px}
  .category-list a{grid-template-columns:34px 1fr 24px;gap:8px;padding:23px 0}
  .category-list strong{font-size:clamp(27px,7.5vw,33px)}
  .category-list small{grid-column:2;grid-row:2;font-size:12px}
  .category-list b{grid-column:3;grid-row:1}
  .feature-section,.gallery-feature,.team-section{padding-block:85px}
  .card-grid,.gallery-grid,.team-grid{grid-template-columns:1fr;gap:32px;margin-top:38px}
  .team-section .team-grid{grid-template-columns:1fr}
  .service-card>img,.card-art{aspect-ratio:4/3}
  .card-body{min-height:170px}
  .visit-strip{display:block;padding:80px 20px}
  .visit-strip a{margin-top:38px;width:max-content}
  .site-footer{grid-template-columns:1fr;gap:45px;padding:75px 20px 25px}
  .page-hero{padding-block:85px 74px}
  .page-hero h1{font-size:clamp(54px,13vw,80px)}
  .service-directory{padding-bottom:100px}
  .directory-section{padding-top:75px}
  .directory-heading{grid-template-columns:1fr;gap:0}
  .directory-heading h2{font-size:clamp(34px,10vw,50px);margin:12px 0}
  .directory-heading p{margin-bottom:15px}
  .directory-empty{grid-template-columns:1fr;gap:4px;padding:25px 0}
  .directory-empty:first-child{margin-top:55px}
  .directory-empty h2{font-size:34px}
  .service-directory>.gallery-grid{margin-top:55px}
  .services-overview{grid-template-columns:1fr;margin-top:55px}
  .services-overview>div{min-height:180px;padding:22px 24px}
  .services-overview h2{font-size:clamp(34px,10vw,46px);margin:18px 0 5px}
  .services-note{display:block}
  .services-note a{display:inline-block;margin-top:16px}
  .team-directory{padding-block:65px 110px}
  .team-directory .team-grid{grid-template-columns:1fr}
  .detail-page{padding-block:35px 100px;--service-layout-space:65px;--service-empty-space:38px}
  .detail-top{padding:55px 0}
  .detail-top .eyebrow{margin-top:24px}
  .detail-top h1{font-size:60px}
  .detail-top p{font-size:17px}
  .detail-layout{grid-template-columns:1fr;gap:60px}
  .service-spacing-compact{--service-block-space:28px;--service-layout-space:45px;--service-empty-space:28px}
  .service-spacing-spacious{--service-block-space:54px;--service-layout-space:90px;--service-empty-space:55px}
  .service-photo-grid{grid-template-columns:1fr}
  .about-hero{min-height:0}
  .about-body,.contact-section{grid-template-columns:1fr;gap:50px}
  .about-body{padding-bottom:100px}
  .about-art{height:460px;min-height:0}
  .statement{padding-block:80px 110px}
  .statement p{font-size:clamp(43px,10vw,65px)}
  .contact-section{padding-block:70px 110px}
  .contact-art{min-height:380px;padding:34px}
  .contact-info h2{margin-bottom:35px}
  .contact-info dl>div{grid-template-columns:80px 1fr}
  .contact-actions{flex-wrap:wrap}
  .profile-page{padding-block:35px 100px}
  .profile-layout{grid-template-columns:1fr;gap:35px;margin-top:34px}
  .profile-heading{position:static;border:0;padding:0}
  .profile-heading h1{font-size:60px}
  .profile-intro{padding:24px 0 15px}
  .profile-sections{padding-top:25px}
  .profile-sections section{grid-template-columns:1fr;gap:12px;padding:25px 0}
  .profile-sections section>p{grid-column:1}
  .admin-header{align-items:flex-start;flex-direction:column;gap:18px;padding:22px 20px}
  .admin-header nav{gap:12px 17px}
  .admin-wrap{width:calc(100% - 40px);margin:55px auto 100px}
  .form-grid{grid-template-columns:1fr}
  .admin-form{padding:24px}
  .service-editor-heading{flex-direction:column}
  .service-photo-editor{grid-template-columns:85px 1fr}
  .service-photo-editor>img{width:85px;height:110px}
  .service-photo-editor .service-editor-toolbar{grid-column:2}
  .auth-box{margin:60px auto;padding:28px}
}
@media(max-width:390px){
  .site-intro-copy{--gate-gutter:16px}
  .site-intro-message{font-size:12px}
  .site-intro-choices{gap:9px}
  .brand{font-size:18px}
  .site-header{gap:7px;padding-inline:14px}
  .header-actions{gap:8px}
  .header-book{font-size:10px;gap:4px}
  .hero-slides{height:min(630px,calc(100svh - 76px));min-height:540px}
  .hero-slide-copy h1{font-size:45px}
  .page-hero h1{font-size:53px}
  .contact-actions a{width:100%}
}
@media(max-height:600px){
  .site-intro-copy{padding-bottom:10px}
  .site-intro-top{min-height:36px}
  .site-intro-message{min-height:65px;padding-top:25px}
  .site-intro-choice{min-height:44px}
  .site-intro-brand h2{margin-top:6px}
  .site-intro-brand h2 span{font-size:min(23vw,29vh)}
  .site-intro-brand h2 small{margin-top:5px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{transition-duration:.01ms!important;animation:none!important}
  .site-intro-media img{opacity:.55;transform:none}
}

/* Visitor information */
.language-link{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);min-width:42px;height:38px;font:700 11px var(--latin),var(--font);letter-spacing:.06em}
.language-link{background:transparent;color:var(--ink);cursor:pointer;min-width:44px;height:44px}
.language-link:hover,.language-link[aria-pressed="true"]{background:var(--forest);border-color:var(--forest);color:#fff}
.bilingual{position:relative;display:inline-block;max-width:100%;vertical-align:baseline}
.bilingual-block{display:block;width:100%}
.bilingual-ko{display:none}
body.show-ko .bilingual-en{display:none}
body.show-ko .bilingual-ko{display:inline;position:static;color:inherit;background:none;border:0;box-shadow:none;padding:0;font:inherit;letter-spacing:inherit;text-align:inherit;white-space:inherit}
body.show-ko .bilingual-block>.bilingual-ko{display:block}
/* Only category names switch language in place; the grid reserves both widths. */
.category-label{display:inline-grid;vertical-align:baseline;max-width:100%}
.category-label>[lang]{grid-area:1/1;font:inherit!important;letter-spacing:inherit!important;color:inherit;line-height:inherit;transition:opacity .25s,transform .25s,visibility .25s}
.category-list strong .category-label>[lang=en],.directory-heading h2 .category-label>[lang=en],.directory-empty h2 .category-label>[lang=en],.services-overview h2 .category-label>[lang=en]{font-family:var(--latin)!important;letter-spacing:-.065em!important}
.category-label>[lang=ko]{opacity:0;visibility:hidden;transform:translateY(5px)}
body:not(.show-ko) .category-label>[lang=ko]{display:none}
body.show-ko .category-label:is(:hover,:focus-visible)>[lang=en],
body.show-ko :is(a:focus-visible) .category-label>[lang=en]{opacity:0;visibility:hidden}
body.show-ko .category-label:is(:hover,:focus-visible)>[lang=ko],
body.show-ko :is(a:focus-visible) .category-label>[lang=ko]{opacity:1;visibility:visible;transform:none}
body.show-ko .category-list a:hover .category-label>[lang=en]{opacity:0;visibility:hidden}
body.show-ko .category-list a:hover .category-label>[lang=ko]{opacity:1;visibility:visible;transform:none}
@media(max-width:740px),(hover:none),(pointer:coarse){
  body.show-ko .category-label{display:inline-flex;flex-direction:column;align-items:flex-start}
  body.show-ko .category-label>[lang=en],body.show-ko .category-label:is(:hover,:focus-visible)>[lang=en],body.show-ko .category-list a:hover .category-label>[lang=en]{opacity:1;visibility:visible}
  body.show-ko .category-label>[lang=ko],body.show-ko .category-label:is(:hover,:focus-visible)>[lang=ko],body.show-ko .category-list a:hover .category-label>[lang=ko]{opacity:1;visibility:visible;transform:none;font:500 12px/1.5 var(--font)!important;letter-spacing:-.02em!important;color:var(--muted);margin-top:5px}
}
@media(max-width:740px){.language-link{min-width:44px!important;height:44px!important}}
.visit-guide{padding-block:95px 145px;border-top:1px solid var(--line)}
.visit-guide-heading{max-width:720px}
.visit-guide-heading h2{font-size:clamp(36px,4vw,62px);font-weight:500;letter-spacing:-.07em;margin:18px 0}
.visit-guide-heading p{color:var(--muted);font-size:15px}
.visit-guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:45px}
.visit-guide-grid>section{padding:38px;min-height:235px;background:#f3f3f3}
.visit-guide-grid h3,.visit-guide-note h3{font-size:clamp(24px,2.3vw,36px);font-weight:500;letter-spacing:-.06em;margin:18px 0}
.visit-guide-grid p,.visit-guide-note p{font-size:15px;color:var(--muted);line-height:1.9}
.visit-guide-note{display:flex;justify-content:space-between;align-items:end;gap:35px;padding:42px 0;border-bottom:1px solid var(--line)}
.visit-guide-note>div{max-width:710px}
.visit-guide-note .text-link{white-space:nowrap}
.visit-guide-language{display:inline-flex;margin-top:34px;padding-bottom:8px;border-bottom:1px solid currentColor;gap:35px;font:600 13px var(--latin),var(--font)}
.english-visit{display:grid;grid-template-columns:1.1fr .9fr;gap:9vw;padding-block:100px 50px}
.english-visit-main h2{font-size:clamp(38px,4.2vw,66px);font-weight:500;letter-spacing:-.07em;line-height:1.18;margin:22px 0 55px}
.english-visit dl{margin:0}
.english-visit dl>div{display:grid;grid-template-columns:115px 1fr;gap:14px;padding:24px 0;border-top:1px solid var(--line);font-size:14px;line-height:1.7}
.english-visit dt{font-weight:600}
.english-visit dd{margin:0;color:var(--muted)}
.english-visit dd small{display:block;margin-top:5px}
.english-visit-aside{display:grid;gap:16px}
.english-visit-aside>section{padding:28px 30px;background:#f3f3f3}
.english-visit-aside h3{font-size:24px;letter-spacing:-.05em;font-weight:500;margin:12px 0}
.english-visit-aside p{font-size:14px;color:var(--muted);line-height:1.75}
.english-return{padding-bottom:125px}
.visit-settings{display:grid;gap:18px;border-top:1px solid var(--line);padding-top:30px}
.visit-settings h2{font-size:23px;font-weight:500;margin:0}
.visit-settings p{font-size:13px;color:var(--muted);margin:-8px 0 4px}
@media(max-width:740px){
  .language-link{margin-right:0;min-width:36px;height:34px}
  .visit-guide{padding-block:70px 100px}
  .visit-guide-grid,.english-visit{grid-template-columns:1fr}
  .visit-guide-grid>section{min-height:0;padding:28px}
  .visit-guide-note{display:block}
  .visit-guide-note .text-link{margin-top:20px}
  .english-visit{gap:32px;padding-block:70px 45px}
  .english-visit-main h2{margin-bottom:35px}
  .english-return{padding-bottom:90px}
}
@media(max-width:390px){.english-visit dl>div{grid-template-columns:75px 1fr}}


.english-services{border-top:1px solid var(--line);padding-block:95px 105px}
.english-services .section-heading{max-width:760px}
.english-services .section-heading h2{font-size:clamp(36px,4vw,62px);font-weight:500;letter-spacing:-.07em;margin:18px 0}
.english-services .section-heading p{font-size:15px;color:var(--muted)}
.english-service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:42px 0 25px}
.english-service-grid article{display:flex;flex-direction:column;min-height:300px;padding:28px;background:#f3f3f3}
.english-service-grid h3{font-size:25px;font-weight:500;letter-spacing:-.05em;margin:22px 0 12px}
.english-service-grid p{font-size:13px;line-height:1.7;color:var(--muted)}
.english-service-grid a{display:inline-block;margin-top:auto;padding-top:25px;font-size:12px;font-weight:600;text-decoration:underline;text-underline-offset:5px}
.english-services-note{max-width:760px;font-size:13px;color:var(--muted);margin:0 0 22px}
@media(max-width:1100px){.english-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.english-service-grid article{min-height:250px}}
@media(max-width:740px){.english-services{padding-block:70px 80px}.english-service-grid{grid-template-columns:1fr}.english-service-grid article{min-height:0}.english-service-grid a{margin-top:10px}}

/* Gate choices share the category label's English/Korean reveal on both links and buttons. */
body.show-ko .site-intro-choice .category-label>[lang=ko]{display:block}
body.show-ko .site-intro-choice:is(:hover,:focus-visible) .category-label>[lang=en]{opacity:0;visibility:hidden}
body.show-ko .site-intro-choice:is(:hover,:focus-visible) .category-label>[lang=ko]{opacity:1;visibility:visible;transform:none}
@media(hover:none){
  body.show-ko .site-intro-choice .category-label{display:flex;flex-direction:column;align-items:flex-start}
  body.show-ko .site-intro-choice .category-label>[lang],body.show-ko .site-intro-choice:is(:hover,:focus-visible) .category-label>[lang]{display:block;opacity:1;visibility:visible;transform:none}
  body.show-ko .site-intro-choice .category-label>[lang=ko]{margin-top:5px;font:500 11px/1.3 var(--font)!important;letter-spacing:-.02em!important;color:#666}
}

/* Public editorial system — continues the quiet gate into the salon pages. */
body:not(.admin-body){--ink:#202020;--muted:#696969;--line:#dedede;--mist:#f6f6f6;--forest:#242424}
body:not(.admin-body) .section-wrap{width:min(1530px,calc(100% - 8vw))}
.site-header{height:72px;padding-inline:4vw;grid-template-columns:minmax(155px,1fr) auto minmax(155px,1fr)}
.site-header .brand{font-size:21px}
.site-header .brand span{font-size:7px;margin-top:7px}
.desktop-nav{gap:clamp(20px,2.3vw,43px)}
.desktop-nav a{font:600 11px/1.2 var(--latin),var(--font);letter-spacing:.085em;text-transform:uppercase}
.site-header .header-actions{gap:19px}
.site-header .header-book{font-size:12px;gap:25px}
body.show-ko .site-header a:is(:hover,:focus-visible) .category-label>[lang=en],
body.show-ko .site-footer a:is(:hover,:focus-visible) .category-label>[lang=en]{opacity:0;visibility:hidden}
body.show-ko .site-header a:is(:hover,:focus-visible) .category-label>[lang=ko],
body.show-ko .site-footer a:is(:hover,:focus-visible) .category-label>[lang=ko]{opacity:1;visibility:visible;transform:none}
.hero-slides{height:clamp(610px,calc(100svh - 72px),920px);min-height:0}
.hero-slide>img{object-position:center 45%}
.hero-shade{background:linear-gradient(0deg,rgba(18,18,18,.66),rgba(18,18,18,.12) 42%,transparent 75%)}
.hero-slide-copy{left:4vw;top:auto;bottom:clamp(86px,10vh,136px);width:min(900px,75vw);display:block;padding:0}
.hero-slide-copy .eyebrow{font-size:11px;letter-spacing:.22em}
.hero-slide-copy h1{font:500 clamp(92px,15vw,260px)/.8 var(--latin),var(--font);letter-spacing:-.09em;margin:25px 0 22px;text-transform:uppercase;white-space:nowrap}
.hero-slide-copy .hero-slide-title{font-size:clamp(18px,2vw,30px);font-weight:400;line-height:1.5;margin:0 0 8px;color:inherit;letter-spacing:-.04em}
.hero-slide-copy p[data-slide-caption]{font-size:13px;margin:0 0 10px;color:inherit;opacity:.83}
.hero-slide-copy .text-link{margin-top:29px;font-size:12px}
.hero-concept .hero-shade{background:linear-gradient(90deg,rgba(248,248,248,.96),rgba(248,248,248,.75) 34%,rgba(248,248,248,.1) 62%),linear-gradient(0deg,rgba(248,248,248,.4),transparent 45%)}
.hero-concept .hero-slide-copy{color:#222}
.hero-concept .hero-slide-copy .hero-slide-title,.hero-concept .hero-slide-copy p[data-slide-caption]{color:#3d3d3d}
.intro{grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:7vw;padding-block:clamp(125px,13vw,210px)}
.intro h2,.section-heading h2,.page-hero h1{font-family:var(--latin),var(--font);font-weight:500;letter-spacing:-.07em;text-transform:uppercase}
.intro h2{max-width:1000px;font-size:clamp(65px,8.3vw,155px);line-height:.94;margin:30px 0 34px}
.intro-strapline{font-size:clamp(17px,1.65vw,24px)!important;line-height:1.55!important;color:#303030!important}
.intro>div:last-child{padding-top:clamp(86px,10vw,165px)}
.intro>div:last-child p{font-size:15px}
.section-heading h2{font-size:clamp(55px,7.2vw,120px);line-height:.94;margin:23px 0 23px}
.section-heading>p{max-width:490px;font-size:14px}
.category-section{padding-bottom:clamp(125px,14vw,215px)}
.category-list{margin-top:68px}
.category-list a{grid-template-columns:56px minmax(170px,.9fr) minmax(240px,.7fr) 28px;padding:30px 0;box-shadow:none}
.category-list a:is(:hover,:focus-visible){background:#f6f6f6;box-shadow:none}
.category-list strong{font:500 clamp(33px,4vw,66px)/1.1 var(--latin),var(--font);letter-spacing:-.055em}
.category-list small{max-width:460px}
.feature-section{background:#f7f7f7;padding-block:clamp(120px,12vw,185px)}
.card-grid,.gallery-grid,.team-grid{gap:clamp(15px,2vw,34px);margin-top:63px}
.service-card,.team-card{border-top:0;padding-top:0}
.service-card>img,.card-art{margin-top:0;aspect-ratio:4/4.7}
.card-art{background:#ececec;display:grid;place-items:center}
.card-art:before,.card-art:after,.card-art i{display:none}
.card-art:after{display:block;position:static;content:"HWAON";width:auto;height:auto;border:0;border-radius:0;transform:none;font:500 clamp(25px,3vw,46px)/1 var(--latin);letter-spacing:-.09em;color:#aaa}
.card-body{padding-top:23px}
.card-body strong{font-weight:500}
.gallery-feature,.team-section{padding-block:clamp(120px,12vw,185px)}
.team-card img,.team-photo-placeholder{background:#e9e9e9}
.team-photo-placeholder{display:grid;place-items:center}
.team-photo-placeholder:after{content:"HWAON";font:500 clamp(25px,3vw,46px)/1 var(--latin);letter-spacing:-.09em;color:#aaa}
.visit-strip{background:#ebebeb;color:#202020;padding:clamp(95px,9vw,150px) 4vw}
.visit-strip .eyebrow{color:#555}
.visit-strip h2{font-size:clamp(42px,5vw,82px);line-height:1.13}
.visit-strip p{color:#555}
.visit-strip a{border-bottom-color:#333}
.site-footer{grid-template-columns:1fr 1fr;padding:80px 4vw 22px;background:#fff;color:#202020;gap:40px 8vw;border-top:1px solid var(--line)}
.site-footer .footer-brand{font-size:21px;color:#202020}
.site-footer p{color:#5d5d5d;margin-top:26px}
.site-footer>div:nth-child(2){color:#333;display:grid;grid-template-columns:repeat(2,max-content);gap:10px 30px;align-content:start;justify-content:end;font:600 11px/1.5 var(--latin),var(--font);letter-spacing:.06em}
.site-footer>div:nth-child(2) a{min-height:30px}
.footer-wordmark{grid-column:1/-1;width:100%;overflow:hidden;white-space:nowrap;font:500 clamp(110px,25.5vw,520px)/.83 var(--latin),var(--font);letter-spacing:-.09em;color:#242424}
.site-footer>small{border-top:1px solid var(--line);color:#777}
.page-hero{padding-block:clamp(105px,10vw,160px) clamp(88px,8vw,125px)}
.page-hero h1{font-size:clamp(90px,13.5vw,230px);line-height:.92;margin:25px 0 33px}
.page-hero>p{font-size:15px}
.page-hero .page-hero-lede{font-size:clamp(23px,3vw,42px);color:#303030;letter-spacing:-.055em;line-height:1.45;margin-bottom:17px}
.about-hero{min-height:0}
.about-hero h1{font-size:clamp(90px,13.5vw,230px)}
.about-body{padding-block:100px 155px}
.statement{padding-block:105px 140px}
.contact-section{padding-block:115px 150px}
.contact-art{background:#ededed;color:#272727}
.contact-art small{color:#555}
.services-overview{grid-template-columns:1fr;border-left:0;margin-top:80px}
.services-overview>div{display:grid;grid-template-columns:65px minmax(240px,.7fr) minmax(260px,1fr);align-items:center;column-gap:30px;min-height:140px;padding:23px 0;border-right:0}
.services-overview h2{font:500 clamp(37px,4vw,67px)/1.04 var(--latin),var(--font);letter-spacing:-.06em;margin:0}
.services-overview p{max-width:480px}
.directory-heading h2,.directory-empty h2{font-family:var(--latin),var(--font)}
.directory-section{padding-top:125px}
.visit-guide-grid>section,.english-visit-aside>section,.english-service-grid article{background:#fff;border-top:1px solid #aaa;padding-inline:0}
.visit-guide-grid>section{min-height:180px}
.english-service-grid{gap:30px}
.english-service-grid article{min-height:250px}
.english-services{padding-block:120px}
@media(max-width:1100px){
  .site-header{height:72px;min-height:72px;padding-top:0;grid-template-columns:minmax(125px,1fr) auto minmax(130px,1fr)}
  .desktop-nav{grid-row:auto;grid-column:auto;gap:clamp(12px,1.7vw,24px);padding-bottom:0}
  .site-footer>div:nth-child(2){justify-content:start}
}
@media(max-width:740px){
  body:not(.admin-body) .section-wrap{width:calc(100% - 40px)}
  .site-header{height:64px;min-height:64px;padding:0 20px}
  .mobile-menu nav{top:64px}
  .hero-slides{height:calc(100svh - 64px);min-height:480px;max-height:820px}
  .hero-slide-copy{left:20px;right:20px;bottom:95px;width:auto}
  .hero-slide-copy h1{font-size:clamp(64px,17vw,115px);margin:18px 0}
  .hero-slide-copy .hero-slide-title{font-size:18px}
  .hero-concept .hero-shade{background:linear-gradient(0deg,rgba(250,250,250,.98),rgba(250,250,250,.78) 45%,rgba(250,250,250,.1) 88%)}
  .intro{grid-template-columns:1fr;gap:0;padding-block:100px 115px}
  .intro h2{font-size:clamp(60px,15vw,105px);max-width:100%;margin:24px 0 26px}
  .intro>div:last-child{padding-top:20px}
  .intro-strapline{font-size:18px!important}
  .section-heading h2{font-size:clamp(51px,13vw,90px)}
  .category-section{padding-bottom:110px}
  .category-list{margin-top:43px}
  .category-list a{grid-template-columns:32px minmax(0,1fr) 20px;column-gap:8px;padding:21px 0}
  .category-list strong{font-size:clamp(29px,9vw,48px)}
  .category-list small{grid-column:2;grid-row:2}
  .feature-section,.gallery-feature,.team-section{padding-block:95px}
  .card-grid,.gallery-grid,.team-grid{margin-top:42px;gap:40px}
  .service-card>img,.card-art{aspect-ratio:4/3.8}
  .visit-strip{padding:80px 20px}
  .site-footer{grid-template-columns:1fr;padding:75px 20px 24px;gap:35px}
  .site-footer>div:nth-child(2){grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px}
  .footer-wordmark{font-size:clamp(73px,25vw,170px)}
  .page-hero{padding-block:98px 80px}
  .page-hero h1,.about-hero h1{font-size:clamp(69px,18vw,126px);margin:21px 0 26px}
  .page-hero .page-hero-lede{font-size:24px}
  .about-body{padding-block:65px 105px}
  .contact-section{padding-block:70px 110px}
  .services-overview{margin-top:55px}
  .services-overview>div{display:grid;grid-template-columns:1fr;gap:7px;min-height:0;padding:27px 0}
  .services-overview h2{font-size:clamp(38px,11vw,58px)}
  .services-overview p{margin-top:5px}
  .english-services{padding-block:85px}
}
@media(max-width:390px){
  .site-header{padding-inline:14px}
  .site-header .header-actions{gap:8px}
  .site-header .header-book{font-size:11px;gap:8px}
  .hero-slide-copy{left:16px;right:16px}
  .hero-slide-copy h1{font-size:clamp(55px,17vw,68px)}
  body:not(.admin-body) .section-wrap{width:calc(100% - 32px)}
  .page-hero h1,.about-hero h1{font-size:clamp(58px,18vw,70px)}
  .footer-wordmark{font-size:24vw}
}
@media(max-width:740px),(hover:none),(pointer:coarse){
  body.show-ko .site-header a:is(:hover,:focus-visible) .category-label>[lang=en],
  body.show-ko .site-footer a:is(:hover,:focus-visible) .category-label>[lang=en]{opacity:1;visibility:visible}
}

/* A photograph-free gate and a first page led by the actual salon team. */
.site-intro-typographic{background:linear-gradient(160deg,#f4f4f4 0%,#fff 48%,#f8f8f8 100%)}
.site-intro-typographic .site-intro-top{background:#eaeaea}
.editorial-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);min-height:clamp(680px,calc(100svh - 72px),900px);background:#f5f5f5}
.editorial-hero-copy{display:flex;flex-direction:column;align-items:flex-start;padding:clamp(85px,9vw,150px) clamp(34px,5vw,96px) 48px 4vw}
.editorial-hero-copy .eyebrow{color:#626262}
.editorial-hero-copy h1{max-width:750px;font-size:clamp(56px,5.7vw,112px);font-weight:500;line-height:1.08;letter-spacing:-.085em;margin:40px 0 34px;text-wrap:balance}
.editorial-hero-copy h1 [lang=en]{font-family:var(--latin),var(--font)}
.editorial-hero-copy>p{max-width:570px;font-size:clamp(15px,1.2vw,19px);line-height:1.85;color:#515151}
.editorial-hero-copy>.text-link{margin-top:45px}
.editorial-hero-note{display:flex;justify-content:space-between;gap:20px;width:100%;margin-top:auto;padding-top:90px;border-bottom:1px solid #a6a6a6;padding-bottom:16px;font:600 10px/1.5 var(--latin),var(--font);letter-spacing:.13em;color:#646464}
.editorial-hero-people{display:grid;grid-template-columns:1fr 1fr;gap:14px;min-width:0;padding:54px 4vw 54px 0}
.editorial-portrait{position:relative;display:block;min-width:0;overflow:hidden;background:#e3e3e3}
.editorial-portrait:first-child{margin-bottom:80px}
.editorial-portrait:nth-child(2){margin-top:80px}
.editorial-portrait img{width:100%;height:100%;object-fit:cover;object-position:center 25%;filter:grayscale(.15);transition:transform .7s ease,filter .4s ease}
.editorial-portrait:is(:hover,:focus-visible) img{transform:scale(1.025);filter:grayscale(0)}
.editorial-portrait:after{content:"";position:absolute;inset:60% 0 0;background:linear-gradient(0deg,rgba(0,0,0,.48),transparent);pointer-events:none}
.editorial-portrait>span{position:absolute;bottom:22px;left:20px;right:20px;z-index:1;color:#fff}
.editorial-portrait small{display:block;font-size:10px;letter-spacing:.1em}
.editorial-portrait strong{display:block;font-size:clamp(20px,2vw,29px);font-weight:500;letter-spacing:-.04em}
.editorial-hero-wordmark{grid-column:1/-1;display:grid;place-content:center;background:#e8e8e8;color:#b8b8b8;font:500 clamp(80px,11vw,190px)/.8 var(--latin);letter-spacing:-.08em;text-align:center}
.editorial-hero-wordmark small{font-size:14px;letter-spacing:.4em;margin-top:25px}
.service-card-text{border-top:1px solid #8a8a8a!important;min-height:320px}
.service-card-text .card-body{min-height:320px;padding-top:24px}
.service-card-text .card-body strong{max-width:390px;margin-top:45px;font-size:clamp(28px,2.4vw,42px);line-height:1.25}
.service-card-text .card-body>span{max-width:370px}
.service-card-text:is(:hover,:focus-visible){transform:none;border-top-color:#222!important}
.services-hero{padding-block:clamp(65px,7vw,110px) clamp(45px,5vw,75px)}
.gallery-hero{padding-block:clamp(65px,7vw,110px) clamp(45px,5vw,75px)}
.people-hero{padding-block:clamp(65px,7vw,110px) clamp(45px,5vw,75px)}
.people-hero+.team-directory{padding-top:40px}
.about-hero{padding-block:clamp(65px,7vw,110px) clamp(45px,5vw,75px)}
.about-hero+.about-body{padding-top:55px}
.services-hero h1{margin:20px 0 22px}
.services-hero+.service-directory .directory-section:first-child{padding-top:54px}
.detail-page:not(:has(.detail-image)){padding-top:32px}
.detail-page:not(:has(.detail-image)) .detail-layout{padding-top:28px}
.about-portrait{position:relative;display:block}
.about-portrait img{object-position:center 22%}
.about-portrait:after{content:"";position:absolute;inset:65% 0 0;background:linear-gradient(0deg,rgba(0,0,0,.4),transparent);pointer-events:none}
.about-portrait span{position:absolute;bottom:24px;left:28px;z-index:1;color:#fff;font-size:13px;font-weight:600}
.about-art-type{display:flex;flex-direction:column;align-items:center;justify-content:center;font:500 clamp(65px,9vw,165px)/1 var(--latin);letter-spacing:-.085em;color:#aaa}
.about-art-type small{font-size:14px;letter-spacing:.35em}
.gallery-awaiting{display:grid;grid-template-columns:1fr 1fr;column-gap:8vw;row-gap:20px;padding:85px 0 140px;border-top:1px solid #a8a8a8}
.gallery-awaiting .eyebrow{grid-column:1/-1}
.gallery-awaiting h2{font-size:clamp(36px,4.7vw,76px);font-weight:500;line-height:1.2;letter-spacing:-.07em;margin:10px 0}
.gallery-awaiting p{max-width:570px;color:#666;font-size:16px}
.gallery-awaiting>div{grid-column:2;display:flex;gap:38px;align-items:start;margin-top:18px}
@media(max-width:740px){
  .editorial-hero{grid-template-columns:1fr;min-height:0}
  .editorial-hero-copy{padding:48px 20px 30px}
  .editorial-hero-copy h1{font-size:clamp(48px,10vw,72px);margin:28px 0 25px}
  .editorial-hero-copy>p{font-size:15px}
  .editorial-hero-copy>.text-link{margin-top:28px}
  .editorial-hero-note{padding-top:38px;font-size:9px}
  .editorial-hero-people{height:430px;padding:0 20px 30px;gap:9px}
  .editorial-portrait:first-child{margin-bottom:35px}
  .editorial-portrait:nth-child(2){margin-top:35px}
  .editorial-portrait>span{left:12px;right:12px;bottom:12px}
  .editorial-portrait small{font-size:8px}
  .editorial-portrait strong{font-size:18px}
  .service-card-text,.service-card-text .card-body{min-height:260px}
  .service-card-text .card-body strong{margin-top:27px}
  .services-hero{padding-block:58px 45px}
  .gallery-hero{padding-block:58px 45px}
  .people-hero,.about-hero{padding-block:58px 45px}
  .people-hero+.team-directory{padding-top:30px}
  .about-hero+.about-body{padding-top:38px}
  .services-hero+.service-directory .directory-section:first-child{padding-top:38px}
  .gallery-awaiting{grid-template-columns:1fr;padding:58px 0 100px}
  .gallery-awaiting .eyebrow,.gallery-awaiting>div{grid-column:1}
  .gallery-awaiting>div{gap:22px;flex-wrap:wrap}
}

.service-price{display:block;margin-top:12px;font-family:var(--latin),var(--font);font-size:.86rem;font-weight:600;letter-spacing:.02em;color:var(--forest)}
.detail-top .service-price{margin-top:18px;font-size:.95rem}
.contact-map{padding-top:0}
.contact-map iframe{display:block;width:100%;height:clamp(280px,42vw,460px);border:1px solid var(--line);filter:grayscale(1) contrast(1.05)}
.upload-status{margin:12px 0 0;font-size:.9rem;color:var(--forest)}

/* Mobile polish (2026-09-29 audit) */
.back-link{display:inline-flex;align-items:center;min-height:44px}
.desktop-nav a{display:inline-flex;align-items:center;min-height:44px}
.site-footer a[href^="tel:"],.contact-info dd a[href^="tel:"]{display:inline-block;padding:12px 0;margin:-12px 0}
.editorial-portrait small,.editorial-hero-note{font-size:11px}
.eyebrow:lang(ko),.eyebrow [lang=ko]{letter-spacing:.02em;font-size:11px}
.site-intro-message{flex:0 0 auto}
.site-intro-choices{margin-top:auto}
@media(max-width:1024px){
  .editorial-hero{grid-template-columns:1fr;min-height:0}
  .editorial-hero-people{padding:0 20px 30px;aspect-ratio:4/3;height:auto}
}
@media(max-width:740px){
  .site-header{position:sticky;top:0}
  html:has(.mobile-menu[open]){overflow:hidden}
  .contact-art{display:none}
  .service-card-text,.service-card-text .card-body{min-height:0}
  .service-card-text .card-body strong{margin-top:24px}
  .team-section .team-grid{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:78%;grid-auto-rows:auto;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px;max-width:100%}
  .team-section .team-card{scroll-snap-align:start}
}
.english-fields>summary{cursor:pointer;font-weight:600;font-size:1.05rem;padding:6px 0;list-style-position:inside}
.english-fields>summary small{font-weight:400;color:var(--muted)}
.english-fields[open]>summary{margin-bottom:12px}
@media(max-width:740px){
  .profile-heading{position:static}
  .profile-actions{width:100%;grid-template-columns:1fr 1fr}
  .profile-actions a:first-child{grid-column:1/-1}
}
/* Admin readability: larger labels and inputs for everyday use on phone and PC */
.admin-body .field{font-size:14px}
.admin-body .field :is(input:not([type=checkbox]):not([type=file]),select,textarea){font-size:16px}
.admin-body .form-hint,.admin-body .visit-settings>p{font-size:14px}
.quick-actions{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;margin-top:18px}
.quick-actions a{justify-content:center;min-height:48px}

/* Intro: hair artwork, swipe-to-enter hint */
.site-intro-hair{position:absolute;inset:0;z-index:1;width:100%;height:100%;pointer-events:none;-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 23%,rgba(0,0,0,.75) 39%,rgba(0,0,0,.22) 56%,transparent 74%);mask-image:linear-gradient(to bottom,#000 0%,#000 23%,rgba(0,0,0,.75) 39%,rgba(0,0,0,.22) 56%,transparent 74%)}
.site-intro-copy{z-index:2;overflow:hidden;transition:opacity .22s ease}
.site-intro.is-leaving{transform:none;pointer-events:auto;animation:intro-screen-out 2.4s linear both}
.site-intro.is-leaving .site-intro-copy{opacity:0}
.site-intro-reveal{position:absolute;inset:0;z-index:3;display:grid;place-items:center;pointer-events:none;color:#4a4a4a;opacity:0}
.site-intro-reveal .logo{height:clamp(150px,30vw,420px)}
.site-intro.is-leaving .site-intro-reveal{animation:intro-logo-reveal 2.4s linear both}
@keyframes intro-logo-reveal{0%,41.6%{opacity:0;transform:scale(.88);filter:blur(7px)}75%{opacity:1;transform:scale(1);filter:blur(0)}100%{opacity:0;transform:scale(1.09);filter:blur(0)}}
@keyframes intro-screen-out{0%,75%{opacity:1}100%{opacity:0}}
@media(min-width:741px){.site-intro-message{width:fit-content;max-width:420px;min-height:0;margin-top:clamp(38px,7vh,100px);padding:8px 12px;background:rgba(255,255,255,.88)}}
@media(max-width:740px){
  .site-intro-reveal .logo{height:min(46vw,28vh)}
  .site-intro-message{width:fit-content;max-width:100%;min-height:0;margin-top:clamp(35px,6vh,50px);padding:8px 12px;background:rgba(255,255,255,.88)}
}
@media(max-height:520px){.site-intro-copy{overflow:auto}}
.site-intro-hint{display:flex;flex-direction:column;align-items:center;gap:10px;margin:0 0 clamp(14px,2.5vh,28px);font:600 11px/1 var(--latin),var(--font);letter-spacing:.14em;color:#6a6a6a}
.site-intro-hint span{width:1px;height:34px;background:linear-gradient(#242424,transparent);animation:intro-hint 1.8s ease-in-out infinite;transform-origin:top}
@keyframes intro-hint{0%{transform:scaleY(0);opacity:0}40%{transform:scaleY(1);opacity:1}100%{transform:scaleY(1) translateY(12px);opacity:0}}
@media(prefers-reduced-motion:reduce){.site-intro-hint span{animation:none}}

/* Home hero: up to four people */
.editorial-hero-people.is-many{grid-template-rows:1fr 1fr;gap:14px}
.editorial-hero-people.is-many .editorial-portrait{margin:0}
.editorial-hero-people.is-many .editorial-portrait:nth-child(odd){margin-bottom:40px}
.editorial-hero-people.is-many .editorial-portrait:nth-child(even){margin-top:40px}
@media(max-width:1024px){.editorial-hero-people.is-many{aspect-ratio:auto}.editorial-hero-people.is-many .editorial-portrait{aspect-ratio:4/5}}
@media(max-width:740px){
  .editorial-hero-people.is-many{display:flex;gap:10px;height:auto;aspect-ratio:auto;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:16px}
  .editorial-hero-people.is-many .editorial-portrait{flex:0 0 58%;aspect-ratio:3/4;margin:0!important;scroll-snap-align:start}
}
.site-intro-message{text-shadow:0 0 12px #fff,0 0 4px #fff}
.site-intro-choice{text-shadow:0 0 10px #fff,0 0 3px #fff}
@media(min-width:1025px){
  .editorial-hero-people.is-many{height:clamp(680px,calc(100svh - 72px),900px);grid-template-rows:repeat(2,minmax(0,1fr));padding-block:40px}
  .editorial-hero-people.is-many .editorial-portrait:nth-child(odd){margin-bottom:28px}
  .editorial-hero-people.is-many .editorial-portrait:nth-child(even){margin-top:28px}
}
@media(max-width:740px){
  .editorial-hero-people.is-many .editorial-portrait{flex-basis:44%}
  .editorial-hero-people.is-many,.team-section .team-grid{scrollbar-width:none}
  .editorial-hero-people.is-many::-webkit-scrollbar,.team-section .team-grid::-webkit-scrollbar{display:none}
}
@media(min-width:741px) and (max-width:1024px){
  .editorial-hero-people.is-many{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:auto;gap:10px}
  .editorial-hero-people.is-many .editorial-portrait{margin:0!important;aspect-ratio:3/4}
}

/* Wide salon slider: crossfade, slow zoom, progress line */
.hero-slide{display:block;opacity:0;visibility:hidden;transition:opacity 1.1s ease,visibility 0s 1.1s}
.hero-slide.is-active{opacity:1;visibility:visible;transition:opacity 1.1s ease}
.hero-slide>img{width:100%;height:100%;object-fit:cover;transform:scale(1.001)}
.hero-slide.is-active>img{animation:heroZoom 4s ease-out both}
@keyframes heroZoom{from{transform:scale(1.08)}to{transform:scale(1.001)}}
.hero-progress{position:absolute;left:4.5vw;right:calc(4.5vw + 150px);bottom:48px;height:1px;background:rgba(255,255,255,.3);z-index:2;overflow:hidden}
.hero-progress span{display:block;height:100%;background:#fff;transform:scaleX(0);transform-origin:left}
.hero-concept .hero-progress{background:rgba(0,0,0,.15)}.hero-concept .hero-progress span{background:#222}
@media(max-width:740px){.hero-progress{left:20px;right:130px;bottom:34px}}
@media(prefers-reduced-motion:reduce){.hero-slide,.hero-slide.is-active{transition:none}.hero-slide.is-active>img{animation:none}}

/* ---- Official HWAON THE ROOM logo (vector, masked so it takes the text colour) ---- */
.logo{display:inline-block;flex:none;height:56px;aspect-ratio:1252/948;background:currentColor;-webkit-mask:url(/assets/logo.svg) center/contain no-repeat;mask:url(/assets/logo.svg) center/contain no-repeat}
.logo-mark{aspect-ratio:1252/704;-webkit-mask-image:url(/assets/logo-mark.svg);mask-image:url(/assets/logo-mark.svg)}
.brand{color:#4a4a4a;letter-spacing:0}
.site-header .brand .logo{height:60px;margin:0}
.footer-brand .logo{height:84px;margin:0}
.footer-wordmark{display:flex;justify-content:center;color:#d9d9d9;font-size:0;padding-block:24px}
.footer-wordmark .logo-mark{height:clamp(120px,22vw,340px)}
.site-intro-brand{display:flex;justify-content:center}
.site-intro-brand h2{align-items:center;margin:0;color:#4a4a4a}
.site-intro-brand .logo{height:clamp(150px,30vh,330px)}
.hero-slide-copy h1{font-size:0;line-height:0;margin:14px 0 26px;letter-spacing:0}
.hero-slide-copy h1 .logo{height:clamp(130px,17vw,250px)}
.contact-art .logo{height:170px}
@media(max-width:740px){
  .site-header .brand .logo{height:50px}
  .footer-brand .logo{height:72px}
  .site-intro-brand .logo{height:min(34vw,26vh)}
  .hero-slide-copy h1 .logo{height:118px}
}
/* Latin display type follows the logo: Cinzel (Trajan style); Hangul falls back to Noto Serif KR */
:is(.page-hero h1,.section-heading h2,.directory-heading h2,.services-overview h2,.intro h2,.directory-empty h2,.desktop-nav a,.eyebrow,.site-intro-top,.site-intro-choice .category-label){letter-spacing:.04em}
:is(.page-hero h1,.section-heading h2,.directory-heading h2,.services-overview h2,.intro h2,.directory-empty h2){font-weight:500}
.detail-top h1,.profile-heading h1,.about-body h2,.contact-info h2,.visit-guide h3,.service-content-block h2{font-family:var(--latin);font-weight:500;letter-spacing:-.01em}
.page-hero h1{font-size:clamp(46px,7.5vw,124px);line-height:1.05}

/* Style gallery: filters, designer credit, tags */
.gallery-filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 34px}
.gallery-filters button{min-height:44px;padding:0 18px;border:1px solid var(--line);background:#fff;color:var(--ink);font:500 14px var(--font);cursor:pointer;border-radius:999px}
.gallery-filters button span{color:var(--muted);font-size:12px;margin-left:4px}
.gallery-filters button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}
.gallery-filters button[aria-pressed=true] span{color:#cfcfcf}
.gallery-card[hidden]{display:none}
.gallery-image-link{display:block}
.gallery-card strong a{color:inherit}
.gallery-card strong a:hover{text-decoration:underline;text-underline-offset:5px}
.gallery-detail .detail-image img{max-height:900px;object-fit:contain;background:#f4f4f4}
.gallery-detail .detail-main{min-width:0;overflow-wrap:anywhere}
.gallery-designer{display:block;width:max-content;margin-top:6px;font-size:13px;color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.gallery-tags{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 0;padding:0;list-style:none}
.gallery-tags li{padding:3px 9px;border:1px solid var(--line);border-radius:999px;font-size:12px;color:#555;background:#fafafa}
.admin-thumb-row{display:grid!important;grid-template-columns:56px 1fr auto;align-items:center;gap:14px}
.admin-thumb-row img{width:56px;height:70px;object-fit:cover;background:#eee}
@media(max-width:740px){.gallery-filters{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.gallery-filters button{flex:none}}

/* Notice bar, price board, amenities, review highlights */
.notice-bar{margin:0;padding:10px 20px;background:#2f2f2f;color:#f3f3f3;text-align:center;font-size:13px;letter-spacing:.01em}
.price-board{padding-block:80px 110px;border-top:1px solid var(--line)}
.price-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:0 48px;margin:36px 0 0}
.price-list>div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:18px 0;border-bottom:1px solid var(--line)}
.price-list dt{font-size:17px}.price-list dt small{display:block;font:500 11px var(--latin);letter-spacing:.12em;color:var(--muted);margin-bottom:4px}
.price-list dd{margin:0;font:500 17px var(--latin);white-space:nowrap}
.price-note{margin-top:18px;color:var(--muted);font-size:14px}
.amenities-wrap{padding-block:0 60px}
.amenities{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:32px;padding-top:40px;border-top:1px solid var(--line)}
.amenities ul{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 0;padding:0;list-style:none}
.amenities li{padding:6px 12px;border:1px solid var(--line);border-radius:999px;font-size:13px;background:#fff}
.review-section{padding-block:110px;border-top:1px solid var(--line)}
.review-total{margin-top:10px;color:var(--muted)}
.review-keywords{display:grid;gap:14px;margin:40px 0 0;padding:0;list-style:none;max-width:860px}
.review-keywords li{position:relative;display:flex;justify-content:space-between;gap:16px;padding:16px 18px;background:#f4f4f4;overflow:hidden}
.review-keywords li i{position:absolute;inset:0 auto 0 0;width:var(--w);background:#e3e3e3;z-index:0}
.review-keywords span,.review-keywords b{position:relative;z-index:1}
.review-keywords span{font:500 16px var(--latin)}.review-keywords b{font:500 15px var(--latin);white-space:nowrap}
.review-source{margin-top:18px;font-size:13px;color:var(--muted)}.review-source a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
@media(max-width:740px){.price-board,.review-section{padding-block:64px}.review-keywords span{font-size:14px}}

.site-sound-toggle{position:fixed;top:88px;right:4vw;z-index:19;display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:40px;padding:0 14px;border:1px solid #d2d2d2;background:rgba(255,255,255,.9);color:#4a4a4a;font:600 10px/1 var(--latin),var(--font);letter-spacing:.13em;cursor:pointer;backdrop-filter:blur(8px)}
.site-sound-toggle span:first-child{font-size:16px;line-height:1}
.site-sound-toggle:hover,.site-sound-toggle:focus-visible{background:#fff;border-color:#888}
.site-sound-toggle:focus-visible{outline:2px solid #4a4a4a;outline-offset:3px}
.site-sound-toggle[aria-pressed=true]{border-color:#4a4a4a}
.site-sound-toggle:disabled{cursor:default;opacity:.6}
@media(max-width:740px){.site-sound-toggle{top:80px;right:20px;min-height:44px}}

/* Admin: one row pattern, status badges, filters, to-do list, settings contents and sticky save */
.admin-header nav a[aria-current=page]{text-decoration:underline;text-underline-offset:6px}
.admin-list>.admin-row{display:flex;align-items:center;justify-content:space-between;gap:20px}
.admin-list>.admin-row[hidden]{display:none}
.row-main{display:flex;align-items:center;gap:16px;min-width:0}
.row-main>img,.row-thumb-empty{flex:none;width:56px;height:70px;object-fit:cover;background:#e9e9e9}
.row-main>img.row-wide{width:104px;height:64px}
.row-main strong{display:block;overflow-wrap:anywhere}
.row-actions{display:flex;gap:18px;flex:none}
.row-actions a{padding:10px 0}
.badge{display:inline-block;margin:7px 6px 0 0;padding:2px 8px;border:1px solid var(--line);font-size:11px;color:var(--muted);background:#fff}
.badge-live{border-color:var(--ink);color:var(--ink)}
.badge-draft{background:var(--mist)}
.badge-warn{border-style:dashed;border-color:#8a8a8a;color:var(--ink)}
.admin-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 16px;margin-top:34px}
.admin-toolbar label{display:grid;gap:6px;font-size:12px;color:var(--muted)}
.admin-toolbar input,.admin-toolbar select{min-height:44px;padding:0 12px;border:1px solid var(--line);background:#fff;font:inherit;font-size:14px;color:var(--ink)}
.admin-toolbar input{min-width:220px}
.admin-toolbar p{margin:0 0 12px auto;font-size:12px;color:var(--muted)}
.todo-list{list-style:none;margin:18px 0 0;padding:0;border-top:1px solid var(--line)}
.todo-list a{display:grid;grid-template-columns:56px 1fr auto;align-items:center;gap:14px;padding:16px 4px;border-bottom:1px solid var(--line);font-size:14px}
.todo-list b{font:500 28px var(--latin),var(--font)}
.todo-list a:hover span{text-decoration:underline}
.admin-toc{display:flex;flex-wrap:wrap;gap:8px;margin:-8px 0 8px}
.admin-toc a{padding:9px 14px;border:1px solid var(--line);background:#fff;font-size:12px}
.admin-toc a:hover{border-color:var(--ink)}
.form-section{margin:34px 0 4px;font-size:22px;font-weight:500}
[id^=settings-],#music-heading{scroll-margin-top:24px}
.sticky-actions{position:sticky;bottom:0;z-index:5;margin:28px -8px 0;padding:14px 8px;background:rgba(255,255,255,.96);border-top:1px solid var(--line)}
.sticky-actions span{font-size:12px;color:var(--muted)}
.bulk-upload{margin-top:28px}
.bulk-upload summary{cursor:pointer;list-style:none}
.bulk-upload summary::-webkit-details-marker{display:none}
.bulk-upload summary h2{display:inline-block;margin:0 10px 6px 0}
.bulk-upload summary h2::after{content:" +";font-weight:400}
.bulk-upload[open] summary h2::after{content:" −"}
.bulk-upload summary span{display:block;font-size:14px;color:var(--muted)}
.bulk-progress{margin:18px 0 0;padding-left:20px;font-size:13px;color:var(--muted)}
.bulk-progress li{padding:4px 0}
.bulk-progress .is-done{color:var(--ink)}
.bulk-progress .is-failed{color:#a4483e}
.bulk-progress .bulk-summary{list-style:none;margin:10px 0 0 -20px;color:var(--ink);font-weight:600}
.admin-message.is-success{background:#fff;border:1px solid var(--ink);color:var(--ink)!important}
@media(max-width:740px){
  .admin-list>.admin-row{align-items:flex-start;flex-direction:column;gap:6px}
  .row-actions{padding-left:72px}
  .admin-toolbar input{min-width:0;width:100%}
  .admin-toolbar label{flex:1 1 140px}
  .admin-toolbar p{margin:0}
  .todo-list a{grid-template-columns:44px 1fr auto}
  .sticky-actions span{display:none}
}
/* Desktop scale: at 100% browser zoom the layout read too large; shrink everything except the first-visit intro. */
@media (min-width:1024px){body:not(.admin-body)>:is(.site-header,main,.site-footer){zoom:.9}}
