
:root, .tm3-light {
  --tm3-bg: #efece7;
  --tm3-bg-alt: #e5e0d9;
  --tm3-tile-a: #fbfbfa;
  --tm3-tile-b: #f3f0eb;
  --tm3-ink: #171b21;
  --tm3-ink-2: #445062;
  --tm3-fill-1: #171b210a;
  --tm3-fill-2: #171b2112;
  --tm3-fill-3: #171b2121;
  --tm3-line: #171b2117;
  --tm3-inset: #171b210d;
  --tm3-acc: #3f5f82;
  --tm3-acc-tint: #3f5f821f;
  --tm3-num-bg: #1d222a;
  --tm3-num-fg: #f3e2bd;
  --tm3-shadow-tile: inset 0 1px 0 #ffffffcc, 0 1px 2px #282c3014, 0 14px 32px #282c301a;
}
.tm3-dark {
  --tm3-bg: #15181e;
  --tm3-bg-alt: #1a1e25;
  --tm3-tile-a: #2a323d;
  --tm3-tile-b: #20252e;
  --tm3-ink: #f1eee9;
  --tm3-ink-2: #c6cbd2;
  --tm3-fill-1: #f3f0eb0d;
  --tm3-fill-2: #f3f0eb1a;
  --tm3-fill-3: #f3f0eb2b;
  --tm3-line: #f3f0eb1c;
  --tm3-inset: #0a0b0e80;
  --tm3-acc: #9bb6d4;
  --tm3-acc-tint: #9bb6d42b;
  --tm3-num-bg: #9bb6d4;
  --tm3-num-fg: #171b21;
  --tm3-shadow-tile: inset 0 1px 0 #f3f0eb1f, 0 12px 32px #00000059;
  color: var(--tm3-ink);
  background: var(--tm3-bg);
}
:root {
  
  --tm3-pt: #425366;
  --tm3-pt-hi: #50647b;
  --tm3-pt-deep: #2a3746;
  
  --tm3-glow: #a3b1c02e;
  --tm3-glow-0: #a3b1c000;
  --tm3-walnut: #15181e;
  --tm3-walnut-deep: #0f1115;
  --tm3-ok: #3f8a4c;
  --tm3-font: system-ui, -apple-system, "Apple SD Gothic Neo", "Pretendard", "Noto Sans KR", "Malgun Gothic", sans-serif;
  --tm3-fs-xs: 13px; --tm3-fs-sm: 15px; --tm3-fs-base: 16px; --tm3-fs-lg: 20px; --tm3-fs-xl: 28px; --tm3-fs-2xl: 36px; --tm3-fs-3xl: 44px; --tm3-fs-4xl: 56px;
  --tm3-w-r: 400; --tm3-w-s: 600; --tm3-w-h: 800;
  --tm3-track: -0.02em; --tm3-label: 0.14em;
  --tm3-r-sm: 4px; --tm3-r-lg: 4px; --tm3-r-full: 9999px;
  --tm3-shadow-cta: inset 0 1px 0 #ffffff2e, 0 10px 26px #4253664d;
  --tm3-shadow-glass: inset 0 1px 0 #f3f0eb2e, 0 24px 60px #15181e66;
  --tm3-touch: 48px;
  --tm3-container: 1160px;
  --tm3-prose: 36em;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; background: var(--tm3-walnut-deep); }
body { margin: 0; font-family: var(--tm3-font); font-size: var(--tm3-fs-base); line-height: 1.6; color: var(--tm3-ink); background: var(--tm3-bg); word-break: keep-all; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; }
h1, h2, h3 { margin: 0; line-height: 1.15; letter-spacing: var(--tm3-track); text-wrap: balance; color: var(--tm3-ink); }
h2 { font-size: var(--tm3-fs-xl); font-weight: var(--tm3-w-h); }
h3 { font-size: var(--tm3-fs-lg); font-weight: var(--tm3-w-s); }
p, dl, dd, ol, ul, figure { margin: 0; }
ol, ul { padding: 0; list-style: none; }
img { display: block; max-width: 100%; height: auto; }
a { color: var(--tm3-acc); }
:focus-visible { outline: 2px solid var(--tm3-acc); outline-offset: 3px; }
.tm3-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.tm3-skip { position: absolute; left: 12px; top: -80px; z-index: 99; padding: 12px 16px; border-radius: var(--tm3-r-full); background: var(--tm3-walnut); color: #fff; font-weight: var(--tm3-w-s); }
.tm3-skip:focus { top: 12px; }
.tm3-wrap { max-width: var(--tm3-container); margin: 0 auto; padding: 0 20px; }
.tm3-ic { width: 20px; height: 20px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }

.tm3-sec { padding: 72px 0; background: var(--tm3-bg); }
.tm3-sec--alt { background: var(--tm3-bg-alt); }
.tm3-head { max-width: 40em; margin-bottom: 32px; }
.tm3-over { display: block; margin-bottom: 12px; font-size: var(--tm3-fs-xs); font-weight: var(--tm3-w-s); letter-spacing: var(--tm3-label); color: var(--tm3-acc); }
.tm3-note { font-size: var(--tm3-fs-sm); line-height: 1.7; color: var(--tm3-ink-2); }
.tm3-head .tm3-note { margin-top: 12px; }
.tm3-cap { margin: 0 4px 12px; font-size: var(--tm3-fs-sm); font-weight: var(--tm3-w-s); color: var(--tm3-ink-2); }

.tm3-top { position: relative; z-index: 20; background: var(--tm3-bg); }
.tm3-top::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: linear-gradient(90deg, #8090a200, #8090a266 30%, #8090a266 70%, #8090a200); }
.tm3-hdr { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 60px; }
.tm3-brand { display: inline-flex; align-items: baseline; gap: 8px; min-height: var(--tm3-touch); padding-top: 12px; font-size: 24px; font-weight: var(--tm3-w-h); letter-spacing: -0.04em; line-height: 1; color: var(--tm3-ink); text-decoration: none; }
.tm3-brand small { font-size: 11px; font-weight: var(--tm3-w-s); letter-spacing: .16em; color: var(--tm3-acc); }
.tm3-nav { display: flex; gap: 2px; }
.tm3-nav a { display: inline-flex; align-items: center; min-height: var(--tm3-touch); padding: 0 9px; border-radius: var(--tm3-r-full); font-size: var(--tm3-fs-sm); font-weight: var(--tm3-w-s); color: var(--tm3-ink-2); text-decoration: none; white-space: nowrap; }
.tm3-nav a:hover { color: var(--tm3-ink); background: var(--tm3-fill-1); }
.tm3-nav .tm3-nav-pc { display: none; }
.tm3-top .tm3-hdr-cta { display: none; }

.tm3-langbar { display: flex; justify-content: flex-end; }
.tm3-lang { display: flex; gap: 2px; }
.tm3-lang a { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 10px; border-radius: var(--tm3-r-full); font-size: var(--tm3-fs-xs); font-weight: var(--tm3-w-s); letter-spacing: .04em; color: var(--tm3-ink-2); text-decoration: none; white-space: nowrap; }
.tm3-lang a[aria-current] { color: var(--tm3-ink); background: var(--tm3-fill-2); }
@media (hover: hover) { .tm3-lang a:not([aria-current]):hover { color: var(--tm3-ink); background: var(--tm3-fill-1); } }

html[lang="zh"] body, html[lang="ja"] body { word-break: normal; line-break: strict; }
html[lang="zh"] { --tm3-font: system-ui, -apple-system, "PingFang SC", "Noto Sans SC", "Microsoft YaHei", sans-serif; }
html[lang="ja"] { --tm3-font: system-ui, -apple-system, "Hiragino Sans", "Noto Sans JP", "Yu Gothic", Meiryo, sans-serif; }
html:not([lang="ko"]) .tm3-over { letter-spacing: .08em; }
@media (max-width: 479px) { html:not([lang="ko"]) .tm3-brand small { display: none; } }

.tm3-btn { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 24px; border: 0; border-radius: var(--tm3-r-full); font: inherit; font-size: var(--tm3-fs-base); font-weight: var(--tm3-w-s); line-height: 1.2; color: #fff; text-decoration: none; white-space: nowrap; cursor: pointer;
  background: linear-gradient(180deg, var(--tm3-pt-hi), var(--tm3-pt)) var(--tm3-pt); box-shadow: var(--tm3-shadow-cta); }
.tm3-btn-lg { min-height: 56px; padding: 0 32px; font-size: 17px; }
.tm3-btn-soft { background: var(--tm3-fill-2); color: var(--tm3-ink); box-shadow: none; }
.tm3-btn-text { min-height: var(--tm3-touch); padding: 0 16px; background: none; box-shadow: none; color: var(--tm3-acc); }
@media (hover: hover) {
  .tm3-btn:hover { background: var(--tm3-pt-hi); }
  .tm3-btn-soft:hover { background: var(--tm3-fill-3); }
  .tm3-btn-text:hover { background: var(--tm3-fill-1); }
}

.tm3-state { display: inline-flex; align-items: center; gap: 8px; min-height: 32px; padding: 4px 14px 4px 12px; border-radius: var(--tm3-r-full); background: var(--tm3-fill-2); font-size: var(--tm3-fs-xs); font-weight: var(--tm3-w-s); line-height: 1.35; color: var(--tm3-ink-2); }
.tm3-state::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 50%; background: currentColor; opacity: .55; }
.tm3-state[data-open="1"] { color: var(--tm3-ink); }
.tm3-state[data-open="1"]::before { background: var(--tm3-ok); opacity: 1; box-shadow: 0 0 0 4px #3f8a4c2e; }
html:not(.js) .tm3-state { display: none; }

.tm3-hero { position: relative; isolation: isolate; overflow: hidden; padding: 28px 0 56px; background: var(--tm3-bg); }
.tm3-hero-bg { position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background:
    radial-gradient(60% 26% at 30% 0%, var(--tm3-glow), var(--tm3-glow-0) 70%),
    radial-gradient(70% 40% at 100% 10%, #f8f6f3, #f8f6f300 70%),
    linear-gradient(180deg, #f3f0eb, var(--tm3-bg) 70%, var(--tm3-bg-alt)); }
.tm3-hero-grid { display: grid; gap: 28px; }
.tm3-hero-copy { display: grid; gap: 16px; justify-items: start; }
.tm3-kicker { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 10px; font-size: var(--tm3-fs-xs); font-weight: var(--tm3-w-s); letter-spacing: var(--tm3-label); color: var(--tm3-acc); }
.tm3-h1 { font-size: 40px; font-weight: var(--tm3-w-h); line-height: 1.08; letter-spacing: -0.035em; }
.tm3-w { white-space: nowrap; }
.tm3-h1 .tm3-w-name { color: var(--tm3-pt); }
.tm3-lead { max-width: 30em; font-size: var(--tm3-fs-base); line-height: 1.7; color: var(--tm3-ink-2); }
.tm3-cta { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; width: 100%; max-width: 420px; margin-top: 4px; }
.tm3-cta .tm3-btn-lg { padding: 0 12px; font-size: var(--tm3-fs-base); }
.tm3-shot { position: relative; }

.tm3-shot img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; object-position: 50% 78%; border-radius: var(--tm3-r-lg); background: var(--tm3-bg-alt); box-shadow: 0 30px 60px #282c302e; }
.tm3-shot figcaption { position: absolute; right: 12px; top: 12px; padding: 2px 10px; border-radius: var(--tm3-r-full); background: #15181eb3; font-size: 12px; color: #fff; }

.tm3-shot:not(:has(img)) > figcaption, .tm3-gal figure:not(:has(img)) > figcaption, figure.is-noimg > figcaption { display: none; }

.tm3-glass { position: relative; isolation: isolate; border-radius: var(--tm3-r-lg); background: #15181eeb; box-shadow: var(--tm3-shadow-glass); }
@supports (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px)) {
  .tm3-glass { background: linear-gradient(#f3f0eb10, #f3f0eb10), #15181ed6; -webkit-backdrop-filter: blur(14px) saturate(150%); backdrop-filter: blur(14px) saturate(150%); }
}
.tm3-glass::before { content: ""; position: absolute; inset: 0; padding: 1px; border-radius: inherit; pointer-events: none;
  background: linear-gradient(135deg, #adbac94d 0, #f3f0eb4d 30%, #f3f0eb14 62%, #f3f0eb0a 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0); }
.tm3-sum dl { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }
.tm3-sum dl > div:first-child { grid-column: 1 / -1; }
.tm3-sum dt { font-size: var(--tm3-fs-xs); color: var(--tm3-ink-2); }
.tm3-sum dd { margin-top: 2px; font-size: 18px; font-weight: var(--tm3-w-s); letter-spacing: -0.01em; color: var(--tm3-ink); font-variant-numeric: tabular-nums; }

.tm3-tile { position: relative; border-radius: var(--tm3-r-lg); padding: 20px; background: linear-gradient(180deg, var(--tm3-tile-a), var(--tm3-tile-b)) var(--tm3-tile-b); box-shadow: var(--tm3-shadow-tile); }
.tm3-glist { border-radius: var(--tm3-r-lg); padding: 6px 0; background: linear-gradient(180deg, var(--tm3-tile-a), var(--tm3-tile-b)) var(--tm3-tile-b); box-shadow: var(--tm3-shadow-tile); }
.tm3-row { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; min-height: 60px; padding: 10px 20px; }
.tm3-row + .tm3-row::before { content: ""; position: absolute; top: 0; left: 64px; right: 0; height: 1px; background: var(--tm3-line); }
.tm3-row dt { display: flex; align-items: center; gap: 12px; font-size: var(--tm3-fs-sm); color: var(--tm3-ink-2); }
.tm3-row dd { text-align: right; font-size: var(--tm3-fs-base); font-weight: var(--tm3-w-s); color: var(--tm3-ink); }
.tm3-row dd small { display: block; font-size: var(--tm3-fs-xs); font-weight: var(--tm3-w-r); color: var(--tm3-ink-2); }
.tm3-ib { flex: none; display: grid; place-items: center; width: 32px; height: 32px; border-radius: var(--tm3-r-sm); background: var(--tm3-acc-tint); color: var(--tm3-acc); }
.tm3-ib .tm3-ic { width: 18px; height: 18px; }
.tm3-basics { display: grid; gap: 32px; }
.tm3-basics .tm3-head { margin-bottom: 0; }

.tm3-hours-sec { position: relative; overflow: hidden; isolation: isolate; }
.tm3-hours-sec::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: radial-gradient(50% 40% at 85% 0%, var(--tm3-glow), var(--tm3-glow-0) 70%), radial-gradient(45% 50% at 0% 100%, #4253664d, #42536600 70%); }
.tm3-week { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; margin-bottom: 12px; }
.tm3-week li { display: grid; justify-items: center; gap: 2px; padding: 12px 0 10px; border-radius: var(--tm3-r-sm); background: var(--tm3-fill-1); font-size: 12px; color: var(--tm3-ink-2); }
.tm3-week li b { font-size: var(--tm3-fs-base); font-weight: var(--tm3-w-s); color: var(--tm3-ink-2); }
.tm3-week li.is-on { background: linear-gradient(180deg, #9bb6d438, #9bb6d412); color: var(--tm3-acc); }
.tm3-week li.is-on b { color: var(--tm3-ink); }
.tm3-hours { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 12px; }
.tm3-hours > * { grid-column: 1 / -1; min-width: 0; }
.tm3-t { display: flex; flex-direction: column; justify-content: space-between; gap: 20px; min-height: 148px; }
.tm3-t-half { grid-column: span 6; }
.tm3-tag { align-self: flex-start; display: inline-flex; align-items: center; gap: 6px; min-height: 28px; padding: 0 12px; border-radius: var(--tm3-r-full); background: var(--tm3-fill-2); font-size: var(--tm3-fs-xs); font-weight: var(--tm3-w-s); color: var(--tm3-ink-2); }
.tm3-tag .tm3-ic { width: 14px; height: 14px; }
.tm3-big { font-size: var(--tm3-fs-2xl); font-weight: var(--tm3-w-h); line-height: 1; letter-spacing: var(--tm3-track); color: var(--tm3-ink); font-variant-numeric: tabular-nums; }
.tm3-to { margin-top: 8px; color: var(--tm3-ink-2); font-variant-numeric: tabular-nums; }
.tm3-t-main { background: radial-gradient(120% 90% at 100% 0%, var(--tm3-glow), var(--tm3-glow-0) 55%), linear-gradient(180deg, #343d4b, #252b35) #252b35; }
.tm3-t-main .tm3-big { font-size: 52px; }
.tm3-t-off .tm3-big, .tm3-t-hol .tm3-big { font-size: var(--tm3-fs-xl); }
.tm3-hours-note { margin-top: 20px; }
.tm3-kst { margin-top: 8px; }
.tm3-rooms-note { margin-top: 12px; }

.tm3-price { display: grid; gap: 12px; align-items: start; }
.tm3-price h3 { margin: 0 0 14px; font-size: var(--tm3-fs-lg); font-weight: var(--tm3-w-h); }
.tm3-checks { display: grid; gap: 2px; }
.tm3-checks li { display: flex; align-items: flex-start; gap: 12px; padding: 7px 0; color: var(--tm3-ink); }
.tm3-checks .tm3-ic { width: 18px; height: 18px; margin-top: 3px; color: var(--tm3-acc); }
.tm3-num { flex: none; display: grid; place-items: center; width: 26px; height: 26px; border-radius: var(--tm3-r-full); background: var(--tm3-num-bg); color: var(--tm3-num-fg); font-size: var(--tm3-fs-xs); font-weight: var(--tm3-w-h); }
.tm3-split { height: 1px; margin: 16px 0; background: var(--tm3-line); }
.tm3-tc { margin-top: 16px; padding-top: 16px; box-shadow: inset 0 1px 0 var(--tm3-line); font-size: var(--tm3-fs-sm); color: var(--tm3-ink-2); }
.tm3-help { padding: 20px; }
.tm3-help .tm3-note { margin: -6px 0 18px; }
.tm3-help fieldset { margin: 0 0 16px; padding: 0; border: 0; min-width: 0; }
.tm3-help legend, .tm3-lab { display: block; margin-bottom: 8px; padding: 0; font-size: var(--tm3-fs-sm); font-weight: var(--tm3-w-s); color: var(--tm3-ink-2); }
.tm3-chips { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.tm3-chip { position: relative; display: block; }
.tm3-chip input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.tm3-chip span { display: grid; place-items: center; min-height: 48px; padding: 0 4px; border-radius: var(--tm3-r-full); background: var(--tm3-fill-2); font-size: var(--tm3-fs-sm); font-weight: var(--tm3-w-s); color: var(--tm3-ink); white-space: nowrap; }
.tm3-chip input:checked + span { background: #f1eee9; color: #171b21; }
.tm3-chip input:focus-visible + span { outline: 2px solid var(--tm3-acc); outline-offset: 2px; }
.tm3-sel { width: 100%; min-height: 48px; padding: 0 16px; border: 0; border-radius: var(--tm3-r-sm); background: var(--tm3-fill-2); color: var(--tm3-ink); font: inherit; }
.tm3-sel option { color: #111; background: #fff; }
.tm3-out { min-height: 78px; margin: 16px 0 12px; padding: 14px 16px; border-radius: var(--tm3-r-sm); background: var(--tm3-inset); font-size: var(--tm3-fs-base); line-height: 1.6; color: var(--tm3-ink); }
.tm3-out.is-empty { color: var(--tm3-ink-2); font-size: var(--tm3-fs-sm); }
.tm3-help-act { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.tm3-send { flex: 1 1 190px; min-height: 48px; padding: 0 16px; font-size: var(--tm3-fs-sm); }
.tm3-send[aria-disabled="true"] { opacity: .42; box-shadow: none; cursor: default; }
.tm3-copywrap { flex: 0 0 auto; }
.tm3-help .tm3-help-hint { margin: 12px 0 0; font-size: var(--tm3-fs-xs); }
.tm3-nojs-only { display: none; }
html:not(.js) .tm3-help-live { display: none; }
html:not(.js) .tm3-nojs-only { display: block; }

.tm3-ac { display: inline-grid; align-items: center; justify-items: center; min-width: 44px; min-height: 44px; padding: 0 18px; border: 0; border-radius: var(--tm3-r-full); background: var(--tm3-fill-2); color: var(--tm3-ink); font: inherit; font-size: var(--tm3-fs-sm); font-weight: var(--tm3-w-s); cursor: pointer; white-space: nowrap; }
.tm3-ac > span { grid-area: 1 / 1; }
.tm3-ac .tm3-l2 { visibility: hidden; display: inline-flex; align-items: center; gap: 6px; }
.tm3-ac .tm3-l2::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.tm3-ac.is-ok { background: var(--tm3-ink); color: var(--tm3-bg); }
.tm3-ac.is-ok .tm3-l1 { visibility: hidden; }
.tm3-ac.is-ok .tm3-l2 { visibility: visible; }
.tm3-ac[disabled] { opacity: .5; cursor: default; }
@media (hover: hover) { .tm3-ac:not(.is-ok):not([disabled]):hover { background: var(--tm3-fill-3); } }
html:not(.js) .tm3-ac { display: none; }

.tm3-steps { display: grid; gap: 12px; }
.tm3-step { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 4px 14px; align-items: start; padding: 20px; border-radius: var(--tm3-r-lg); background: linear-gradient(180deg, var(--tm3-tile-a), var(--tm3-tile-b)) var(--tm3-tile-b); box-shadow: var(--tm3-shadow-tile); }
.tm3-step-no { grid-row: span 2; font-size: 40px; font-weight: var(--tm3-w-h); line-height: 1; letter-spacing: -0.04em; color: var(--tm3-acc); font-variant-numeric: tabular-nums; }
.tm3-step h3 { font-size: 18px; }
.tm3-step p { font-size: var(--tm3-fs-sm); line-height: 1.65; color: var(--tm3-ink-2); }

.tm3-about { display: grid; gap: 24px; }
.tm3-about .tm3-head { margin-bottom: 0; }
.tm3-prose { max-width: var(--tm3-prose); }
.tm3-prose p { line-height: 1.8; color: var(--tm3-ink-2); }
.tm3-prose .tm3-lead-p { font-size: 18px; line-height: 1.7; color: var(--tm3-ink); }
.tm3-prose p + p { margin-top: 1.1em; }
.tm3-space .tm3-head { margin-bottom: 0; }
.tm3-facts { border-radius: var(--tm3-r-lg); padding: 6px 20px; background: linear-gradient(180deg, var(--tm3-tile-a), var(--tm3-tile-b)) var(--tm3-tile-b); box-shadow: var(--tm3-shadow-tile); }
.tm3-facts li { position: relative; display: flex; gap: 12px; padding: 14px 0; color: var(--tm3-ink); line-height: 1.6; }
.tm3-facts li + li::before { content: ""; position: absolute; top: 0; left: 44px; right: 0; height: 1px; background: var(--tm3-line); }

.tm3-rooms { border-radius: var(--tm3-r-lg); padding: 18px 20px; background: linear-gradient(180deg, var(--tm3-tile-a), var(--tm3-tile-b)) var(--tm3-tile-b); box-shadow: var(--tm3-shadow-tile); }
.tm3-rooms .tm3-cap { margin: 0 0 6px; }
.tm3-rooms-n { display: flex; align-items: baseline; gap: 6px; font-size: 48px; font-weight: var(--tm3-w-h); line-height: 1.05; letter-spacing: -0.03em; color: var(--tm3-ink); font-variant-numeric: tabular-nums; }
.tm3-rooms-n small { font-size: var(--tm3-fs-base); font-weight: var(--tm3-w-s); letter-spacing: 0; color: var(--tm3-ink-2); }
.tm3-rooms-bar { height: 12px; margin-top: 14px; border-radius: 3px; background: repeating-linear-gradient(90deg, #5e7fa0 0, #9bb6d4 calc(100% / 45 - 2px), #9bb6d400 calc(100% / 45 - 2px), #9bb6d400 calc(100% / 45)); box-shadow: 0 0 12px #9bb6d426; }
.tm3-gal { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; margin: 0 -20px; padding: 0 20px 8px; scroll-padding: 0 20px; }
.tm3-gal figure { flex: 0 0 74%; scroll-snap-align: start; }
.tm3-gal img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; border-radius: var(--tm3-r-lg); background: var(--tm3-bg-alt); }
.tm3-gal figcaption { margin-top: 8px; font-size: var(--tm3-fs-xs); color: var(--tm3-ink-2); }

.tm3-way { display: grid; gap: 12px; align-items: start; }
.tm3-addrbox { padding: 24px 20px; }
.tm3-addr-k { display: flex; align-items: center; gap: 10px; font-size: var(--tm3-fs-sm); font-weight: var(--tm3-w-s); color: var(--tm3-ink-2); }
.tm3-addr { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin-top: 14px; }
.tm3-addr strong { font-size: 22px; font-weight: var(--tm3-w-h); letter-spacing: -0.01em; line-height: 1.3; color: var(--tm3-ink); }
.tm3-addrbox .tm3-note { margin-top: 14px; }
.tm3-road { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin-top: 10px; font-size: var(--tm3-fs-base); font-weight: var(--tm3-w-s); color: var(--tm3-ink); }
.tm3-road-k { padding: 1px 10px; border-radius: var(--tm3-r-full); background: var(--tm3-acc-tint); font-size: var(--tm3-fs-xs); color: var(--tm3-acc); }
.tm3-route { margin-top: 16px; padding-top: 12px; box-shadow: inset 0 1px 0 var(--tm3-line); }
.tm3-cue h3 { margin-bottom: 8px; font-size: 18px; }
.tm3-cue-btn { width: 100%; margin-top: 16px; }

.tm3-faqs { display: grid; gap: 32px; }
.tm3-faqs .tm3-head { margin-bottom: 0; }
.tm3-faq { border-radius: var(--tm3-r-lg); padding: 4px 0; background: linear-gradient(180deg, var(--tm3-tile-a), var(--tm3-tile-b)) var(--tm3-tile-b); box-shadow: var(--tm3-shadow-tile); }
.tm3-faq details { position: relative; }
.tm3-faq details + details::before { content: ""; position: absolute; top: 0; left: 20px; right: 20px; height: 1px; background: var(--tm3-line); }
.tm3-faq summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 64px; padding: 14px 20px; cursor: pointer; font-weight: var(--tm3-w-s); color: var(--tm3-ink); }
.tm3-faq summary::-webkit-details-marker { display: none; }
.tm3-chev { flex: none; display: grid; place-items: center; width: 32px; height: 32px; border-radius: var(--tm3-r-sm); background: var(--tm3-acc-tint); color: var(--tm3-acc); transition: transform .2s ease-out; }
.tm3-chev .tm3-ic { width: 16px; height: 16px; }
.tm3-faq details[open] .tm3-chev { transform: rotate(180deg); }
.tm3-faq .tm3-a { padding: 0 20px 20px; color: var(--tm3-ink-2); line-height: 1.7; }

.tm3-contact { position: relative; overflow: hidden; isolation: isolate; background: var(--tm3-walnut-deep); }
.tm3-contact::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: radial-gradient(42% 55% at 12% 8%, #42536680, #42536600 70%), radial-gradient(40% 50% at 92% 100%, var(--tm3-glow), var(--tm3-glow-0) 70%), radial-gradient(60% 40% at 50% 50%, #f3f0eb14, #f3f0eb00 70%); }
.tm3-card-c { max-width: 760px; margin: 0 auto; padding: 44px 22px 32px; text-align: center; }
.tm3-card-c h2 { font-size: var(--tm3-fs-2xl); }
.tm3-card-c .tm3-note { max-width: 28em; margin: 14px auto 0; }
.tm3-c-act { display: grid; justify-items: center; gap: 8px; margin-top: 20px; }
.tm3-c-act .tm3-btn-lg { width: 100%; max-width: 360px; }
.tm3-c-sub { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; width: 100%; max-width: 360px; }
.tm3-c-sub .tm3-btn { min-height: 48px; padding: 0 12px; font-size: var(--tm3-fs-sm); }
.tm3-c-sub .tm3-btn:only-child { grid-column: 1 / -1; }

.tm3-telno { display: flex; flex-direction: column; align-items: center; gap: 2px; margin-top: 22px; }
.tm3-telno-k { font-size: var(--tm3-fs-xs); font-weight: var(--tm3-w-s); letter-spacing: var(--tm3-label); color: var(--tm3-acc); }
.tm3-telno a { display: inline-flex; align-items: center; min-height: 48px; font-size: 30px; font-weight: var(--tm3-w-h); letter-spacing: .01em; color: var(--tm3-ink); font-variant-numeric: tabular-nums; text-decoration: underline; text-decoration-thickness: 1px; text-decoration-color: #9bb6d480; text-underline-offset: 7px; }

.tm3-foot { position: relative; padding: 56px 0 40px; background: var(--tm3-walnut-deep); font-size: 14px; line-height: 1.65; }
.tm3-foot::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, #8090a200, #8090a273, #8090a200); }
.tm3-foot-cols { display: grid; gap: 28px; }
.tm3-foot-brand { display: block; margin-bottom: 10px; font-size: 22px; font-weight: var(--tm3-w-h); letter-spacing: -0.04em; color: var(--tm3-ink); }
.tm3-foot .tm3-foot-h { margin-bottom: 8px; font-size: var(--tm3-fs-xs); font-weight: var(--tm3-w-s); letter-spacing: var(--tm3-label); line-height: 1.4; color: var(--tm3-acc); }
html:not([lang="ko"]) .tm3-foot .tm3-foot-h { letter-spacing: .08em; }
.tm3-foot address { display: grid; gap: 2px; font-style: normal; color: var(--tm3-ink-2); }
.tm3-foot address strong { font-weight: var(--tm3-w-s); color: var(--tm3-ink); }

.tm3-foot-tel { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; margin-block: 0; position: relative; z-index: 1; font-weight: var(--tm3-w-s); color: var(--tm3-ink); font-variant-numeric: tabular-nums; text-underline-offset: 4px; text-decoration-color: #9bb6d480; }
.tm3-foot p { color: var(--tm3-ink-2); }
.tm3-foot-links { display: flex; flex-wrap: wrap; gap: 0 18px; }
.tm3-foot-links a { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; font-weight: var(--tm3-w-s); color: var(--tm3-ink); text-underline-offset: 5px; text-decoration-color: #9bb6d480; }
.tm3-adult { display: flex; align-items: center; gap: 10px; }
.tm3-adult + p { margin-top: 8px; }
.tm3-adult b { flex: none; display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--tm3-pt); color: #fff; font-size: 12px; }
.tm3-foot-nav { display: flex; flex-wrap: wrap; gap: 0 20px; margin-top: 32px; padding-top: 12px; box-shadow: inset 0 1px 0 var(--tm3-line); }
.tm3-foot-nav a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; min-width: 44px; color: var(--tm3-ink-2); text-decoration: none; }
@media (hover: hover) { .tm3-foot-nav a:hover { color: var(--tm3-ink); } }
.tm3-foot-legal { display: grid; gap: 6px; margin-top: 12px; padding-top: 20px; box-shadow: inset 0 1px 0 var(--tm3-line); font-size: 13px; }
.tm3-foot-proof { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; margin-top: 6px; color: var(--tm3-ink); }
.tm3-foot-proof .tm3-ic { width: 18px; height: 18px; flex: none; color: var(--tm3-acc); }

.tm3-proof-lab { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.tm3-foot-proof > span { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.tm3-foot-proof time { font-variant-numeric: tabular-nums; font-weight: var(--tm3-w-s); }
.tm3-hash { padding: 1px 10px; border-radius: var(--tm3-r-full); background: var(--tm3-fill-2); font: 600 12px/1.6 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; letter-spacing: .03em; color: var(--tm3-acc); overflow-wrap: anywhere; }

.tm3-hash.tm3-hash-long, .tm3-dlg-body dd > .tm3-hash:first-child:not(:only-child), .tm3-src-body dd > .tm3-hash:first-child:not(:only-child) {
  display: block; flex: 1 1 100%; max-width: 100%; padding: 6px 10px; border-radius: 8px; font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.tm3-pending { padding: 1px 10px; border-radius: var(--tm3-r-full); box-shadow: inset 0 0 0 1px var(--tm3-acc); font-size: 13px; font-weight: var(--tm3-w-s); color: var(--tm3-acc); }
.tm3-proofs { display: flex; flex-wrap: wrap; gap: 0 22px; }
.tm3-linkbtn { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; padding: 0; border: 0; background: none; font: inherit; font-size: var(--tm3-fs-sm); font-weight: var(--tm3-w-s); color: var(--tm3-ink); text-decoration: underline; text-decoration-color: #9bb6d48c; text-underline-offset: 5px; cursor: pointer; }
@media (hover: hover) { .tm3-linkbtn:hover { text-decoration-color: var(--tm3-acc); } }
html:not(.js) .tm3-linkbtn { display: none; }
.tm3-src { margin-top: 12px; border-radius: var(--tm3-r-sm); background: var(--tm3-fill-1); }
.tm3-src summary { display: flex; align-items: center; min-height: 48px; padding: 0 16px; cursor: pointer; font-weight: var(--tm3-w-s); color: var(--tm3-ink); }
.tm3-src-body { padding: 0 16px 16px; font-size: 14px; }
html.js .tm3-src { display: none; }

.tm3-proof { width: min(92vw, 600px); max-height: min(86vh, 780px); padding: 0; border: 0; border-radius: var(--tm3-r-lg); box-shadow: var(--tm3-shadow-glass); overflow: hidden; }
.tm3-proof[open] { display: flex; flex-direction: column; }
.tm3-proof::before { content: ""; position: absolute; left: 24px; right: 24px; top: 0; height: 2px; background: linear-gradient(90deg, #9bb6d400, #9bb6d4, #8090a2cc, #9bb6d400); }
.tm3-proof::backdrop { background: radial-gradient(60% 50% at 20% 15%, #42536640, #42536600 70%), #0f1115cc; }
.tm3-dlg-top { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 16px 14px 14px 22px; box-shadow: inset 0 -1px 0 var(--tm3-line); }
.tm3-dlg-top > .tm3-ic { color: var(--tm3-acc); }
.tm3-dlg-top h2 { font-size: var(--tm3-fs-lg); line-height: 1.3; }
.tm3-x { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: var(--tm3-fill-2); color: var(--tm3-ink); cursor: pointer; }
.tm3-dlg-body { padding: 16px 22px 20px; overflow: auto; font-size: 15px; }
.tm3-dlg-body > .tm3-note { margin-bottom: 4px; }
.tm3-dlg-body h3, .tm3-src-body h3 { margin: 18px 0 6px; font-size: 15px; font-weight: var(--tm3-w-h); color: var(--tm3-ink); }
.tm3-dlg-body dl > div, .tm3-src-body dl > div { display: grid; grid-template-columns: minmax(0, 8.5em) minmax(0, 1fr); gap: 12px; padding: 9px 0; box-shadow: inset 0 -1px 0 var(--tm3-line); }
.tm3-dlg-body dt, .tm3-src-body dt { font-size: 13px; color: var(--tm3-ink-2); }
.tm3-dlg-body dd, .tm3-src-body dd { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; min-width: 0; color: var(--tm3-ink); overflow-wrap: anywhere; }

.tm3-dlg-body dd a, .tm3-src-body dd a { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; margin-block: 0; position: relative; z-index: 1; color: var(--tm3-acc); text-underline-offset: 3px; }

.tm3-dlg-body dd, .tm3-src-body dd { row-gap: 8px; }
.tm3-log { display: grid; margin-left: 6px; box-shadow: inset 1px 0 0 var(--tm3-line); }
.tm3-log li { position: relative; display: grid; gap: 2px; padding: 2px 0 12px 18px; color: var(--tm3-ink-2); }
.tm3-log li::before { content: ""; position: absolute; left: -5px; top: 8px; width: 11px; height: 11px; border-radius: 50%; background: var(--tm3-bg); box-shadow: inset 0 0 0 2px var(--tm3-ink-2); }
.tm3-log li:first-child::before { box-shadow: inset 0 0 0 2px var(--tm3-acc); }
.tm3-log li > :first-child { font-size: 13px; font-weight: var(--tm3-w-h); color: var(--tm3-ink); font-variant-numeric: tabular-nums; }
.tm3-law { display: grid; gap: 12px; counter-reset: tm3law; }
.tm3-law li { counter-increment: tm3law; display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 10px; color: var(--tm3-ink-2); line-height: 1.65; }
.tm3-law li::before { content: counter(tm3law); display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--tm3-acc-tint); color: var(--tm3-acc); font-size: 13px; font-weight: var(--tm3-w-h); }
.tm3-src-body .tm3-law { margin-top: 4px; }
.tm3-dlg-foot { padding: 12px 22px 18px; box-shadow: inset 0 1px 0 var(--tm3-line); }
.tm3-dlg-foot .tm3-btn { width: 100%; min-height: 48px; }

.tm3-bar { display: none; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media (max-width: 767px) {
  body { padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px)); }
  
  .tm3-bar { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 8px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px)); }
  .tm3-bar::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, #8090a200, #8090a28c, #8090a200); }
  .tm3-bar .tm3-btn { flex-direction: column; gap: 2px; min-height: 54px; padding: 4px 6px; font-size: 13px; }
  .tm3-bar .tm3-btn .tm3-ic { width: 18px; height: 18px; }
  
  .tm3-cta { display: flex; flex-wrap: wrap; }
  .tm3-cta > .tm3-btn { flex: 1 1 0; }
}
@media (max-width: 359px) {
  .tm3-nav a { padding: 0 7px; font-size: 14px; }
  .tm3-brand small { display: none; }
  .tm3-h1 { font-size: 36px; }
  .tm3-chip span { font-size: 14px; }
  .tm3-cta { grid-template-columns: 1fr; }
  .tm3-cta > .tm3-btn { flex-basis: 100%; }
}
@media (min-width: 768px) {
  .tm3-wrap { padding: 0 32px; }
  .tm3-gal { margin: 0 -32px; padding: 0 32px 8px; }
  .tm3-gal figure { flex-basis: 44%; }
  .tm3-kv { display: grid; grid-template-columns: 1fr 1fr; }
  .tm3-kv .tm3-row:nth-child(2)::before { display: none; }
  .tm3-kv .tm3-row:nth-child(even) { box-shadow: inset 1px 0 0 var(--tm3-line); }
  .tm3-cta { grid-template-columns: none; grid-auto-flow: column; justify-content: start; width: auto; max-width: none; }
  .tm3-cta .tm3-btn-lg { padding: 0 32px; font-size: 17px; }
  .tm3-sum dl { grid-template-columns: 1.4fr 1fr 1fr; }
  .tm3-sum dl > div:first-child { grid-column: auto; }
  .tm3-foot-cols { grid-template-columns: 1fr 1fr; }
  .tm3-foot-cols > :last-child { grid-column: 1 / -1; }
}
@media (min-width: 1024px) {
  .tm3-sec { padding: 112px 0; }
  h2 { font-size: var(--tm3-fs-3xl); }
  .tm3-head { margin-bottom: 48px; }
  .tm3-hdr { min-height: 76px; }
  .tm3-brand { font-size: 28px; }
  .tm3-nav { margin-left: auto; margin-right: 16px; }
  .tm3-nav a { padding: 0 12px; }
  .tm3-nav .tm3-nav-pc { display: inline-flex; }
  .tm3-top .tm3-hdr-cta { display: inline-flex; min-height: var(--tm3-touch); padding: 0 20px; font-size: var(--tm3-fs-sm); }
  #basics { padding-top: 88px; }
  .tm3-hero-copy { gap: 22px; }
  
  .tm3-foot-cols { grid-template-columns: minmax(0, 5fr) minmax(0, 3fr) minmax(0, 4fr); gap: 48px; }
  .tm3-foot-cols > :last-child { grid-column: auto; }
  .tm3-h1 { font-size: 64px; line-height: 1.04; }
  .tm3-lead { font-size: 18px; }
  
  .tm3-help { padding: 28px; }
  .tm3-tile { padding: 28px; }
  .tm3-prose .tm3-lead-p { font-size: var(--tm3-fs-lg); }
  .tm3-gal { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; overflow: visible; }
  .tm3-gal figure { flex: none; }
  .tm3-gal figure:nth-child(2) { margin-top: 56px; }
  .tm3-addrbox { padding: 32px 28px; }
  .tm3-addr strong { font-size: 28px; }
  .tm3-faq .tm3-a { padding-right: 72px; }
  .tm3-card-c { padding: 64px 64px 48px; }
  .tm3-card-c h2 { font-size: var(--tm3-fs-4xl); }
  .tm3-c-act .tm3-btn-lg { width: auto; min-width: 300px; }
  .tm3-c-sub { max-width: 300px; }
  .tm3-telno a { font-size: 40px; }
}

.tm3-nw { white-space: nowrap; }

:root {
  --tm3-col: 760px;          
  --tm3-hdr-h: 60px;         
  --tm3-edge: #42536640;     
}
.tm3-dark { --tm3-edge: #8090a259; }
html { scroll-padding-top: calc(var(--tm3-hdr-h) + 12px); }

.tm3-top { position: sticky; top: -44px; z-index: 40; }
.tm3-langbar { min-height: 44px; }
.tm3-hdr { min-height: var(--tm3-hdr-h); }
.tm3-brand { align-items: center; gap: 8px; padding-top: 0; white-space: nowrap; }
.tm3-brand-t { display: inline-flex; align-items: baseline; gap: 8px; }
.tm3-mark { display: block; flex: none; width: 24px; height: 24px; }
.tm3-foot-brand { display: flex; align-items: center; gap: 8px; }
.tm3-foot-brand .tm3-mark { width: 20px; height: 20px; }
@media (max-width: 479px) { .tm3-brand small { display: none; } }

.tm3-hero { padding: 20px 0 48px; }
.tm3-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "head shot" "body body"; column-gap: 8px; row-gap: 22px; gap: 22px 8px; }
.tm3-hero-head { grid-area: head; align-self: end; display: grid; gap: 14px; justify-items: start; padding-bottom: 4px; }
.tm3-hero-body { grid-area: body; display: grid; gap: 16px; justify-items: start; }
.tm3-h1 { font-size: clamp(34px, 10vw, 48px); }

.tm3-hshot { grid-area: shot; position: relative; align-self: start; width: clamp(140px, 44vw, 300px); height: clamp(140px, 44vw, 300px); margin: -20px -12px 0 0; overflow: hidden; border-radius: var(--tm3-r-lg); background-color: #455264; }
.tm3-hshot img { width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; object-position: 50% 72%; border-radius: 0; box-shadow: none; background-color: #455264; }
.tm3-hshot figcaption { left: 8px; right: auto; top: 8px; }
.tm3-sum { width: 100%; max-width: 520px; padding: 14px 18px; background: linear-gradient(180deg, var(--tm3-tile-a), var(--tm3-tile-b)) var(--tm3-tile-b); }
@media (min-width: 768px) {
  .tm3-hero { padding: 24px 0 64px; }
  .tm3-hshot { margin: -24px 0 0; }
  .tm3-sum { padding: 16px 22px; }
}

@media (min-width: 1024px) {
  .tm3-hero { padding: 48px 0 104px; }
  .tm3-hero-grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); grid-template-areas: "head shot" "body shot"; gap: 24px 56px; }
  .tm3-hero-head { gap: 20px; padding-bottom: 0; }
  .tm3-hero-body { align-self: start; gap: 22px; }
  .tm3-h1 { font-size: 64px; }
  .tm3-hshot { justify-self: end; width: min(100%, 440px); height: auto; aspect-ratio: 1 / 1; margin: -48px 0 0; }
  .tm3-hshot figcaption { left: auto; right: 12px; top: 12px; }
}

.tm3-sec > .tm3-wrap { max-width: calc(var(--tm3-col) + 40px); }
.tm3-space { display: grid; gap: 28px; }
.tm3-space .tm3-shot img { box-shadow: none; }
.tm3-about { margin-top: 72px; }
.tm3-hours-wrap .tm3-head { margin-bottom: 32px; }
@media (min-width: 768px) {
  .tm3-sec > .tm3-wrap { max-width: calc(var(--tm3-col) + 64px); }
}
@media (min-width: 1024px) {
  .tm3-sec { padding: 120px 0; }
  .tm3-about { margin-top: 112px; }
  .tm3-hours-wrap .tm3-head { margin-bottom: 48px; }
  .tm3-gal figure:nth-child(2) { margin-top: 40px; }
}

@media (max-width: 1023px) {
  html { scroll-padding-bottom: calc(76px + 12px); }
  body { padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px)); }
  .tm3-bar { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 8px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px)); }
  .tm3-bar::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, #8090a200, #8090a28c, #8090a200); }
  .tm3-bar .tm3-btn { flex-direction: column; gap: 2px; min-height: 54px; padding: 4px 6px; font-size: 13px; }
  .tm3-bar .tm3-btn .tm3-ic { width: 18px; height: 18px; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .tm3-bar { padding-left: max(16px, calc((100vw - 560px) / 2)); padding-right: max(16px, calc((100vw - 560px) / 2)); }
}

.tm3-proof-lab { white-space: normal; }

.tm3-tile, .tm3-glist, .tm3-step, .tm3-facts, .tm3-rooms, .tm3-faq, .tm3-card-c, .tm3-sum { border: 1px solid var(--tm3-edge); border-radius: var(--tm3-r-lg); box-shadow: none; }
.tm3-week li { box-shadow: inset 0 0 0 1px var(--tm3-edge); }
.tm3-card-c { background: var(--tm3-fill-1); }
.tm3-gal img, .tm3-shot img { border-radius: var(--tm3-r-lg); }

.tm3-c-act { grid-template-columns: minmax(0, 1fr); }
.tm3-c-act .tm3-btn { min-width: 0; max-width: 100%; }
.tm3-c-act .tm3-btn-lg { max-width: min(100%, 360px); }
.tm3-c-sub { display: flex; flex-wrap: wrap; justify-content: center; min-width: 0; }
.tm3-c-sub .tm3-btn { flex: 1 1 auto; }
@media (min-width: 1024px) {
  .tm3-c-act .tm3-btn-lg { max-width: 100%; }
}

html:lang(ja) body { word-break: auto-phrase; }

@media (max-width: 399px) {
  html:not([lang="ko"]) .tm3-hdr { gap: 4px; }
  html:not([lang="ko"]) .tm3-brand { gap: 6px; }
  html:not([lang="ko"]) .tm3-nav a { padding: 0 5px; }
}

.tm3-week li { padding-left: 4px; padding-right: 4px; text-align: center; }
@media (max-width: 413px) { html[lang="en"] .tm3-week { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

:lang(ja) h2, :lang(ja) h3, :lang(ja) li, :lang(ja) .tm3-btn { word-break: auto-phrase; }

.tm3-glist .tm3-row dd { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 479px) {
  .tm3-glist .tm3-row { grid-template-columns: minmax(0, 1fr); row-gap: 2px; }
  .tm3-glist .tm3-row dd { text-align: left; }
}
@media (min-width: 480px) {
  .tm3-glist .tm3-row { grid-template-columns: minmax(max-content, 10em) 1fr; }
}

:root, .tm3-light { --tm3-ctl: #171b2185; }
.tm3-dark { --tm3-ctl: #f1eee969; --tm3-pt-line: #477bb6; }
.tm3-btn-soft, .tm3-ac, .tm3-chip span, .tm3-sel, .tm3-x { box-shadow: inset 0 0 0 1px var(--tm3-ctl); }
.tm3-dark .tm3-btn:not(.tm3-btn-soft):not(.tm3-btn-text) { box-shadow: inset 0 0 0 1px var(--tm3-pt-line), var(--tm3-shadow-cta); }

:root[data-theme="dark"], :root[data-theme="dark"] .tm3-light {
  color-scheme: dark;
  --tm3-bg: #1e2227;
  --tm3-bg-alt: #242a30;
  --tm3-tile-b: #23282d;
  --tm3-tile-a: #262b31;
  --tm3-ink: #e5e9ee;
  --tm3-ink-2: #bac0c7;
  --tm3-acc: #7a98bb;
  --tm3-fill-1: #e5e9ee0d;
  --tm3-fill-2: #e5e9ee1a;
  --tm3-fill-3: #e5e9ee2b;
  --tm3-line: #e5e9ee1f;
  --tm3-acc-tint: #7a98bb2b;
  --tm3-inset: #0000004d;
  --tm3-num-bg: #7a98bb;
  --tm3-num-fg: #1e2227;
  --tm3-shadow-tile: inset 0 1px 0 #e5e9ee14, 0 12px 32px #00000059;
  --tm3-edge: #7a98bb52;
  --tm3-pt: #50739c;
  --tm3-pt-hi: #50739c;
  --tm3-pt-deep: #3e5a7a;
  --tm3-ctl: #e5e9ee6b;
}
:root[data-theme="dark"] .tm3-dark { --tm3-ctl: #f1eee969; --tm3-pt-line: #477bb6; }
:root[data-theme="dark"] .tm3-btn-soft, :root[data-theme="dark"] .tm3-ac, :root[data-theme="dark"] .tm3-chip span, :root[data-theme="dark"] .tm3-sel, :root[data-theme="dark"] .tm3-x { box-shadow: inset 0 0 0 1px var(--tm3-ctl); }
:root[data-theme="dark"] .tm3-dark .tm3-btn:not(.tm3-btn-soft):not(.tm3-btn-text) { box-shadow: inset 0 0 0 1px var(--tm3-pt-line), var(--tm3-shadow-cta); }
:root[data-theme="dark"] .rt { --rt-acc: #7a98bb; --rt-ink: #e5e9ee; --rt-ink2: #bac0c7; --rt-paper: #262b31; --rt-road: #3f464d; --rt-soft: #e5e9ee14; --rt-line: #7a98bb59; --rt-on: #1e2227; }
:root[data-theme="dark"] .tm3-proof { outline: 1px solid #e5e9ee38; outline-offset: -1px; }
:root[data-theme="dark"] .tm3-shot img, :root[data-theme="dark"] .tm3-gal img { box-shadow: none; }
:root[data-theme="dark"] .tm3-hero-bg { background: radial-gradient(60% 26% at 30% 0%, var(--tm3-glow), var(--tm3-glow-0) 70%), linear-gradient(180deg, #242a30, var(--tm3-bg) 70%, var(--tm3-bg-alt)); }
:root[data-theme="dark"] .tm3-watch::after { background: radial-gradient(42% 32% at 50% 66%, #e3ddd42e, #e3ddd400 100%), radial-gradient(closest-side, #7a98bb29, #7a98bb00 78%); }
@media (prefers-color-scheme: dark) {
  :root[data-theme="system"], :root:not([data-theme]), :root[data-theme="system"] .tm3-light, :root:not([data-theme]) .tm3-light {
    color-scheme: dark;
    --tm3-bg: #1e2227;
    --tm3-bg-alt: #242a30;
    --tm3-tile-b: #23282d;
    --tm3-tile-a: #262b31;
    --tm3-ink: #e5e9ee;
    --tm3-ink-2: #bac0c7;
    --tm3-acc: #7a98bb;
    --tm3-fill-1: #e5e9ee0d;
    --tm3-fill-2: #e5e9ee1a;
    --tm3-fill-3: #e5e9ee2b;
    --tm3-line: #e5e9ee1f;
    --tm3-acc-tint: #7a98bb2b;
    --tm3-inset: #0000004d;
    --tm3-num-bg: #7a98bb;
    --tm3-num-fg: #1e2227;
    --tm3-shadow-tile: inset 0 1px 0 #e5e9ee14, 0 12px 32px #00000059;
    --tm3-edge: #7a98bb52;
    --tm3-pt: #50739c;
    --tm3-pt-hi: #50739c;
    --tm3-pt-deep: #3e5a7a;
    --tm3-ctl: #e5e9ee6b;
  }
  :root[data-theme="system"] .tm3-dark, :root:not([data-theme]) .tm3-dark { --tm3-ctl: #f1eee969; --tm3-pt-line: #477bb6; }
  :root[data-theme="system"] .tm3-btn-soft, :root:not([data-theme]) .tm3-btn-soft, :root[data-theme="system"] .tm3-ac, :root:not([data-theme]) .tm3-ac, :root[data-theme="system"] .tm3-chip span, :root:not([data-theme]) .tm3-chip span, :root[data-theme="system"] .tm3-sel, :root:not([data-theme]) .tm3-sel, :root[data-theme="system"] .tm3-x, :root:not([data-theme]) .tm3-x { box-shadow: inset 0 0 0 1px var(--tm3-ctl); }
  :root[data-theme="system"] .tm3-dark .tm3-btn:not(.tm3-btn-soft):not(.tm3-btn-text), :root:not([data-theme]) .tm3-dark .tm3-btn:not(.tm3-btn-soft):not(.tm3-btn-text) { box-shadow: inset 0 0 0 1px var(--tm3-pt-line), var(--tm3-shadow-cta); }
  :root[data-theme="system"] .rt, :root:not([data-theme]) .rt { --rt-acc: #7a98bb; --rt-ink: #e5e9ee; --rt-ink2: #bac0c7; --rt-paper: #262b31; --rt-road: #3f464d; --rt-soft: #e5e9ee14; --rt-line: #7a98bb59; --rt-on: #1e2227; }
  :root[data-theme="system"] .tm3-proof, :root:not([data-theme]) .tm3-proof { outline: 1px solid #e5e9ee38; outline-offset: -1px; }
  :root[data-theme="system"] .tm3-shot img, :root:not([data-theme]) .tm3-shot img, :root[data-theme="system"] .tm3-gal img, :root:not([data-theme]) .tm3-gal img { box-shadow: none; }
  :root[data-theme="system"] .tm3-hero-bg, :root:not([data-theme]) .tm3-hero-bg { background: radial-gradient(60% 26% at 30% 0%, var(--tm3-glow), var(--tm3-glow-0) 70%), linear-gradient(180deg, #242a30, var(--tm3-bg) 70%, var(--tm3-bg-alt)); }
  :root[data-theme="system"] .tm3-watch::after, :root:not([data-theme]) .tm3-watch::after { background: radial-gradient(42% 32% at 50% 66%, #e3ddd42e, #e3ddd400 100%), radial-gradient(closest-side, #7a98bb29, #7a98bb00 78%); }
}

:root[data-theme="light"] { color-scheme: light; }
:root[data-theme="dark"] { color-scheme: dark; }
.theme-btn { display: none; }
.js .theme-btn {
  display: inline-flex; align-items: center; justify-content: center; flex: none;
  width: 44px; height: 44px; min-width: 44px; min-height: 44px; margin: 0; padding: 0;
  border: 0; border-radius: 50%; background: transparent; color: inherit; font: inherit; cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.theme-btn svg { display: block; width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; pointer-events: none; }
.theme-btn:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
@media (hover: hover) { .js .theme-btn:hover { background: rgba(127, 127, 127, .14); } }

.theme-sun { display: none !important; }
:root[data-theme="dark"] .theme-sun { display: block !important; }
:root[data-theme="dark"] .theme-moon { display: none !important; }
@media (prefers-color-scheme: dark) {
  :root[data-theme="system"] .theme-sun { display: block !important; }
  :root[data-theme="system"] .theme-moon { display: none !important; }
}

.tm3-foot-rel { margin-top: 0; padding-top: 0; box-shadow: none; }
.tm3-way-wrap > .cm + .tm3-way { margin-top: 24px; }
.cm { word-break: normal; overflow-wrap: anywhere; }

.v3-status { margin-top: 2px; }
html:not(.js) .tm3-state.v3-status { display: inline-flex; }
.tm3-price { grid-template-columns: minmax(0, 1fr); }
.v3-pt { display: grid; gap: 10px; justify-items: start; }
.v3-tag { display: inline-flex; align-items: center; min-height: 28px; padding: 2px 12px; border-radius: var(--tm3-r-full); background: var(--tm3-fill-2); font-size: var(--tm3-fs-xs); font-weight: var(--tm3-w-s); color: var(--tm3-ink-2); }
.v3-was { font-size: var(--tm3-fs-lg); color: var(--tm3-ink-2); font-variant-numeric: tabular-nums; }
.v3-was s { text-decoration-thickness: 2px; }
.v3-off { display: inline-flex; align-items: center; min-height: 32px; padding: 2px 14px; border-radius: var(--tm3-r-full); background: var(--tm3-acc-tint); font-size: var(--tm3-fs-sm); font-weight: var(--tm3-w-s); color: var(--tm3-acc); }
.v3-now { font-size: clamp(28px, 8.6vw, 48px); font-weight: var(--tm3-w-h); line-height: 1.05; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; color: var(--tm3-ink); }
.v3-pt .tm3-note { margin-top: 4px; }
.v3-ask { font-size: clamp(22px, 6vw, 30px); font-weight: var(--tm3-w-h); line-height: 1.2; letter-spacing: -0.02em; color: var(--tm3-ink); }
.v3-solo { margin-top: 0 !important; }
@media (max-width: 479px) { .tm3-h1 .tm3-w { white-space: normal; overflow-wrap: anywhere; } }
.v3-rail { display: none; }
@media (min-width: 1024px) { .tm3-top .tm3-hdr-cta { display: inline-flex; } }
.tm3-nav a, .tm3-lang a, .tm3-foot-links a, .tm3-foot-tel { min-width: 48px; min-height: 48px; justify-content: center; }
.js .theme-btn { width: 48px; height: 48px; min-width: 48px; min-height: 48px; }
.v3-stage { position: relative; isolation: isolate; overflow: hidden; padding: 0; min-height: clamp(600px, 92vh, 820px); display: flex; align-items: flex-end; }
@media (min-width: 768px) { .v3-stage { min-height: 680px; align-items: center; } }
.v3-stage .tm3-hero-bg { display: none; }
.v3-bg { position: absolute; inset: 0; z-index: -2; margin: 0; }
.v3-bg img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.v3-ov { position: absolute; inset: 0; z-index: -1; pointer-events: none; background: rgba(var(--v3-ov), var(--v3-at)); }
.v3-ov-c .v3-ov { background: rgba(var(--v3-ov), var(--v3-ac)); }
@media (min-width: 768px) { .v3-ov-l .v3-ov { background: linear-gradient(90deg, rgba(var(--v3-ov), 0.86) 0%, rgba(var(--v3-ov), var(--v3-at)) 68%, rgba(var(--v3-ov), 0.34) 100%); } }
.v3-ai { position: absolute; right: 10px; bottom: 8px; z-index: 2; padding: 2px 9px; border-radius: 9999px; background: rgba(0, 0, 0, 0.55); color: #fff; font-size: 11px; line-height: 1.5; }
.v3-stage .tm3-hero-grid { position: relative; z-index: 1; width: 100%; padding-top: 150px; padding-bottom: 44px; display: grid; gap: 18px; grid-template-columns: minmax(0, 1fr); grid-template-areas: "head" "body"; }
@media (min-width: 768px) { .v3-stage .tm3-hero-grid { padding-top: 72px; padding-bottom: 72px; } }
.v3-stage .tm3-hero-head, .v3-stage .tm3-hero-body { align-self: auto; }
.v3-stage .tm3-lead { max-width: 34em; }
.v3-stage .tm3-h1 .tm3-w-name { color: var(--tm3-acc); }
.v3-kick { position: absolute; z-index: 3; width: 108px; height: 108px; margin: 0; background: transparent; pointer-events: none; animation: v3-float 7s ease-in-out infinite; filter: drop-shadow(0 12px 14px rgba(0, 0, 0, 0.45)); }
.v3-kick .s3d { position: absolute; inset: 0; height: auto; background: transparent; overflow: visible; --s3d-bg: transparent; }
.v3-kick .s3d::before { display: none; }
.v3-kick .s3d-box { width: 100%; height: 100%; aspect-ratio: 1 / 1; max-width: none; }
.v3-kick img { box-shadow: none; background: transparent; object-fit: contain; border-radius: 0; }
@keyframes v3-float { 0%, 100% { transform: translateY(-6px); } 50% { transform: translateY(6px); } }
@media (prefers-reduced-motion: reduce) { .v3-kick { animation: none; } }
.v3-k-tl, .v3-k-bl { top: 14px; left: 14px; }
.v3-k-tr, .v3-k-mr, .v3-k-br { top: 14px; right: 14px; }
.v3-k-tc { top: 14px; left: calc(50% - 54px); }
@media (max-width: 767px) { .v-d2 .v3-kick { top: 118px; } .v-d2 .v3-stage .tm3-hero-grid { padding-top: 250px; } }
@media (min-width: 768px) {
  .v3-kick { width: 19%; height: auto; aspect-ratio: 1 / 1; }
  .v3-k-tl { top: 5%; left: 4%; right: auto; bottom: auto; }
  .v3-k-tr { top: 5%; right: 4%; left: auto; bottom: auto; }
  .v3-k-mr { top: 36%; right: 4%; left: auto; bottom: auto; }
  .v3-k-br { bottom: 8%; right: 4%; top: auto; left: auto; }
  .v3-k-bl { bottom: 8%; left: 4%; top: auto; right: auto; }
  .v3-k-tc { top: 5%; left: 40.5%; right: auto; bottom: auto; }
  .v-d2 .v3-k-tl, .v-d2 .v3-k-tr, .v-d2 .v3-k-tc { top: 60px; }
}
@media (min-width: 1440px) { .v3-stage { min-height: 760px; } }
.v3-stage { --v3-ov: 10, 12, 15; --v3-at: 0.8; --v3-ac: 0.5; }
.v-a6 .tm3-hero-head, .v-a6 .tm3-hero-body { max-width: min(560px, 100%); }
@media (min-width: 768px) and (max-width: 1023px) { .v-a6 .tm3-hero-head, .v-a6 .tm3-hero-body { max-width: min(480px, 100%); } }
.v3-route { display: grid; gap: 14px; width: 100%; max-width: 520px; padding: 16px 18px; border: 1px solid var(--tm3-edge); border-radius: var(--tm3-r-lg); background: var(--tm3-tile-a); }
.v3-route li { position: relative; padding-left: 28px; font-weight: var(--tm3-w-s); color: var(--tm3-ink); }
.v3-route li::before { content: ""; position: absolute; left: 3px; top: 0.45em; width: 12px; height: 12px; border-radius: 50%; background: var(--tm3-acc); }
.v3-route li + li::after { content: ""; position: absolute; left: 8px; top: -14px; width: 2px; height: 16px; background: var(--tm3-line); }
.v3-route li:last-child::before { background: var(--tm3-ink); }
@media (min-width: 1024px) {
  .v-c2 .tm3-sec > .tm3-wrap.v3-hw { max-width: var(--tm3-container); display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 56px; align-items: start; }
  .v-c2 .v3-hw > .tm3-head { margin-bottom: 0; position: sticky; top: 24px; }
}
@media (min-width: 1024px) {
  .v-d4 { padding-left: 116px; }
  .v-d4 .v3-rail { display: flex; position: fixed; left: 0; top: 0; bottom: 0; width: 116px; z-index: 30; flex-direction: column; justify-content: center; gap: 2px; padding: 16px 8px; background: var(--tm3-walnut); box-shadow: inset -1px 0 0 var(--tm3-line); }
  .v-d4 .v3-rail a { display: flex; align-items: center; min-height: 44px; padding: 0 10px; border-radius: var(--tm3-r-sm); font-size: 13px; font-weight: var(--tm3-w-s); line-height: 1.2; color: #f2f0e8c4; text-decoration: none; overflow-wrap: anywhere; }
  .v-d4 .v3-rail a:hover { color: #fff; background: #ffffff14; }
  .v-d4 .tm3-top .tm3-nav { display: none; }
}
.v-e3 .tm3-tile, .v-e3 .tm3-glist, .v-e3 .tm3-step, .v-e3 .tm3-faq, .v-e3 .tm3-card-c, .v-e3 .tm3-glist .tm3-row { background: none; border: 0; border-top: 1px solid var(--tm3-line); border-radius: 0; box-shadow: none; }
.v-e3 .tm3-week li { border-radius: 0; }
