.hm-page {
  --hm-ink: #17130f;
  --hm-espresso: #0b0a08;
  --hm-paper: #e4dbcf;
  --hm-paper-light: #f8f4ed;
  --hm-white: #fffdf9;
  --hm-cognac: #d4754e;
  --hm-cognac-dark: #9a4f2c;
  --hm-muted: #756e66;
  --hm-line: #d8d0c5;
  --hm-sans: 'Switzer', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --hm-display: 'Satoshi', var(--hm-sans);
  --hm-ease: cubic-bezier(.19, 1, .22, 1);
  --hm-ease-ui: cubic-bezier(.2, .7, .2, 1);
  position: relative;
  overflow: clip;
  background: var(--hm-paper-light);
  color: var(--hm-ink);
  font-family: var(--hm-sans);
}

.hm-page [hidden] { display: none !important; }
.hm-page ::selection { background: rgba(212,117,78,.58); color: var(--hm-ink); }
.hm-page :focus-visible { outline: 2px solid var(--hm-cognac-dark); outline-offset: 3px; }

.hm-opener {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  min-height: min(840px, calc(100svh - 60px));
  overflow: hidden;
  padding: calc(60px + clamp(72px, 7vw, 104px)) 0 clamp(72px, 6vw, 96px);
  background: var(--hm-espresso);
  color: var(--hm-white);
}

.hm-opener::before { content: ''; position: absolute; inset: 0; z-index: -2; background-image: radial-gradient(circle at 82% 18%, rgba(154,79,44,.2), transparent 34%), linear-gradient(115deg,#0b0a08 0%,#15100d 66%,#27150e 100%); }
.hm-opener::after { content: ''; position: absolute; inset: 0; z-index: -1; background-image: var(--grain); background-size: 195px 195px; opacity: .38; pointer-events: none; }

.hm-intro { display: grid; grid-template-columns: minmax(0,1.12fr) minmax(430px,.88fr); column-gap: clamp(48px,5vw,80px); align-items: center; }
.hm-intro h1 { max-width: 16ch; margin: 0; color: var(--hm-white); font: 400 clamp(50px,4.9vw,68px)/1 var(--hm-display); letter-spacing: -.045em; text-wrap: balance; }
.hm-intro-side { max-width: 500px; padding-left: clamp(28px,3vw,42px); border-left: 1px solid rgba(255,255,255,.16); }
.hm-intro-side > p { margin: 0; color: rgba(255,255,255,.68); font-size: clamp(17px,1.45vw,20px); line-height: 1.52; }
.hm-start { display: block; margin-top: 32px; padding-top: 28px; border-top: 1px solid rgba(255,255,255,.18); }
.hm-start > label { display: block; padding-bottom: 12px; color: rgba(255,255,255,.6); font-size: 13px; line-height: 1.3; }
.hm-start-control { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px; align-items: center; min-width: 0; min-height: 60px; padding: 6px 7px 6px 18px; border: 1px solid rgba(255,255,255,.28); background: rgba(255,255,255,.045); transition: border-color .16s var(--hm-ease-ui), background-color .16s var(--hm-ease-ui), box-shadow .16s var(--hm-ease-ui); }
.hm-start-control:focus-within { border-color: rgba(212,117,78,.84); background: rgba(255,255,255,.075); box-shadow: 0 0 0 3px rgba(212,117,78,.18); }
.hm-start-control input { width: 100%; min-width: 0; height: 46px; padding: 0; border: 0; outline: 0; background: transparent; color: var(--hm-white); caret-color: var(--hm-cognac); font: 400 17px/1.25 var(--hm-sans); letter-spacing: -.01em; }
.hm-start-control input::placeholder { color: rgba(255,255,255,.48); opacity: 1; }
.hm-start-control button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 46px; padding: 0 18px; border: 0; border-radius: 999px; background: var(--hm-white); color: var(--hm-ink); font: 500 15px/1 var(--hm-display); cursor: pointer; transition: background-color .15s var(--hm-ease-ui), color .15s var(--hm-ease-ui); }
.hm-start-control button svg { width: 18px; height: 18px; transition: transform .15s var(--hm-ease-ui); }
.hm-start-control button:hover { background: #fff; color: var(--hm-ink); }
.hm-start-control button:hover svg { transform: translate(3px,-3px); }

.hm-studio { position: fixed; inset: 0; z-index: 1000; display: block; overflow: hidden; background: var(--hm-paper-light); }
.hm-studio.is-visible { opacity: 1; }
.hm-studio-shell { display: grid; grid-template-columns: minmax(0,1fr); grid-template-rows: 72px minmax(0,1fr); height: 100svh; }
body.hm-studio-open { overflow: hidden; }

body.hm-studio-open .nav { visibility: hidden; }
body:has(.hm-studio.is-visible) .gc-pill,
body:has(.hm-studio.is-visible) .gc-panel { display: none !important; }

.hm-stage-toolbar { position: relative; z-index: 20; display: flex; align-items: center; gap: 24px; min-height: 72px; padding: 0 clamp(22px,3vw,44px); border-bottom: 1px solid rgba(255,255,255,.12); background: var(--hm-espresso); color: var(--hm-white); }
.hm-studio-brand { display: flex; align-items: center; width: 110px; flex: none; }
.hm-studio-brand img { display: block; width: 110px; }
.hm-stage-toolbar > strong { overflow: hidden; margin-right: auto; color: rgba(255,255,255,.64); font: 400 14px/1.2 var(--hm-sans); text-overflow: ellipsis; white-space: nowrap; }
.hm-studio-close { display: grid; place-items: center; width: 42px; height: 42px; flex: none; border: 1px solid rgba(255,255,255,.24); border-radius: 50%; background: transparent; color: var(--hm-white); cursor: pointer; }
.hm-studio-close svg { width: 18px; height: 18px; }
.hm-toolbar-actions { display: flex; align-items: center; gap: 4px; margin-left: auto; }
.hm-toolbar-actions button,
.hm-toolbar-actions a { display: inline-flex; align-items: center; gap: 7px; min-height: 42px; padding: 0 13px; border: 0; border-radius: 9px; background: transparent; color: rgba(255,255,255,.72); font: 400 13px/1 var(--hm-sans); text-decoration: none; white-space: nowrap; cursor: pointer; transition: color .14s var(--hm-ease-ui), background .14s var(--hm-ease-ui), transform .2s var(--hm-ease); }
.hm-toolbar-actions svg { width: 16px; height: 16px; flex: none; }
.hm-toolbar-actions button:hover,
.hm-toolbar-actions a:hover { background: rgba(255,255,255,.1); color: var(--hm-white); }
.hm-toolbar-actions button:active,
.hm-toolbar-actions a:active { transform: translateY(1px); }
.hm-toolbar-actions button.is-success { background: rgba(212,117,78,.22); color: var(--hm-white); }

.hm-studio-grid { min-width: 0; min-height: 0; overflow: auto; }
.hm-studio:not(.is-preparing):not(.has-result):not(.has-error) .hm-studio-grid { display: grid; place-items: center; padding: clamp(42px,7vw,96px) 22px; }
.hm-studio.is-preparing .hm-brief-panel,
.hm-studio.has-result .hm-brief-panel,
.hm-studio.has-error .hm-brief-panel { display: none; }
.hm-studio.is-preparing .hm-stage,
.hm-studio.has-result .hm-stage,
.hm-studio.has-error .hm-stage { display: block; }
.hm-stage { min-height: 0; }
.hm-stage-inner { min-height: 100%; }
.hm-state { display: none; }
.hm-state.is-active { display: block; }

.hm-brief-panel { display: grid; grid-template-columns: minmax(0,.8fr) minmax(360px,1.2fr); gap: clamp(56px,8vw,128px); align-items: start; width: min(100%,1040px); }
.hm-brief-copy h2 { max-width: 10ch; margin: 0; font: 400 clamp(46px,5.4vw,72px)/.98 var(--hm-display); letter-spacing: -.04em; text-wrap: balance; }
.hm-brief-copy p { max-width: 39ch; margin: 28px 0 0; color: var(--hm-muted); font-size: 17px; line-height: 1.55; }
.hm-brief-form { display: flex; flex-direction: column; padding-top: 6px; }
.hm-hotel-summary { padding-bottom: 28px; border-bottom: 1px solid rgba(23,19,15,.14); }
.hm-hotel-summary span,
.hm-month-field > span,
.hm-direction-field > span { display: block; margin-bottom: 8px; color: var(--hm-muted); font-size: 13px; line-height: 1.35; }
.hm-hotel-summary strong { display: block; overflow: hidden; font: 400 19px/1.3 var(--hm-display); letter-spacing: -.02em; text-overflow: ellipsis; white-space: nowrap; }
.hm-month-field { position: relative; margin-top: 30px; padding-bottom: 20px; border-bottom: 1px solid rgba(23,19,15,.24); }
.hm-month-trigger { display: flex; align-items: center; justify-content: space-between; gap: 18px; width: 100%; min-height: 42px; padding: 0; border: 0; background: transparent; color: var(--hm-ink); font: 400 20px/1.3 var(--hm-display); text-align: left; cursor: pointer; }
.hm-month-trigger svg { width: 20px; height: 20px; flex: none; color: var(--hm-muted); }
.hm-month-trigger:hover svg,
.hm-month-trigger[aria-expanded='true'] svg { color: var(--hm-cognac-dark); }
.hm-month-popover { position: absolute; top: calc(100% + 12px); right: 0; z-index: 30; width: min(356px,calc(100vw - 44px)); padding: 18px; border: 1px solid rgba(23,19,15,.12); background: var(--hm-white); color: var(--hm-ink); box-shadow: 0 22px 50px rgba(11,10,8,.18); }
.hm-month-year { display: grid; grid-template-columns: 44px 1fr 44px; align-items: center; margin-bottom: 14px; }
.hm-month-year strong { text-align: center; font: 500 15px/1 var(--hm-sans); font-variant-numeric: tabular-nums; }
.hm-month-year button { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; background: transparent; color: var(--hm-ink); cursor: pointer; }
.hm-month-year button:hover { background: rgba(23,19,15,.06); }
.hm-month-year svg { width: 17px; height: 17px; }
.hm-month-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 4px; }
.hm-month-option { min-height: 42px; padding: 0; border: 0; background: transparent; color: var(--hm-ink); font: 400 13px/1 var(--hm-sans); cursor: pointer; }
.hm-month-option:hover { background: rgba(23,19,15,.06); }
.hm-month-option[aria-pressed='true'] { background: var(--hm-cognac); color: var(--hm-ink); font-weight: 500; }
.hm-direction-field { display: block; margin-top: 30px; }
.hm-direction-field em { margin-left: 5px; color: #8b8279; font-style: normal; }
.hm-direction-field textarea { width: 100%; min-height: 126px; padding: 14px 0; border: 0; border-bottom: 1px solid rgba(23,19,15,.24); border-radius: 0; outline: 0; background: transparent; color: var(--hm-ink); caret-color: var(--hm-cognac-dark); font: 400 17px/1.48 var(--hm-sans); resize: vertical; }
.hm-direction-field textarea::placeholder { color: var(--hm-muted); opacity: 1; }
.hm-direction-field textarea:focus { border-color: var(--hm-cognac); }
.hm-create { width: 100%; min-height: 56px; margin-top: 36px; border: 1px solid var(--hm-espresso); background: var(--hm-espresso); color: var(--hm-white); cursor: pointer; transition: opacity .18s ease, background .16s var(--hm-ease-ui); }
.hm-create:hover { border-color: #000; background: #000; color: var(--hm-white); }
.hm-create:disabled { opacity: .48; cursor: wait; }

.hm-studio.is-preparing .hm-stage { background: var(--hm-paper-light); }
.hm-loading-card { width: 100%; min-height: calc(100svh - 72px); padding: clamp(34px,5vw,68px) clamp(20px,4vw,64px); }
.hm-meter { position: fixed; inset: 72px 0 auto; z-index: 10; height: 2px; overflow: hidden; background: rgba(23,19,15,.12); }
.hm-meter span { display: block; width: 100%; height: 100%; background: var(--hm-cognac); transform: scaleX(.06); transform-origin: left; transition: transform .6s var(--hm-ease); }
.hm-loading-workspace { display: grid; grid-template-columns: minmax(0,820px) minmax(220px,280px); gap: clamp(34px,5vw,74px); align-items: start; width: min(100%,1180px); margin: 0 auto; }
.hm-live-brief { overflow: hidden; border: 1px solid rgba(23,19,15,.12); background: var(--hm-white); box-shadow: 0 28px 74px rgba(33,24,16,.1); }
.hm-live-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 92px; padding: 20px 28px; border-bottom: 1px solid rgba(23,19,15,.12); }
.hm-live-brand { display: grid; min-width: 132px; min-height: 42px; place-items: center start; }
.hm-live-brand.on-dark { margin: -20px 0 -20px -28px; align-self: stretch; padding: 20px 28px; background: var(--hm-espresso); }
.hm-live-brand img { display: block; width: auto; max-width: 150px; height: auto; max-height: 38px; opacity: 0; transform: translateY(5px); animation: hm-logo-compose .6s var(--hm-ease) forwards; }
.hm-live-brand span { font: 500 17px/1.2 var(--hm-display); }
.hm-live-meta { display: grid; gap: 4px; min-width: 0; text-align: right; }
.hm-live-meta span { overflow: hidden; color: var(--hm-muted); font: 400 11px/1.3 var(--hm-sans); text-overflow: ellipsis; white-space: nowrap; }
.hm-live-meta strong { font: 500 12px/1.3 var(--hm-sans); letter-spacing: .04em; text-transform: uppercase; }
.hm-live-evidence { display: grid; grid-template-columns: minmax(180px,.72fr) minmax(0,1.28fr); min-height: 236px; border-bottom: 1px solid rgba(23,19,15,.12); }
.hm-live-evidence figure { position: relative; display: grid; min-height: 236px; margin: 0; overflow: hidden; place-items: center; border-right: 1px solid rgba(23,19,15,.12); background: #e5ddd2; }
.hm-live-evidence figure::after { content: ''; position: absolute; inset: -30% 0 auto; height: 34%; opacity: .7; background: linear-gradient(180deg,transparent,rgba(255,255,255,.5),transparent); animation: hm-evidence-scan 2.8s ease-in-out infinite; }
.hm-live-evidence figure.has-image::after { opacity: .45; }
.hm-live-evidence img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.018); animation: hm-photo-settle .9s var(--hm-ease) forwards; }
.hm-live-evidence figcaption { position: relative; z-index: 1; width: min(28ch,76%); color: rgba(23,19,15,.58); font: 400 12px/1.5 var(--hm-sans); text-align: center; }
.hm-live-evidence figure.has-image figcaption { position: absolute; right: 10px; bottom: 10px; width: auto; padding: 6px 8px; background: rgba(11,10,8,.76); color: var(--hm-white); font-size: 9px; letter-spacing: .04em; text-transform: uppercase; }
.hm-live-evidence > div { display: flex; flex-direction: column; justify-content: center; padding: 34px; }
.hm-live-evidence > div > span,
.hm-live-fields span,
.hm-live-plan > span { color: var(--hm-cognac-dark); font: 500 10px/1 var(--hm-sans); letter-spacing: .08em; text-transform: uppercase; }
.hm-live-evidence p { max-width: 26ch; margin: 20px 0 0; font: 400 clamp(26px,3vw,38px)/1.08 var(--hm-display); letter-spacing: -.035em; text-wrap: balance; }
.hm-live-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
.hm-live-fields > div { min-height: 126px; padding: 24px 28px; border-right: 1px solid rgba(23,19,15,.12); border-bottom: 1px solid rgba(23,19,15,.12); }
.hm-live-fields > div:nth-child(2) { border-right: 0; }
.hm-live-fields .hm-live-message { grid-column: 1 / -1; min-height: 112px; border-right: 0; }
.hm-live-fields p { max-width: 48ch; margin: 12px 0 0; color: var(--hm-muted); font: 400 14px/1.5 var(--hm-sans); }
.hm-live-plan { padding: 24px 28px 28px; }
.hm-live-plan > div { display: grid; margin-top: 14px; }
.hm-live-plan p { margin: 0; color: var(--hm-muted); font-size: 13px; }
.hm-live-plan div > span { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 18px; padding: 10px 0; border-top: 1px solid rgba(23,19,15,.12); color: var(--hm-ink); font-size: 12px; }
.hm-live-plan div > span small { color: var(--hm-muted); font-size: 10px; text-transform: uppercase; }
.hm-live-sources { display: flex; flex-wrap: wrap; gap: 7px; padding: 0 28px 28px; }
.hm-live-sources span { padding: 6px 9px; border: 1px solid rgba(23,19,15,.18); color: var(--hm-muted); font: 500 9px/1 var(--hm-sans); letter-spacing: .04em; text-transform: uppercase; }
.hm-loading-progress { position: sticky; top: 0; padding: 20px 0 0; color: var(--hm-ink); }
.hm-loading-live { display: flex; align-items: center; gap: 8px; color: var(--hm-cognac-dark); font: 500 10px/1 var(--hm-sans); letter-spacing: .08em; text-transform: uppercase; }
.hm-loading-live > span { width: 7px; height: 7px; border-radius: 50%; background: var(--hm-cognac); box-shadow: 0 0 0 0 rgba(212,117,78,.35); animation: hm-live-pulse 1.8s ease-out infinite; }
.hm-loading-progress ol { display: grid; gap: 0; margin: 22px 0 0; padding: 0; list-style: none; }
.hm-loading-progress li { position: relative; display: grid; grid-template-columns: 20px minmax(0,1fr); gap: 12px; min-height: 72px; color: rgba(23,19,15,.42); transition: color .28s ease; }
.hm-loading-progress li:not(:last-child)::after { content: ''; position: absolute; top: 18px; bottom: 0; left: 7px; width: 1px; background: rgba(23,19,15,.14); }
.hm-loading-progress li > i { position: relative; z-index: 1; display: grid; place-items: center; width: 15px; height: 15px; border: 1px solid rgba(23,19,15,.3); border-radius: 50%; background: var(--hm-paper-light); }
.hm-loading-progress li > div { padding-bottom: 20px; }
.hm-loading-progress li strong { display: block; font: 500 13px/1.25 var(--hm-sans); }
.hm-loading-progress li small { display: block; margin-top: 6px; font: 400 11px/1.45 var(--hm-sans); }
.hm-loading-card[data-phase='1'] li[data-loading-step='1'],
.hm-loading-card[data-phase='2'] li[data-loading-step='2'],
.hm-loading-card[data-phase='3'] li[data-loading-step='3'],
.hm-loading-card[data-phase='4'] li[data-loading-step='4'] { color: var(--hm-ink); }
.hm-loading-card[data-phase='1'] li[data-loading-step='1'] > i,
.hm-loading-card[data-phase='2'] li[data-loading-step='2'] > i,
.hm-loading-card[data-phase='3'] li[data-loading-step='3'] > i,
.hm-loading-card[data-phase='4'] li[data-loading-step='4'] > i { border: 2px solid rgba(212,117,78,.28); border-top-color: var(--hm-cognac-dark); animation: hm-step-spin .9s linear infinite; }
.hm-loading-card[data-phase='2'] li[data-loading-step='1'],
.hm-loading-card[data-phase='3'] li[data-loading-step='1'],
.hm-loading-card[data-phase='3'] li[data-loading-step='2'],
.hm-loading-card[data-phase='4'] li[data-loading-step='1'],
.hm-loading-card[data-phase='4'] li[data-loading-step='2'],
.hm-loading-card[data-phase='4'] li[data-loading-step='3'] { color: var(--hm-ink); }
.hm-loading-card[data-phase='2'] li[data-loading-step='1'] > i,
.hm-loading-card[data-phase='3'] li[data-loading-step='1'] > i,
.hm-loading-card[data-phase='3'] li[data-loading-step='2'] > i,
.hm-loading-card[data-phase='4'] li[data-loading-step='1'] > i,
.hm-loading-card[data-phase='4'] li[data-loading-step='2'] > i,
.hm-loading-card[data-phase='4'] li[data-loading-step='3'] > i { border-color: var(--hm-cognac); background: var(--hm-cognac); }
.hm-loading-card[data-phase='2'] li[data-loading-step='1'] > i::after,
.hm-loading-card[data-phase='3'] li[data-loading-step='1'] > i::after,
.hm-loading-card[data-phase='3'] li[data-loading-step='2'] > i::after,
.hm-loading-card[data-phase='4'] li[data-loading-step='1'] > i::after,
.hm-loading-card[data-phase='4'] li[data-loading-step='2'] > i::after,
.hm-loading-card[data-phase='4'] li[data-loading-step='3'] > i::after { content: ''; width: 6px; height: 3px; border-bottom: 1.5px solid #fff; border-left: 1.5px solid #fff; transform: translateY(-1px) rotate(-45deg); }
.hm-loading-progress > p { margin: 6px 0 0; padding-top: 16px; border-top: 1px solid rgba(23,19,15,.16); color: var(--hm-muted); font: 400 11px/1.55 var(--hm-sans); }

@keyframes hm-step-spin { to { transform: rotate(360deg); } }
@keyframes hm-live-pulse { 70% { box-shadow: 0 0 0 7px rgba(212,117,78,0); } 100% { box-shadow: 0 0 0 0 rgba(212,117,78,0); } }
@keyframes hm-logo-compose { to { opacity: 1; transform: none; } }
@keyframes hm-photo-settle { to { opacity: 1; transform: none; } }
@keyframes hm-evidence-scan { 0% { transform: translateY(-100%); } 65%,100% { transform: translateY(500%); } }

.hm-error-state { min-height: calc(100svh - 72px); padding: clamp(50px,8vw,110px) 22px; background: var(--hm-paper-light); }
.hm-error-sheet { width: min(100%,640px); margin: 0 auto; padding: clamp(38px,5vw,64px); border-top: 2px solid var(--hm-cognac); background: var(--hm-white); }
.hm-error-sheet h2 { max-width: 12ch; margin: 0; font: 400 clamp(38px,5vw,60px)/1 var(--hm-display); letter-spacing: -.04em; }
.hm-error-sheet p { max-width: 48ch; margin: 24px 0 0; color: var(--hm-muted); font-size: 16px; line-height: 1.55; }
.hm-error-sheet button { min-height: 48px; margin-top: 30px; padding: 0 20px; border: 1px solid var(--hm-ink); background: var(--hm-ink); color: var(--hm-white); font: 500 14px/1 var(--hm-sans); cursor: pointer; }

.hm-result-state { padding: clamp(28px,4vw,48px) 22px 0; background: var(--hm-paper); }
.hm-result-wrap { width: min(1120px,100%); margin: 0 auto; }
.hm-folio { background: var(--hm-paper-light); box-shadow: 0 30px 82px rgba(33,24,16,.12); }
.hm-folio-header { display: flex; align-items: center; justify-content: space-between; gap: 34px; min-height: 116px; padding: 26px clamp(28px,5vw,58px); border-bottom: 1px solid var(--hm-line); }
.hm-result-brand { display: grid; min-width: 160px; min-height: 52px; place-items: center start; }
.hm-result-brand.on-dark { margin: -26px 0 -26px clamp(-58px,-5vw,-28px); align-self: stretch; padding: 24px clamp(28px,5vw,58px); background: var(--hm-espresso); }
.hm-result-brand img { display: block; width: auto; max-width: 180px; max-height: 46px; }
.hm-result-brand strong { font: 500 19px/1.2 var(--hm-display); }
.hm-folio-meta { display: grid; justify-items: end; gap: 4px; text-align: right; }
.hm-folio-meta > span { color: var(--hm-cognac-dark); font: 500 10px/1 var(--hm-sans); letter-spacing: .09em; text-transform: uppercase; }
.hm-folio-meta > strong { font: 500 14px/1.3 var(--hm-sans); }
.hm-folio-meta small { color: var(--hm-muted); font: 400 11px/1.3 var(--hm-sans); }
.hm-folio-meta small i { padding: 0 5px; font-style: normal; }
.hm-insight-grid { display: grid; grid-template-columns: minmax(0,1.12fr) minmax(280px,.88fr); gap: clamp(42px,7vw,104px); padding: clamp(48px,5vw,64px) clamp(28px,5vw,58px); border-bottom: 1px solid var(--hm-line); }
.hm-insight-grid h2,
.hm-brief-section > h2,
.hm-section-head h2,
.hm-needs-section h2 { margin: 0; color: var(--hm-cognac-dark); font: 500 10px/1 var(--hm-sans); letter-spacing: .09em; text-transform: uppercase; }
.hm-insight-grid p { max-width: 29ch; margin: 22px 0 0; font: 400 clamp(27px,2.4vw,36px)/1.12 var(--hm-display); letter-spacing: -.032em; text-wrap: balance; }
.hm-insight-grid > div:last-child p { max-width: 38ch; color: var(--hm-muted); font: 400 clamp(17px,1.5vw,20px)/1.5 var(--hm-sans); letter-spacing: -.012em; }
.hm-brief-section { padding: clamp(52px,6vw,78px) clamp(28px,5vw,58px); border-bottom: 1px solid var(--hm-line); }
.hm-brief-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: clamp(40px,6vw,92px); margin: 30px 0 0; }
.hm-brief-grid > div { padding: 22px 0 24px; border-top: 1px solid var(--hm-line); }
.hm-brief-grid .hm-message-field { grid-column: 1 / -1; }
.hm-brief-grid dt { color: var(--hm-muted); font: 500 10px/1.25 var(--hm-sans); letter-spacing: .06em; text-transform: uppercase; }
.hm-brief-grid dd { max-width: 52ch; margin: 12px 0 0; font: 400 17px/1.5 var(--hm-sans); }
.hm-brief-grid .hm-message-field dd { max-width: 36ch; font: 400 clamp(25px,2.7vw,36px)/1.17 var(--hm-display); letter-spacing: -.025em; }
.hm-brief-grid ul { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.hm-brief-grid li { position: relative; padding-left: 16px; }
.hm-brief-grid li::before { content: ''; position: absolute; top: .68em; left: 0; width: 5px; height: 5px; border-radius: 50%; background: var(--hm-cognac); }
.hm-editable[contenteditable='true'] { border-radius: 3px; outline: 1px solid rgba(154,79,44,.45); outline-offset: 5px; background: rgba(212,117,78,.06); }
.hm-plan-section { padding: clamp(52px,6vw,78px) clamp(28px,5vw,58px); border-bottom: 1px solid var(--hm-line); }
.hm-section-head { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; }
.hm-section-head > p { margin: 0; color: var(--hm-muted); font: 400 12px/1.4 var(--hm-sans); }
.hm-section-head > a { margin-left: 6px; color: var(--hm-cognac-dark); font: 500 11px/1.4 var(--hm-sans); text-underline-offset: 4px; }
.hm-plan-table { margin-top: 30px; border-top: 1px solid var(--hm-ink); }
.hm-plan-head,
.hm-plan-row { display: grid; grid-template-columns: 110px minmax(150px,.72fr) minmax(240px,1.28fr) 120px; gap: 22px; align-items: start; }
.hm-plan-head { padding: 13px 0; border-bottom: 1px solid var(--hm-line); color: var(--hm-muted); font: 500 9px/1.2 var(--hm-sans); letter-spacing: .07em; text-transform: uppercase; }
.hm-plan-row { padding: 22px 0; border-bottom: 1px solid var(--hm-line); font-size: 14px; line-height: 1.48; }
.hm-plan-row > span:first-child,
.hm-plan-row > span:last-child { color: var(--hm-muted); font-size: 12px; }
.hm-plan-row strong { display: block; font: 500 16px/1.35 var(--hm-display); }
.hm-needs-section { display: grid; grid-template-columns: minmax(0,.82fr) minmax(0,1.18fr); gap: clamp(46px,7vw,100px); padding: clamp(52px,6vw,78px) clamp(28px,5vw,58px) clamp(64px,8vw,104px); }
.hm-needs-section ol { margin: 28px 0 0; padding: 0; list-style: none; counter-reset: needs; }
.hm-needs-section ol > li { position: relative; padding: 18px 0 18px 34px; border-top: 1px solid var(--hm-line); counter-increment: needs; }
.hm-needs-section ol > li::before { content: counter(needs,decimal-leading-zero); position: absolute; top: 20px; left: 0; color: var(--hm-cognac-dark); font: 500 9px/1 var(--hm-sans); }
.hm-needs-section li strong { display: block; font: 500 15px/1.35 var(--hm-display); }
.hm-needs-section li p { margin: 7px 0 0; color: var(--hm-muted); font-size: 13px; line-height: 1.5; }
.hm-observations { display: grid; margin-top: 28px; border-top: 1px solid var(--hm-line); }
.hm-observation { display: grid; grid-template-columns: 112px minmax(0,1fr); gap: 18px; padding: 16px 0; border-bottom: 1px solid var(--hm-line); }
.hm-observation > span { color: var(--hm-muted); font: 500 9px/1.35 var(--hm-sans); letter-spacing: .05em; text-transform: uppercase; }
.hm-observation strong { display: block; font: 400 13px/1.45 var(--hm-sans); }
.hm-observation a { display: inline-block; margin-top: 6px; color: var(--hm-cognac-dark); font: 400 11px/1.3 var(--hm-sans); text-underline-offset: 3px; }
.hm-source-details { margin-top: 18px; }
.hm-source-details summary { color: var(--hm-muted); font-size: 12px; cursor: pointer; }
.hm-source-details ol { display: grid; gap: 8px; margin: 12px 0 0; padding-left: 18px; list-style: decimal; }
.hm-source-details li { padding: 0; border: 0; }
.hm-source-details li::before { content: none; }
.hm-source-details a { color: var(--hm-ink); font-size: 12px; text-underline-offset: 3px; }
.hm-start-over { display: block; min-height: 48px; margin: 28px auto 54px; padding: 0 18px; border: 0; background: transparent; color: rgba(23,19,15,.65); font: 400 13px/1 var(--hm-sans); cursor: pointer; text-decoration: underline; text-underline-offset: 4px; }

.hm-delivery { position: fixed; inset: 0; z-index: 80; display: grid; place-items: center; padding: 22px; }
.hm-delivery-backdrop { position: absolute; inset: 0; background: rgba(11,10,8,.72); }
.hm-delivery-sheet { position: relative; width: min(100%,520px); padding: clamp(34px,5vw,54px); background: var(--hm-paper-light); box-shadow: 0 28px 70px rgba(0,0,0,.28); }
.hm-delivery-close { position: absolute; top: 14px; right: 14px; display: grid; place-items: center; width: 38px; height: 38px; border: 0; background: transparent; color: var(--hm-ink); cursor: pointer; }
.hm-delivery-close svg { width: 18px; height: 18px; }
.hm-delivery-sheet h2 { max-width: 10ch; margin: 0; font: 400 clamp(38px,5vw,56px)/1 var(--hm-display); letter-spacing: -.04em; }
.hm-delivery-sheet p { margin: 20px 0 0; color: var(--hm-muted); font-size: 15px; line-height: 1.5; }
.hm-delivery-sheet form { margin-top: 30px; }
.hm-delivery-sheet label { display: block; margin-bottom: 8px; color: var(--hm-muted); font-size: 12px; }
.hm-delivery-sheet input { width: 100%; min-height: 52px; padding: 0 14px; border: 1px solid var(--hm-line); border-radius: 0; background: var(--hm-white); color: var(--hm-ink); font: 400 16px/1 var(--hm-sans); }
.hm-delivery-sheet form button,
.hm-delivery-success button { width: 100%; min-height: 52px; margin-top: 12px; border: 0; background: var(--hm-espresso); color: var(--hm-white); font: 500 14px/1 var(--hm-sans); cursor: pointer; }
.hm-delivery-error { color: #74331f !important; font-size: 12px !important; }

.hm-status { position: fixed; right: 22px; bottom: 22px; z-index: 1200; display: flex; align-items: center; gap: 9px; max-width: min(360px,calc(100vw - 44px)); padding: 12px 15px; background: var(--hm-espresso,#0b0a08); color: var(--hm-white,#fffdf9); opacity: 0; transform: translateY(12px); pointer-events: none; transition: opacity .18s ease, transform .28s var(--hm-ease); }
.hm-status.show { opacity: 1; transform: none; }
.hm-status-icon { display: grid; place-items: center; width: 18px; height: 18px; color: var(--hm-cognac,#d4754e); }
.hm-status-icon svg { width: 17px; height: 17px; }
.hm-status > span:last-child { font: 400 12px/1.35 var(--hm-sans); }

.hm-guide-section { padding-top: 150px; padding-bottom: 150px; background: var(--hm-paper); }
.hm-guide-head { width: min(100%,680px); margin: 0 auto; }
.hm-guide-head h2 { max-width: 16ch; margin: 0; font: 400 clamp(42px,3.8vw,54px)/1 var(--hm-display); letter-spacing: -.04em; text-wrap: balance; }
.hm-guide-head h2 span,
.hm-guide-head > p span { display: block; }
.hm-guide-head > p { max-width: 52ch; margin: 32px 0 0; padding-top: 24px; border-top: 1px solid var(--hm-line); color: var(--hm-muted); font-size: 18px; line-height: 1.58; }
.hm-guide-body { width: min(100%,680px); margin: 96px auto 0; }
.hm-guide-body > section { padding: 0; }
.hm-guide-body > section + section { margin-top: 76px; }
.hm-guide-body h3 { max-width: 18ch; margin: 0 0 26px; font: 400 clamp(30px,2.4vw,36px)/1.16 var(--hm-display); letter-spacing: -.025em; }
.hm-guide-body p { max-width: 69ch; margin: 0; color: #504941; font: 400 18px/1.72 var(--hm-display); letter-spacing: -.008em; }
.hm-guide-body p + p { margin-top: 24px; }
.hm-guide-body a { color: var(--hm-cognac-dark); text-decoration-thickness: 1px; text-underline-offset: 4px; }
.hm-guide-sources { margin-top: 112px !important; padding-top: 30px !important; border-top: 1px solid var(--hm-line); }
.hm-guide-sources ol { display: grid; gap: 13px; margin: 0; padding-left: 20px; }
.hm-guide-sources li { padding-left: 4px; color: var(--hm-muted); font-size: 14px; line-height: 1.5; }

@media (max-width: 980px) {
  .hm-intro { grid-template-columns: minmax(0,1fr) minmax(340px,.8fr); }
  .hm-loading-workspace { grid-template-columns: minmax(0,1fr); }
  .hm-loading-progress { position: static; padding: 4px 2px 0; }
  .hm-loading-progress ol { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px 24px; }
  .hm-loading-progress li { min-height: 56px; }
  .hm-loading-progress li::after { display: none; }
  .hm-insight-grid { grid-template-columns: 1fr; }
  .hm-insight-grid > div:last-child p { max-width: 52ch; }
  .hm-plan-head,
  .hm-plan-row { grid-template-columns: 90px minmax(150px,.7fr) minmax(220px,1.3fr) 100px; gap: 16px; }
}

@media (max-width: 900px) {
  .hm-intro { grid-template-columns: 1fr; gap: 52px; }
  .hm-intro h1 { max-width: 100%; }
  .hm-intro-side { max-width: none; padding-left: 0; border-left: 0; }
  .hm-guide-head > p { max-width: 52ch; }
}

@media (max-width: 760px) {
  .hm-opener { min-height: 100svh; padding: calc(64px + 88px) 0 88px; }
  .hm-intro h1 { max-width: 100%; font-size: clamp(38px,7.8vw,46px); }
  .hm-studio-shell { grid-template-rows: 64px minmax(0,1fr); }
  .hm-stage-toolbar { min-height: 64px; gap: 12px; padding-inline: 16px; }
  .hm-studio-brand { width: 92px; }
  .hm-studio-brand img { width: 92px; }
  .hm-stage-toolbar > strong { display: none; }
  .hm-toolbar-actions { min-width: 0; }
  .hm-toolbar-actions button,
  .hm-toolbar-actions a { width: 38px; min-height: 38px; justify-content: center; padding: 0; }
  .hm-toolbar-actions button span,
  .hm-toolbar-actions a span { display: none; }
  .hm-studio-close { width: 38px; height: 38px; }
  .hm-studio.has-result .hm-studio-brand { display: none; }
  .hm-brief-panel { grid-template-columns: 1fr; gap: 48px; }
  .hm-brief-copy h2 { max-width: 13ch; font-size: 52px; }
  .hm-loading-card { min-height: calc(100svh - 64px); padding: 28px 0 0; }
  .hm-meter { top: 64px; }
  .hm-loading-progress { order: -1; padding: 0 16px 4px; }
  .hm-loading-workspace { display: flex; flex-direction: column; gap: 24px; }
  .hm-loading-progress ol { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; margin-top: 16px; }
  .hm-loading-progress li { display: block; min-height: 58px; text-align: center; }
  .hm-loading-progress li > i { margin: 0 auto 8px; }
  .hm-loading-progress li > div { padding: 0; }
  .hm-loading-progress li strong { font-size: 10px; line-height: 1.25; }
  .hm-loading-progress li small { display: none; }
  .hm-loading-progress > p { margin: 10px 0 0; padding-top: 12px; text-align: center; }
  .hm-live-brief { width: 100%; border-inline: 0; box-shadow: none; }
  .hm-live-evidence { grid-template-columns: 1fr; }
  .hm-live-evidence figure { min-height: 220px; border-right: 0; border-bottom: 1px solid rgba(23,19,15,.12); }
  .hm-live-evidence > div { padding: 30px 24px; }
  .hm-live-fields > div,
  .hm-live-plan { padding-inline: 24px; }
  .hm-result-state { padding: 0; }
  .hm-folio { box-shadow: none; }
  .hm-folio-header { min-height: 104px; padding-inline: 24px; }
  .hm-insight-grid,
  .hm-brief-section,
  .hm-plan-section,
  .hm-needs-section { padding-left: 24px; padding-right: 24px; }
  .hm-brief-grid,
  .hm-needs-section { grid-template-columns: 1fr; }
  .hm-message-field { grid-column: auto; }
  .hm-plan-head { display: none; }
  .hm-plan-row { grid-template-columns: 88px minmax(0,1fr); gap: 8px 16px; }
  .hm-plan-row > span:nth-child(3),
  .hm-plan-row > span:nth-child(4) { grid-column: 2; }
  .hm-plan-row > span:nth-child(4) { margin-top: 4px; }
  .hm-guide-section { padding-top: 88px; padding-bottom: 88px; }
  .hm-guide-body { margin-top: 72px; }
  .hm-guide-body h3 { max-width: 16ch; }
}

@media (max-width: 560px) {
  .hm-opener { padding: calc(64px + 56px) 0 56px; }
  .hm-intro { gap: 44px; }
  .hm-intro h1 { font-size: clamp(34px,8.8vw,38px); }
  .hm-intro-side > p { font-size: 17px; }
  .hm-start-control { grid-template-columns: minmax(0,1fr) 48px; padding-right: 6px; }
  .hm-start-control button { width: 46px; min-height: 46px; padding: 0; border-radius: 50%; }
  .hm-start-control button span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .hm-brief-panel { gap: 28px; }
  .hm-brief-copy h2 { max-width: 12ch; font-size: 40px; }
  .hm-brief-copy p { margin-top: 14px; font-size: 15px; line-height: 1.45; }
  .hm-brief-form { padding-top: 0; }
  .hm-hotel-summary { padding-bottom: 18px; }
  .hm-month-field { margin-top: 20px; padding-bottom: 14px; }
  .hm-direction-field { margin-top: 20px; }
  .hm-direction-field textarea { min-height: 76px; padding: 10px 0; font-size: 16px; }
  .hm-create { min-height: 52px; margin-top: 20px; }
  .hm-studio:not(.is-preparing):not(.has-result):not(.has-error) .hm-studio-grid { align-items: start; padding: 26px 18px 34px; }
  .hm-live-header { padding: 18px; }
  .hm-live-brand.on-dark { margin: -18px 0 -18px -18px; padding: 18px; }
  .hm-live-brand img { max-width: 118px; max-height: 34px; }
  .hm-live-meta span { max-width: 150px; }
  .hm-live-evidence p { font-size: 28px; }
  .hm-live-fields { grid-template-columns: 1fr; }
  .hm-live-fields > div { border-right: 0; }
  .hm-live-fields .hm-live-message { grid-column: 1; }
  .hm-folio-header { align-items: flex-start; }
  .hm-result-brand { min-width: 110px; }
  .hm-result-brand img { max-width: 120px; max-height: 38px; }
  .hm-result-brand.on-dark { margin: -26px 0 -26px -24px; padding: 24px; }
  .hm-folio-meta small { max-width: 150px; }
  .hm-insight-grid { padding-top: 50px; padding-bottom: 50px; }
  .hm-insight-grid p { font-size: 28px; }
  .hm-insight-grid > div:last-child p { font-size: 18px; }
  .hm-section-head { align-items: flex-start; flex-direction: column; gap: 10px; }
  .hm-observation { grid-template-columns: 1fr; gap: 7px; }
  .hm-start-over { margin-bottom: 38px; }
  .hm-guide-section { padding-top: 56px; padding-bottom: 56px; }
  .hm-guide-head h2 { font-size: 32px; }
  .hm-guide-head > p { margin-top: 26px; padding-top: 20px; font-size: 17px; }
  .hm-guide-body { margin-top: 54px; }
  .hm-guide-body > section + section { margin-top: 64px; }
  .hm-guide-body p { font-size: 16px; line-height: 1.68; }
  .hm-guide-sources { margin-top: 80px !important; }
  .hm-status { right: 14px; bottom: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  .hm-studio,
  .hm-meter span,
  .hm-live-brand img,
  .hm-live-evidence img { transition: none; animation: none; opacity: 1; transform: none; }
  .hm-live-evidence figure::after,
  .hm-loading-live > span { animation: none; }
}
