/* Hallmark · checked: 2026-10-28 · genre: editorial (inferred) · built: the project · redesign: polish · v2.0.0 */
.home-intro.intro-with-orbit{--hero-space:clamp(22px,2.4vw,34px);grid-template-columns:minmax(0,1.02fr) minmax(0,1fr);gap:0;min-height:clamp(680px,67.95vw,924px);padding:72px var(--hero-space) 48px}
.home-intro.intro-with-orbit h1{font-size:clamp(2rem,5vw,4.5rem)}
.intro-projects{min-width:0;padding:0;border:0;align-self:start;margin-top:8px;position:relative;z-index:1}
.orbit-topline{display:flex;justify-content:flex-end;align-items:center;gap:18px;min-height:28px}
.orbit-title{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.home-intro .intro-projects .eyebrow{margin:0}
.intro-projects .orbit-scene{height:clamp(380px,45.6vw,660px)}
.intro-projects .orbit-card{width:clamp(300px,43.4vw,590px);box-shadow:none}
.home-about{grid-template-columns:minmax(0,1fr) clamp(200px,24vw,290px);grid-template-areas:"content portrait";gap:clamp(32px,5vw,72px);align-items:center;padding-right:0}
.home-about .home-portrait{display:block;grid-area:portrait;justify-self:end;align-self:center;width:100%;max-width:290px}
.home-about .about-content{grid-area:content;min-width:0}
.about-biography{margin-top:24px}
.project-orbit{padding-block:35px 40px;border-top:1px solid var(--line);overflow:hidden}
.project-orbit .editorial-heading{margin-bottom:0}
.orbit-instruction,.orbit-caption,.service-tabs,.service-motion-example>span,.focus-caption,.project-cursor{font-family:var(--label-font);font-size:.6875rem;line-height:1.5;letter-spacing:-.035em;text-transform:uppercase}
.orbit-instruction{text-align:right;color:var(--muted)}
.orbit-mobile-hint{display:none}
.orbit-scene{height:clamp(390px,42vw,550px);position:relative;perspective:1150px;cursor:grab;touch-action:pan-y;isolation:isolate}
.orbit-scene.is-dragging{cursor:grabbing}
.orbit-wheel{position:absolute;left:50%;top:50%;width:0;height:0;transform-style:preserve-3d;will-change:transform}
.orbit-card{width:clamp(260px,34vw,440px);position:absolute;left:0;top:0;transform:translate(-50%,-50%) rotateY(var(--card-angle));transform-style:preserve-3d;backface-visibility:visible;background:var(--ground);border:1px solid #43524260;user-select:none;box-shadow:0 12px 25px #28352718}
.orbit-card img{width:100%;height:auto;aspect-ratio:1.5;object-fit:cover;pointer-events:none}
.orbit-caption{display:flex;align-items:center;justify-content:space-between;gap:12px;height:56px;padding:11px 12px;background:var(--ground);color:var(--ink);font-size:.6875rem}
.orbit-caption>span:first-child{font-variant-numeric:tabular-nums;color:var(--muted)}
.orbit-card:focus-visible{outline:3px solid var(--ink);outline-offset:5px}
.orbit-mobile{display:none}
.editorial-text-link:hover{text-decoration:none}
.editorial-project-photo img{transition:transform .65s cubic-bezier(.22,1,.36,1)}
.editorial-project:is(:hover,:focus-visible) .editorial-project-photo img{transform:scale(1.045)}
.service-motion-content{padding:0 0 28px 63px}
.service-tabs{display:flex;gap:12px;align-items:center;margin-bottom:18px}
.service-tabs button{background:none;border:0;border-bottom:1px solid transparent;padding:10px 0;min-height:44px;font:inherit;text-transform:uppercase;color:var(--muted)}
.service-tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--ink)}
.service-tab-stage{min-height:220px}
.service-image-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.service-image-panel[hidden],.service-description-panel[hidden]{display:none}
.service-motion-example{min-width:0;display:block}
.service-motion-example img{width:100%;aspect-ratio:1.6;object-fit:cover;height:auto}
.service-motion-example>span{display:block;margin-top:10px;overflow-wrap:anywhere}
.service-description-panel{padding-block:8px;max-width:660px}
.service-description-panel p{font-size:clamp(1.125rem,1.8vw,1.5rem);line-height:1.5}
.service-description-panel .editorial-text-link{margin-top:20px}
.focus-study{padding-block:42px 0}
.focus-study+.home-about{border-top:0}
.focus-scroll{height:140svh;min-height:780px;max-height:1500px}
.focus-sticky{position:sticky;top:16px;height:calc(100svh - 32px);display:flex;align-items:flex-start;justify-content:center;padding-top:16px}
.focus-image{width:100%;display:block;transform:scale(var(--focus-scale,.68));transform-origin:top center;will-change:transform}
.focus-image img{width:100%;height:auto;max-height:75svh;aspect-ratio:1.85;object-fit:cover}
.focus-caption{display:flex;gap:20px;justify-content:space-between;padding-block:14px}
.motion-ready .about-lead{font-size:clamp(1.5rem,3.2vw,2.5rem);font-weight:500;line-height:1.15;letter-spacing:-.035em}
.motion-reduced .focus-scroll{height:auto;min-height:0;padding-block:20px 50px}
.motion-reduced .focus-sticky{position:static;height:auto}
.motion-reduced .focus-image{transform:none;will-change:auto}
.motion-reduced .editorial-project-photo img{transition:none;transform:none!important}
@media(max-width:799px){
  .project-orbit{padding-top:28px;padding-bottom:28px}
  .orbit-instruction{font-size:.6875rem;max-width:125px}
  .orbit-desktop-hint{display:none}
  .orbit-mobile-hint{display:block}
  .orbit-scene{display:none}
  .orbit-mobile{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;padding-block:24px 18px;scrollbar-width:thin;scrollbar-color:var(--ink) transparent}
  .orbit-mobile-card{display:block;flex:0 0 86%;min-width:0;scroll-snap-align:center;border:1px solid #43524250}
  .orbit-mobile-card img{width:100%;height:auto;aspect-ratio:1.5;object-fit:cover}
  .orbit-caption{padding:10px;font-size:.6875rem;gap:8px}
  .service-motion-content{padding-left:44px}
  .service-image-panel{grid-template-columns:1fr}
  .service-image-panel .service-motion-example:nth-child(n+3){display:none}
  .service-tab-stage{min-height:180px}
  .service-motion-example>span{margin-top:6px;margin-bottom:10px}
  .focus-study{padding-top:30px}
  .focus-scroll{height:auto;min-height:0;padding-bottom:32px}
  .focus-sticky{position:static;height:auto}
  .focus-image{transform:none!important;will-change:auto}
  .focus-image img{aspect-ratio:1.4;max-height:none}
  .focus-caption{font-size:.6875rem;gap:14px}
}
@media(max-width:350px){.service-motion-content{padding-left:0}.orbit-caption{font-size:.6875rem}}
@media(prefers-reduced-motion:reduce){
}

@media(min-width:800px){
  .project-orbit.intro-projects{padding:0;border:0}
  .intro-projects .orbit-scene{--orbit-bleed:clamp(24px,4.2vw,64px);width:calc(100% + var(--orbit-bleed));margin-left:calc(var(--orbit-bleed)/-2)}
}
@media(max-width:799px){
  .home-intro.intro-with-orbit{grid-template-columns:minmax(0,1fr);gap:28px}
  .home-intro.intro-with-orbit h1{font-size:clamp(2rem,6.8vw,3.4rem)}
  .project-orbit.intro-projects{padding:20px 0 0;border-top:1px solid var(--line);margin-top:0}
  .intro-projects .orbit-mobile{padding-top:18px}
  .home-about{grid-template-columns:minmax(0,1fr) 120px;grid-template-areas:"heading portrait" "biography biography";gap:24px 20px;align-items:center}
  .home-about .home-portrait{max-width:120px;align-self:center}
  .home-about .about-content{display:contents}
  .home-about .about-heading{grid-area:heading}
  .home-about .about-heading h2{font-size:clamp(1.75rem,5vw,2.5rem)}
  .home-about .about-biography{grid-area:biography;margin-top:0}
}
@media(max-width:350px){
  .home-about{grid-template-columns:minmax(0,1fr) 100px;column-gap:16px}
  .home-about .home-portrait{max-width:100px}
}

.contact-email-button{font-family:var(--label-font);font-size:.8125rem;letter-spacing:-.035em;text-transform:uppercase;min-height:48px;padding:13px 24px}
.home-contact .contact-email-button{border-color:var(--ground);color:var(--ground);background:transparent}
.home-contact .contact-email-button:hover{background:var(--ground);color:var(--ink)}

.project-orbit.intro-projects{overflow:visible}
.intro-projects .orbit-scene{overflow:visible;clip-path:none;isolation:auto}
.intro-projects .orbit-card{transform-style:flat}
@media(min-width:800px){.intro-projects .orbit-wheel{left:46%}}

.home-intro.intro-with-orbit .home-intro-copy>.eyebrow{font-size:clamp(1rem,1.625vw,1.5rem);line-height:1.4;margin-bottom:28px}
.intro-projects .orbit-topline{margin-top:0}
@media(max-width:799px){
  .home-intro.intro-with-orbit .home-intro-copy>.eyebrow{font-size:.875rem}
}

.home-intro.intro-with-orbit .home-intro-description{max-width:min(560px,41.2vw);margin-top:34px;font-size:clamp(1.0625rem,1.76vw,1.5rem);line-height:1.5}
.home-intro.intro-with-orbit .home-intro-actions{--intro-action-height:clamp(48px,4.7vw,64px);gap:12px 26px;margin-top:32px}
.home-intro.intro-with-orbit .home-intro-actions .button{font-size:clamp(1rem,1.625vw,1.375rem);height:var(--intro-action-height);min-height:var(--intro-action-height);padding:0 clamp(22px,2.2059vw,30px);gap:20px}
.home-intro-actions .hero-social-link{width:var(--intro-action-height);height:var(--intro-action-height)}
.home-intro-actions .hero-social-link svg{width:calc(var(--intro-action-height)*.55);height:calc(var(--intro-action-height)*.55)}
.home-intro.intro-with-orbit .home-intro-actions .editorial-text-link{font-size:clamp(.75rem,1.1765vw,1rem);min-height:56px}
.intro-projects .orbit-topline,.intro-projects .orbit-bottomline{padding-right:12px}
.intro-projects .orbit-instruction{font-size:.6875rem;line-height:1.4}
.orbit-bottomline{display:flex;justify-content:flex-end;align-items:center;min-height:44px;margin-top:-60px}
@media(max-width:799px){
  .home-intro.intro-with-orbit{min-height:0;padding:30px var(--editorial-space) 22px;gap:28px}
  .home-intro.intro-with-orbit .home-intro-copy>.eyebrow{font-size:.875rem;margin-bottom:20px}
  .home-intro.intro-with-orbit .home-intro-description{font-size:1rem;margin-top:22px;max-width:480px}
  .home-intro.intro-with-orbit .home-intro-actions{margin-top:24px;gap:10px 18px}
  .home-intro.intro-with-orbit .home-intro-actions .button{font-size:.875rem;padding:12px 22px;gap:20px;min-height:48px}
  .home-intro.intro-with-orbit .home-intro-actions .editorial-text-link{font-size:.75rem;min-height:44px}
  .intro-projects .orbit-topline,.intro-projects .orbit-bottomline{padding-right:0}
  .orbit-bottomline{margin-top:10px}
}

.button .roll-window,.button .roll-window span{font-size:inherit}

.intro-projects .orbit-card img{aspect-ratio:1.35}
.intro-projects .orbit-wheel{top:47%}

.tools-carousel{max-width:var(--editorial-max);margin-inline:auto;padding-block:34px 24px;scroll-margin-top:24px}
.tools-carousel-heading h2{text-align:center;font-family:var(--display-font);font-size:.75rem;font-weight:500;line-height:1.5;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.tools-lanes{margin-top:24px}
.tools-lane{--tool-step:180px;--tool-logo-size:64px;overflow:hidden;touch-action:pan-y;cursor:grab;mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent)}
.tools-lane.is-dragging{cursor:grabbing}
.tools-track,.tools-cycle{display:flex;width:max-content;align-items:center}
.tools-track{will-change:transform}
.tool-logo-link{position:relative;flex:0 0 var(--tool-step);width:var(--tool-step);height:112px;display:flex;justify-content:center;align-items:center;user-select:none}
.tool-logo{display:block;width:var(--tool-logo-size);height:var(--tool-logo-size);background-image:url('assets/tools-1.png');background-size:auto 100%;background-repeat:no-repeat;opacity:.8;filter:grayscale(1);transition:opacity .2s,transform .3s}
.tool-logo-label{position:absolute;left:0;right:0;bottom:0;text-align:center;font-family:var(--label-font);font-size:.6875rem;line-height:1.5;text-transform:uppercase;letter-spacing:-.035em;opacity:0;transform:translateY(5px);transition:opacity .2s,transform .2s}
.tool-logo-link:is(:hover,:focus-visible) .tool-logo{opacity:1;transform:translateY(-4px) scale(1.06)}
.tool-logo-link:is(:hover,:focus-visible) .tool-logo-label{opacity:1;transform:none}
.tool-logo-link:focus-visible{outline:2px solid var(--ink);outline-offset:-7px}
.tools-carousel-footer{display:flex;align-items:center;justify-content:center;margin-top:28px}
.story-copy{font-family:var(--display-font);font-size:clamp(1rem,1.4vw,1.125rem);line-height:1.65;letter-spacing:0;color:var(--muted)}
.story-copy p+p{margin-top:22px}
.story-copy .story-motto{text-align:center;font-weight:500;letter-spacing:.075em;margin-top:28px;color:var(--ink)}
.service-row>summary,.all-project-index a{position:relative;isolation:isolate}
.service-row>summary::before,.all-project-index a::before{content:'';position:absolute;inset:0;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform var(--motion-hover) var(--motion-ease);z-index:0}
.service-row>summary>*,.all-project-index a>*{position:relative;z-index:1}
.service-row>summary:is(:hover,:focus-visible)::before,.all-project-index a:is(:hover,:focus-visible)::before{transform:scaleX(1)}
.service-row>summary:is(:hover,:focus-visible) :is(h3,.service-index,.service-focus,.service-toggle){color:var(--ground)}
.all-project-index a:is(:hover,:focus-visible){color:var(--ground)}
.all-project-index a:is(:hover,:focus-visible)>span{color:var(--ground)}
.service-row .service-toggle{display:grid;place-items:center;width:20px;height:20px}
.service-row .service-toggle::before,.service-row[open] .service-toggle::before{content:'';display:block;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:7px solid currentColor;transform:rotate(0);transition:transform .25s ease}
.service-row[open] .service-toggle::before{transform:rotate(180deg)}
.software-list li:target{background:#4352420c;padding-inline:16px;scroll-margin-top:100px}
.motion-reduced .tool-logo,.motion-reduced .tool-logo-label,.motion-reduced .service-row>summary::before,.motion-reduced .all-project-index a::before,.motion-reduced .service-toggle::before{transition:none}
@media(max-width:799px){
  .tools-carousel{padding-block:26px 20px}
  .tools-carousel-heading h2{font-size:.6875rem}
  .tools-lanes{margin-top:14px}
  .tools-lane{--tool-step:120px;--tool-logo-size:56px}
  .tool-logo-link{height:100px}
  .tools-carousel-footer{margin-top:8px}
  .story-copy{line-height:1.6}
  .story-copy p+p{margin-top:20px}
  .service-row>summary::before,.all-project-index a::before{transition-duration:.2s}
}
@media(prefers-reduced-motion:reduce){.tool-logo,.tool-logo-label,.service-row>summary::before,.all-project-index a::before,.service-toggle::before{transition:none!important}}

.combined-about{align-items:start;grid-template-columns:minmax(0,1fr) clamp(320px,38vw,540px);gap:clamp(24px,3.5vw,48px);padding-block:44px 0}
.combined-about .about-content{padding-bottom:54px}
.combined-about .about-heading h2{text-transform:uppercase;font-size:var(--section-heading-size);line-height:1;letter-spacing:-.04em}
.combined-about .home-portrait{align-self:end;margin-top:0;max-width:540px}
.combined-about .about-lead{font-size:clamp(1.5rem,3.2vw,2.5rem);font-weight:500;line-height:1.15;letter-spacing:-.035em;max-width:none}
.about-story{margin-top:22px}
@media(max-width:1199px){
  .combined-about{grid-template-columns:minmax(0,1fr) clamp(220px,32vw,380px)}
  .combined-about .home-portrait{width:100%;max-width:none}
}
@media(max-width:799px){
  .combined-about{grid-template-columns:minmax(0,1fr) clamp(88px,28vw,180px);grid-template-areas:"content portrait";gap:16px;align-items:start;padding-block:32px 0}
  .combined-about .about-content{display:block;padding-bottom:32px}
  .combined-about .about-heading,.combined-about .about-biography{grid-area:auto}
  .combined-about .home-portrait{align-self:end}
  .combined-about .about-biography{margin-right:0}
  .combined-about .about-lead{font-size:clamp(1.25rem,4vw,1.875rem);line-height:1.2}
  .about-story{margin-top:20px}
}

.orbit-caption .action-arrow{font-size:1.25rem}
.service-motion-example .action-arrow,.focus-caption .action-arrow{margin-left:8px}

.home-intro.intro-with-orbit{min-height:100svh;align-content:center}
.home-intro.intro-with-orbit .intro-projects{align-self:center;margin-top:0}

.home-intro-actions{transition:opacity .2s ease}
.home-page.is-opening-intro .home-intro-actions{opacity:0;visibility:hidden;pointer-events:none}
@media(prefers-reduced-motion:reduce){.home-intro-actions{transition:none}}

.intro-projects .orbit-instruction{visibility:hidden}

@media(min-width:800px){
  .intro-projects{--orbit-card-size:min(clamp(300px,43.4vw,590px),calc((100svh - 96px)*.84))}
  .intro-projects .orbit-scene{height:min(clamp(380px,45.6vw,660px),calc(100svh - 132px))}
  .intro-projects .orbit-card{width:var(--orbit-card-size)}
  .intro-projects .orbit-wheel{top:calc(50% - var(--orbit-card-size)*.14)}
}

/* Hallmark polish keeps the project fan; supporting content stays still and visible. */
.focus-scroll{height:auto;min-height:0;max-height:none;padding-bottom:48px}
.focus-sticky{position:static;height:auto;padding-top:16px}
.focus-image{max-width:1100px;margin-inline:auto;transform:none;will-change:auto}
.editorial-project-photo img,.tool-logo,.tool-logo-label{transition:opacity var(--motion-ui) var(--motion-ease)}
.editorial-project:is(:hover,:focus-visible) .editorial-project-photo img{transform:none}
.tool-logo-link:is(:hover,:focus-visible) .tool-logo{transform:none}
.tool-logo-label{transform:none}
@media(max-width:799px){.focus-scroll{padding-bottom:32px}}

/* Reviewed scope: one visible opening link, content-sized descriptions, factual project detail. */
.home-page.is-opening-intro .home-intro-actions{opacity:1;visibility:visible;pointer-events:auto}
.home-page.is-opening-intro .home-intro-actions .button{visibility:visible;pointer-events:auto}
.service-tab-stage{min-height:0}
.focus-project{width:100%;max-width:1100px;min-width:0;margin-inline:auto}
.focus-detail{max-width:65ch;margin-top:20px;font-size:1rem;line-height:1.6;color:var(--muted)}

/* Motion restored by request; the project fan remains the main visual interaction. */
.roll-window{display:inline-grid;overflow:hidden;line-height:1.4;vertical-align:bottom;font:inherit}
.roll-line{grid-area:1/1;white-space:nowrap;display:flex}
.roll-line>span{display:inline-block;transition:transform var(--motion-hover) var(--motion-ease);transition-delay:calc(var(--letter)*4ms)}
.roll-copy>span{transform:translateY(112%)}
:is(a,button,summary):is(:hover,:focus-visible)>.roll-window .roll-line:not(.roll-copy)>span{transform:translateY(-112%)}
:is(a,button,summary):is(:hover,:focus-visible)>.roll-window .roll-copy>span{transform:translateY(0)}
.button .roll-window,.button .roll-window span{font-size:inherit}
.project-cursor{position:fixed;left:0;top:0;z-index:100;pointer-events:none;background:var(--ground);color:var(--ink);padding:8px 12px;border:1px solid var(--ink);white-space:nowrap;opacity:0;transform:translate3d(calc(var(--cursor-x,0px) - 50%),calc(var(--cursor-y,0px) - 150%),0);transition:opacity .12s ease}
.home-intro-actions .button .roll-window{line-height:1}
.intro-down-arrow{display:grid;place-items:center;flex:0 0 clamp(22px,2.1vw,28px);width:clamp(22px,2.1vw,28px);height:clamp(22px,2.1vw,28px);line-height:1}
.intro-down-arrow svg{display:block;width:100%;height:100%}
.project-cursor.is-visible{opacity:1}
.editorial-project-photo img{transition:transform var(--motion-image) var(--motion-ease)}
.editorial-project:is(:hover,:focus-visible) .editorial-project-photo img{transform:scale(1.025)}
.focus-image{overflow:hidden}
.focus-image>img{transition:transform var(--motion-image) var(--motion-ease);transform-origin:center}
.focus-image:is(:hover,:focus-visible)>img{transform:scale(1.018)}
.focus-caption{position:relative;background:var(--ground)}
.motion-ready .motion-reveal{transition:opacity .5s ease,transform .5s cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay,0ms)}
.motion-ready .motion-reveal:not(.is-visible){opacity:0;transform:translateY(14px)}
.motion-ready .motion-reveal:focus-within{opacity:1!important;transform:none!important;transition:none!important}
.statement-word{color:var(--muted);transition:color .2s ease}
.statement-word.is-read{color:var(--ink)}
.statement-accessible{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(hover:none),(pointer:coarse){.project-cursor{display:none}}
@media(prefers-reduced-motion:reduce){
  .motion-ready .motion-reveal{opacity:1!important;transform:none!important;transition:none!important}
  .roll-line>span{transition:none!important;transform:none!important}
  .roll-copy,.project-cursor{display:none!important}
  .statement-word{color:var(--ink);transition:none!important}
  .editorial-project:is(:hover,:focus-visible) .editorial-project-photo img,.focus-image:is(:hover,:focus-visible)>img{transform:none!important;transition:none!important}
}
