/* TIRHAB flagship refresh · additive layer over site.css.
   Shared palette is defined in TIRHAB_DESIGN_SYSTEM.md; do not introduce a second brand. */
:root { --ink:#111317; --paper:#F3F1EA; --signal:#FF5A3C; --mist:#D7DFDA; --surface:#FCFBF7; --muted:#6D706F; --line:#11131724; }
body { background:var(--paper); }
.shell { width:min(100%,1360px); padding-inline:clamp(18px,4.5vw,64px); }
.section-space { padding-block:clamp(68px,7.8vw,116px); }
h2 { font-size:clamp(34px,4vw,55px); line-height:1.35; letter-spacing:-.025em; }
.button { min-height:54px; padding:13px 24px; border-radius:17px; font-weight:700; box-shadow:none; }
.button:hover { box-shadow:0 8px 22px #11131713; transform:translateY(-2px); }
.button.signal { background:var(--signal); color:var(--ink); }
.button.outline { border-color:#11131730; background:transparent; }
.button.outline:hover { background:var(--surface); }
a:focus-visible, button:focus-visible, summary:focus-visible { outline:3px solid #B9361A; outline-offset:4px; }
.site-header { position:relative; inset:auto; background:var(--paper); border-bottom:1px solid #11131712; }
.site-nav { height:92px; gap:20px; }
.site-nav nav { gap:36px; color:#404540; }
.site-nav nav a { font-size:14px; font-weight:650; }
.brand-name { align-items:flex-start; gap:2px; }
.brand-name strong { font-weight:850; font-size:29px; }
.brand-name span { letter-spacing:.24em; }
.nav-cta { min-height:46px; padding:10px 20px; }
.hero { min-height:0; padding-top:0; background:linear-gradient(155deg,#F8F7F3 3%,var(--paper) 66%,#EAEAE2); }
.hero:before { content:""; position:absolute; inset:auto -10% -18% auto; width:55%; height:68%; border-radius:50%; background:radial-gradient(circle,#FF5A3C10,transparent 66%); z-index:-1; pointer-events:none; }
.hero-inner { grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr); gap:clamp(26px,5vw,90px); min-height:655px; align-items:center; }
.hero-copy { padding-block:72px 70px; }
.hero-kicker { display:inline-flex; align-items:center; gap:10px; color:#AB3925; font-weight:750; font-size:13px; margin:0 0 24px; }
.hero-kicker:before { content:""; width:24px; height:3px; border-radius:3px; background:var(--signal); }
.hero h1 { font-size:clamp(47px,5.2vw,77px); line-height:1.26; margin:0 0 26px; font-weight:850; letter-spacing:-.04em; }
.hero h1>span { white-space:normal; }
.hero h1>span:last-child { color:var(--ink); }
.hero h1 em { color:#D84125; }
.hero-copy>p { font-size:17px; line-height:1.95; max-width:540px; margin:0 0 28px; }
.hero-copy .event-types { color:#565A57; font-size:13px; margin:24px 0 0; line-height:1.9; }
.hero-trust { display:flex; align-items:center; gap:10px 18px; flex-wrap:wrap; margin-top:24px; padding:0; list-style:none; font-size:12px; font-weight:650; color:#4B514E; }
.hero-trust li { display:flex; align-items:center; gap:7px; }
.hero-trust li:before { content:""; width:7px; height:7px; border-radius:50%; background:var(--signal); flex-shrink:0; }
.hero-object { height:570px; display:grid; place-items:center; perspective:none; overflow:visible; }
.hero-object:before { content:""; position:absolute; width:min(100%,480px); height:445px; border-radius:48px; background:var(--ink); inset-inline:0; top:60px; margin-inline:auto; transform:rotate(-3deg); pointer-events:none; }
.hero-object:after { content:"TIRHAB  /  INVITATION"; position:absolute; top:82px; left:18px; color:#FFFFFF75; font:650 11px/1 Arial,sans-serif; letter-spacing:.14em; transform:rotate(-3deg); pointer-events:none; }
.ticket-float { position:relative; top:auto; left:auto; width:min(84%,345px); animation:none!important; animation-play-state:paused!important; }
.invitation-pass, .invitation-pass:hover, .invitation-pass:focus-visible { transform:none!important; will-change:auto; }
.invitation-pass { min-height:448px; padding:31px 30px 30px; border:1px solid #DAD4C8; border-radius:25px; background:var(--surface); box-shadow:0 30px 58px #0004; }
.invitation-pass:before { inset:12px; border-color:#DAD4C8; border-radius:16px; }
.pass-brand { font-size:21px; }
.pass-caption { margin-top:20px; }
.pass-event { font-size:26px; }
.pass-date { font-size:12px; }
.pass-rule { width:45px; }
.pass-welcome { font-size:15px; }
.pass-label { font-size:12px; }
.pass-seal { top:77px; left:-15px; }
.scene-caption { position:absolute; bottom:34px; left:50%; transform:translateX(-50%); white-space:nowrap; font-weight:600; color:#FFF; font-size:12px; }
.hero-bottom { height:52px; }
.scroll-cue { color:#444844; font-weight:650; }
.journey-rail { grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; padding-block:28px; border-bottom:1px solid #11131724; }
.journey-rail>a { padding:12px 18px; gap:13px; min-height:74px; }
.journey-rail>a:first-child { padding-inline-start:0; }
.journey-rail>a+a { border-inline-start:1px solid #1113171A; }
.rail-icon { width:45px; height:45px; border-radius:15px; background:var(--surface); }
.rail-icon svg { width:21px; height:21px; }
.rail-number { display:none; }
.journey-rail strong { font-size:16px; margin-bottom:5px; }
.journey-rail small { font-size:12px; }
.journey { grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(32px,6.5vw,100px); }
.section-note { color:#AE3C27; font-weight:750; }
.journey h2 { max-width:550px; }
.step-tabs { gap:10px; border:0; margin-block:34px 25px; }
.step-tabs button { border:1px solid #11131722; border-radius:14px; background:var(--surface); min-height:54px; padding:12px 8px; font-weight:700; }
.step-tabs button:after { display:none; }
.step-tabs button[aria-selected=true] { color:var(--ink); border-color:var(--ink); background:var(--mist); }
.story-panels { min-height:202px; }
.story-panels h3 { font-weight:750; line-height:1.48; }
.story-panels p { line-height:1.95; }
.stage-number { font-weight:700; }
.circle-button { border-radius:15px; }
.text-link { font-weight:700; }
.journey-visual { background:#DFE5DF; min-height:630px; border-radius:34px; padding:24px 18px 0; }
.giant-step { opacity:.1; -webkit-text-stroke:0; color:var(--ink); font-size:180px; top:70px; }
.journey-orbit { border-color:#11131718; }
.floating-note { transform:none; top:205px; left:12px; border-radius:14px; }
.preview-phone, .preview-phone[data-stage="1"], .preview-phone[data-stage="2"] { transform:none; border-radius:35px; margin-top:31px; width:302px; border-color:var(--ink); box-shadow:0 24px 46px #11131727; }
.preview-event { border-radius:16px; }
.preview-action { border-radius:12px; }
.scan-preview { border-color:var(--signal); }
.features { background:var(--ink); }
.feature-art { display:none; }
.feature-inner { gap:clamp(30px,5vw,84px); padding-bottom:48px; }
.feature-copy h2 { font-size:clamp(34px,3.6vw,50px); line-height:1.45; }
.feature-note { color:#D7DFDA; }
.feature-intro, .benefits p { color:#D7DFDAC9; }
.benefits h3 { font-weight:750; }
.benefit-icon { width:54px; height:54px; border-radius:17px; background:#FCFBF710; border-color:#FCFBF72B; }
.benefits li { gap:15px; padding-block:22px; }
.product-showcase { align-self:center; }
.device-composition { min-height:570px; }
.device { border-color:#34383A; box-shadow:0 25px 45px #0006; border-radius:31px; }
.organizer-device { transform:rotate(-3deg); }
.guest-device { transform:rotate(4deg) translateY(40px); }
.offline-strip { background:transparent; }
.downloads { background:var(--mist); padding-block:82px; }
.download-monogram { color:#11131710; --mark-dots:#11131710; }
.download-intro h2>span:first-child { color:var(--ink); }
.download-intro p { color:#3D4640; }
.app-download { border-radius:22px; background:var(--surface); padding:19px 23px; box-shadow:0 6px 22px #1113170D; }
.app-download:hover { background:white; }
.download-note { margin-inline:0; }
.faq-section { gap:clamp(28px,6vw,90px); }
.faq details { border:1px solid #11131720; background:var(--surface); border-radius:18px; }
.faq details[open] { background:white; }
.faq summary { font-weight:700; }
.faq summary svg { background:#D7DFDA; }
.footer-brand { letter-spacing:-.045em; }
@media (max-width:1150px) {
  .hero-inner { grid-template-columns:1fr 1fr; gap:30px; }
  .hero-object { height:515px; }
  .hero-object:before { height:405px; top:44px; }
  .hero h1 { font-size:clamp(40px,4.9vw,66px); }
  .invitation-pass { min-height:425px; }
  .scene-caption { bottom:18px; }
  .journey { gap:36px; }
  .preview-phone { width:282px; }
}
@media (max-width:760px) {
  .site-nav { height:80px; }
  .site-nav nav { top:72px; inset-inline:18px; }
  .hero { padding-top:0; }
  .hero-inner { display:flex; flex-direction:column; gap:8px; }
  .hero-copy { padding-block:55px 4px; }
  .hero-kicker { font-size:12px; margin-bottom:18px; }
  .hero h1 { font-size:clamp(37px,9.6vw,58px); line-height:1.3; letter-spacing:-.04em; }
  .hero-copy>p { font-size:15px; line-height:1.9; }
  .hero-copy .event-types { margin-top:18px; }
  .hero-trust { gap:10px 15px; font-size:11px; margin-top:18px; }
  .actions .button { min-height:49px; border-radius:14px; }
  .hero-object { width:100%; height:450px; max-width:480px; margin:12px auto 0; }
  .hero-object:before { height:385px; width:calc(100% - 26px); top:24px; border-radius:35px; }
  .hero-object:after { top:46px; left:32px; }
  .ticket-float { width:min(74%,285px); }
  .invitation-pass { min-height:386px; border-radius:19px; padding:23px 20px; box-shadow:0 18px 42px #0005; }
  .invitation-pass:before { border-radius:12px; }
  .pass-event { font-size:22px; }
  .pass-caption { margin-top:12px; }
  .pass-welcome { font-size:13px; }
  .pass-seal { top:68px; }
  .scene-caption { bottom:8px; font-size:11px; }
  .hero-bottom { height:45px; }
  .journey-rail { grid-template-columns:1fr; padding-block:12px 24px; gap:0; }
  .journey-rail>a, .journey-rail>a:first-child { padding:16px 0; min-height:72px; }
  .journey-rail>a+a { border-inline-start:0; border-top:1px solid #1113171A; }
  .rail-number { display:grid; }
  .journey { grid-template-columns:1fr; gap:30px; }
  .journey h2 { font-size:clamp(31px,8vw,44px); }
  .step-tabs { gap:6px; }
  .step-tabs button { font-size:13px; padding:8px 4px; min-height:50px; }
  .step-tabs button>span { font-size:10px; }
  .story-panels { min-height:155px; }
  .journey-visual { min-height:615px; border-radius:25px; }
  .preview-phone, .preview-phone[data-stage="1"], .preview-phone[data-stage="2"] { width:min(100%,286px); max-width:calc(100% - 14px); }
  .floating-note { display:none; }
  .feature-inner { gap:32px; }
  .device-composition { min-height:465px; }
  .downloads { padding-block:64px; }
  .download-intro h2 { font-size:clamp(34px,8vw,54px); }
  .faq-section { gap:26px; }
}
@media (max-width:390px) {
  .hero-copy { padding-top:42px; }
  .hero h1 { font-size:36px; }
  .actions .button { padding-inline:14px; font-size:12px; }
  .hero-object { height:420px; }
  .hero-object:before { height:362px; }
  .invitation-pass { min-height:360px; }
  .pass-label { font-size:10px; }
  .preview-phone { width:265px; }
  .story-panels { min-height:188px; }
}
@media (prefers-reduced-motion:reduce) {
  .invitation-pass, .button, .preview-phone, .ticket-float { transition:none!important; animation:none!important; }
}
