#root-domain-bootstrap { display: none !important; }
.root-home { height: 100dvh; min-height: 0; display: grid; grid-template-rows: auto minmax(0,1fr) auto; overflow: hidden; }
.root-home-header { width: min(1280px,100%); margin: auto; display: flex; align-items: center; padding: 30px 40px; }
.home-brand { display: inline-flex; align-items: center; gap: 10px; color: var(--rd-ink); font: 700 21px var(--rd-font-display); text-decoration: none; }
.home-brand .rd-glyph { width: 30px; height: 30px; color: var(--rd-accent); }
.root-home-main { width: min(1200px,100%); height: 100%; min-height: 0; margin: 0 auto; padding: 60px 40px 100px; display: grid; grid-template-columns: .9fr 1.1fr; grid-auto-rows: max-content; align-items: center; align-content: safe center; gap: 80px; overflow-y: auto; overscroll-behavior: contain; touch-action: pan-y; scroll-padding-block: 24px; }
.home-intro { display: grid; justify-items: start; gap: 28px; }
.hero-kicker { display: inline-flex; align-items: center; gap: 8px; color: var(--rd-accent); font-size: 12px; font-weight: 500; }
.home-intro h1 { max-width: 460px; font: 600 clamp(48px,6vw,80px)/1.02 var(--rd-font-display); letter-spacing: -.055em; overflow-wrap: normal; }
.home-intro .visual-actions { margin-top: 8px; }
.home-intro .visual-action { min-height: 52px; padding: 16px 24px; font-size: 14px; }
.gallery-stack { position: relative; width: min(480px,100%); aspect-ratio: 1; isolation: isolate; }
.gallery-stack::before { content: ''; position: absolute; inset: 10%; border-radius: 50%; background: #e3edda; filter: blur(45px); z-index: -1; }
.cover-tile { position: absolute; overflow: hidden; width: 57%; height: 72%; border: 8px solid white; border-radius: 26px; box-shadow: 0 18px 46px rgb(28 41 33 / .12); }
.cover-dawn { left: 3%; top: 4%; transform: rotate(-16deg); background: linear-gradient(#e4c7ba,#ebd4a9); }
.cover-coast { right: 1%; top: 9%; transform: rotate(13deg); background: linear-gradient(#b2cbd0,#d9e4d2); }
.cover-forest { left: 21%; bottom: 1%; transform: rotate(-2deg); background: linear-gradient(#92b1a4,#dbe3c0); z-index: 2; }
.cover-sun { position: absolute; width: 27%; aspect-ratio: 1; border-radius: 50%; top: 18%; right: 14%; background: #f5e7bd; }
.cover-ridge, .cover-front { position: absolute; width: 130%; height: 60%; bottom: -6%; left: -12%; border-radius: 48% 65% 0 0; background: #698a75; transform: rotate(-20deg); }
.cover-front { bottom: -28%; left: 4%; background: #315a48; transform: rotate(17deg); }
.cover-dawn .cover-ridge { background: #c18976; }.cover-dawn .cover-front { background: #8a615b; }
.cover-coast .cover-ridge { background: #80a4a7; }.cover-coast .cover-front { background: #537e82; }
.cover-link { position: absolute; z-index: 3; bottom: 7%; right: 4%; display: grid; place-items: center; width: 66px; height: 66px; border: 5px solid var(--rd-paper); border-radius: 22px; background: var(--rd-accent); color: white; box-shadow: 0 10px 26px rgb(28 41 33 / .12); transform: rotate(10deg); }
.cover-link .rd-glyph { width: 28px; height: 28px; }
.auth-card { width: min(440px,100%); display: grid; gap: 26px; }
.auth-mark { display: grid; place-items: center; width: 50px; height: 50px; border-radius: 16px; color: var(--rd-accent); background: var(--rd-accent-soft); }
.auth-card h1, .noscript-panel h1 { font: 600 34px/1.1 var(--rd-font-body); letter-spacing: -.05em; }
.home-form { display: grid; gap: 20px; width: 100%; }
.home-form .visual-actions { margin-top: 8px; }
.home-form .visual-primary { flex: 1; justify-content: space-between; }
.home-notice { position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%); z-index: 80; width: min(480px,calc(100vw - 32px)); padding: 16px 20px; border: 1px solid var(--rd-rule); border-radius: 16px; background: white; box-shadow: 0 12px 50px rgb(28 41 33 / .12); font-size: 13px; }
.root-home > .home-notice { position: static; transform: none; margin: 0 auto 16px; }
.home-notice[role=alert] { color: #a2473b; }
.noscript-shell { width: 100%; height: 100dvh; min-height: 0; display: grid; justify-items: center; align-items: safe center; padding: 40px 24px; overflow-y: auto; overscroll-behavior: contain; touch-action: pan-y; scroll-padding-block: 24px; }
.noscript-panel { width: min(440px,100%); display: grid; gap: 24px; padding: 32px; border-radius: 28px; border: 1px solid var(--rd-rule); background: white; }
.noscript-panel .visual-art { width: 54px; height: 54px; padding: 14px; border-radius: 18px; background: var(--rd-accent-soft); order: -1; }
.noscript-panel > p { font-size: 13px; color: var(--rd-ink-3); }
.noscript-error { color: #a2473b; }
@media (max-width:899px) {
  .root-home-header { padding: 24px; }
  .root-home-main { gap: 30px; padding: 30px 24px 60px; }
  .home-intro h1 { font-size: 48px; }
}
@media (max-width:599px) {
  .root-home-header { padding: 24px 22px; }
  .root-home-main { min-height: 0; padding: 32px 24px 50px; grid-template-columns: 1fr; gap: 42px; }
  .home-intro { gap: 22px; }
  .home-intro h1 { max-width: 340px; font-size: 52px; }
  .gallery-stack { width: min(340px,90%); margin: 0 auto; }
  .auth-view { padding-top: 24px; }
  .auth-view .gallery-stack { display: none; }
  .auth-card { gap: 24px; }
  .noscript-panel { padding: 24px; }
}
@media (max-height:520px) and (min-width:600px) {
  .root-home-header { padding: 18px 24px; }
  .root-home-main { min-height: 0; padding: 20px 24px 40px; }
  .home-intro h1 { font-size: 40px; }
  .gallery-stack { width: 230px; }
}
.home-notice { max-height: min(40dvh, 16rem); overflow-y: auto; white-space: pre-wrap; }
