/* Photography, case studies and the pathways between worlds. */
.reading-nav{background:color-mix(in srgb,var(--bg) 93%,transparent);backdrop-filter:blur(16px)}
#reading-progress{position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;pointer-events:none}
.reading-sections a[aria-current=location]{color:var(--accent)}
.introduction{position:relative}.introduction:before{content:'';position:absolute;right:0;top:100px;width:35%;height:450px;z-index:-1;background:radial-gradient(ellipse,color-mix(in srgb,var(--soft) 55%,transparent),transparent 68%);pointer-events:none}
.feature-card .feature-art{position:relative;border-radius:8px!important;box-shadow:0 24px 60px -40px color-mix(in srgb,var(--ink) 40%,transparent)}
.feature-card.with-image:not(:first-child) .feature-art{background:color-mix(in srgb,var(--soft) 30%,var(--paper));padding:15px}
.feature-card .feature-copy{position:relative}.feature-card.text-feature:not(:first-child){padding:35px;border:1px solid var(--line);background:linear-gradient(140deg,var(--paper),color-mix(in srgb,var(--soft) 24%,var(--bg)));border-radius:8px}
.feature-card.text-feature:not(:first-child) h3{max-width:440px}
.feature-card .card-meta{line-height:1.7}.feature-card .feature-copy>p{max-width:530px}
.photo-story{max-width:none;background:linear-gradient(180deg,transparent,var(--paper));padding-inline:max(6.5%,calc((100vw - 1218px)/2));padding-top:35px}
.photo-spread{gap:4%;grid-template-columns:1.3fr 1fr;align-items:start;margin-top:38px}.photo-spread>.photo-open:nth-child(2){margin-top:100px}
.photo-open{display:block;background:none;padding:0;min-width:0;text-align:left;color:inherit;width:100%}.photo-image{position:relative;overflow:hidden;background:#101514;border-radius:5px;isolation:isolate}
.photo-open img{display:block;width:100%;height:auto;max-height:570px;object-fit:contain;transition:transform .8s cubic-bezier(.2,.7,.3,1),filter .6s}.photo-open:hover img{transform:scale(1.025)}
.photo-expand{position:absolute;bottom:16px;left:16px;right:16px;color:#fff;display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:.035em;text-shadow:0 1px 8px #000;background:#101514a6;backdrop-filter:blur(12px);padding:9px 13px;border:1px solid #ffffff40;border-radius:3px;opacity:0;transform:translateY(5px);transition:opacity .25s,transform .25s}
.photo-expand>span{font-size:21px;line-height:1}.photo-open:is(:hover,:focus-visible) .photo-expand{opacity:1;transform:none}.photo-open:focus-visible{outline:2px solid var(--accent);outline-offset:7px}
.photo-open figcaption{display:flex;flex-direction:column;gap:7px;margin-top:17px}.photo-open figcaption strong{font:400 clamp(24px,2.4vw,34px)/1.2 var(--display)}.photo-open figcaption>span{font-size:10px;color:var(--muted);line-height:1.6}
.photo-gallery{gap:22px}.photo-gallery .photo-open img{height:230px}.photo-gallery .photo-open figcaption{margin-top:10px}.photo-gallery .photo-open strong{font-size:21px}.photo-gallery .photo-open figcaption>span{font-size:9px}
.portrait-lab{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:10%;position:relative;padding-top:45px;padding-bottom:100px}.portrait-lab[hidden]{display:none}.lab-copy h2{font:400 clamp(38px,4.2vw,60px)/1.08 var(--display);letter-spacing:-.035em;margin:25px 0}.lab-copy h2 em{color:var(--accent)}.lab-copy>p{font-size:15px;color:var(--muted);line-height:1.9;max-width:430px;margin-top:18px}.lab-copy .eyebrow{font-size:10px;color:var(--accent)}
.portrait-choices{display:flex;flex-wrap:wrap;gap:7px;margin:25px 0 5px}.portrait-choices button{background:transparent;border:1px solid var(--line);border-radius:3px;padding:11px 13px;font-size:11px;min-height:44px}.portrait-choices button[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.portrait-comparison{position:relative;background:#f1efec;border:1px solid var(--line);border-radius:9px;box-shadow:0 24px 80px #00000020;overflow:hidden;color:#303032}.comparison-stage{position:relative;height:540px;isolation:isolate}.comparison-reference,.comparison-result{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 45%,#fff,#edeae7)}.comparison-result{background:radial-gradient(ellipse at 50% 45%,#d9e8e2,#f1efec)}.comparison-reference{clip-path:inset(0 calc(100% - var(--split)) 0 0)}.comparison-stage img{position:absolute;width:100%;height:100%;object-fit:contain;inset:0;max-height:none;mix-blend-mode:multiply}.comparison-reference img{padding:32px 0 20px;object-position:center bottom}.comparison-result img{padding-top:5px;object-position:center bottom}.comparison-divider{position:absolute;top:0;bottom:0;left:var(--split);width:1px;background:#5c786d;pointer-events:none}.comparison-divider span{position:absolute;top:50%;left:-16px;display:grid;place-items:center;width:33px;height:45px;border:1px solid #79958a;border-radius:20px;background:#f8f9f5;font-size:19px;box-shadow:0 4px 20px #0002}.comparison-label{position:absolute;top:15px;font-size:9px;padding:7px 9px;background:#f9f9f4dd;border:1px solid #34453a24;border-radius:2px}.original-label{left:13px}.result-label{right:13px}.comparison-range{display:block;padding:17px 22px 18px;border-top:1px solid #34453a24;background:#faf9f5}.comparison-range>span{display:block;font-size:10px;margin-bottom:10px}.comparison-range input{display:block;width:100%;height:28px;accent-color:#426958;cursor:ew-resize}
.world-discovery{max-width:none;padding-inline:0;overflow:hidden;background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.world-discovery-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;padding:0 max(6.5%,calc((100vw - 1218px)/2));margin-bottom:37px}.world-discovery h2{font:400 clamp(38px,4.7vw,65px)/1.1 var(--display);letter-spacing:-.03em;margin:20px 0 0}.world-discovery h2 em{color:var(--accent)}.world-discovery .eyebrow{color:var(--accent);font-size:10px}.world-rail-controls{display:flex;gap:8px}.world-rail-controls button{height:44px;width:44px;background:transparent;border:1px solid var(--line);border-radius:50%;font-size:20px}.world-rail-controls button:hover{background:var(--ink);color:var(--bg)}
.world-gallery{display:flex;overflow-x:auto;gap:18px;padding:8px max(6.5%,calc((100vw - 1218px)/2)) 26px;scroll-snap-type:x mandatory;scroll-padding-inline:6.5%;scrollbar-color:var(--line) transparent;scrollbar-width:thin;overscroll-behavior-x:contain}
.world-window{--window-paper:#eddfd5;--window-accent:#a9503d;--window-ink:#312d2a;position:relative;isolation:isolate;flex:0 0 260px;min-width:0;height:470px;background:var(--window-paper);color:var(--window-ink);overflow:hidden;border:1px solid color-mix(in srgb,var(--window-ink) 15%,transparent);border-radius:7px;scroll-snap-align:start;transition:transform .35s,box-shadow .35s}
.world-window-ai{--window-paper:#102e2c;--window-accent:#8ecabb;--window-ink:#d7eee4}.world-window-development{--window-paper:#251d35;--window-accent:#bdaaee;--window-ink:#e5dcf5}.world-window-websites{--window-paper:#e6d9d2;--window-accent:#984635;--window-ink:#343042}.world-window-business{--window-paper:#1f3036;--window-accent:#b9cdb5;--window-ink:#e5e9e2}.world-window-riding{--window-paper:#3d2234;--window-accent:#ed94b8;--window-ink:#f7ddea}.world-window-explore{--window-paper:#dce0d0;--window-accent:#5b7047;--window-ink:#344237}
.world-window:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 38%,color-mix(in srgb,var(--window-accent) 32%,transparent),transparent 65%);z-index:-1}
.world-window-index{position:absolute;z-index:2;top:18px;left:20px;right:20px;display:flex;justify-content:space-between;font:9px var(--mono);color:var(--window-accent)}.world-window-index>span{font:10px var(--sans)}
.world-window-portrait{position:absolute;top:27px;left:0;right:0;height:316px;overflow:hidden;mask-image:linear-gradient(#000 76%,transparent)}.world-window-portrait img{width:100%;height:100%;object-fit:contain;transition:transform .7s cubic-bezier(.2,.7,.3,1);filter:drop-shadow(0 15px 15px #0002)}
.world-window-copy{position:absolute;inset:auto 22px 20px}.world-window h3{font:400 31px/1.2 'DM Serif Display',Georgia,serif;margin:0 0 9px;letter-spacing:-.025em}.world-window p{font-size:12px;line-height:1.7;max-width:215px;opacity:.78}.world-window-action{display:flex;justify-content:space-between;font-size:10px;margin-top:18px;padding-top:15px;border-top:1px solid color-mix(in srgb,var(--window-ink) 20%,transparent)}.world-window-action>span{font-size:17px;color:var(--window-accent)}.world-window:hover{transform:translateY(-5px);box-shadow:0 16px 24px #0001}.world-window:hover .world-window-portrait img{transform:scale(1.055)}.world-window:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.world-window[aria-current=page]{border-color:var(--window-accent)}.next-world-line{padding:25px 6.5% 0;text-align:right;font-size:13px;color:var(--muted)}.next-world-line a{color:var(--ink);border-bottom:1px solid var(--accent);padding-bottom:5px;margin-left:8px}.next-world-line a>span:last-child{margin-left:20px;color:var(--accent)}
.case-standfirst{font-size:20px!important;line-height:1.7!important;color:var(--ink)!important;max-width:660px}.case-index{display:flex;gap:22px;flex-wrap:wrap;padding:18px 0;margin:29px 0 0;border-block:1px solid var(--line)}.case-index a{font-size:11px;color:var(--accent);padding:7px 0}.case-index a:hover{text-decoration:underline}.case-chapter{position:relative;padding:37px 0 10px;scroll-margin-top:25px}.case-number{display:block;font:10px var(--mono);color:var(--accent);margin-bottom:10px}.case-chapter h3{font:400 32px/1.2 var(--display);letter-spacing:-.02em;margin:0 0 20px}.case-decisions{display:grid;gap:0}.case-decisions>div{padding:20px 0;border-top:1px solid var(--line)}.case-decisions h4{font:500 16px/1.5 var(--sans);margin:0;color:var(--ink)}.case-decisions p{margin:12px 0 0!important;font-size:15px!important}.case-example{padding:27px 30px;margin:25px -30px;background:color-mix(in srgb,var(--soft) 35%,var(--paper));border-left:2px solid var(--accent);border-radius:0 5px 5px 0}.case-example p{font-size:15px!important;margin-bottom:0!important}.case-sources{display:flex;flex-direction:column;gap:0;margin-top:25px}.case-sources:empty{display:none}.case-sources>.eyebrow{margin-bottom:10px}.case-sources>a{display:flex;justify-content:space-between;gap:20px;font-size:12px;padding:14px 0;border-bottom:1px solid var(--line)}.case-sources>a:hover{color:var(--accent)}
#photo-dialog{width:100vw;max-width:100vw;height:100svh;max-height:100svh;inset:0;margin:0;padding:0;border:0;border-radius:0;background:#101514;color:#edece4;overflow:auto}#photo-dialog::backdrop{background:#101514}html:has(dialog[open]){overflow:hidden}.gallery-top{display:flex;align-items:center;gap:20px;padding:16px 4%;border-bottom:1px solid #ffffff20}.gallery-top>span:first-child{font-size:11px;color:#b9c6bd}.gallery-top #gallery-position{font:10px var(--mono);margin-left:auto;color:#c1c9c0}.gallery-top button{width:44px;height:44px;font-size:25px;border:1px solid #ffffff30;background:none;color:#fff;border-radius:50%;margin-left:10px}.gallery-body{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:4%;padding:25px 4% 22px;min-height:0}.gallery-image-wrap{display:flex;align-items:center;justify-content:center;min-width:0;background:#0b100f;position:relative}.gallery-image-wrap img{width:100%;height:calc(100svh - 225px);min-height:280px;object-fit:contain;touch-action:pan-y pinch-zoom}.gallery-caption{display:flex;flex-direction:column;justify-content:center}.gallery-caption h2{font:400 36px/1.15 'DM Serif Display',Georgia,serif;letter-spacing:-.025em;color:#fff;margin:20px 0}.gallery-caption>p{font-size:13px;line-height:1.9;color:#bac5bd}.gallery-caption #gallery-note{font:9px/1.8 var(--mono);color:#a5c9b8}.gallery-caption #gallery-credit{font-size:10px;color:#93a296;margin-top:25px}.gallery-caption>a{font-size:11px;border-bottom:1px solid #7c9485;align-self:start;padding:10px 0;margin-top:9px}.gallery-buttons{display:flex;gap:10px;margin-top:26px}.gallery-buttons button{min-height:44px;flex:1;border:1px solid #ffffff30;background:transparent;color:#eee;font-size:12px;border-radius:3px}.gallery-buttons button:hover,.gallery-top button:hover{background:#ffffff15}.gallery-thumbs{display:flex;align-items:center;gap:10px;padding:0 4% 20px;overflow-x:auto}.gallery-thumbs button{position:relative;flex:0 0 84px;height:60px;padding:3px;border:1px solid transparent;background:none;opacity:.55;border-radius:3px}.gallery-thumbs img{width:100%;height:100%;object-fit:cover}.gallery-thumbs button[aria-pressed=true]{opacity:1;border-color:#b6d3be}.gallery-thumbs button>span{position:absolute;bottom:5px;left:6px;font:8px var(--mono);color:#fff;background:#0009;padding:2px 4px}.gallery-thumbs button:hover{opacity:1}#photo-dialog :focus-visible{outline:2px solid #b6d3be;outline-offset:4px}
.gallery-top>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gallery-top #gallery-position,.gallery-top button{flex-shrink:0}.gallery-buttons[hidden],.gallery-thumbs[hidden],.gallery-caption [hidden]{display:none}.gallery-caption h2{overflow-wrap:anywhere}
#photo-dialog{color-scheme:dark}.gallery-thumbs{scrollbar-width:thin;scrollbar-color:#617267 #101514}
.field-story{grid-column:1/-1;position:relative;margin:35px 0 0;padding-top:45px;border-top:1px solid var(--line)}.field-story>img{width:100%;aspect-ratio:2.3;object-fit:cover;border-radius:5px}.field-story-copy{display:grid;grid-template-columns:1fr 1.05fr;gap:9%;padding-top:30px}.field-story h3{font:400 38px/1.13 var(--display);margin:12px 0 15px;letter-spacing:-.025em}.field-story p{font-size:14px;line-height:1.9;color:var(--muted)}.field-story .photo-credit{line-height:1.7;margin:20px 0 0;display:block;font-size:9px}.field-story .photo-credit a{text-decoration:underline}.field-story .eyebrow{font-size:10px;color:var(--accent)}
@media(prefers-reduced-motion:no-preference){[data-reveal=true]{transition:translate .35s cubic-bezier(.2,.7,.3,1)}[data-reveal=true]:not(.in-view){opacity:1;translate:0 10px}.paused [data-reveal=true]{opacity:1;translate:none;transition:none}}
@media(max-width:1000px){.world-discovery-heading{padding-inline:5%}.world-gallery{padding-inline:5%}.portrait-lab{gap:6%}.comparison-stage{height:450px}.gallery-body{grid-template-columns:minmax(0,1fr) 240px}.gallery-caption h2{font-size:30px}}
@media(max-width:700px){.feature-card.text-feature:not(:first-child){margin-top:20px;padding:27px 24px}.photo-story{padding:28px 22px 50px}.photo-spread{display:grid;grid-template-columns:1fr;gap:30px;margin-top:28px}.photo-spread>.photo-open:nth-child(2){margin-top:0}.photo-expand{opacity:1;transform:none;font-size:9px;left:10px;right:10px;bottom:10px;padding:7px 10px}.photo-open figcaption strong{font-size:27px}.photo-open figcaption>span{font-size:9px}.photo-gallery{grid-template-columns:1fr;gap:25px}.photo-gallery .photo-open img{height:auto;max-height:400px}.photo-gallery .photo-open figcaption strong{font-size:24px}.portrait-lab{grid-template-columns:1fr;gap:30px;padding-top:10px;padding-bottom:50px}.lab-copy h2{font-size:40px;margin:20px 0}.lab-copy>p{font-size:14px}.portrait-choices{gap:6px}.portrait-choices button{font-size:10px;padding:10px 13px}.comparison-stage{height:440px;max-height:110vw}.comparison-range{padding:14px 17px}.world-discovery{padding:45px 0}.world-discovery-heading{padding:0 22px;gap:15px;margin-bottom:25px}.world-discovery h2{font-size:39px}.world-discovery .eyebrow{font-size:9px}.world-rail-controls{gap:5px}.world-rail-controls button{width:40px;height:40px}.world-gallery{gap:12px;padding:5px 22px 23px;scroll-padding-inline:22px}.world-window{flex-basis:245px;height:450px}.world-window-portrait{height:300px}.world-window h3{font-size:30px}.next-world-line{padding:25px 22px 0;font-size:12px;text-align:left}.case-standfirst{font-size:18px!important;line-height:1.7!important}.case-index{gap:9px 18px}.case-index a{font-size:10px}.case-chapter{padding-top:30px}.case-chapter h3{font-size:29px}.case-decisions h4{font-size:15px}.case-decisions p{font-size:14px!important}.case-example{margin:20px -9px;padding:22px 18px}.case-example p{font-size:14px!important}.case-sources>a{font-size:11px;line-height:1.7}.gallery-top{padding:8px 18px}.gallery-top>span:first-child{font-size:10px}.gallery-body{display:flex;flex-direction:column;padding:18px 18px 15px;gap:20px}.gallery-image-wrap img{height:auto;max-height:50svh;min-height:0;object-fit:contain}.gallery-caption h2{font-size:32px;margin:13px 0}.gallery-caption>p{font-size:13px;line-height:1.75}.gallery-caption #gallery-credit{margin-top:16px}.gallery-caption>a{padding:9px 0}.gallery-buttons{margin-top:18px}.gallery-thumbs{padding:0 18px 25px;gap:8px}.gallery-thumbs button{flex-basis:72px;height:54px}.field-story{padding-top:30px;margin-top:5px}.field-story>img{aspect-ratio:1.6}.field-story-copy{display:block;padding-top:23px}.field-story h3{font-size:33px;margin:15px 0}.field-story p{font-size:14px}.field-story .photo-credit{font-size:9px}}
@media(prefers-reduced-motion:reduce){.photo-open img,.photo-expand,.world-window,.world-window-portrait img{transition:none!important;transform:none!important}[data-reveal]{opacity:1!important;translate:none!important}.reading-nav{backdrop-filter:none}}
.paused .photo-open img,.paused .photo-expand,.paused .world-window,.paused .world-window-portrait img{transition:none!important;transform:none!important}

.example-steps{padding:0;list-style:none;counter-reset:step;display:grid;gap:19px;margin:22px 0 0}.example-steps li{counter-increment:step;position:relative;padding-left:33px}.example-steps li:before{content:counter(step,decimal-leading-zero);position:absolute;left:0;top:3px;font:9px var(--mono);color:var(--accent)}.example-steps strong{font-size:14px;font-weight:500}.example-steps p{margin-top:7px!important;font-size:14px!important}.case-collaborators{border-top:1px solid var(--line);padding-top:25px;margin-top:30px}.case-collaborators p{font-size:12px!important;line-height:1.8!important;margin:12px 0!important}.case-collaborators strong{display:block;font-weight:500;color:var(--ink)}

.gallery-top{position:sticky;top:0;z-index:2;background:#101514f2;backdrop-filter:blur(12px)}
.field-story p+p{margin-top:14px}
@media(prefers-reduced-motion:reduce){.reading-nav{background:var(--bg)}}

@media(max-width:700px){.gallery-image-wrap img{height:42svh;min-height:230px;max-height:400px}}
.case-chapter:focus{outline:2px solid var(--accent);outline-offset:8px}
