/* Shared presentation for the hub, all place routes, and the Haechi story.
   Named containers follow the app panel width, including embedded gameland views. */
:is(.adventure-app,.adventure-place-app,.escape-app,.history-adventure-inline){
  --adv-navy:#143d4a;--adv-ink:#203b34;--adv-muted:#62736b;--adv-paper:#f7f6f2;--adv-line:#d9e2dc;
  --escape-ink:#203b34;--escape-focus:#143d4a;--escape-line:#d9e2dc;
  container:adventure / inline-size;color:var(--adv-ink);font-family:'Noto Sans KR',sans-serif;
}
body :is(.adventure-app,.adventure-place-app,.escape-app) :is(h1,h2,h3){font-family:inherit}
body:is(.history-adventure-page,.adventure-place-page,.escape-page){background:#f7f6f2}
body :is(.adventure-app,.adventure-place-app,.escape-app){width:min(100%,1120px);max-width:1120px;background:#f7f6f2;box-shadow:none}
body :is(.adventure-topbar,.adventure-place-topbar,.escape-topbar-inner){min-height:64px;padding:10px 20px;gap:12px;border-color:#d9e2dc}
body :is(.adventure-place-brand,.escape-brand){min-width:0;font-size:14px;line-height:1.4;color:#203b34}
body :is(.adventure-place-brand img,.escape-brand img){display:block;width:64px;height:28px;object-fit:contain;flex-shrink:0}
body :is(.adventure-place-back,.escape-back){width:42px;height:42px;border-radius:13px;border-color:#d9e2dc;background:#fff;color:#143d4a}
body :is(.adventure-review-link,.adventure-place-member,.adventure-account-menu-button){min-height:40px;border-radius:12px;color:#345b4e;font-size:12px}
body :is(.adventure-button,.haechi-primary,.escape-btn--primary){min-height:48px;border-radius:12px;box-shadow:none;background:#143d4a;border-color:#143d4a;color:#fff;font-family:inherit;font-size:15px;font-weight:800;text-decoration:none}
body .adventure-button.is-secondary{background:#fff;color:#345b4e;border:1px solid #d9e2dc}
body :is(.adventure-app,.adventure-place-app,.escape-app) :is(button,a,summary,input):focus-visible{outline:3px solid #83b6a7;outline-offset:3px}
body :is(.adventure-app,.adventure-place-app,.escape-app) :is(button,a):disabled{cursor:default;opacity:.55}
/* The two story entrances share the same image-to-copy ratio. */
body :is(.adventure-story-feature,.haechi-hero.story-cover){display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;gap:28px;margin:24px;padding:20px;border:1px solid #d9e2dc;border-radius:20px;background:#edf3ef;box-shadow:none}
body :is(.adventure-feature-art,.story-cover .haechi-photo-frame){display:block;min-width:0;padding:0;border:0;border-radius:14px;overflow:hidden;background:#dbe7e1}
body :is(.adventure-feature-art img,.story-cover .haechi-hero-art){display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:0}
body :is(.adventure-feature-copy,.story-cover .haechi-hero-copy){min-width:0;margin:0;padding:4px}
body :is(.adventure-feature-copy h1,.story-cover h1){margin:10px 0 14px;font-family:inherit;font-size:38px;font-weight:900;line-height:1.22;letter-spacing:-.04em;color:#203b34;word-break:keep-all;overflow-wrap:anywhere}
body :is(.adventure-feature-copy h1 span,.story-cover h1 span){color:inherit}
body :is(.haechi-overline,.adventure-feature-copy .adventure-feature-kicker){display:block;padding:0;margin:0 0 8px;background:none;color:#486d5d;font-size:12px;font-weight:800;line-height:1.6}
body :is(.haechi-tagline,.adventure-feature-copy>p:not(.adventure-feature-kicker)){font-size:15px;line-height:1.75;color:#536a60;margin:0 0 10px}
body :is(.haechi-role,.adventure-feature-role){font-size:12px;line-height:1.6;color:#62736b;margin:10px 0 18px}
body .adventure-feature-start{min-height:48px;border-radius:12px;background:#143d4a;box-shadow:none;transform:none}
body .haechi-prologue{background:transparent}
body :is(.haechi-invitation,.haechi-practical){margin:0 24px 16px;padding:0}
body .haechi-meeting{margin:0 24px 20px;max-width:none;padding:24px;border:1px solid #d9e2dc;border-radius:18px;background:#fff}
body .haechi-meeting h2{font-size:24px;color:#203b34}
body .haechi-meeting>p:not(.haechi-overline){font-size:15px;line-height:1.85}
body :is(.haechi-trial,.haechi-practical,.adventure-service-details,.adventure-home-preview,.adventure-route-details){border:1px solid #d9e2dc;border-radius:16px;background:#fff;overflow:hidden}
body :is(.haechi-trial,.haechi-practical)>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:16px 18px;border:0;color:#345b4e;font-size:14px;font-weight:800;cursor:pointer}
body .haechi-practical-copy{padding:0 18px 12px}
body .haechi-trial-label{float:none;white-space:nowrap}
body .adventure-hub-content{padding:0 24px 24px!important}
body .adventure-cover-grid{gap:18px;grid-template-columns:repeat(3,minmax(0,1fr))}
body .adventure-cover-grid .adventure-place-row{border:1px solid #d9e2dc;border-radius:18px;overflow:hidden;background:#fff}
body .adventure-cover-grid .adventure-place-media{border-radius:0;aspect-ratio:4/3}
body .adventure-cover-title{padding:18px}
body .adventure-cover-title strong{font-size:23px}
body .adventure-cover-grid .adventure-place-body{padding:16px}
body .adventure-cover-grid .adventure-place-action{display:flex;justify-content:space-between;min-height:44px;padding:10px 12px!important;border-radius:12px;background:#edf3ef!important;color:#345b4e!important}
body .adventure-progress-panel{padding:20px;border:1px solid #d9e2dc;border-radius:18px;background:#fff;box-shadow:none}
body .adventure-progress-heading h2{color:#203b34;font-size:22px}
body .adventure-progress-item{border-color:#d9e2dc;border-radius:14px;box-shadow:none}
/* Every place uses the same photo and introduction card; image credits stay visible. */
body .adventure-place-app .adventure-place-hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;min-height:0;margin:24px;padding:20px;gap:28px;border:1px solid #d9e2dc;border-radius:20px;background:#edf3ef;color:#203b34}
body .adventure-place-app .adventure-place-hero>img{position:static;display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:14px}
body .adventure-place-app .adventure-place-hero:after{display:none}
body .adventure-place-app .adventure-place-hero-copy{padding:4px;max-width:none;min-width:0}
body .adventure-place-app .adventure-place-hero-copy h1{font-size:34px;font-weight:800;line-height:1.25;letter-spacing:-.035em;word-break:keep-all;overflow-wrap:anywhere;color:#203b34}
body .adventure-place-app .adventure-place-hero-copy .adventure-city-kicker{color:#486d5d;font-size:12px}
body .adventure-place-app .adventure-place-hero-copy>p:not(.adventure-city-kicker){color:#536a60;font-size:14px;line-height:1.75}
body .adventure-place-app .adventure-place-photo-credit{color:#62736b;font-size:11px}
body .adventure-place-app .adventure-place-photo-credit a{color:inherit}
body .adventure-place-app .adventure-onsite-overview{margin:0 24px 20px;padding:22px;border:1px solid #d9e2dc;border-radius:18px;background:#fff}
body .adventure-entry-start{border-radius:16px;background:#edf3ef}
body .adventure-entry-start .adventure-mode-option{background:#143d4a;border-color:#143d4a;border-radius:12px;box-shadow:none}
body .adventure-place-app .adventure-place-play{max-width:800px;margin:auto;padding:24px}
body .adventure-place-app .adventure-place-stage{border:1px solid #d9e2dc;border-radius:18px;background:#fff;overflow:hidden;box-shadow:none}
body .adventure-place-app .adventure-place-progress-head h1{font-size:22px;line-height:1.4;color:#203b34}
body .adventure-place-app .adventure-place-progress{height:8px;border-radius:8px;background:#dde7e1}
body .adventure-place-app .adventure-place-progress span{background:#286d55}
body .adventure-place-app .adventure-onsite-checkpoint{background:#edf3ef;border-color:#d9e2dc}
body .adventure-place-app .adventure-stage-body{padding:22px}
body .adventure-place-app .adventure-stage-body h2{font-size:24px;line-height:1.4;color:#203b34}
body .adventure-place-app .adventure-stage-option{min-height:52px;border-radius:12px;font-size:14px}
body .adventure-place-app .adventure-place-gate-box{border-radius:18px;border-color:#d9e2dc;background:#fff;box-shadow:none}
body .escape-play{padding:0 24px 24px}
body .escape-play .escape-play-header{border:1px solid #d9e2dc;border-radius:16px;background:#edf3ef!important}
body .escape-play .escape-stage{border:1px solid #d9e2dc!important;border-radius:18px!important;background:#fff!important;overflow:hidden}
body .escape-play .escape-stage-title{font-family:inherit;font-size:24px!important;font-weight:800}
body .escape-play .escape-question .ssam-act{border-radius:14px;background:#edf3ef}
body :is(.adventure-footer,.adventure-place-footer,.escape-footer){display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:24px;padding:24px 20px max(28px,env(safe-area-inset-bottom));border-top:1px solid #d9e2dc;background:#fff;color:#62736b;text-align:center;font-size:11px;line-height:1.7}
.adventure-service-nav{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-bottom:8px}
.adventure-service-nav a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 14px;border:1px solid #d9e2dc;border-radius:12px;background:#f7f6f2;color:#345b4e;font-size:12px;font-weight:800;text-decoration:none}
@container adventure (max-width:700px){
  body :is(.adventure-story-feature,.haechi-hero.story-cover),body .adventure-place-app .adventure-place-hero{grid-template-columns:minmax(0,1fr);margin:16px;padding:14px;gap:18px;border-radius:18px}
  body :is(.adventure-feature-copy,.story-cover .haechi-hero-copy),body .adventure-place-app .adventure-place-hero-copy{padding:0 4px 4px}
  body :is(.adventure-feature-copy h1,.story-cover h1),body .adventure-place-app .adventure-place-hero-copy h1{font-size:30px;line-height:1.25}
  body :is(.adventure-feature-copy h1,.story-cover h1) br{display:none}
  body :is(.adventure-feature-art img,.story-cover .haechi-hero-art),body .adventure-place-app .adventure-place-hero>img{aspect-ratio:3/2;object-fit:cover}
  body :is(.haechi-invitation,.haechi-practical,.haechi-meeting){margin-left:16px;margin-right:16px}
  body .adventure-hub-content{padding:0 16px 24px!important}
  body .adventure-cover-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  body .adventure-cover-title{padding:12px}body .adventure-cover-title strong{font-size:20px}
  body .adventure-cover-grid .adventure-place-body{padding:12px}
  body .adventure-place-app .adventure-onsite-overview{margin:0 16px 16px;padding:16px}
  body .adventure-place-app .adventure-place-play{padding:20px 16px}
  body .adventure-place-app .adventure-onsite-checkpoint{background:#edf3ef;border-color:#d9e2dc}
body .adventure-place-app .adventure-stage-body{padding:18px 16px}
  body .adventure-place-app .adventure-stage-body h2{font-size:22px}
  body .escape-play{padding:0 16px 20px}
  body .adventure-place-app .adventure-onsite-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@container adventure (max-width:440px){
  body :is(.adventure-topbar,.adventure-place-topbar,.escape-topbar-inner){padding:10px 12px;gap:8px}
  body :is(.adventure-place-brand img,.escape-brand img){display:none}
  body .adventure-cover-grid{grid-template-columns:minmax(0,1fr)}
  body .adventure-cover-grid .adventure-place-media{aspect-ratio:3/2}
  body .adventure-cover-title strong{font-size:24px}
  body .adventure-header-actions{gap:6px;flex-wrap:wrap;justify-content:flex-end}
  body .adventure-brand-title strong{font-size:15px}
  body .adventure-feature-copy h1,body .story-cover h1{font-size:28px}
}
@media(prefers-reduced-motion:reduce){
  body :is(.adventure-app,.adventure-place-app,.escape-app) *,body :is(.adventure-app,.adventure-place-app,.escape-app) *:before{scroll-behavior:auto;animation:none!important;transition:none!important}
}
