/* Screen-based editorial rhythm and shared interaction feedback. */
html.home-paged{scroll-snap-type:y mandatory;scroll-padding-top:0}
html.home-paged.is-page-turning,html.home-paged.scene-free-scroll{scroll-snap-type:none}
.home-paged .header{height:84px;scroll-snap-align:start;scroll-snap-stop:always}
.home-paged main{min-height:0}
.home-paged .editorial-hero{min-height:calc(100svh - 84px);padding:clamp(45px,8svh,95px) 0 0;display:flex;flex-direction:column;justify-content:space-between}
.home-paged .editorial-name{font-size:clamp(100px,12.6vw,190px);line-height:.91;padding:0;margin:0 0 60px 8%;letter-spacing:-.075em}
.home-paged .editorial-name .surname{margin-left:25%;margin-top:10px}
.home-paged .hero-caption{grid-template-columns:1.6fr 1fr auto;gap:35px;align-items:center;min-height:134px;padding:28px 0 34px;border-top-color:var(--line)}
.home-paged .caption-note{padding:0;margin:0;font-size:13px;line-height:1.7}
.scroll-cue{font-size:12px;letter-spacing:0;gap:36px;padding:12px 16px;margin-right:-16px;border:1px solid transparent}
.home-paged .editorial-intro{scroll-margin-top:0;scroll-snap-align:start;scroll-snap-stop:always;min-height:100svh;display:grid;grid-template-columns:1.1fr .9fr;align-content:center;align-items:center;column-gap:12%;padding:80px 5%;border-top-color:var(--line)}
.home-paged .editorial-intro>h2{grid-column:auto;font-size:clamp(43px,4.8vw,72px);line-height:1.1;letter-spacing:-.055em}
.home-paged .intro-narrow{grid-column:auto;padding:0;max-width:360px;font-size:16px;line-height:1.75}
.home-paged .intro-narrow p{margin-bottom:25px}
.home-paged .featured-project{padding:0;border:0}
.home-paged .signal-scroll{height:300svh}
.home-paged .signal-scroll .signal-scene{min-height:0}
.signal-scroll{scroll-snap-align:start;scroll-snap-stop:always}
.signal-scroll .scene-top{font-size:12px;line-height:1.5;letter-spacing:0;text-transform:none;align-items:center}
.signal-scroll .scene-word{font-size:clamp(100px,17vw,255px);top:21%;left:8%}
.scene-narration{width:22%;right:6%;bottom:28%}
.closing-screen{min-height:calc(100svh - 85px);scroll-snap-align:start;scroll-snap-stop:always;display:flex;flex-direction:column;justify-content:center;padding:65px 5% 40px}
.closing-copy{display:grid;grid-template-columns:1.1fr .9fr;column-gap:12%;align-items:start;padding:0 0 75px}
.closing-copy h2{font-size:clamp(35px,4vw,60px);line-height:1.12;letter-spacing:-.055em}
.closing-copy>div{max-width:340px}
.closing-copy p{font-size:16px;line-height:1.75;margin:0 0 26px}
.closing-screen .home-contact{padding:35px 0 0;border-color:var(--line)}
.closing-screen .home-contact>a{font-size:clamp(48px,7vw,105px);margin:0;line-height:1.3;letter-spacing:-.055em}
.home-paged footer{min-height:85px;align-items:center;padding-top:20px;padding-bottom:20px}

/* The mark combines a geometric E with a forward-facing terminal. */
.wordmark{gap:12px;font-size:17px;letter-spacing:-.5px}
.identity-mark{width:34px;height:34px;flex:none;transition:transform .35s cubic-bezier(.16,1,.3,1),background .25s,color .25s}
.logo-frame{transform-origin:18px 18px;transition:transform .35s cubic-bezier(.16,1,.3,1)}
.logo-glyph{transition:transform .35s cubic-bezier(.16,1,.3,1)}
nav{gap:12px}
nav a{padding:12px 15px;transition:background .22s,color .22s;text-decoration:none!important}
nav a::after{content:'';position:absolute;left:15px;right:15px;bottom:5px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .25s}
nav a[aria-current]::after{transform:scaleX(1)}
.text-link{padding:10px 12px;margin-left:-12px;transition:background .22s,color .22s;border-bottom-color:var(--line);gap:25px}
.text-link>span,.scroll-cue>span,.home-contact>a>span{display:inline-block;transition:transform .35s cubic-bezier(.16,1,.3,1)}
button{transition:background .22s,color .22s,border-color .22s,transform .22s}
a:focus-visible,button:focus-visible{outline:2px solid currentColor;outline-offset:5px}
@media(hover:hover){
  .wordmark:hover{color:var(--ink)}
  .wordmark:hover .identity-mark{transform:rotate(-5deg);background:var(--ink);color:var(--paper)}
  .wordmark:hover .logo-frame{transform:scale(.88)}
  nav a:hover{background:var(--ink);color:var(--paper)}
  nav a:hover::after{transform:scaleX(1)}
  .text-link:hover,.scroll-cue:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
  .text-link:hover>span,.home-contact>a:hover>span{transform:translate(5px,-5px)}
  .scroll-cue:hover>span{transform:translateY(4px)}
  .home-contact>a:hover{color:var(--ink)}
  .contact-links>a:hover{padding-left:15px;padding-right:15px;background:var(--ink);color:var(--paper)}
  footer>a:hover{text-decoration:underline;text-underline-offset:5px;color:var(--ink)}
}
.contact-links>a{transition:background .22s,color .22s,padding .22s}
button:active{transform:translateY(1px)}
@media(max-width:900px){
  .home-paged .editorial-intro{column-gap:9%;padding-inline:2%}
  .home-paged .hero-caption{gap:20px;grid-template-columns:1.5fr 1fr auto}
  .closing-screen{padding-inline:2%}
}
@media(max-width:600px){
  .home-paged .header{height:120px;min-height:120px;padding:20px 0 12px;gap:14px;flex-wrap:wrap}
  .wordmark{font-size:16px;gap:10px}
  .identity-mark{width:29px;height:29px}
  nav{gap:4px;justify-content:space-between}
  nav a{font-size:12px;padding:9px 8px}
  nav a::after{left:8px;right:8px;bottom:2px}
  .home-paged .editorial-hero{min-height:calc(100svh - 120px);padding:55px 0 0}
  .home-paged .editorial-name{font-size:clamp(70px,20vw,115px);margin:0 0 50px 3%;line-height:.98}
  .home-paged .editorial-name .surname{margin-left:22%;margin-top:8px}
  .home-paged .hero-caption{grid-template-columns:1fr auto;gap:20px;min-height:180px;padding:25px 0 32px}
  .home-paged .caption-note{padding:0;font-size:12px;line-height:1.7}
  .scroll-cue{grid-column:auto;font-size:11px;gap:20px;padding:12px;margin-right:-12px}
  .home-paged .editorial-intro{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:38px;min-height:100svh;padding:60px 3%}
  .home-paged .editorial-intro>h2{font-size:clamp(40px,10.7vw,60px);line-height:1.1}
  .home-paged .intro-narrow{max-width:310px;align-self:flex-end;font-size:14px;line-height:1.7;padding:0}
  .home-paged .intro-narrow p{margin-bottom:22px}
  .signal-scroll .scene-top{font-size:10px;top:24px}
  .signal-scroll .scene-top>span:last-child{display:none}
  .signal-scroll .scene-word{font-size:26vw;top:16%;left:8%}
  .scene-narration{left:54%;right:6%;width:auto;bottom:25%}
  .closing-screen{min-height:calc(100svh - 125px);padding:60px 3% 35px}
  .closing-copy{grid-template-columns:1fr;gap:30px;padding-bottom:45px}
  .closing-copy h2{font-size:39px}
  .closing-copy>div{max-width:300px;justify-self:end}
  .closing-copy p{font-size:14px;line-height:1.7}
  .closing-screen .home-contact>a{font-size:11.5vw}
  .home-paged footer{min-height:125px;gap:15px;align-content:center}
}
/* Tall content remains readable on short screens instead of being cropped. */
@media(max-height:650px) and (min-width:601px){
  .home-paged .editorial-hero{padding-top:25px}
  .home-paged .editorial-name{font-size:clamp(80px,18svh,125px);margin-bottom:25px}
  .home-paged .hero-caption{min-height:100px;padding:20px 0}
  .home-paged .editorial-intro{padding-block:45px}
  .home-paged .editorial-intro>h2{font-size:48px}
  .home-paged .intro-narrow{font-size:14px}
}
@media(prefers-reduced-motion:reduce){
  html.home-paged{scroll-snap-type:y proximity;scroll-behavior:auto}
  .home-paged .signal-scroll{height:auto}
  .scene-snap-stop{display:none}
  button,a,.identity-mark,.logo-frame,.logo-glyph,.text-link>span,.scroll-cue>span,.home-contact>a>span{transition:none}
}

/* Repeated screen entrances: title, rule, then quiet reading content. */
.motion-screen{position:relative}
.motion-screen .motion-title .title-glyph{animation:none;transform:translateY(115%) rotate(3deg);opacity:0}
.motion-screen.screen-active .motion-title .title-glyph{animation:title-reveal 740ms cubic-bezier(.16,1,.3,1) both;animation-delay:var(--letter-delay)}
.motion-screen .hero-caption{animation:none}.motion-screen .caption-note,.motion-screen .scroll-cue,
.motion-screen .intro-narrow>*,.motion-screen .closing-copy>div>*,.motion-screen .home-contact>a{opacity:0;transform:translateY(18px)}.motion-screen.screen-active .caption-note,.motion-screen.screen-active .scroll-cue,
.motion-screen.screen-active .intro-narrow>*,.motion-screen.screen-active .closing-copy>div>*,.motion-screen.screen-active .home-contact>a{animation:small-enter 680ms cubic-bezier(.16,1,.3,1) both;animation-delay:var(--entry-delay,380ms)}.intro-narrow>:nth-child(2){--entry-delay:460ms}.intro-narrow>:nth-child(3){--entry-delay:540ms}
.motion-screen .caption-note,.closing-copy>div>:nth-child(2){--entry-delay:620ms}
.motion-screen .scroll-cue,.intro-narrow>:nth-child(4){--entry-delay:700ms}
.motion-screen .home-contact>a{--entry-delay:650ms}
.motion-screen .hero-caption,.motion-screen.editorial-intro,.motion-screen .home-contact{border-top-color:transparent}
.motion-screen .hero-caption,.motion-screen .home-contact{position:relative}
.motion-screen .hero-caption::before,.motion-screen.editorial-intro::after,.motion-screen .home-contact::before{content:'';position:absolute;top:0;left:0;width:100%;height:1px;background:var(--line);transform:scaleX(0);transform-origin:left}
.motion-screen.screen-active .hero-caption::before,.motion-screen.screen-active.editorial-intro::after,.motion-screen.screen-active .home-contact::before{animation:rule-unfold 950ms cubic-bezier(.16,1,.3,1) 180ms both}
.editorial-hero::after{content:'';position:absolute;right:12%;top:23%;width:38px;height:38px;border:1px solid var(--ink);opacity:0;pointer-events:none}
.editorial-hero.screen-active::after{animation:mark-assemble 1100ms cubic-bezier(.16,1,.3,1) 350ms both}
.editorial-intro::before{content:'';position:absolute;right:5%;top:8%;width:25px;height:25px;background:linear-gradient(var(--ink),var(--ink)) center/1px 100% no-repeat,linear-gradient(var(--ink),var(--ink)) center/100% 1px no-repeat;opacity:0}
.editorial-intro.screen-active::before{animation:mark-assemble 1000ms cubic-bezier(.16,1,.3,1) 250ms both}
@keyframes rule-unfold{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes mark-assemble{from{opacity:0;transform:translateY(24px) rotate(-90deg) scale(.5)}to{opacity:.45;transform:translateY(0) rotate(0) scale(1)}}
@media(max-width:600px){.editorial-hero::after{width:23px;height:23px;right:8%;top:17%}.editorial-intro::before{width:18px;height:18px;top:7%}}
@media(prefers-reduced-motion:reduce){
  .motion-screen .motion-title .title-glyph,.motion-screen.screen-active .motion-title .title-glyph,.motion-screen .caption-note,.motion-screen .scroll-cue,
  .motion-screen .intro-narrow>*,.motion-screen .closing-copy>div>*,.motion-screen .home-contact>a{animation:none!important;opacity:1;transform:none}
  .motion-screen .hero-caption::before,.motion-screen.editorial-intro::after,.motion-screen .home-contact::before{animation:none!important;transform:none}
  .editorial-hero::after,.editorial-intro::before{animation:none!important;opacity:.45;transform:none}
}
