/* MORIKA — editorial refinement. Video playback is intentionally unchanged. */
:root { --night:#101820; --paper:#f5f5f1; --gold:#d5bd8b; --gutter:clamp(24px,7vw,128px); }
html { scroll-padding-top:100px; }
body { -webkit-font-smoothing:antialiased; }
a,button { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:2px solid #a87d35; outline-offset:7px; }
.skip-link { position:fixed; z-index:100; top:12px; left:16px; padding:12px 20px; background:white; color:#101820; transform:translateY(-160%); }
.skip-link:focus { transform:translateY(0); }
.site-header { padding-inline:clamp(24px,4vw,76px); height:92px; }
.site-header.scrolled { height:76px; background:rgba(245,245,241,.97); }
.brand { gap:13px; letter-spacing:.21em; font-size:1.2rem; }
.brand small { font-size:.75rem; letter-spacing:.03em; }
.brand-mark { width:40px; height:40px; background:transparent; border:1px solid currentColor; color:inherit; }
.nav { align-items:center; gap:clamp(18px,2vw,34px); font-size:.875rem; }
.nav .nav-contact { display:flex; align-items:center; gap:26px; padding:12px 19px; border:1px solid rgba(255,255,255,.5); }
.scrolled .nav-contact { border-color:rgba(16,24,32,.3); }
.nav-contact::after { display:none; }
.nav-contact:hover { background:var(--gold); color:var(--night); border-color:var(--gold); }
.hero-copy,.delivery-copy,.house-copy { left:var(--gutter); }
.hero-copy h1,.delivery-copy h2,.house-copy h2 { font-weight:400; letter-spacing:-.045em; line-height:1.4; }
.hero-copy { top:49%; }
.hero-copy > p:last-child { letter-spacing:.16em; }
.eyebrow { font-size:.875rem; letter-spacing:.16em; }
.hero-shade { background:linear-gradient(90deg,rgba(6,13,18,.75) 0%,rgba(6,13,18,.27) 46%,rgba(6,13,18,.02) 80%),linear-gradient(0deg,rgba(6,13,18,.65),transparent 30%); }
.delivery-overlay { background:linear-gradient(90deg,rgba(6,13,18,.68),rgba(6,13,18,.06) 75%),linear-gradient(0deg,rgba(6,13,18,.6),transparent 35%); }
.scene-index { right:clamp(24px,4vw,76px); bottom:7%; text-align:right; font-size:2rem; }
.scene-index small { display:block; margin-bottom:15px; font:500 .875rem/1.4 'DM Sans',sans-serif; letter-spacing:.14em; }
.scroll-hint { font-size:.875rem; right:clamp(24px,4vw,76px); }
.story-progress { height:2px; }
.sales-message { left:var(--gutter); bottom:7%; }
.sales-kicker { font-size:.875rem; }
.intro,.business,.company { padding-inline:var(--gutter); }
.intro { position:relative; padding-top:clamp(100px,10vw,170px); padding-bottom:0; overflow:hidden; }
.intro-top { padding-bottom:27px; }
.intro-top > span { font-size:.875rem; }
.section-label { font-size:.875rem; letter-spacing:.17em; }
.section-label span { font-size:.875rem; }
.intro-grid { margin-top:70px; gap:clamp(40px,6vw,110px); align-items:start; }
.intro h2,.business h2,.company h2 { font-weight:400; letter-spacing:-.04em; }
.intro h2 { font-size:clamp(2.35rem,4vw,4.5rem); line-height:1.65; }
.intro-grid > div { border:0; padding:10px 0 0; line-height:2.2; }
.text-link { display:inline-flex; align-items:center; justify-content:space-between; gap:36px; padding:18px 0 12px; border-bottom:1px solid #a08c67; font-size:.9375rem; font-weight:500; }
.text-link span { transition:transform .25s; font-size:1.35rem; }
.text-link:hover span { transform:translate(4px,-4px); }
.brand-statement { margin:110px 0 -12px; color:#e0e1db; font:500 clamp(3.6rem,10.9vw,12.5rem)/.91 'DM Sans',sans-serif; letter-spacing:-.065em; user-select:none; }
.brand-statement span { color:#c0b59f; }
.business { padding-block:clamp(95px,10vw,170px); }
.business-heading { grid-template-columns:.8fr 1.2fr; margin-bottom:80px; }
.business h2 { font-size:clamp(2.65rem,4.5vw,5rem); }
.business-domain { border-top:1px solid rgba(213,189,139,.5); padding-top:30px; margin-top:52px; }
.domain-heading { display:flex; align-items:center; gap:28px; margin-bottom:32px; }
.domain-number { font:400 clamp(2.8rem,5vw,4.8rem)/1 'DM Sans',sans-serif; letter-spacing:-.07em; color:var(--gold); }
.domain-heading p { margin:0 0 5px; color:var(--gold); font:500 .875rem 'DM Sans',sans-serif; letter-spacing:.2em; }
.domain-heading h3 { margin:0; font:400 clamp(1.5rem,2.1vw,2rem)/1.6 'Noto Serif JP',serif; }
.domain-caption { margin-left:auto; font-size:.875rem; color:#b5bfc5; }
.service-list { grid-template-columns:repeat(2,minmax(0,1fr)); border:0; gap:0 50px; }
.business-domain:nth-child(2) .service-list { grid-template-columns:repeat(3,minmax(0,1fr)); }
.business-domain .service-list article { grid-template-columns:28px minmax(0,1fr); min-height:0; gap:14px; padding:25px 0 32px; border:0; border-top:1px solid rgba(255,255,255,.16); }
.business-domain .service-list article:nth-child(odd) { border-right:0; }
.business-domain .service-list article:nth-child(even) { padding-left:0; }
.service-list article:hover { background:transparent; }
.service-list h3 { font:500 clamp(1.1rem,1.4vw,1.35rem)/1.6 'Noto Sans JP',sans-serif; }
.service-list p { color:#bcc5ca; font-size:1rem; line-height:1.9; }
.service-list article > span { font-size:.875rem; color:#81919a; }
.business-contact { margin-top:32px; color:var(--gold); }
.company { padding-block:clamp(95px,10vw,170px); }
.company-heading { align-items:center; gap:clamp(40px,14vw,240px); margin-bottom:65px; }
.company h2 { font-size:clamp(2.7rem,4vw,4.5rem); }
.company-details { gap:clamp(35px,5vw,90px); grid-template-columns:1fr 1fr; }
.company-details dl > div { padding:24px 0; }
.company-details dl > div:first-child { padding-top:0; }
.company-details dd { font-weight:400; line-height:2; }
.map-frame { padding:0; box-shadow:none; }
.company-map iframe { height:380px; filter:saturate(.6); }
.map-frame:focus-within iframe,.map-frame:hover iframe { filter:none; }
.company-map > a { font-weight:400; }
.contact { padding:clamp(70px,8vw,125px) var(--gutter) 45px; background:#d4bc8f; color:#14202a; }
.contact-top { display:flex; justify-content:space-between; gap:40px; align-items:start; }
.contact .section-label,.contact .section-label span { color:#384239; }
.contact-top > p:last-child { margin:0; line-height:2; font-size:1rem; }
.contact-link { display:flex; justify-content:space-between; align-items:center; gap:30px; margin-top:52px; padding-bottom:60px; }
.contact-link h2 { margin:0; font:400 clamp(3rem,6.6vw,7.5rem)/1.45 'Noto Serif JP',serif; letter-spacing:-.045em; }
.contact-link h2 em { color:#fffaf0; }
.contact-arrow { display:grid; place-items:center; width:clamp(80px,12vw,175px); aspect-ratio:1; flex:none; border:1px solid rgba(20,32,42,.5); border-radius:50%; font:400 clamp(2.5rem,5vw,5rem) 'DM Sans',sans-serif; transition:background .35s,color .35s,transform .35s; }
.contact-link:hover .contact-arrow { background:#14202a; color:#d4bc8f; transform:rotate(45deg); }
.contact-bottom { display:flex; justify-content:space-between; align-items:center; gap:20px; padding-top:28px; border-top:1px solid rgba(20,32,42,.3); }
.contact-bottom span { font-size:.875rem; }
.contact-bottom a { font:400 clamp(1.1rem,2.3vw,2rem)/1.5 'DM Sans',sans-serif; }
.contact-bottom a:hover { text-decoration:underline; }
footer { padding:65px var(--gutter) 30px; align-items:center; }
.footer-brand { font-size:1.3rem; }
.back-top { font-size:.875rem; color:#c4cbd0; display:flex; align-items:center; gap:30px; }
.back-top span { font-size:1.5rem; }
.copyright { font-size:.875rem; color:#9aa7af; }
@media(prefers-reduced-motion:no-preference) {
  .reveal-ready [data-reveal] { opacity:0; transform:translateY(26px); transition:opacity .85s ease,transform .85s cubic-bezier(.2,.7,.2,1); }
  .reveal-ready [data-reveal].is-visible { opacity:1; transform:translateY(0); }
}
@media(max-width:1100px) {
  .site-header { padding-inline:24px; }
  .nav { gap:16px; }
  .nav .nav-contact { gap:10px; padding:10px; }
  .brand { font-size:1rem; }
  .brand small { font-size:.75rem; }
}
@media(min-width:701px) and (max-width:950px) {
  .nav a:not(.nav-contact) { font-size:.875rem; }
  .nav { gap:11px; }
  .brand-mark { display:none; }
  .intro-grid { grid-template-columns:1fr; gap:30px; }
  .intro-grid > div { max-width:650px; }
}
@media(min-width:701px) and (max-width:1050px) {
  .company-details { grid-template-columns:minmax(0,1fr); }
  .company-map iframe { height:clamp(350px,45vw,440px); }
  .business-domain:nth-child(2) .service-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .business-domain:nth-child(2) .service-list article:last-child { grid-column:1/-1; }
}
@media(max-width:700px) {
  html { scroll-padding-top:85px; }
  .site-header,.site-header.scrolled { height:72px; }
  .nav { top:72px; padding:12px 24px calc(24px + env(safe-area-inset-bottom,0px)); align-items:stretch; gap:0; max-height:calc(100dvh - 72px); overflow-y:auto; overscroll-behavior:contain; }
  .nav .nav-contact { margin-top:14px; padding:12px 16px; border:1px solid #b2a385; }
  .brand-mark { width:34px; height:34px; }
  .brand small { font-size:.75rem; }
  .story-video { top:39%; }
  .hero-copy,.delivery-copy,.house-copy { top:13%; left:24px; right:24px; max-width:calc(100% - 48px); }
  .hero-copy h1,.delivery-copy h2,.house-copy h2 { font-size:clamp(2.15rem,8.5vw,3.3rem); line-height:1.4; }
  .hero-copy > p:last-child,.delivery-copy > p:last-child,.house-copy > p:last-child { font-size:.875rem; letter-spacing:.025em; margin-top:15px; }
  .eyebrow { font-size:.75rem; letter-spacing:.07em; margin-bottom:15px; }
  .hero-shade,.delivery-overlay { background:linear-gradient(0deg,var(--night) 0%,transparent 28%,transparent 56%,var(--night) 85%); }
  .scene-index { right:24px; bottom:5%; font-size:1.4rem; }
  .scene-index small { font-size:.75rem; letter-spacing:.035em; margin-bottom:10px; }
  .sales-message { left:24px; bottom:13%; right:24px; }
  .sales-kicker { font-size:.875rem; }
  .intro-grid { grid-template-columns:1fr; margin-top:45px; gap:28px; }
  .intro h2 { font-size:clamp(2rem,7.3vw,3rem); }
  .intro-grid > div { padding:0; }
  .intro,.business,.company { padding-top:85px; }
  .brand-statement { font-size:10.5vw; margin:70px 0 -3px; }
  .business,.company { padding-bottom:85px; }
  .business-heading { display:block; margin-bottom:45px; }
  .business-heading .section-label { margin-bottom:32px; }
  .business h2 { font-size:clamp(2rem,7.6vw,2.45rem); }
  .business-domain { padding-top:24px; margin-top:32px; }
  .domain-heading { flex-wrap:wrap; gap:20px; margin-bottom:24px; }
  .domain-caption { width:100%; margin-left:0; }
  .domain-number { font-size:3.7rem; }
  .business-domain .service-list,.business-domain:nth-child(2) .service-list { grid-template-columns:1fr; gap:0; }
  .business-domain .service-list article { grid-template-columns:28px minmax(0,1fr); padding:23px 0!important; }
  .service-list h3 { font-size:1.1rem; }
  .service-list p { font-size:1rem; }
  .company-heading { display:block; margin-bottom:40px; }
  .company-details { grid-template-columns:1fr; }
  .company-details dl > div { grid-template-columns:82px minmax(0,1fr); }
  .company-details dt { font-size:.875rem; }
  .company-map iframe { height:clamp(270px,85vw,380px); }
  .map-zoom { top:12px; right:12px; }
  .map-zoom button { width:48px; height:48px; }
  .contact { padding-top:65px; padding-bottom:30px; }
  .contact-top { display:block; }
  .contact-top > p:last-child { margin-top:25px; }
  .contact-link { margin-top:36px; gap:12px; padding-bottom:36px; }
  .contact-link h2 { min-width:0; font-size:clamp(1.7rem,7.4vw,3.1rem); }
  .contact-arrow { width:60px; font-size:2rem; }
  .contact-bottom { align-items:start; flex-direction:column; gap:8px; padding-top:22px; }
  .contact-bottom a { font-size:1.45rem; }
  footer { grid-template-columns:1fr auto; gap:28px 10px; padding-top:40px; padding-bottom:calc(30px + env(safe-area-inset-bottom,0px)); }
  .back-top { gap:10px; }
  .copyright { grid-column:1/-1; }
}
@media(max-height:650px) and (max-width:700px) {
  .hero-copy,.delivery-copy,.house-copy { top:16%; }
  .story-video { top:42%; }
  .hero-copy h1,.delivery-copy h2,.house-copy h2 { font-size:1.85rem; }
  .hero-copy > p:last-child,.delivery-copy > p:last-child,.house-copy > p:last-child { margin-top:8px; }
  .eyebrow { margin-bottom:8px; }
}
@media(max-width:380px) {
  .site-header { padding-inline:18px; }
  .brand { gap:9px; font-size:.94rem; }
  .brand-mark { width:30px; height:30px; }
  .hero-copy,.delivery-copy,.house-copy { left:20px; right:20px; max-width:calc(100% - 40px); }
  .hero-copy h1,.delivery-copy h2,.house-copy h2 { font-size:clamp(1.85rem,8.3vw,2.25rem); }
  .sales-message { left:20px; }
  .intro,.business,.company { padding-inline:20px; }
  .contact { padding-inline:20px; }
  .company-details dl > div { grid-template-columns:74px minmax(0,1fr); gap:9px; }
  .contact-link h2 { font-size:clamp(1.55rem,7vw,1.8rem); }
  .contact-arrow { width:52px; }
  footer { padding-inline:20px; }
}
@media(min-width:701px) and (max-height:600px) {
  .hero-copy,.delivery-copy,.house-copy { top:49%; bottom:auto; max-width:min(72vw,670px); }
  .hero-copy { transform:translateY(calc(-50% + var(--hero-shift,0px))); }
  .delivery-copy { transform:translateY(calc(-50% + var(--delivery-copy-y,0px))); }
  .house-copy { transform:translateY(calc(-50% + var(--house-copy-y,35px))); }
  .hero-copy h1,.delivery-copy h2,.house-copy h2 { font-size:clamp(2rem,4vw,3rem); line-height:1.3; }
  .eyebrow { margin-bottom:12px; }
  .hero-copy > p:last-child,.delivery-copy > p:last-child,.house-copy > p:last-child { margin-top:12px; }
  .scene-index { bottom:5%; font-size:1.45rem; }
  .scene-index small { margin-bottom:4px; }
  .nav { max-height:calc(100dvh - 76px); overflow-y:auto; overscroll-behavior:contain; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition:none!important; animation:none!important; }
}
@media(min-width:701px) and (max-width:1000px) {
  .menu-button { display:block; }
  .nav { position:fixed; top:92px; left:0; right:0; display:flex; flex-direction:column; align-items:stretch; gap:0; padding:16px 30px calc(28px + env(safe-area-inset-bottom,0px)); max-height:calc(100dvh - 92px); overflow-y:auto; overscroll-behavior:contain; background:var(--paper); color:var(--night); transform:translateY(-150%); opacity:0; pointer-events:none; visibility:hidden; }
  .site-header.scrolled .nav { top:76px; }
  .site-header.scrolled .nav { max-height:calc(100dvh - 76px); }
  .nav.open { transform:translateY(0); opacity:1; pointer-events:auto; visibility:visible; }
  .nav a { padding:13px 0; border-bottom:1px solid #d9d9d0; }
  .nav .nav-contact { margin-top:16px; padding:12px 16px; border:1px solid #b2a385; }
}
@media(max-width:700px) {
  .nav { visibility:hidden; }
  .nav.open { visibility:visible; }
}
