:root {
  --cream:#f7f3e8; --paper:#fffdfa; --ink:#29221b; --muted:#60564c;
  --brown:#513427; --rust:#97452f; --line:#d9cdbc;
  --font:"Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  --small:.875rem; --body:1rem; --card:1.25rem; --header-height:88px;
  --section:clamp(1.75rem,1.45rem + 1vw,2.75rem);
  --hero:clamp(1.875rem,1.4rem + 1.9vw,3.5rem);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font:var(--body)/1.7 var(--font);word-break:keep-all;overflow-wrap:anywhere}
a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}p,h1,h2,h3,figure,dl,dd{margin:0}
img{display:block;width:100%;height:auto}
h1,h2,h3{line-height:1.3;letter-spacing:-.04em}
h1{font-size:var(--hero);font-weight:750}h2{font-size:var(--section);font-weight:700}h3{font-size:var(--card);font-weight:700}
.wrap{width:min(1180px,calc(100% - 96px));margin-inline:auto}
.header-inner,.footer-inner{display:flex;align-items:center;gap:clamp(24px,7vw,100px);min-height:88px}
.header{position:relative;z-index:1}
.header-inner{min-height:var(--header-height);gap:clamp(36px,11vw,150px)}
.menu-toggle,.mobile-booking{display:none}
.home-page .header{position:absolute;inset:0 0 auto;color:#fff}
.home-page .header .mark{color:inherit}
.home-page .header :focus-visible,.home-hero :focus-visible{outline-color:white}
.brand{display:inline-flex;align-items:center;gap:8px;font-size:1.6rem;font-weight:800;letter-spacing:-.075em;flex:none}
.mark{color:var(--rust);font-size:1.2em;font-weight:600;line-height:1}
nav{display:flex;align-items:center;gap:clamp(14px,2.6vw,35px);flex-wrap:wrap}
nav a{display:inline-flex;align-items:center;min-height:44px;font-weight:550;font-size:var(--body)}
nav a[aria-current],nav a:hover,.text-link{text-decoration:underline;text-underline-offset:5px}
.skip{position:absolute;top:8px;left:8px;transform:translateY(-160%);padding:8px;background:white;z-index:2}.skip:focus{transform:none}
.editorial{width:min(790px,calc(100% - 48px));margin-inline:auto}
.home-hero,.space-hero{position:relative;isolation:isolate;color:white;background:#312317}
.home-hero{display:grid;align-items:end;min-height:max(26rem,100svh);padding-block:calc(var(--header-height) + 1rem) clamp(4.5rem,11svh,7rem)}
.home-photo,.space-hero img,.home-hero::after,.space-hero::after{position:absolute;inset:0;width:100%;height:100%;z-index:-1;object-fit:cover;object-position:center 52%}
.home-hero::after{content:"";background:linear-gradient(180deg,rgba(19,13,9,.78),transparent 27%),linear-gradient(0deg,rgba(19,13,9,.85),rgba(19,13,9,.20) 34%,transparent 62%)}
.home-caption{text-align:right}
.home-caption p{font-size:var(--small);font-weight:550}
.home-caption h1{font-size:clamp(1.75rem,1.42rem + 1.3vw,2.75rem);font-weight:650;margin:6px 0}
.home-booking,.home-next{display:inline-flex;align-items:center;justify-content:center;min-height:44px}
.home-booking{gap:8px;text-decoration:underline;text-underline-offset:6px}
.home-next{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);min-width:44px;font-size:1.5rem}
.space-media{container-type:inline-size}
.space-media:not(.home-gallery){width:62%;margin:clamp(42px,7vw,92px) auto 0}
.space-hero{display:grid;place-items:center;min-height:max(190px,38cqw);padding:24px;text-align:center}
.space-hero::after{content:"";background:rgba(22,16,11,.57)}
.space-hero h1{font-size:var(--section);font-weight:650}
.space-hero p{margin-top:10px;font-weight:500}
.gallery{display:grid;grid-template-columns:3fr 1.8fr 3fr;gap:8px;margin-top:8px}
.gallery img{width:100%;height:clamp(105px,30cqw,560px);object-fit:cover}
.gallery:focus{outline:none}
figcaption{font-size:var(--small);color:var(--muted);margin-top:4px}.gallery figcaption{grid-column:1/-1;text-align:right;margin:0 18px 0 0}
.space-story{text-align:center;padding:62px 0}
.space-story p{max-width:36rem;margin:17px auto 0;color:var(--muted)}
.text-link{display:inline-flex;align-items:center;min-height:44px;margin-top:12px;font-weight:650;color:var(--brown)}
.editorial-section{padding:40px 0;border-top:1px solid var(--line)}
.editorial-section>p{margin-top:8px;color:var(--muted)}
.programs{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-top:22px}
.programs p,.about-intro p{color:var(--muted);margin-top:10px}
.visit{margin:18px 0 24px}
.visit div{display:grid;grid-template-columns:100px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.visit dt{font-weight:700}.visit dd{color:var(--muted)}
.visit-section{padding-bottom:58px}
.about-intro{display:grid;grid-template-columns:1.55fr 1fr;gap:45px;align-items:center;padding:76px 0 22px}
.about-intro h1{font-size:var(--section);margin-bottom:19px}.about-intro img{aspect-ratio:1;object-fit:cover}
.form-page{width:min(960px,calc(100% - 48px));margin-inline:auto;padding:57px 0 80px;min-height:68vh}
.form-intro{text-align:center;margin:0 0 52px}.form-intro h1,.admin h1{font-size:var(--section)}.form-intro p{margin:14px 0 0;color:var(--muted)}
.panel{display:grid;gap:23px;min-width:0}
label,legend{font-weight:650}small,.scale,.draft,.footer-note,.footer-links,.status{font-size:var(--small);color:var(--muted)}
input:not([type=checkbox]):not([type=radio]),select,textarea{display:block;width:100%;max-width:100%;min-width:0;margin-top:6px;padding:10px 13px;min-height:44px;border:1px solid #c8bcac;border-radius:4px;background:var(--paper);color:var(--ink);font-size:var(--body);font-weight:400}
textarea{resize:vertical}
.consent{border-top:1px solid var(--line);padding-top:20px}.consent h2{font-size:var(--card)}.consent p{margin:7px 0 10px;color:var(--muted)}
.check{display:flex;align-items:center;gap:9px;min-height:44px;font-size:var(--small);font-weight:550}.check input{margin:0;width:18px;height:18px;accent-color:var(--brown);flex:none}
.check:has(input:disabled){display:none}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:9px 22px;border:1px solid transparent;border-radius:4px;background:var(--brown);color:#fffaf2;font-weight:700;cursor:pointer}
.button:hover{background:#39261e}.button:disabled{opacity:.65;cursor:wait}
.panel>.button{justify-self:start}.reservation .panel>.button{justify-self:center;min-width:150px}
.status:empty{display:none}.status[data-state=success]{color:#305e3a}.status[data-state=error]{color:#972d27}
.survey{max-width:660px}
fieldset{border:0;padding:0;margin:0}.ratings{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:8px}
.ratings label{position:relative;cursor:pointer}.ratings input{position:absolute;inset:0;opacity:0;cursor:pointer;margin:0}.ratings span{display:grid;place-items:center;border:1px solid #bfae9b;border-radius:4px;height:44px;background:var(--paper)}.ratings input:checked+span{background:var(--brown);color:white}
.ratings input:focus-visible+span,:focus-visible{outline:2px solid var(--rust);outline-offset:3px}
.scale{display:flex;justify-content:space-between;margin-top:4px}
footer{border-top:1px solid var(--line)}.footer-inner{padding-block:20px;justify-content:space-between;gap:16px}.footer-note{white-space:pre-line}.footer-links{display:flex;flex-wrap:wrap;gap:10px 20px}.footer-links a{text-decoration:underline;text-underline-offset:3px}.footer-links a[hidden]{display:none}
.admin{max-width:850px}.admin h2{margin:32px 0 12px}.admin fieldset{display:grid;gap:12px}.admin legend{margin-bottom:9px}.admin-links{display:flex;flex-wrap:wrap;gap:12px 20px;margin-top:14px}.admin-links a{text-decoration:underline}.reservation-list{display:grid;gap:12px;list-style:none;padding:0}.reservation-list li{border:1px solid var(--line);padding:15px}.reservation-list p{margin:5px 0}.reservation-list button{margin-top:8px}
@media(max-width:700px){
  :root{--header-height:74px}
  .wrap{width:calc(100% - 36px)}.header-inner{gap:8px 18px;flex-wrap:wrap;padding-block:10px}.brand{font-size:1.35rem}nav{gap:12px}nav a{font-size:var(--small)}
  .header-inner:has(.menu-toggle:not([hidden])){display:grid;grid-template-columns:minmax(44px,1fr) auto minmax(44px,1fr);gap:6px}
  .header-inner>.brand{grid-column:2;grid-row:1;justify-self:center;min-width:0;text-align:center}
  .menu-toggle:not([hidden]),.mobile-booking{display:inline-flex;align-items:center;min-height:44px;color:inherit}
  .menu-toggle:not([hidden]){grid-column:1;grid-row:1;justify-self:start;justify-content:center;width:44px;padding:0;border:0;background:none;cursor:pointer}
  .menu-toggle span,.menu-toggle span::before,.menu-toggle span::after{width:20px;height:1.5px;background:currentColor}
  .menu-toggle span{position:relative}
  .menu-toggle span::before,.menu-toggle span::after{content:"";position:absolute;left:0}
  .menu-toggle span::before{top:-6px}
  .menu-toggle span::after{top:6px}
  .mobile-booking{display:none;grid-column:3;grid-row:1;justify-self:end;text-align:right;font-size:var(--small)}
  .menu-toggle:not([hidden])~.mobile-booking{display:inline-flex}
  .menu-toggle[aria-expanded="false"]:not([hidden])+nav{display:none}
  .menu-toggle:not([hidden])+nav{position:absolute;top:100%;inset-inline:0;display:grid;gap:0;padding:10px 18px 18px;background:var(--cream);color:var(--ink);border-bottom:1px solid var(--line)}
  .home-page .header nav :focus-visible{outline-color:var(--rust)}
  .home-caption{text-align:left}
  .home-photo{object-position:57% center}
  .home-hero::after{background:linear-gradient(180deg,rgba(19,13,9,.78),transparent 25%),linear-gradient(0deg,rgba(19,13,9,.88),rgba(19,13,9,.29) 40%,transparent 69%)}
  .space-media:not(.home-gallery){width:calc(100% - 36px);margin-top:30px}
  .editorial,.form-page{width:calc(100% - 36px)}.space-hero{padding:20px 12px}.gallery{gap:5px;margin-top:5px}.gallery img{height:clamp(105px,19vw,133px)}
  .space-story{padding-block:42px}.programs{grid-template-columns:1fr;gap:17px}.editorial-section{padding-block:30px}
  .form-page{padding:35px 0 52px}.form-intro{margin-bottom:30px}.panel{gap:16px}
  .about-intro{grid-template-columns:1fr;gap:20px;padding:36px 0 0}.about-intro img{max-height:340px}.footer-inner{align-items:flex-start;flex-direction:column}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
