/* Horizontal project stories remain ordinary buttons and support native touch scrolling. */
.project-toolbar{display:flex;justify-content:space-between;align-items:center;gap:24px;margin:0 0 12px}
.project-toolbar>.eyebrow{font-size:8px;color:#6e7b60;letter-spacing:.08em}
.project-carousel-controls{display:flex;align-items:center;gap:10px}
#work-position{font-size:9px;min-width:62px;text-align:center;color:#69755e;font-variant-numeric:tabular-nums;margin-right:6px}
.project-carousel-controls .circle-button{height:40px;width:40px;font-size:20px}
.circle-button:disabled{opacity:.28;cursor:default;transform:none;background:transparent}
.project-carousel{display:flex;position:relative;gap:28px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;padding:10px 2px 24px;overscroll-behavior-x:contain;align-items:start;cursor:grab}
.project-carousel::-webkit-scrollbar{display:none}
.project-carousel>.project-card{display:block;flex:0 0 58%;min-width:0;scroll-snap-align:start;padding:0;border:0;grid-column:auto}
.project-carousel .project-visual{aspect-ratio:1.6;transform:perspective(1000px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .2s ease-out,background .4s}
.project-carousel .project-card:last-child .project-visual{aspect-ratio:1.6;grid-row:auto}
.project-carousel .project-card:last-child>p{margin-top:11px}
.project-carousel .project-card h3{font-size:clamp(25px,2.7vw,37px)}
.project-carousel .project-card>p{font-size:13px;max-width:600px}
.project-carousel .project-visual img{user-select:none;-webkit-user-drag:none}
.project-carousel.is-dragging{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto;user-select:none}
.project-carousel.is-dragging button{cursor:grabbing;pointer-events:none}
.work-track-footer{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:4px}
.work-track-footer>.eyebrow{font-size:7px;letter-spacing:.08em;color:#78856b}
.work-progress{width:180px;height:2px;background:#d8ddce;overflow:hidden}
.work-progress>span{display:block;height:100%;background:#637c43;transform-origin:left;transform:scaleX(0);transition:transform .2s}
.project-carousel:focus-visible{outline:2px solid #638d27;outline-offset:6px}

/* Section choreography is progressive enhancement: content is visible without JS. */
.motion-ready .reveal{opacity:0;transform:translate3d(0,32px,0);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:var(--enter-delay,0ms)}
.motion-ready .reveal[data-enter=title]{transform:translate3d(0,55px,0);clip-path:inset(0);transition:opacity .6s,transform 1s cubic-bezier(.16,1,.3,1),clip-path 1s cubic-bezier(.16,1,.3,1);transition-delay:var(--enter-delay,0ms)}
.motion-ready .reveal.is-visible{opacity:1;transform:none}
.motion-ready .section-kicker:before{content:'';position:absolute;top:-1px;left:0;right:0;height:1px;transform:scaleX(0);transform-origin:left;background:#7c965c;transition:transform 1.1s cubic-bezier(.16,1,.3,1)}
.motion-ready .section-kicker{position:relative}.motion-ready .section-kicker.is-visible:before{transform:scaleX(1)}
.motion-ready .timeline-item:before{transition:box-shadow .7s,transform .7s;transform:scale(.5)}
.motion-ready .timeline-item.is-visible:before{transform:scale(1);box-shadow:0 0 0 6px var(--dark),0 0 20px #c8f57435}
.motion-ready .route-line{stroke-dasharray:3 5}
@keyframes idea-flow{to{stroke-dashoffset:-160}}
.credential-dots{display:flex;gap:8px;align-items:center;margin:14px 0 20px}
.credential-dots button{height:30px;min-width:24px;padding:8px 4px;display:grid;place-items:center}
.credential-dots button:after{content:'';display:block;width:6px;height:6px;border-radius:8px;background:#b0bba2;transition:width .35s,background .35s}
.credential-dots button[aria-pressed=true]:after{width:26px;background:#4e6d2e}
.credential-dots button:hover:after{background:#4e6d2e}
dialog[open]{animation:dialog-arrive .4s cubic-bezier(.16,1,.3,1)}
dialog[open]::backdrop{animation:backdrop-arrive .3s ease-out}
@keyframes dialog-arrive{from{opacity:0;transform:translateY(24px) scale(.975)}to{opacity:1;transform:none}}
@keyframes backdrop-arrive{from{opacity:0}to{opacity:1}}
.skill-accordions details[open]>div{animation:accordion-arrive .4s ease-out}
@keyframes accordion-arrive{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.contact-title{transition:background-position .5s}.contact-title:hover{background-position:0 20px}

/* Compact chapter navigation connects the long-page sections without hijacking scroll. */
.chapter-dock{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:35;display:flex;gap:14px;align-items:center;background:#f2f1edf2;color:var(--ink);border:1px solid #c2c9b6;border-radius:50px;padding:7px;box-shadow:0 8px 35px #17210e1c;backdrop-filter:blur(12px);animation:dock-arrive .35s ease-out}
.chapter-dock>a{height:34px;width:34px;border-radius:50%;background:#e1e7d8;display:grid;place-items:center;font-size:18px;transition:background .2s,transform .2s}
.chapter-dock>a:hover{background:var(--acid);transform:translateY(-2px)}
.chapter-dock>a[aria-disabled=true]{opacity:.3;pointer-events:none}
.chapter-current{display:flex;align-items:center;gap:12px;min-width:145px;justify-content:center;padding:0 3px}
#chapter-number{font:8px var(--mono);color:#768567}#chapter-name{font:11px var(--sans)}
@keyframes dock-arrive{from{opacity:0;bottom:10px}to{opacity:1;bottom:20px}}
.footer-meta{padding-bottom:88px}
@media(max-width:1100px){.hero-scene{gap:26px;padding-top:12px;padding-bottom:26px;min-height:360px}.portrait-composition{height:auto;max-width:370px}.portrait-frame{inset:8%;border-width:5px}.portrait-spark{font-size:40px}.portrait-caption{font-size:7px;gap:8px;padding-left:10px}.portrait-note{font-size:6px}.project-carousel>.project-card{flex-basis:64%}}
@media(max-width:800px){.hero-scene{gap:22px;min-height:300px}.portrait-composition{height:auto}.portrait-frame{inset:7%}.portrait-halo{inset:0}.halo-two{inset:-2%}.portrait-note{display:none}.portrait-spark{font-size:30px}.portrait-caption{font-size:6px;padding:5px 5px 5px 9px;gap:6px;bottom:-8px}#portrait-motion{height:23px;width:23px;font-size:9px}.project-carousel>.project-card{flex-basis:76%}.project-carousel{gap:22px}.project-toolbar>.eyebrow{max-width:220px;line-height:1.8;font-size:7px}}
@media(max-width:600px){.hero-scene{margin-top:12px;padding:0 0 18px;min-height:0;gap:0 18px}.portrait-composition{height:auto;aspect-ratio:1;width:82%;max-width:310px;margin:7px auto 28px;grid-column:span 2;grid-row:1}.portrait-frame{inset:8%;border:5px solid var(--paper)}.portrait-spark{font-size:37px;right:0;top:1%}.portrait-caption{font-size:7px;bottom:-3px;padding:5px 7px 5px 11px;gap:10px}#portrait-motion{height:27px;width:27px}.portrait-note{display:block;font-size:6px;left:-4%}.portrait-halo{inset:1.5%}.halo-two{inset:-1%}.project-toolbar{gap:12px;margin-top:24px;margin-bottom:8px}.project-toolbar>.eyebrow{max-width:130px;font-size:6px}.project-carousel-controls{gap:6px}#work-position{font-size:8px;min-width:44px;margin-right:2px}.project-carousel-controls .circle-button{height:34px;width:34px;font-size:17px}.project-carousel{gap:18px;margin-right:-22px;scroll-padding-right:22px;padding-right:22px}.project-carousel>.project-card{flex-basis:91%}.project-carousel .project-visual,.project-carousel .project-card:last-child .project-visual{aspect-ratio:1.4;padding:24px}.project-carousel .project-card h3{font-size:27px}.project-carousel .project-card>p{font-size:12px}.work-track-footer{gap:18px}.work-track-footer>.eyebrow{font-size:6px}.work-progress{width:90px}.credential-dots{margin:10px 0 15px;gap:8px}.chapter-dock{bottom:12px;gap:8px;padding:5px}.chapter-dock>a{height:32px;width:32px}.chapter-current{min-width:135px;gap:10px}#chapter-name{font-size:10px}#chapter-number{font-size:7px}.footer-meta{padding-bottom:82px}.motion-ready .reveal{transform:translate3d(0,22px,0);transition-duration:.6s}.motion-ready .reveal[data-enter=title]{transform:translate3d(0,30px,0)}}
@media(min-width:801px) and (max-height:820px){.site-header{height:72px;padding-top:14px;padding-bottom:14px}.hero{padding-top:0}.hero-eyebrow{padding:10px 0 14px;font-size:8px}.hero h1{font-size:clamp(58px,min(8vw,12.5vh),100px)}.hero-scene{min-height:0;padding:12px 0 20px;margin-top:0;grid-template-columns:1fr 1fr 1fr}.portrait-composition{width:min(100%,32vh);min-width:210px;max-width:310px;height:auto}.hero-left h2{font-size:23px;margin:14px 0 20px}.hero-right p{font-size:14px}.hero-aside{padding:0}.hero-footer{padding:14px 0 18px;font-size:7px}.portrait-spark{font-size:30px}.portrait-caption{font-size:6px;gap:7px;padding:5px 6px 5px 10px}#portrait-motion{height:23px;width:23px}}
@media(prefers-reduced-motion:reduce){.portrait-halo,.route-line{animation:none!important}.motion-ready .reveal,.motion-ready .reveal[data-enter=title]{opacity:1;transform:none;clip-path:none;transition:none}.project-carousel{scroll-behavior:auto}.project-carousel .project-visual{transform:none}.chapter-dock{animation:none}.section-kicker:before{transition:none!important}dialog[open],dialog[open]::backdrop,.skill-accordions details[open]>div{animation:none}}

