:root{--serif:'Playfair Display',Georgia,serif;--sans:'Inter',Arial,sans-serif}
body{font-family:var(--sans);font-size:18px;line-height:1.6}
h1,h2,h3,.hero h1,.hero-copy h2,.section-head h2,.about h2,.contact h2,.journey h3,.lens-heading h3,.case-title{font-family:var(--serif);font-weight:400;letter-spacing:-.035em}
h1 em,h2 em,h3 em{font-family:var(--serif);font-weight:400;font-style:italic}
button,input,nav,.eyebrow{font-family:var(--sans)}
.hero-name h1{font-size:clamp(80px,16vw,225px);letter-spacing:-.035em}
.hero-grid{grid-template-columns:1fr}.hero-copy{max-width:820px}.hero-copy p{max-width:650px}
.hero-copy p,.about-copy p,.section-head>p,.cinema-summary,.making-section>p{font-size:18px;line-height:1.6}
.eyebrow,.skill-index,.collection-count,.timeline-date,.practice-date,.header-caption{letter-spacing:.075em;font-weight:500}
.header-shell{height:100px;position:sticky;top:0;z-index:40;pointer-events:none}
.header-shell .header{position:relative;top:auto;min-height:100px;height:100px;display:flex;gap:25px;align-items:center;pointer-events:auto;background:rgba(244,244,244,.97);transition:transform .35s ease,height .3s ease,min-height .3s ease;backdrop-filter:blur(16px)}
.header-shell.is-compact .header{height:76px;min-height:76px}
.header-shell.is-away .header{transform:translateY(-110%)}
.header nav{margin-left:auto}.header-caption{font-size:9px}
.header-resume,.floating-resume{white-space:nowrap;font-size:11px;padding:12px 18px;border-radius:100px;transition:background .3s,color .3s}
.is-compact .header-resume,.floating-resume{background:#2a2a2a;color:#ffffff}
.floating-navigation{position:fixed;right:4vw;top:16px;display:flex;gap:8px;align-items:center;pointer-events:auto}
.floating-navigation[hidden]{display:none}
.floating-navigation button{border:1px solid #c3c3c3;border-radius:100px;background:#f4f4f4;color:#2a2a2a;padding:11px 16px;font-size:11px;cursor:pointer}
.header-resume span,.floating-resume span,.text-link span,.email span,.download-grid b{display:inline-block;transition:transform .3s}
:is(.header-resume,.floating-resume,.text-link,.email):hover span,.download-grid a:hover b{transform:translate(3px,-3px)}
.round-link:hover .round-icon{transform:translateY(4px)}.round-icon{transition:transform .3s}
.text-link,.contact-links a{position:relative}.text-link:after,.contact-links a:after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:var(--pointer-x,0%) center;transition:transform .3s}
.text-link:hover:after,.text-link:focus-visible:after,.contact-links a:hover:after{transform:scaleX(1)}
.collection-nav.collection-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;border:0;padding:0;margin:40px 0 70px}
.collection-nav .collection-choice{display:flex;flex-direction:column;position:relative;min-height:230px;isolation:isolate;overflow:hidden;background:#e7e7e7;padding:26px;border:0;color:#2a2a2a;transition:color .4s}
.collection-choice img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;opacity:0;transform:scale(1.05);transition:opacity .5s,transform .6s}
.collection-choice:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,26,26,.3),rgba(26,26,26,.85));opacity:0;z-index:-1;transition:opacity .4s}
.collection-count{font-size:10px}.collection-label{font-family:var(--serif);font-size:clamp(25px,2.5vw,40px);line-height:1.1;margin-top:auto;padding-top:35px}
.collection-arrow{position:absolute;right:24px;bottom:24px;font-size:25px;transition:transform .3s}
.collection-choice:is(:hover,:focus-visible){color:#ffffff}.collection-choice:is(:hover,:focus-visible) img,.collection-choice:is(:hover,:focus-visible):after{opacity:1}.collection-choice:is(:hover,:focus-visible) img{transform:scale(1)}.collection-choice:hover .collection-arrow{transform:translate(3px,-3px)}
.editorial-journey{padding:60px 0;grid-column:1/-1}
.journey-heading{display:grid;grid-template-columns:1fr 1fr;gap:50px;margin-bottom:50px}
.journey-heading h3{font-size:clamp(32px,4vw,56px);line-height:1.15;margin:15px 0}.journey-heading>p{max-width:480px;align-self:end;font-size:17px}
.journey-track{position:relative;margin-left:8px;padding-left:40px}.journey-line{position:absolute;left:0;top:10px;bottom:20px;width:2px;background:#dadada}
.journey-line span{display:block;height:100%;background:#6a6a6a;transform:scaleY(var(--journey-progress,0));transform-origin:top}
.journey-steps{list-style:none;padding:0;margin:0}.timeline-step{position:relative;display:grid;grid-template-columns:150px minmax(0,1fr);gap:32px;padding:25px 0 45px}
.timeline-step:before{content:"";position:absolute;left:-46px;top:32px;width:14px;height:14px;border-radius:50%;background:#f4f4f4;border:2px solid #cacaca;transition:background .3s,border-color .3s}
.timeline-step.is-reached:before{background:#6a6a6a;border-color:#6a6a6a}
.timeline-date{font-size:12px;padding-top:7px}.timeline-step details{border-bottom:1px solid #d5d5d5;padding-bottom:20px}
summary{cursor:pointer;list-style:none;position:relative}summary::-webkit-details-marker{display:none}
summary:focus-visible{outline:2px solid #6a6a6a;outline-offset:6px}
.timeline-step summary{padding-right:35px;min-height:50px}.timeline-title{display:block;font-family:var(--serif);font-size:30px;line-height:1.2}.timeline-deck{display:block;font-size:13px;margin-top:10px;color:#636363}
.disclosure-symbol{position:absolute;right:0;top:6px;font-family:var(--sans);font-size:22px;font-weight:300;transition:transform .25s}
details[open]>summary .disclosure-symbol{transform:rotate(45deg)}
.disclosure-content{padding:18px 0 6px}.disclosure-content p{font-size:16px;line-height:1.7;max-width:720px;margin:0 0 12px}
.practice-entry{border-top:1px solid #d4d4d4;padding:20px 0}.practice-entry summary{display:grid;grid-template-columns:85px 1fr;gap:15px;padding-right:25px;min-height:35px;align-items:start}.practice-date{font-size:10px;padding-top:3px}.practice-entry strong{font-size:16px;font-weight:500;line-height:1.5}.practice-entry .disclosure-content{padding-left:100px}
.skills-branches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.toolkit-entry{border-top:1px solid #cacaca;padding:24px 0}.toolkit-entry summary{padding-right:25px;min-height:85px}.toolkit-title{display:block;font-family:var(--serif);font-size:26px;line-height:1.25;margin-top:17px}.skill-index{font-size:10px}.toolkit-entry ul{list-style:none;padding:0;font-size:14px;line-height:1.8}
.reveal-ready{opacity:0;transform:translateY(22px);transition:opacity .6s cubic-bezier(.22,.7,.2,1),transform .6s cubic-bezier(.22,.7,.2,1)}
.reveal-ready.is-revealed,.reveal-ready:focus-within{opacity:1;transform:none}
@media(max-width:1000px){.header-caption{display:none}.header-shell .header{gap:18px}.header nav{gap:20px}.timeline-step{grid-template-columns:110px 1fr}}
@media(max-width:700px){body{font-size:16px}.hero-name h1{font-size:17vw}.hero-copy p,.about-copy p,.section-head>p,.cinema-summary,.making-section>p{font-size:17px}.header-shell{height:118px}.header-shell .header,.header-shell.is-compact .header{display:grid;grid-template-columns:1fr auto;gap:9px 15px;height:118px;min-height:118px;padding-top:14px;padding-bottom:14px}.header nav{grid-column:1/-1;grid-row:2;margin:0;display:flex;justify-content:space-between;width:100%;gap:12px}.header-resume{grid-column:2;grid-row:1;font-size:10px;padding:10px 14px}.header-shell .wordmark{font-size:27px}.collection-nav.collection-cards{grid-template-columns:1fr;gap:10px;margin:30px 0 45px}.collection-nav .collection-choice{min-height:165px;padding:22px}.collection-label{font-size:30px;padding-top:22px}.journey-heading{grid-template-columns:1fr;gap:8px;margin-bottom:20px}.journey-heading>p{font-size:16px}.journey-track{padding-left:28px}.timeline-step{grid-template-columns:1fr;gap:12px;padding:24px 0 30px}.timeline-step:before{left:-34px}.timeline-title{font-size:26px}.timeline-date{font-size:11px}.skills-branches{grid-template-columns:1fr;gap:0}.toolkit-entry summary{min-height:70px}.practice-entry summary{grid-template-columns:76px 1fr;gap:10px}.practice-entry .disclosure-content{padding-left:0}.editorial-journey{padding:40px 0}.floating-navigation{right:16px}}
@media(hover:none){.collection-choice img{opacity:.13}}
@media(prefers-reduced-motion:reduce){.reveal-ready{opacity:1;transform:none;transition:none}.header-shell .header,.collection-choice img,.collection-choice:after,.disclosure-symbol{transition:none}.journey-line span{transform:scaleY(1)}}

.header-shell .header{color:#2a2a2a}.header-shell .wordmark,.header-shell .header nav a,.header-shell .header-caption,.header-shell .header-resume{color:#2a2a2a}.header-shell.is-compact .header-resume{color:#ffffff}.header-shell .header nav a.active{color:#6a6a6a}
/* Original journey map: a full-width visual invitation above the timeline. */
.journey-map-feature{margin:38px 0 56px}.journey-map-open{display:block;border-top:1px solid var(--line);padding-top:24px}.journey-map-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 .22em;font-size:clamp(30px,4.2vw,64px);line-height:1.12;letter-spacing:-.045em}.journey-map-heading>span{margin-left:auto;transition:transform .2s}.journey-map-open:hover .journey-map-heading>span{transform:translate(4px,-4px)}.journey-map-hint{display:block;font-size:15px;line-height:1.6;color:var(--muted);margin:18px 0 24px}.journey-map-open img{display:block;width:100%;height:auto;background:white;border:1px solid var(--line)}.journey-map-feature figcaption{display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;margin-top:16px;font-size:12px;letter-spacing:.05em}.journey-map-feature figcaption a{text-decoration:underline;text-underline-offset:5px;min-height:44px;display:inline-flex;align-items:flex-start}.journey-map-open:focus-visible{outline:3px solid var(--ink);outline-offset:8px}@media(max-width:700px){.journey-map-feature{margin:28px 0 38px}.journey-map-heading{font-size:34px}.journey-map-hint{font-size:14px}.journey-map-feature figcaption{font-size:11px}}@media(prefers-reduced-motion:reduce){.journey-map-heading>span{transition:none}}
