* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--siraj-ember); }
body { margin: 0; min-width: 320px; color: var(--siraj-warm-white); background: var(--siraj-ember); font-family: var(--siraj-sans); font-size: 16px; font-weight: 400; line-height: 1.55; letter-spacing: .01em; }
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
img { display: block; width: 100%; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
.skip-link { position: fixed; z-index: 20; left: 1rem; top: -4rem; padding: .7rem 1rem; color: var(--siraj-ember); background: var(--siraj-wax); transition: top .2s ease; }
.skip-link:focus { top: 1rem; }
.page-grain { position: fixed; z-index: 10; inset: 0; pointer-events: none; opacity: .04; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E"); }

.site-header { position: absolute; z-index: 9; top: 0; left: 0; right: 0; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; min-height: 6.25rem; padding: 0 clamp(1.5rem, 4vw, 4.5rem); border-bottom: 1px solid rgba(232, 196, 154, .14); }
.wordmark { font-family: var(--siraj-display); font-size: clamp(1.8rem, 2.5vw, 2.7rem); font-weight: 400; letter-spacing: .1em; line-height: 1; }
.site-nav { display: flex; gap: clamp(1.1rem, 2.6vw, 3.4rem); font-size: .65rem; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; }
.site-nav a, .preview-link, .mobile-menu a { transition: color .25s ease; }
.site-nav a:hover, .preview-link:hover, .mobile-menu a:hover { color: var(--siraj-wax); }
.preview-link { justify-self: end; font-size: .65rem; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: var(--siraj-wax); }
.preview-link span { margin-left: .35rem; }
.menu-button, .mobile-menu { display: none; }

.hero { position: relative; min-height: max(45rem, 100svh); overflow: hidden; isolation: isolate; }
.hero-image, .hero-image::after, .hero-shade { position: absolute; inset: 0; }
.hero-image { z-index: -3; background: var(--siraj-surface); }
.hero-image img { height: 100%; object-fit: cover; object-position: 66% center; animation: hero-settle 1.6s cubic-bezier(.22, 1, .36, 1) both; }
.hero-image::after { content: ''; background: linear-gradient(90deg, rgba(23, 16, 13, .94) 0%, rgba(23, 16, 13, .78) 32%, rgba(23, 16, 13, .14) 68%, rgba(23, 16, 13, .22) 100%); }
.hero-shade { z-index: -2; background: radial-gradient(circle at 72% 62%, rgba(196, 145, 74, .17), transparent 17rem); mix-blend-mode: screen; }
.hero-copy { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; min-height: max(45rem, 100svh); width: min(44rem, 60vw); padding: 8.5rem 3rem 6rem clamp(1.5rem, 10vw, 12rem); }
.kicker { display: flex; align-items: center; gap: .85rem; margin: 0 0 1.25rem; color: var(--siraj-wax); font-size: .62rem; font-weight: 500; letter-spacing: .19em; text-transform: uppercase; }
.kicker span { display: block; width: 2.75rem; height: 1px; background: currentColor; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--siraj-display); font-weight: 400; font-feature-settings: 'liga' 1, 'dlig' 1, 'calt' 1, 'swsh' 1, 'salt' 1, 'ss01' 1; letter-spacing: -.055em; line-height: .91; text-wrap: balance; }
h1 { max-width: 10ch; margin-bottom: 1.7rem; font-size: clamp(4.9rem, 8.9vw, 9.7rem); }
.hero-intro { max-width: 22rem; margin-bottom: 2.2rem; color: rgba(242, 234, 224, .82); font-size: .82rem; line-height: 1.85; }
.round-link { display: inline-flex; align-items: center; gap: .9rem; color: var(--siraj-wax); font-size: .64rem; font-weight: 500; letter-spacing: .15em; text-transform: uppercase; }
.round-link span { display: grid; width: 3.35rem; height: 3.35rem; place-items: center; border: 1px solid currentColor; border-radius: 50%; font-size: 1rem; transition: transform .25s ease, background .25s ease, color .25s ease; }
.round-link:hover span { color: var(--siraj-ember); background: var(--siraj-wax); transform: translateY(.25rem); }
.section-rail { position: absolute; z-index: 2; top: 50%; left: clamp(1.5rem, 3vw, 3.75rem); display: flex; flex-direction: column; gap: 1.45rem; margin: 0; padding: 0; list-style: none; transform: translateY(-50%); }
.section-rail li { padding-left: .8rem; border-left: 1px solid rgba(232, 196, 154, .25); }
.section-rail li.is-current { border-color: var(--siraj-copper); }
.section-rail a { color: rgba(242, 234, 224, .6); font-size: .59rem; letter-spacing: .14em; }
.section-rail span { display: none; }
.hero-caption { position: absolute; right: clamp(1.5rem, 4vw, 4.5rem); bottom: 2.4rem; margin: 0; color: rgba(242, 234, 224, .6); font-size: .59rem; letter-spacing: .16em; text-transform: uppercase; writing-mode: vertical-rl; }

.section { position: relative; }
.ritual { display: grid; grid-template-columns: minmax(8rem, 1fr) minmax(17rem, .8fr) minmax(22rem, 1.2fr); gap: clamp(2rem, 5vw, 7rem); align-items: center; min-height: 52rem; padding: clamp(5.5rem, 11vw, 10rem) clamp(1.5rem, 10vw, 12rem); background: var(--siraj-surface); }
.section-label { display: flex; align-items: center; gap: 1rem; color: var(--siraj-wax); font-size: .61rem; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; }
.section-label span { display: grid; width: 2rem; height: 2rem; place-items: center; border: 1px solid rgba(232, 196, 154, .38); border-radius: 50%; font-size: .55rem; }
.section-label p { margin: 0; }
.ritual-copy h2, .objects h2, .house h2, .private-preview h2 { font-size: clamp(3.7rem, 5.8vw, 7.3rem); }
.ritual-copy h2 { margin: .9rem 0 1.7rem; }
.ritual-copy > p:last-child, .objects-intro > p, .house-copy > p, .preview-copy { max-width: 24rem; color: rgba(242, 234, 224, .72); font-size: .82rem; line-height: 1.9; }
.ritual-image { position: relative; margin: 0; overflow: hidden; }
.ritual-image::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(35, 24, 17, .15), transparent 60%); pointer-events: none; }
.ritual-image img { min-height: 32rem; object-fit: cover; }
.ritual-image figcaption { position: absolute; bottom: 1.65rem; left: 1.65rem; max-width: 15rem; margin: 0; color: var(--siraj-wax); font-size: .6rem; font-weight: 500; letter-spacing: .12em; line-height: 1.65; text-transform: uppercase; }

.objects { display: grid; grid-template-columns: minmax(20rem, .85fr) minmax(25rem, 1.15fr); gap: clamp(3rem, 10vw, 13rem); padding: clamp(6rem, 13vw, 12rem) clamp(1.5rem, 10vw, 12rem); background: var(--siraj-ember); }
.objects h2 { margin: 1.5rem 0; }
.object-list { align-self: end; border-top: 1px solid var(--siraj-line); }
.object-list article { display: grid; grid-template-columns: 4rem 1fr auto; gap: 1rem; align-items: start; padding: 2.3rem 0; border-bottom: 1px solid var(--siraj-line); }
.object-number { margin: .6rem 0 0; color: var(--siraj-copper); font-size: .61rem; font-weight: 500; letter-spacing: .14em; }
.object-list h3 { margin-bottom: .75rem; font-size: clamp(2rem, 3.5vw, 3.8rem); }
.object-list article div p { max-width: 15rem; margin: 0; color: rgba(242, 234, 224, .65); font-size: .74rem; line-height: 1.7; }
.object-list article > span { margin-top: .45rem; color: var(--siraj-copper); font-size: 1.25rem; }

.house { display: grid; grid-template-columns: 1.13fr .87fr; min-height: 48rem; background: var(--siraj-surface); }
.house-image { min-height: 48rem; margin: 0; overflow: hidden; }
.house-image img { height: 100%; object-fit: cover; object-position: center; }
.house-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(4rem, 9vw, 10rem); background: linear-gradient(135deg, #341614, var(--siraj-surface) 65%); }
.house-copy h2 { margin: 1.25rem 0 1.7rem; }
.text-link { display: inline-flex; gap: .7rem; width: max-content; margin-top: 1.6rem; padding-bottom: .5rem; border-bottom: 1px solid var(--siraj-copper); color: var(--siraj-wax); font-size: .63rem; font-weight: 500; letter-spacing: .15em; text-transform: uppercase; }

.private-preview { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 46rem; padding: 5rem 1.5rem; overflow: hidden; text-align: center; background: var(--siraj-ember); isolation: isolate; }
.private-preview .kicker { justify-content: center; }
.private-preview h2 { max-width: 10ch; margin: .2rem 0 1.35rem; }
.preview-copy { margin-bottom: 2rem; }
.preview-orb { position: absolute; z-index: -1; width: min(48vw, 40rem); aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle at 46% 44%, rgba(232, 196, 154, .25), rgba(196, 145, 74, .09) 20%, rgba(122, 46, 56, .26) 42%, transparent 69%); filter: blur(5px); }
.button { display: inline-flex; align-items: center; gap: 2rem; padding: 1rem 1.3rem 1rem 1.65rem; color: var(--siraj-ember); background: var(--siraj-wax); font-size: .62rem; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; transition: background .25s ease, transform .25s ease; }
.button:hover { background: var(--siraj-copper); transform: translateY(-.2rem); }
.button span { font-size: 1.1rem; }

.site-footer { display: grid; grid-template-columns: 1fr auto auto auto; gap: 2rem; align-items: center; padding: 1.8rem clamp(1.5rem, 4vw, 4.5rem); border-top: 1px solid var(--siraj-line); color: rgba(242, 234, 224, .65); font-size: .58rem; letter-spacing: .14em; text-transform: uppercase; }
.site-footer .wordmark { color: var(--siraj-wax); font-size: 1.65rem; }
.site-footer p { margin: 0; }
.site-footer a:not(.wordmark):hover { color: var(--siraj-wax); }
.will-reveal { opacity: 0; transform: translateY(1.4rem); transition: opacity .8s ease, transform .8s cubic-bezier(.22, 1, .36, 1); }
.will-reveal.is-visible { opacity: 1; transform: translateY(0); }
@keyframes hero-settle { from { opacity: .35; transform: scale(1.045); } to { opacity: 1; transform: scale(1); } }

@media (max-width: 860px) {
  .site-header { grid-template-columns: 1fr auto; min-height: 5rem; padding: 0 1.35rem; }
  .site-nav, .preview-link { display: none; }
  .menu-button { display: grid; gap: .35rem; width: 2.6rem; height: 2.6rem; place-content: center; padding: 0; border: 1px solid rgba(232, 196, 154, .35); border-radius: 50%; color: var(--siraj-wax); background: transparent; cursor: pointer; }
  .menu-button span:not(.sr-only) { width: .9rem; height: 1px; background: currentColor; transition: transform .2s ease; }
  .menu-button[aria-expanded='true'] span:nth-of-type(2) { transform: translateY(3px) rotate(45deg); }
  .menu-button[aria-expanded='true'] span:nth-of-type(3) { transform: translateY(-3px) rotate(-45deg); }
  .mobile-menu { position: fixed; z-index: 8; inset: 5rem 0 0; display: flex; flex-direction: column; justify-content: center; gap: 1.65rem; padding: 2rem 1.5rem; visibility: hidden; opacity: 0; background: rgba(23, 16, 13, .98); text-align: center; transition: opacity .2s ease, visibility .2s ease; }
  .mobile-menu.is-open { visibility: visible; opacity: 1; }
  .mobile-menu a { font-family: var(--siraj-display); font-size: clamp(2.7rem, 11vw, 4.7rem); letter-spacing: -.05em; line-height: .95; }
  .hero { min-height: 42rem; }
  .hero-copy { width: min(30rem, 100%); min-height: 42rem; padding: 7rem 1.35rem 5rem; justify-content: flex-end; }
  .hero-image img { object-position: 62% center; }
  .hero-image::after { background: linear-gradient(90deg, rgba(23, 16, 13, .86), rgba(23, 16, 13, .35) 90%); }
  h1 { font-size: clamp(4.5rem, 17vw, 7.6rem); }
  .section-rail, .hero-caption { display: none; }
  .ritual { grid-template-columns: 1fr; gap: 2.5rem; min-height: 0; padding: 5rem 1.35rem; }
  .ritual-copy { max-width: 34rem; }
  .ritual-image img { min-height: 25rem; }
  .objects { grid-template-columns: 1fr; gap: 2rem; padding: 5rem 1.35rem; }
  .house { grid-template-columns: 1fr; min-height: 0; }
  .house-image { min-height: 33rem; }
  .house-copy { min-height: 31rem; padding: 5rem 1.35rem; }
  .site-footer { grid-template-columns: 1fr 1fr; gap: 1.4rem; padding: 2rem 1.35rem; }
  .site-footer p:nth-of-type(1) { text-align: right; }
}
@media (max-width: 480px) { .wordmark { font-size: 1.65rem; } .hero-intro { font-size: .75rem; } .round-link b { font-size: .58rem; } .object-list article { grid-template-columns: 2.5rem 1fr auto; } .site-footer { display: flex; flex-wrap: wrap; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }
