/* Through the lens — a journal in color. All photographs belong to Umanga. */
@font-face{font-family:URSans;src:url('assets/inter.ttf') format('truetype');font-weight:100 900;font-display:swap}
@font-face{font-family:URDot;src:url('assets/doto.ttf') format('truetype');font-weight:100 900;font-display:swap}
@font-face{font-family:URGeometric;src:url('assets/manrope.ttf') format('truetype');font-weight:200 800;font-display:swap}
@font-face{font-family:URCinema;src:url('assets/cinema.ttf') format('truetype');font-weight:400 700;font-style:italic;font-display:swap}
:root{--paper:#f7f6ef;--cream:#f4eece;--ink:#192c42;--blue:#234cdb;--orange:#ec542d;--yellow:#f8d754;--bg:var(--paper);--fg:var(--ink);--muted:#52606a;--accent:var(--blue);--line:#192c4230;--mono:'Courier New',monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 URSans,Arial,sans-serif;-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}::selection{background:var(--yellow);color:var(--ink)}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,input,textarea,summary{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer;background:none;border:0}button:disabled{cursor:wait;opacity:.45}button,a,input,textarea,summary{touch-action:manipulation}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--orange);outline-offset:5px}img{max-width:100%;display:block}h1,h2,h3,h4,p,figure{margin:0}h1,h2,h3,h4{font-weight:550;letter-spacing:-.065em;line-height:1.02}h2{font-size:clamp(52px,7.5vw,112px)}h3{font-size:38px}h4{font-size:26px}em{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.06em}p{color:var(--muted)}p+p{margin-top:18px}.wrap{width:90%;max-width:1440px;margin-inline:auto}.eyebrow,.meta,.hero-top,.hero-bottom,.portrait-caption,.compare-footer{font-family:var(--mono);font-size:12px;line-height:1.5;letter-spacing:.06em}.eyebrow{margin-bottom:25px;font-weight:700}.meta{color:var(--muted)}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip{position:fixed;z-index:1100;top:-100px;left:15px;background:var(--yellow);color:var(--ink);padding:12px 20px}.skip:focus{top:15px}.text-link{display:inline-flex;align-items:center;gap:22px;padding:12px 0;border-bottom:1px solid currentColor;font-size:14px;font-weight:600}.text-link span{font-size:24px;line-height:1}.text-link:hover{color:var(--blue)}
/* Opening: a name, a small introduction, and photographs scattered around the camera. */
.header{position:relative;z-index:20;display:flex;align-items:center;gap:32px;padding:20px 5%;height:94px;border-bottom:1px solid var(--line);background:var(--cream)}.wordmark{font-size:51px;font-weight:800;letter-spacing:-.12em;line-height:1}.wordmark span{color:var(--orange)}.header-note{font:10px/1.55 var(--mono);letter-spacing:.08em;border-left:1px solid var(--line);padding-left:26px}nav{display:flex;align-items:center;gap:28px;margin-left:auto;font-size:14px}nav a{position:relative}nav a:after{content:'';position:absolute;left:0;right:0;bottom:-5px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .25s}nav a:hover:after{transform:scaleX(1)}nav .nav-contact{padding:10px 19px;border:1px solid var(--ink);border-radius:30px}nav .nav-contact:after{display:none}nav .nav-contact:hover{background:var(--ink);color:var(--cream)}
.camera-journey{position:relative;isolation:isolate}.camera-journey>.camera-stage{position:sticky;top:0;left:0;width:100%;height:100svh;margin-bottom:-100svh;z-index:4;pointer-events:none;overflow:hidden}.camera-stage canvas{position:absolute;inset:0;width:100%;height:100%}.camera-stage:not(.ready) canvas{visibility:hidden}.camera-fallback{position:absolute;left:55%;top:28%;width:36%;height:45%}.camera-fallback img{width:100%;height:100%;object-fit:contain}.camera-stage.ready .camera-fallback{display:none}
.hero{position:relative;height:calc(100svh + 300px);min-height:1120px;background:var(--cream)}.hero-sticky{position:sticky;top:0;height:100svh;min-height:790px;z-index:3;overflow:hidden;pointer-events:none}.hero-sticky a,.hero-sticky button{pointer-events:auto}.hero-top{position:absolute;top:24px;left:5%;right:5%;display:flex;justify-content:space-between;color:var(--ink);font-size:11px}.hero-title{position:absolute;left:5%;top:100px;width:52%;z-index:6}.hero-title>.eyebrow{font-size:12px;color:var(--blue);margin-bottom:18px;display:flex;align-items:center;gap:10px}.red-dash{display:block;width:20px;height:3px;background:var(--orange)}.hero-title h1{font-size:clamp(86px,10.8vw,174px);font-weight:650;line-height:.88;letter-spacing:-.085em;margin-bottom:34px}.hero-title h1 em{font-size:1.13em;color:var(--blue);letter-spacing:-.08em}.hero-role{font-size:clamp(18px,1.65vw,25px);line-height:1.35;letter-spacing:-.025em;color:var(--ink);margin-bottom:15px}.hero-description{font-size:15px;max-width:290px;line-height:1.65}.hero-person{display:flex;width:max-content;align-items:center;gap:12px;margin-top:23px;font-size:14px;font-weight:600}.hero-person img{width:43px;height:43px;object-fit:cover;object-position:50% 28%;border-radius:50%;border:2px solid var(--paper)}.hero-person small{display:block;font-size:11px;font-weight:400;color:var(--muted)}.hero-actions{display:flex;align-items:center;gap:22px;margin-top:24px}.hero-actions .text-link{padding:12px 20px;background:var(--ink);border:1px solid var(--ink);border-radius:30px;color:var(--paper);font-size:13px}.hero-actions .text-link:hover{background:var(--blue);border-color:var(--blue)}.hero-instagram{font:12px var(--mono);border-bottom:1px solid var(--line)}.hero-color-field{position:absolute;width:34vw;height:34vw;max-width:540px;max-height:540px;right:7%;top:17%;background:var(--orange);border-radius:50%;transform:rotate(-18deg);opacity:1}.hero-sidenote{position:absolute;right:1.8%;top:35%;writing-mode:vertical-rl;font:10px var(--mono);letter-spacing:.12em}.floating-photo{position:absolute;padding:8px 8px 0;background:var(--paper);box-shadow:0 14px 30px #49372326;z-index:2;transform-style:preserve-3d}.floating-photo:before{content:'';position:absolute;top:-10px;left:30%;width:42%;height:24px;background:#e3c490b8;transform:rotate(-5deg);z-index:1}.floating-photo img{width:100%;object-fit:cover}.floating-photo figcaption{padding:10px 5px;font:10px var(--mono);color:var(--ink);letter-spacing:.07em}.photo-one{width:20%;max-width:290px;right:4%;top:8%;transform:rotate(9deg)}.photo-one img{aspect-ratio:1.22}.photo-two{width:14%;max-width:180px;right:36%;bottom:18%;transform:rotate(-12deg)}.photo-two img{aspect-ratio:3/4}.photo-three{width:18%;max-width:245px;right:7%;bottom:10%;transform:rotate(-8deg)}.photo-three img{height:205px;object-position:center 43%}.hero-handnote{position:absolute;right:32%;top:13%;font:italic 22px/1.05 Georgia,serif;transform:rotate(-9deg);color:var(--blue)}.hero-bottom{position:absolute;left:5%;right:5%;bottom:23px;display:flex;justify-content:space-between;align-items:end;font-size:10px;color:var(--ink)}.hero-bottom>span:last-child{text-align:right}.scroll-caption{padding:8px 15px;border:1px solid var(--line);border-radius:30px;white-space:nowrap}.scroll-caption span{display:inline-block;margin-left:20px;font-size:18px;animation:nudge 2s ease-in-out infinite}.hero-progress{position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--line)}.hero-progress i{display:block;width:100%;height:100%;background:var(--blue);transform:scaleX(0);transform-origin:left}
@keyframes nudge{50%{transform:translateY(3px)}}
/* A bright contact sheet is the foreground that the camera travels behind. */
.work{position:relative;z-index:10;width:100%;max-width:none;padding:82px max(5%,calc((100vw - 1440px)/2)) 95px;margin:0;background:var(--paper);border-top:1px solid var(--ink)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:35px;margin-bottom:42px}.section-heading>p{font-size:15px;max-width:320px}.work .section-heading h2 em{color:var(--blue)}.archive-intro{display:flex;align-items:end;gap:25px}.archive-total{font-size:120px;line-height:.85;color:transparent;-webkit-text-stroke:1px var(--blue);letter-spacing:-.09em}.archive-intro p{font-size:13px;margin:0;max-width:190px}.archive-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0}.filters{display:flex;flex-wrap:wrap;gap:8px}.filters button{padding:8px 16px;border:1px solid transparent;border-radius:30px;font-size:13px;transition:background .2s,color .2s,border-color .2s}.filters button:hover{border-color:var(--blue);color:var(--blue)}.filters .active{background:var(--blue);color:white}.archive-bar>.meta{font-size:11px;white-space:nowrap}
.photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 20px;margin-top:30px;align-items:stretch}.photo-card{min-width:0;display:flex;flex-direction:column;padding:0;background:transparent;--tilt:0deg}.photo-card:first-child{grid-column:span 2;grid-row:span 2}.photo-button{display:block;width:100%;padding:0;text-align:left;flex:1;min-height:0}.photo-image{position:relative;overflow:hidden;background:#e8e5d9;aspect-ratio:3/4;height:auto}.photo-image img{height:100%;width:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.7,.2,1),filter .5s}.photo-card:first-child .photo-image{height:100%;aspect-ratio:auto;min-height:450px}.photo-card:first-child .photo-image img{position:absolute;inset:0;object-fit:contain;background:#eaedf0}.photo-button:hover img{transform:scale(1.055)}.photo-button:focus-visible{outline-offset:6px}.open-photo{position:absolute;bottom:15px;right:15px;width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:var(--paper);color:var(--ink);font-size:23px;transform:translateY(60px);transition:transform .25s}.photo-button:hover .open-photo,.photo-button:focus-visible .open-photo{transform:none}.photo-caption{display:flex;justify-content:space-between;align-items:start;gap:10px;padding-top:12px}.photo-caption h3{font-size:16px;line-height:1.2;font-weight:600;letter-spacing:-.03em}.photo-caption p{font:10px/1.5 var(--mono);text-transform:uppercase;letter-spacing:.06em;margin-top:5px}.frame-number{font:italic 25px/.9 Georgia,serif;color:var(--blue)}.photo-grid[data-filtered=true] .photo-card:first-child{grid-column:auto;grid-row:auto}.photo-grid[data-filtered=true] .photo-card:first-child .photo-image{aspect-ratio:3/4;height:auto;min-height:0}.photo-grid[data-filtered=true] .photo-card:first-child .photo-image img{position:static;object-fit:cover}
/* Camera kit: cobalt stage, cream typography, physically connected lens exchange. */
.camera-kit{position:relative;height:calc(100svh + 600px);min-height:1500px;background:var(--blue);color:var(--paper);--fg:var(--paper);--muted:#e2e7ff;--line:#f7f6ef60;--accent:var(--yellow)}.kit-watermark{position:absolute;top:40px;left:5%;right:5%;font-size:clamp(100px,22vw,330px);font-weight:800;line-height:.8;letter-spacing:-.08em;color:#ffffff09;pointer-events:none;overflow:hidden}.kit-sticky{height:100svh;min-height:950px;position:sticky;top:0;z-index:3;pointer-events:none;overflow:visible}.kit-sticky a,.kit-sticky button{pointer-events:auto}.kit-camera-space{display:block;position:absolute;top:32px;left:20%;width:60%;height:290px;pointer-events:none}.kit-copy{position:absolute;top:395px;left:5%;right:5%;text-align:center;z-index:6}.kit-copy .eyebrow{color:var(--yellow);margin-bottom:22px;font-size:11px}.kit-copy h2{font-size:clamp(50px,6.1vw,90px);line-height:1;margin-bottom:22px}.kit-copy h2 em{color:var(--yellow)}.kit-copy>p:not(.eyebrow){font-size:15px;line-height:1.6}.kit-copy .text-link{margin-top:15px;border-color:#fff6}.kit-copy .text-link:hover{color:var(--yellow)}.kit-equipment{position:absolute;left:8%;right:8%;bottom:95px;display:flex;justify-content:center;gap:7%;text-align:left;padding-top:25px;border-top:1px solid var(--line);z-index:6}.kit-equipment article{width:340px}.kit-equipment h3{font-size:29px;margin:8px 0 10px;letter-spacing:-.035em}.kit-equipment p{font-size:13px}.kit-bottom{position:absolute;left:5%;right:5%;bottom:25px;display:flex;justify-content:space-between;gap:20px;z-index:6}.kit-bottom .meta{font-size:10px}.kit-progress{position:absolute;bottom:0;left:0;right:0;height:4px;background:#ffffff20}.kit-progress i{display:block;background:var(--yellow);height:100%;transform-origin:left;transform:scaleX(0)}.lens-swipe-surface{position:absolute;inset:0 0 auto;height:340px;z-index:5;touch-action:pan-y;pointer-events:auto;cursor:grab;user-select:none}.lens-swipe-surface:active{cursor:grabbing}.lens-swipe-surface:focus-visible{outline:2px solid var(--yellow);outline-offset:-10px}.lens-photo-orbit{position:relative;width:100%;height:100%;transition:opacity .35s,transform .55s}.lens-photo{position:absolute;left:3%;top:25px;width:10%;max-width:125px;padding:6px;background:var(--paper);color:var(--ink);box-shadow:3px 6px 0 #17258044;animation:lens-float 5s ease-in-out infinite;animation-delay:calc(var(--photo-index)*-.9s);text-align:left}.lens-photo:nth-child(2){top:185px;--angle:6deg}.lens-photo:nth-child(3){left:auto;right:3%;--angle:7deg}.lens-photo:nth-child(4){left:auto;right:3%;top:185px;--angle:-5deg}.lens-photo img{width:100%;height:90px;object-fit:cover}.lens-photo span{display:block;font:10px/1.4 var(--mono);padding:7px 2px 2px}.lens-photo:hover{animation-play-state:paused;z-index:7}.lens-selector{position:absolute;top:335px;left:50%;transform:translateX(-50%);display:flex;gap:18px;align-items:center;z-index:7;white-space:nowrap;pointer-events:auto;border:1px solid #fff6;border-radius:60px;padding:7px 10px;background:var(--blue)}.lens-selector span{font:11px var(--mono);display:flex;align-items:center;gap:12px;color:var(--paper)}.lens-selector b{font-weight:400;color:var(--yellow)}.lens-selector button{width:35px;height:35px;border-radius:50%;background:var(--paper);color:var(--blue);font-size:18px}.lens-selector button:hover{background:var(--yellow)}.parked-lens-label{position:absolute;top:265px;left:65%;width:27%;text-align:center;font:10px/1.4 var(--mono);color:var(--yellow);pointer-events:none}.changing-lens .lens-photo-orbit{opacity:0;transform:translateY(15px)}.changing-lens .parked-lens-label{opacity:.3}@keyframes lens-float{0%,100%{transform:translateY(0) rotate(var(--angle,-5deg))}50%{transform:translateY(-9px) rotate(var(--angle,-5deg))}}
/* Moving pictures: one strong, tactile film card. */
.reels{padding:90px 0}.reels .section-heading h2{font-size:clamp(55px,7.8vw,110px)}.reels .section-heading h2 em{color:var(--orange)}.reels .text-link{margin-bottom:8px}.reel-card{position:relative;display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:9%;align-items:center;background:var(--yellow);padding:50px 7%;border:1px solid var(--ink);box-shadow:8px 8px 0 var(--ink);margin:20px 8px 8px 0}.reel-sheet-label{position:absolute;right:20px;top:20px;writing-mode:vertical-rl;font:10px var(--mono);letter-spacing:.1em}.reel-card:before,.reel-card:after{content:'';position:absolute;left:-1px;right:-1px;height:11px;background:repeating-linear-gradient(90deg,var(--ink) 0 12px,transparent 12px 28px);pointer-events:none}.reel-card:before{top:0}.reel-card:after{bottom:0}#play-reel{position:relative;display:block;width:100%;padding:0;transform:rotate(-3deg);box-shadow:0 15px 35px #1a213044;transition:transform .4s;background:#15202d}#play-reel:hover{transform:rotate(0) scale(1.015)}#play-reel img{width:100%;max-height:450px;object-fit:cover}.reel-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:140px;height:140px;border:1px solid #fff8;border-radius:50%;background:#f7f6efed;color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;font-size:13px;backdrop-filter:blur(5px)}.reel-play b{font-size:25px;font-weight:400}.reel-copy{max-width:590px}.reel-note{font-size:clamp(33px,4.4vw,64px);line-height:1.04;letter-spacing:-.06em;color:var(--ink);margin-bottom:38px}.reel-copy .meta{font:12px var(--mono);color:var(--ink);border:1px solid var(--ink);border-radius:30px;padding:6px 13px}.reel-copy h3{font-size:27px;letter-spacing:-.035em;margin:20px 0 15px}.reel-copy>p:last-child{font-size:15px;max-width:400px;color:#354350}
/* Color study: full, usable comparison on a printed sheet. */
.grade{padding:10px 0 95px}.grade h2{font-size:clamp(50px,6.2vw,90px)}.grade h2 em{color:var(--blue)}.grade-sheet{position:relative;padding:25px;background:#e8e7f4;border:1px solid var(--line)}.grade-side-label{font:10px var(--mono);letter-spacing:.1em;margin-bottom:20px;color:var(--blue)}.compare{--split:50%;position:relative;overflow:hidden;aspect-ratio:16/8}.compare>img,.compare-after,.compare-after img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.compare-after{clip-path:inset(0 0 0 var(--split))}.compare-label{position:absolute;bottom:20px;padding:8px 12px;background:var(--paper);color:var(--ink);font:11px var(--mono)}.before{left:20px}.after{right:20px}.compare-line{position:absolute;left:var(--split);height:100%;width:2px;background:var(--yellow)}.compare-line span{position:absolute;top:50%;left:0;transform:translate(-50%,-50%);width:54px;height:54px;border:2px solid var(--yellow);border-radius:50%;background:var(--yellow);color:var(--ink);display:grid;place-items:center;font-size:22px}.compare input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;touch-action:pan-y}.compare:focus-within{outline:3px solid var(--orange);outline-offset:4px}.compare-footer{display:flex;justify-content:space-between;gap:20px;margin-top:17px;font-size:10px}
/* About: an orange printed spread, followed by a clear education ledger. */
.about{position:relative;width:100%;max-width:none;background:var(--orange);color:var(--ink);padding:85px max(5%,calc((100vw - 1440px)/2));--muted:#392c27;--line:#192c4250;--accent:var(--ink)}.about-layout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:11%;align-items:center}.portrait-column{position:relative;max-width:420px;width:100%;transform:rotate(-3deg);padding:10px 10px 0;background:var(--paper);box-shadow:12px 12px 0 #9d361d55}.portrait-slot{overflow:hidden;aspect-ratio:2/3;padding:0}.portrait-slot>img{width:100%;height:auto;object-fit:contain}.portrait-caption{display:flex;justify-content:space-between;padding:13px 5px;font-size:10px;color:var(--ink)}.portrait-sticker{position:absolute;right:-34px;top:28px;z-index:2;border-radius:50%;background:var(--yellow);width:112px;height:112px;display:grid;place-items:center;text-align:center;transform:rotate(13deg);font:11px/1.5 var(--mono);box-shadow:2px 3px 0 #192c4220}.about-copy h2{font-size:clamp(50px,6.2vw,92px);margin-bottom:25px}.about-copy h2 em{color:var(--paper)}.about-copy>p:not(.eyebrow){font-size:16px;max-width:560px;line-height:1.7}.personal-facts{margin:30px 0 0}.personal-facts>div{display:grid;grid-template-columns:135px 1fr;gap:12px;border-top:1px solid var(--line);padding:11px 0;font-size:12px}.personal-facts dt{color:var(--muted)}.personal-facts dd{margin:0;overflow-wrap:anywhere}.personal-facts a{text-decoration:underline;text-underline-offset:4px}.about-signature{display:block;font:italic 48px/.95 Georgia,serif;letter-spacing:-.06em;color:var(--paper);text-align:right;transform:rotate(-6deg);margin:25px 3% 10px}.without-portrait{display:block}.without-portrait .about-copy{max-width:850px}.journey{margin-top:55px;padding-top:45px;border-top:1px solid var(--line);display:grid;grid-template-columns:.75fr 1.45fr;gap:10%;align-items:start}.journey-heading{position:sticky;top:40px}.journey-heading h3{font-size:clamp(40px,4.5vw,67px);line-height:1.03;margin-bottom:20px}.journey-heading h3 em{color:var(--paper)}.journey-heading>p{font-size:14px}.journey-story{min-width:0}.education-ledger{display:grid;grid-template-columns:1fr 1fr;gap:15px}.education-entry{padding:22px;background:var(--paper);box-shadow:4px 4px 0 #192c4250;min-width:0}.education-current{background:var(--yellow)}.education-meta{display:flex;flex-direction:column;gap:12px;font:10px var(--mono);letter-spacing:.04em}.education-stage{font:600 24px URSans,Arial,sans-serif;letter-spacing:-.05em}.education-entry h4{font-size:25px;line-height:1.12;margin:24px 0 15px}.education-entry h4 br{display:none}.education-entry p{font-size:12px;color:#3d4955}.practice-ledger{margin-top:35px}.practice-ledger>.eyebrow{margin-bottom:16px;font-size:11px}.practice-entry{border-top:1px solid var(--line)}.practice-entry:last-child{border-bottom:1px solid var(--line)}.practice-entry summary{display:flex;align-items:center;justify-content:space-between;gap:20px;list-style:none;cursor:pointer;padding:19px 0}.practice-entry summary::-webkit-details-marker{display:none}.practice-entry small{display:block;font:10px var(--mono);margin-bottom:8px}.practice-entry strong{font-size:20px;font-weight:550;letter-spacing:-.035em}.practice-toggle{position:relative;width:28px;height:28px;border:1px solid var(--ink);border-radius:50%;flex:none}.practice-toggle:before,.practice-toggle:after{content:'';position:absolute;left:7px;right:7px;top:12px;height:1px;background:var(--ink)}.practice-toggle:after{transform:rotate(90deg);transition:transform .25s}.practice-entry[open] .practice-toggle:after{transform:none}.practice-body{padding:0 20px 20px 0}.practice-body p{font-size:14px}.practice-tags{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px;font:10px var(--mono)}.practice-entry[open] .practice-body{animation:practice-open .3s ease both}@keyframes practice-open{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
/* A living ribbon between the camera and the code. */
.interlude{padding:23px 0;background:var(--blue);color:var(--paper);overflow:hidden;font-size:clamp(32px,5vw,76px);line-height:1.1;letter-spacing:-.06em;white-space:nowrap}.marquee-track{display:flex;width:max-content;animation:discipline-marquee 38s linear infinite;will-change:transform}.marquee-group{display:flex;flex-shrink:0;align-items:center;gap:30px;padding-right:30px;min-width:100vw;justify-content:space-around}.marquee-separator{color:var(--yellow);font-weight:300}.marquee-word{font-weight:500}.marquee-word em{font-family:Georgia,serif}@keyframes discipline-marquee{to{transform:translateX(-50%)}}
/* Projects read like a small index, with their actual story inside. */
.projects{padding:90px 0 60px}.projects .section-heading h2{font-size:clamp(52px,6.6vw,97px)}.projects h2 em{color:var(--blue)}.project-list{border-top:1px solid var(--ink)}.project{border-bottom:1px solid var(--ink);padding:28px 20px;transition:background .3s}.project:hover,.project[open]{background:#e9eaf7}.project:nth-child(2):hover,.project:nth-child(2)[open]{background:#f2eaca}.project:nth-child(3):hover,.project:nth-child(3)[open]{background:#f7d8cb}.project summary{display:flex;align-items:start;gap:28px;list-style:none;cursor:pointer}.project summary::-webkit-details-marker{display:none}.project-number{font:italic 52px/.9 Georgia,serif;color:var(--blue);min-width:70px;padding-top:7px}.project summary>div{flex:1;min-width:0}.project summary .meta{font:10px var(--mono);letter-spacing:.05em}.project summary h3{font-size:clamp(32px,4.5vw,62px);margin:12px 0;letter-spacing:-.055em}.project-intro{max-width:610px;font-size:14px;line-height:1.65}.project-action{margin-left:auto;flex:none;border:1px solid var(--ink);padding:9px 15px;border-radius:30px;font-size:12px;margin-top:14px}.project[open] .project-action{background:var(--ink);color:var(--paper)}.personal-project-detail{margin-left:98px;max-width:820px;padding:8px 0 5px}.personal-project-detail dl{margin:20px 0;display:grid;gap:15px}.personal-project-detail dl>div{display:grid;grid-template-columns:100px 1fr;gap:18px;font-size:14px}.personal-project-detail dt{font:11px var(--mono);color:var(--muted);padding-top:4px}.personal-project-detail dd{margin:0}.personal-project-detail .text-link{font-size:13px}
.exploring{padding:20px 0 85px}.exploring-header{display:flex;align-items:end;gap:35px;justify-content:space-between;margin-bottom:30px}.exploring-header h2{font-size:43px}.exploring-header .eyebrow{margin:0}.interest-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.interest-grid article{border-top:3px solid var(--blue);padding:20px 0}.interest-grid article:nth-child(2){border-color:var(--orange)}.interest-grid article:nth-child(3){border-color:#cab14c}.interest-grid .meta{font-size:10px}.interest-grid h3{font-size:27px;margin:19px 0 13px;letter-spacing:-.04em}.interest-grid p{font-size:14px}
/* A simple hello, with no sales pitch. */
.personal-contact{padding:80px 0;background:var(--blue);color:var(--paper);--muted:#e1e7ff;--line:#f7f6ef50;--accent:var(--yellow)}.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:12%;align-items:center}.personal-contact h2{font-size:clamp(85px,10vw,145px);line-height:.84;margin:30px 0}.personal-contact h2 em{color:var(--yellow)}.personal-contact p{font-size:15px}.contact-links{display:grid;gap:15px;justify-items:start;margin-top:30px}.contact-links a{font-size:15px;border-bottom:1px solid var(--line);padding-bottom:3px;overflow-wrap:anywhere}.contact-links a:hover{color:var(--yellow)}#message-form{display:grid;gap:20px}.message-pair{display:grid;grid-template-columns:1fr 1fr;gap:18px}#message-form label,#message-result label{display:block;font-size:12px;font-weight:500}#message-form input,#message-form textarea,#message-text{display:block;width:100%;min-width:0;margin-top:8px;padding:13px 0;color:var(--paper);border:0;border-bottom:1px solid #f7f6ef80;border-radius:0;background:transparent;font-size:16px;line-height:1.5}#message-form textarea,#message-text{resize:vertical}#message-form input:focus,#message-form textarea:focus{outline:none;border-bottom:2px solid var(--yellow)}#message-form button,.message-actions button,.message-actions a{display:inline-flex;justify-content:center;align-items:center;min-height:44px;padding:10px 20px;border:1px solid var(--paper);border-radius:30px;font-size:13px}#message-form button{justify-self:start;background:var(--yellow);color:var(--ink);border-color:var(--yellow)}.personal-contact .message-note{font-size:11px;line-height:1.6;color:#d6deff;margin:0}.message-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:15px}#message-result{border:1px solid var(--line);padding:20px}#message-result p{font-size:13px;margin:15px 0}footer.wrap{position:relative;width:100%;max-width:none;padding:30px 5%;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:25px;background:var(--blue);color:var(--paper);font:10px var(--mono);border-top:1px solid #ffffff40}.footer-type{display:block;width:100%;font:700 clamp(40px,12vw,195px)/.92 URSans,Arial,sans-serif;letter-spacing:-.08em;color:var(--yellow);padding:10px 0 35px;border-bottom:1px solid #ffffff40}footer .wordmark{font-family:URSans,Arial,sans-serif}footer a:last-child{font:12px URSans,Arial,sans-serif}footer .wordmark span{color:var(--yellow)}
/* Accessible media viewers. */
dialog{width:min(1200px,94vw);max-height:94svh;padding:25px;border:1px solid #f7f6ef50;background:#152335;color:var(--paper);overflow:auto}dialog::backdrop{background:#101d32ef;backdrop-filter:blur(10px)}.close-lightbox{display:block;margin:0 0 20px auto;font-size:14px;min-height:44px;padding:0 15px}.lightbox-photo{display:flex;align-items:center;gap:16px}.lightbox-photo img{width:calc(100% - 120px);height:65svh;object-fit:contain}.lightbox-photo button{width:44px;min-height:44px;flex:none;font-size:27px;border:1px solid #ffffff70;border-radius:50%}.lightbox-photo button:hover{background:var(--yellow);color:var(--ink)}.lightbox-caption{display:flex;justify-content:space-between;align-items:end;padding:22px 60px 0;gap:15px}.lightbox-caption h2{font-size:28px;letter-spacing:-.04em}.lightbox-caption p{color:#d2d9e2;font-size:12px;margin-top:8px}#lightbox-count{font:12px var(--mono);white-space:nowrap}#video-modal{width:min(720px,94vw)}.video-modal-header{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}.video-modal-header h2{font-size:25px}.video-modal-header button{min-height:44px;padding:0 15px}#video-modal video{display:block;margin:auto;width:100%;max-height:70svh}#video-modal>p{font-size:12px;color:#d2d9e2;margin-top:15px}
/* The familiar ur. curtain, now in cobalt and yellow. */
html.booting,html.booting body{overflow:hidden}.brand-loader{position:fixed;inset:0;z-index:999;background:var(--blue);color:var(--cream);display:grid;place-items:center;--load-progress:.03;transition:opacity .45s,visibility .45s}.brand-loader.dismissed{opacity:0;visibility:hidden;pointer-events:none}.loader-caption,.loader-baseline{position:absolute;left:5%;right:5%;display:flex;justify-content:space-between;gap:25px;font:11px var(--mono);letter-spacing:.07em;color:var(--cream)}.loader-caption{top:35px}.loader-baseline{bottom:35px;align-items:center}.loader-baseline i{display:block;width:40%;height:2px;background:var(--yellow);transform:scaleX(var(--load-progress));transform-origin:left;transition:transform .4s}.loader-logos{position:relative;width:300px;height:200px}.loader-logo{position:absolute;inset:0;display:grid;place-content:center;grid-auto-flow:column;font-size:170px;line-height:1;letter-spacing:-.1em;font-weight:650;opacity:0;animation:boot-type-cycle 1.8s linear var(--delay) infinite}.loader-logo span{color:var(--yellow)}.logo-dot{font-family:URDot,monospace}.logo-galaxy{font-family:URGeometric,Arial,sans-serif}.logo-system{font-family:URSans,Arial,sans-serif;letter-spacing:-.11em}.logo-cinema{font-family:URCinema,Georgia,serif;font-style:italic}.brand-loader.dismissed .loader-logo{animation:none}@keyframes boot-type-cycle{0%,16%{opacity:1}16.67%,100%{opacity:0}}
/* Pointer and entrances stay light: no global smooth-scroll engine. */
.custom-cursor{position:fixed;left:0;top:0;width:0;height:0;z-index:1200;pointer-events:none;opacity:0;transition:opacity .15s}.custom-cursor.tracking{opacity:1}.custom-cursor:before{content:'';position:absolute;left:-15px;top:-15px;width:30px;height:30px;border:1px solid var(--blue);border-radius:50%;background:#f7f6ef30;transition:transform .25s,background .25s,border-color .25s}.custom-cursor i{position:absolute;left:-2px;top:-2px;width:4px;height:4px;border-radius:50%;background:var(--orange)}.custom-cursor>span{position:absolute;left:0;top:0;transform:translate(-50%,-50%);font:9px var(--mono);color:var(--paper);opacity:0}.custom-cursor.engaged:before{transform:scale(2);background:var(--blue);border-color:var(--paper)}.custom-cursor.engaged i{opacity:0}.custom-cursor.engaged>span{opacity:1}.custom-cursor.pressed:before{transform:scale(.8)}.custom-cursor.engaged.pressed:before{transform:scale(1.7)}@media(hover:hover) and (pointer:fine){.cursor-enabled,.cursor-enabled a,.cursor-enabled button,.cursor-enabled summary,.cursor-enabled input[type=range],.cursor-enabled .lens-swipe-surface{cursor:none}.cursor-enabled input:not([type=range]),.cursor-enabled textarea{cursor:auto}}
.js-motion .reveal{opacity:0;transform:translateY(28px);transition:opacity .65s ease,transform .8s cubic-bezier(.2,.7,.2,1)}.js-motion .reveal.visible{opacity:1;transform:none}.photo-card:nth-child(4n+2){transition-delay:.045s}.photo-card:nth-child(4n+3){transition-delay:.09s}.photo-card:nth-child(4n+4){transition-delay:.135s}
/* Tablets */
@media(min-width:1700px){.hero-title{left:max(5%,calc((100vw - 1540px)/2));width:45%}.hero-color-field{right:10%}.hero-person{margin-top:30px}}
@media(max-width:1050px){.header-note{display:none}nav{gap:22px}.hero-title h1{font-size:11.7vw}.hero-title{top:115px;width:57%}.hero-color-field{top:27%;right:4%;width:40vw;height:40vw}.photo-one{top:11%;width:22%}.photo-two{right:30%;bottom:17%;width:16%}.photo-three{width:20%;right:4%;bottom:12%}.photo-three img{height:160px}.hero-handnote{right:31%;top:12%;font-size:18px}.hero-role{font-size:20px}.hero-description{max-width:260px}.hero-actions{gap:16px}.hero-instagram{font-size:10px}.archive-intro p{display:none}.archive-total{font-size:105px}.photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.photo-card:first-child{grid-column:auto;grid-row:auto}.photo-card:first-child .photo-image{aspect-ratio:3/4;height:auto;min-height:0}.photo-card:first-child .photo-image img{position:static;object-fit:cover}.reel-card{grid-template-columns:280px 1fr;gap:7%;padding:40px 5%}.reel-note{font-size:40px}.reel-copy h3{font-size:24px}.about-layout{gap:8%;grid-template-columns:.85fr 1.15fr}.about-copy h2{font-size:6.5vw}.portrait-sticker{width:90px;height:90px;right:-23px;font-size:10px}.education-ledger{gap:12px}.education-entry{padding:18px}.education-entry h4{font-size:21px}.journey{gap:6%;grid-template-columns:.7fr 1.3fr}.project-number{min-width:55px}.personal-project-detail{margin-left:83px}.contact-layout{gap:8%}}
/* Phones: strong color and typography, real breathing room around controls. */
@media(max-width:700px){.header{height:75px;padding:17px 5%;gap:15px}.wordmark{font-size:41px}nav{gap:18px;font-size:12px}nav a:nth-child(3){display:none}nav .nav-contact{padding:8px 13px}.hero{height:calc(100svh + 350px);min-height:1240px}.hero-sticky{height:100svh;min-height:900px}.hero-top{top:18px;font-size:9px}.hero-top span:nth-child(2){display:none}.hero-top span:last-child{max-width:115px;text-align:right}.hero-title{left:6%;top:77px;width:88%}.hero-title>.eyebrow{font-size:10px;margin-bottom:15px}.hero-title h1{font-size:clamp(70px,16vw,114px);margin-bottom:22px;line-height:.87;letter-spacing:-.075em}.hero-title h1 br{display:none}.hero-title h1 em{display:block;font-size:1.03em}.hero-role{font-size:17px;line-height:1.3;max-width:235px;margin-bottom:12px}.hero-description{font-size:12px;max-width:220px}.hero-person{margin-top:15px;gap:9px;font-size:12px}.hero-person img{width:35px;height:35px}.hero-person small{font-size:9px}.hero-actions{margin-top:17px;gap:20px}.hero-actions .text-link{padding:9px 15px;font-size:11px;gap:15px}.hero-instagram{font-size:10px}.hero-color-field{width:58vw;height:58vw;top:57%;right:11%;max-width:330px;max-height:330px}.hero-sidenote{display:none}.photo-one{width:28%;right:5%;top:47%;padding:5px 5px 0}.photo-two{left:5%;right:auto;bottom:13%;width:22%;padding:5px 5px 0}.photo-three{right:5%;bottom:9%;width:24%;padding:5px 5px 0}.photo-three img{height:120px}.floating-photo figcaption{font-size:8px;padding:7px 2px}.floating-photo:before{height:18px;top:-7px}.hero-handnote{top:57%;right:auto;left:7%;font-size:17px;max-width:100px}.hero-bottom{bottom:20px;font-size:8px;gap:10px}.hero-bottom>span:first-child{max-width:95px}.hero-bottom>span:last-child{max-width:90px}.scroll-caption{padding:5px 9px;font-size:8px}.scroll-caption span{font-size:14px;margin-left:5px}.camera-fallback{left:20%;top:59%;width:70%;height:32%}.work{padding-top:55px;padding-bottom:55px}.section-heading{gap:20px;margin-bottom:30px}.section-heading h2{font-size:clamp(44px,11vw,69px)}.eyebrow{font-size:10px;margin-bottom:18px}.archive-total{font-size:78px}.archive-intro{align-self:center}.archive-bar{flex-direction:column;align-items:start;gap:10px;padding:12px 0}.filters{gap:4px;flex-wrap:wrap}.filters button{font-size:11px;padding:7px 11px}.archive-bar>.meta{font-size:9px}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:23px 12px;margin-top:23px}.photo-card:first-child{grid-column:span 2;grid-row:auto}.photo-card:first-child .photo-image{aspect-ratio:1.3}.photo-card:first-child .photo-image img{object-fit:contain;position:absolute;height:100%}.photo-caption{padding-top:10px}.photo-caption h3{font-size:14px}.photo-caption p{font-size:9px;letter-spacing:0}.frame-number{font-size:22px}.open-photo{width:27px;height:27px;font-size:18px;bottom:9px;right:9px;transform:none}.photo-grid[data-filtered=true] .photo-card:first-child{grid-column:auto}.photo-grid[data-filtered=true] .photo-card:first-child .photo-image img{position:static;object-fit:cover}.camera-kit{height:calc(100svh + 650px);min-height:1440px}.kit-sticky{min-height:970px}.kit-watermark{font-size:28vw;top:70px;line-height:.85}.kit-camera-space{top:35px;left:10%;width:80%;height:235px}.kit-copy{top:362px;left:6%;right:6%}.kit-copy .eyebrow{font-size:9px;margin-bottom:18px}.kit-copy h2{font-size:clamp(35px,9.3vw,55px);margin-bottom:22px}.kit-copy>p:not(.eyebrow){font-size:13px}.kit-copy .text-link{font-size:12px;margin-top:13px}.lens-swipe-surface{height:290px}.lens-selector{top:292px;gap:10px;padding:6px 8px}.lens-selector span{font-size:9px;gap:8px}.lens-selector button{width:35px;height:35px}.parked-lens-label{top:240px;left:64%;width:33%;font-size:8px}.lens-photo,.lens-photo:nth-child(2),.lens-photo:nth-child(3),.lens-photo:nth-child(4){width:14%;padding:4px;left:2%;right:auto;top:30px}.lens-photo:nth-child(2){top:160px}.lens-photo:nth-child(3){left:auto;right:2%}.lens-photo:nth-child(4){left:auto;right:2%;top:160px}.lens-photo img{height:70px;object-fit:contain}.lens-photo span{display:none}.kit-equipment{left:6%;right:6%;bottom:95px;gap:20px;padding-top:20px}.kit-equipment article{width:50%;min-width:0}.kit-equipment .meta{font-size:9px}.kit-equipment h3{font-size:21px;line-height:1.15;margin:10px 0}.kit-equipment p{font-size:11px;line-height:1.55}.kit-bottom{bottom:30px;gap:15px}.kit-bottom .meta{font-size:8px;max-width:46%}.kit-scroll{text-align:right}.reels{padding:55px 0}.reels .section-heading{display:block}.reels .section-heading h2{font-size:54px}.reels .text-link{font-size:12px;margin-top:18px}.reel-card{grid-template-columns:1fr;gap:25px;padding:35px 8% 35px;margin-right:6px;box-shadow:6px 6px 0 var(--ink)}#play-reel{max-width:270px;margin:auto}#play-reel img{max-height:365px}.reel-sheet-label{font-size:8px;right:10px}.reel-play{width:110px;height:110px;font-size:11px}.reel-note{font-size:38px;margin-bottom:24px}.reel-copy h3{font-size:25px;margin:18px 0 12px}.reel-copy>p:last-child{font-size:13px}.grade{padding:0 0 55px}.grade .section-heading{display:block}.grade .section-heading>p{margin-top:18px;font-size:13px}.grade-sheet{padding:13px}.grade-side-label{font-size:8px;margin-bottom:13px}.compare{aspect-ratio:1.15}.compare-label{bottom:12px;padding:6px 8px;font-size:9px}.before{left:12px}.after{right:12px}.compare-line span{width:42px;height:42px;font-size:18px}.compare-footer{font-size:8px;gap:15px}.about{padding-top:55px;padding-bottom:55px}.about-layout{grid-template-columns:1fr;gap:45px}.portrait-column{width:72%;max-width:315px;margin-inline:auto}.portrait-sticker{right:-26px;top:23px;width:90px;height:90px}.portrait-caption{font-size:8px;padding:10px 3px}.about-copy h2{font-size:clamp(46px,10vw,67px)}.about-copy>p:not(.eyebrow){font-size:15px;max-width:540px}.personal-facts>div{font-size:11px;grid-template-columns:105px 1fr}.about-signature{font-size:40px;margin:24px 4% 0}.journey{margin-top:40px;padding-top:30px;grid-template-columns:1fr;gap:28px}.journey-heading{position:static}.journey-heading h3{font-size:44px}.journey-heading>p{font-size:13px}.education-ledger{gap:12px}.education-entry{padding:17px}.education-entry h4{font-size:20px;margin-top:20px}.education-entry p{font-size:11px}.education-meta{font-size:8px}.education-stage{font-size:21px}.practice-ledger{margin-top:30px}.practice-entry small{font-size:9px}.practice-entry strong{font-size:18px}.practice-body p{font-size:13px}.practice-tags{font-size:9px}.interlude{padding:20px 0;font-size:35px}.marquee-group{gap:20px;padding-right:20px}.projects{padding:55px 0 35px}.projects .section-heading{display:block}.projects .section-heading h2{font-size:48px}.projects .section-heading>p{margin-top:20px;font-size:13px}.project{padding:23px 5px}.project summary{gap:15px}.project-number{font-size:35px;min-width:38px}.project summary .meta{font-size:8px}.project summary h3{font-size:31px;margin:10px 0}.project-intro{font-size:12px}.project-action{font-size:0;width:32px;height:32px;padding:0;display:grid;place-items:center;margin-top:6px}.project-action:before{content:'+';font-size:20px}.project[open] .project-action:before{content:'−'}.personal-project-detail{margin-left:53px;padding-top:5px}.personal-project-detail dl>div{grid-template-columns:1fr;gap:6px;font-size:12px}.personal-project-detail .text-link{font-size:12px}.exploring{padding:15px 0 45px}.exploring-header{display:block;margin-bottom:25px}.exploring-header .eyebrow{margin-bottom:15px}.exploring-header h2{font-size:37px}.interest-grid{grid-template-columns:1fr;gap:5px}.interest-grid article{padding:17px 0}.interest-grid h3{font-size:26px;margin:12px 0 10px}.interest-grid p{font-size:13px}.personal-contact{padding:55px 0}.contact-layout{grid-template-columns:1fr;gap:38px}.personal-contact h2{font-size:95px;margin:23px 0}.contact-links{gap:12px}.contact-links a{font-size:14px}.message-pair{grid-template-columns:1fr 1fr;gap:20px}.personal-contact p{font-size:14px}.personal-contact .message-note{font-size:11px}footer.wrap{padding:25px 5%;gap:22px;font-size:9px}.footer-type{font-size:11.7vw;white-space:nowrap;padding-bottom:25px}footer>span:nth-of-type(3){display:none}footer .wordmark{font-size:36px}dialog{padding:15px}.lightbox-photo{gap:5px}.lightbox-photo img{width:calc(100% - 98px);height:60svh}.lightbox-caption{padding:20px 0 0}.lightbox-caption h2{font-size:23px}.lightbox-caption p{font-size:11px}.loader-caption,.loader-baseline{font-size:9px}.loader-caption span{max-width:130px;text-align:right}.loader-logo{font-size:145px}.custom-cursor{display:none}}
@media(max-width:380px){nav{gap:12px;font-size:11px}nav .nav-contact{padding:7px 10px}.hero-title h1{font-size:20vw}.hero-title{top:76px}.hero-role{font-size:16px}.hero-description{font-size:12px}.hero-person{margin-top:12px}.hero-actions{gap:13px}.hero-person small{font-size:9px}.hero-handnote{display:none}.archive-total{font-size:60px}.section-heading h2{font-size:11vw}.filters button{padding:7px 8px;font-size:10px}.photo-caption h3{font-size:13px}.education-ledger{grid-template-columns:1fr}.education-meta{flex-direction:row;align-items:center;justify-content:space-between}.education-entry h4{margin-top:14px}.message-pair{grid-template-columns:1fr}.project-number{min-width:28px;font-size:30px}.personal-project-detail{margin-left:43px}.kit-copy h2{font-size:34px}.kit-equipment h3{font-size:19px}}

@media(max-width:700px){.hero-actions .hero-instagram{display:none}.hero-actions{max-width:200px}.hero-role,.hero-description{max-width:61%}.hero-sticky .hero-person{position:relative;z-index:8}}

/* Pinned review: names, bound photobook, larger lens prints, personal sign-off. */
.hero-title h1{color:#000}.hero-title h1 em{color:var(--orange)}
.photobook{margin-top:30px;background:#eae5d7;border:1px solid #192c4220;border-radius:3px 9px 9px 3px;padding:22px 28px 18px;box-shadow:0 2px 0 #d8d2c5,0 5px 0 #f7f6ef,0 7px 0 #d8d2c5,0 20px 40px #192c4215}
.book-running-head{display:flex;justify-content:space-between;gap:20px;padding:0 8px 18px;font:11px/1.5 var(--mono);letter-spacing:.05em;color:#58605e}
#photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0;min-height:0;background:linear-gradient(90deg,#f9f7ef 0%,#f9f7ef 47%,#e8e3d6 49.4%,#d2ccbd 50%,#eeeadf 50.8%,#fffdf6 54%,#fffdf6 100%);border:1px solid #192c4212;border-radius:2px;box-shadow:0 5px 12px #192c4212;touch-action:pan-y}
#photo-grid .photo-card,#photo-grid[data-filtered=true] .photo-card:first-child{display:flex;grid-column:auto;grid-row:auto;min-width:0;padding:34px 38px 24px;position:relative;opacity:1;transform:none;background:none}
#photo-grid .photo-card.book-right{padding-left:42px}
#photo-grid .photo-button{flex:none;min-height:0}
#photo-grid .photo-image,#photo-grid .photo-card:first-child .photo-image,#photo-grid[data-filtered=true] .photo-card:first-child .photo-image{height:clamp(330px,34vw,480px);min-height:0;aspect-ratio:auto;background:transparent;overflow:hidden}
#photo-grid .photo-image img,#photo-grid .photo-card:first-child .photo-image img,#photo-grid[data-filtered=true] .photo-card:first-child .photo-image img{position:static;width:100%;height:100%;object-fit:contain;background:none;filter:drop-shadow(0 3px 5px #192c421c);transform:none}
#photo-grid .photo-button:hover img{transform:scale(1.025)}
#photo-grid .photo-caption{border-top:1px solid #192c4225;margin-top:24px;padding-top:14px;align-items:center}
#photo-grid .photo-caption h3{font-family:Georgia,serif;font-weight:400;font-size:24px;letter-spacing:-.035em;line-height:1.15}
#photo-grid .photo-caption p{font-size:11px;margin-top:6px}#photo-grid .frame-number{color:var(--orange);font-size:30px}
#photo-grid .open-photo{right:8px;bottom:8px;transform:none;background:var(--ink);color:white;width:36px;height:36px}
#photo-grid.book-single .photo-card{grid-column:1 / -1;width:65%;justify-self:center;background:#fffdf6}
#photo-grid.book-single{background:#fffdf6}
.book-navigation{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:23px 8px 2px}
.book-hint{font:italic 20px/1.35 Georgia,serif;color:var(--ink)}.book-hint small{display:block;font:12px/1.5 URSans,Arial,sans-serif;color:var(--muted);margin-top:6px}
.book-controls{display:flex;align-items:center;gap:20px;flex:none}.book-controls button{min-height:44px;padding:9px 17px;border:1px solid #192c4235;border-radius:25px;font-size:13px;background:var(--paper)}.book-controls button:hover:not(:disabled){background:var(--ink);color:white}.book-controls button:disabled{opacity:.32;cursor:default}.book-controls span{font:12px var(--mono);min-width:65px;text-align:center}
.book-turn .photo-card:not([hidden]){animation:book-arrive .38s cubic-bezier(.2,.7,.2,1) both}@keyframes book-arrive{from{opacity:.25;transform:translateY(8px)}to{opacity:1;transform:none}}
.lens-photo{width:15%;max-width:205px;padding:8px;left:3%;top:15px}.lens-photo img{height:135px;object-fit:contain;background:#ece8dd}.lens-photo:nth-child(2),.lens-photo:nth-child(4){top:205px}.lens-photo span{font-size:11px;padding-top:8px}.lens-photo:nth-child(3),.lens-photo:nth-child(4){right:3%}
.about-copy h2{font-size:clamp(38px,4.25vw,64px);line-height:1.1;letter-spacing:-.055em}.about-copy h2 em{display:inline-block;margin-top:7px}
.footer-type{font:italic 400 clamp(70px,13vw,195px)/1 Georgia,serif;letter-spacing:-.075em;color:var(--paper);padding:12px 0 32px}.footer-type span{color:var(--yellow)}
@media(max-width:1050px){.photobook{padding:18px 18px 16px}#photo-grid .photo-card{padding:26px 23px 20px}#photo-grid .photo-card.book-right{padding-left:27px}#photo-grid .photo-caption h3{font-size:21px}.lens-photo{width:16%;max-width:170px}.lens-photo img{height:115px}.lens-photo:nth-child(2),.lens-photo:nth-child(4){top:190px}}
@media(max-width:700px){.photobook{margin-top:22px;padding:14px 10px 16px;box-shadow:0 2px 0 #d8d2c5,0 5px 0 #f7f6ef,0 7px 0 #d8d2c5,0 12px 20px #192c4210}.book-running-head{padding:0 6px 12px;font-size:9px}.book-running-head span:last-child{display:none}#photo-grid{grid-template-columns:1fr}#photo-grid .photo-card,#photo-grid .photo-card.book-right,#photo-grid.book-single .photo-card,#photo-grid[data-filtered=true] .photo-card:first-child{width:100%;padding:20px 19px 18px;grid-column:auto;background:linear-gradient(90deg,#e5dfcf,#fffdf6 5%,#fffdf6)}#photo-grid .photo-image,#photo-grid .photo-card:first-child .photo-image,#photo-grid[data-filtered=true] .photo-card:first-child .photo-image{height:clamp(300px,105vw,460px)}#photo-grid .photo-caption{margin-top:17px;padding-top:12px}#photo-grid .photo-caption h3{font-size:22px}#photo-grid .photo-caption p{font-size:10px}#photo-grid .frame-number{font-size:27px}.book-navigation{flex-direction:column;gap:17px;padding:18px 0 0}.book-hint{font-size:18px;text-align:center}.book-hint small{font-size:11px}.book-controls{width:100%;justify-content:space-between;gap:8px}.book-controls button{font-size:12px;padding:9px 17px}.book-controls span{font-size:11px}.lens-photo,.lens-photo:nth-child(2),.lens-photo:nth-child(3),.lens-photo:nth-child(4){width:20%;max-width:125px;padding:5px;left:1.5%;right:auto;top:20px}.lens-photo:nth-child(3),.lens-photo:nth-child(4){left:auto;right:1.5%}.lens-photo:nth-child(2),.lens-photo:nth-child(4){top:162px}.lens-photo img{height:92px}.lens-photo span{display:none}.about-copy h2{font-size:clamp(32px,7.7vw,48px)}.footer-type{font-size:17vw;white-space:nowrap;letter-spacing:-.075em}}
@media(prefers-reduced-motion:reduce){.book-turn .photo-card:not([hidden]){animation:none}}

/* Reference-inspired constellation: flat photo planes on a tilted oval. */
#work{background:#090908;color:#f7f6ef;border-color:#090908;padding-top:55px;padding-bottom:32px;--muted:#aaa9a2;--line:#f7f6ef2c;--blue:#f7f6ef}
#work .section-heading{margin-bottom:25px;align-items:center}#work .section-heading h2{font-size:clamp(44px,5vw,76px)}#work .eyebrow{font-size:11px;color:#aaa9a2;margin-bottom:16px}#work .section-heading h2 em{color:var(--orange)}#work .archive-total{font-size:76px;-webkit-text-stroke:1px #f7f6ef66}#work .archive-intro p{font-size:12px}#work .archive-bar{border-bottom:0;padding:14px 0 0}#work .filters button{font-size:12px;color:#aaa9a2;padding:8px 14px;border-radius:0}#work .filters .active{background:transparent;color:white;border-color:#f7f6ef}#work .filters button:hover{color:white;border-color:#f7f6ef55}#work .archive-bar>.meta{font-size:10px}
.constellation{position:relative;margin:0 -3%;isolation:isolate;--orbit-height:clamp(480px,43vw,650px)}
#work #photo-grid{position:relative;display:block;grid-template-columns:none;gap:0;margin:0;width:100%;height:var(--orbit-height);min-height:0;background:none;border:0;border-radius:0;box-shadow:none;overflow:hidden;touch-action:pan-y;cursor:grab;contain:layout paint}
#work #photo-grid.dragging{cursor:grabbing}#work #photo-grid .photo-card,#work #photo-grid .photo-card:first-child,#work #photo-grid[data-filtered=true] .photo-card:first-child{display:block;position:absolute;left:50%;top:50%;width:clamp(105px,14.5vw,210px);height:clamp(74px,9.8vw,145px);padding:0;margin:0;background:#151514;opacity:1;border:0;grid-column:auto;grid-row:auto;box-shadow:none;transform-origin:center;transition:none}
#work .orbit-live .photo-card{will-change:transform}#work #photo-grid .photo-button{width:100%;height:100%;display:block;padding:0;min-height:0;cursor:inherit}
#work #photo-grid .photo-image,#work #photo-grid .photo-card:first-child .photo-image,#work #photo-grid[data-filtered=true] .photo-card:first-child .photo-image{width:100%;height:100%;min-height:0;aspect-ratio:auto;background:#151514;overflow:hidden}
#work #photo-grid .photo-image img,#work #photo-grid .photo-card:first-child .photo-image img,#work #photo-grid[data-filtered=true] .photo-card:first-child .photo-image img{position:static;display:block;width:100%;height:100%;object-fit:cover;filter:none;background:none;transform:none;opacity:var(--orbit-image-opacity,0);transition:opacity .2s}
#work #photo-grid .image-ready{--orbit-image-opacity:1}#work #photo-grid .photo-button:hover img{transform:none}#work #photo-grid .photo-button:hover,#work #photo-grid .photo-button:focus-visible{outline:2px solid #fff;outline-offset:3px}#work #photo-grid .photo-caption,#work #photo-grid .open-photo{display:none}
.orbit-center{position:absolute;left:50%;top:calc(var(--orbit-height)/2);transform:translate(-50%,-50%);z-index:5;font:550 38px/.9 URSans,Arial,sans-serif;letter-spacing:-.09em;pointer-events:none;color:#f7f6ef}.orbit-center span{color:var(--orange)}
.orbit-footer{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:0 3% 12px}.orbit-footer>p{font:10px/1.8 var(--mono);color:#f7f6ef}.orbit-footer>p span{display:block;color:#aaa9a2;font-size:9px}.orbit-navigation{display:flex;align-items:center;gap:16px}.orbit-navigation button{font-size:12px;min-height:44px;padding:9px 12px;border:1px solid #f7f6ef38;color:white;border-radius:25px}.orbit-navigation button:hover{background:#f7f6ef;color:#090908}.orbit-navigation button:disabled{opacity:.35;cursor:default}.orbit-navigation>span{font:10px/1.5 var(--mono);width:230px;text-align:center;color:#aaa9a2}
@media(max-width:700px){#work{padding-top:40px;padding-bottom:20px}#work .section-heading h2{font-size:11vw}#work .archive-total{font-size:57px}#work .archive-bar{gap:7px}#work .filters button{font-size:11px;padding:7px 10px}#work .eyebrow{font-size:9px}#work .archive-bar>.meta{font-size:9px}.constellation{--orbit-height:480px;margin:0 -4%}#work #photo-grid .photo-card,#work #photo-grid .photo-card:first-child,#work #photo-grid[data-filtered=true] .photo-card:first-child{width:clamp(94px,24vw,132px);height:clamp(67px,17vw,94px)}.orbit-center{font-size:29px}.orbit-footer{padding-inline:4%;flex-direction:column;gap:12px}.orbit-footer>p{text-align:center;font-size:10px}.orbit-footer>p span{display:inline;margin-left:12px;font-size:9px}.orbit-navigation{width:100%;gap:8px;justify-content:space-between}.orbit-navigation>span{width:auto;flex:1;font-size:9px}.orbit-navigation button{font-size:11px;padding:8px 12px}}
@media(prefers-reduced-motion:reduce){#work #photo-grid .photo-image img{transition:none}}

/* Hover colour, fewer orbit frames, and the complete hinged photo album. */
#work #photo-grid .photo-image img,#work #photo-grid .photo-card:first-child .photo-image img{filter:grayscale(1);transition:filter .25s,opacity .2s}
#work #photo-grid .photo-button:focus-visible .photo-image img{filter:grayscale(0)}
@media(hover:hover){#work #photo-grid .photo-button:hover .photo-image img{filter:grayscale(0)}}
#work .orbit-center{pointer-events:auto;z-index:100;width:132px;min-height:80px;padding:12px 6px;border:0;background:transparent;cursor:pointer;color:#f7f6ef}
#work .orbit-center small{display:block;font:9px/1.5 var(--mono);letter-spacing:.12em;margin-top:12px;color:#aaa9a2;white-space:nowrap}
#work .orbit-center:hover small{color:white}#work .orbit-center:focus-visible{outline:2px solid var(--orange);outline-offset:4px}
#photo-book{position:fixed;inset:0;width:min(1120px,calc(100vw - 32px));height:auto;max-height:calc(100dvh - 24px);margin:auto;padding:22px 26px 15px;border:0;border-radius:8px;background:#dcd6c6;color:#192c42;overflow:auto;box-shadow:0 20px 100px #0008}
#photo-book::backdrop{background:#090908d9;backdrop-filter:none}.album-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.album-header .meta{font-size:10px;color:#53605b}.album-header h2{font-size:35px;line-height:1.05;margin-top:5px}.album-header button,.album-navigation button{min-height:44px;padding:10px 17px;border:1px solid #192c4240;border-radius:25px;font-size:13px;color:#192c42;background:#f9f7ef}.album-header button:hover,.album-navigation button:hover{background:#192c42;color:white}.album-navigation button:disabled{opacity:.35;cursor:default}
.album-stage{position:relative;height:min(63dvh,600px);min-height:300px;perspective:1800px;isolation:isolate;touch-action:pan-y}.album-spread{height:100%;display:grid;grid-template-columns:1fr 1fr;box-shadow:0 2px 0 #c2bbab,0 5px 0 #eee9dc,0 7px 0 #bfb7a6,0 14px 28px #192c4220}.album-page{height:100%;min-width:0;position:relative;display:grid;grid-template-rows:repeat(2,minmax(0,1fr));gap:18px;padding:22px 27px 25px;background:#faf7ee;overflow:hidden}.album-page:nth-child(2){background:linear-gradient(90deg,#ded7c7,#faf7ee 5%)}.album-page:first-child{background:linear-gradient(90deg,#faf7ee 94%,#ddd6c6)}.album-page figure{min-height:0;display:flex;flex-direction:column;align-items:center;gap:7px;margin:0}.album-photo{display:block;width:100%;flex:1;min-height:0;padding:0;background:transparent;border:0}.album-photo img{height:100%;width:100%;object-fit:contain;max-height:100%;filter:none}.album-page figcaption{font:10px/1.3 var(--mono);color:#4f5958;text-align:center;flex:none}.album-folio{position:absolute;bottom:7px;left:50%;font:9px var(--mono);color:#69726e}.album-page-single{grid-template-rows:1fr}.album-turn-sheet{position:absolute;top:0;left:50%;width:50%;height:100%;transform-style:preserve-3d;transform-origin:left center;z-index:5;pointer-events:none;will-change:transform}.album-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden}.album-face-back{transform:rotateY(180deg)}.album-face .album-page{box-shadow:inset 0 0 22px #192c4210}.album-turn-sheet.turn-next{animation:album-next .6s cubic-bezier(.45,.05,.25,1) forwards}.album-turn-sheet.turn-prev{left:0;transform-origin:right center;animation:album-prev .6s cubic-bezier(.45,.05,.25,1) forwards}@keyframes album-next{from{transform:rotateY(0deg)}to{transform:rotateY(-180deg)}}@keyframes album-prev{from{transform:rotateY(0deg)}to{transform:rotateY(180deg)}}.album-navigation{display:flex;justify-content:center;gap:30px;align-items:center;margin-top:20px}.album-navigation span{font:12px var(--mono);color:#4f5958}.album-help{text-align:center;font-size:11px;color:#53605b;margin-top:12px}
.contact-links .social-links{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px}.contact-links .social-links a{display:flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:10px 13px;border:1px solid #f7f6ef60;border-radius:9px;color:#f7f6ef;font-size:12px}.social-links svg{width:22px;height:22px;flex:none}.contact-links .social-links a:hover{background:#f8d754;color:#192c42;border-color:#f8d754}
.footer-quote{width:100%;margin:0;padding:12px 0 28px;border-bottom:1px solid #ffffff40;text-align:center}.footer-quote p{font:italic 400 clamp(23px,3vw,39px)/1.3 Georgia,serif;letter-spacing:-.03em;color:var(--paper);margin:0}.footer-quote cite{display:block;font:11px/1.5 var(--mono);font-style:normal;color:var(--yellow);margin-top:12px}
@media(max-width:700px){#work .orbit-center{width:108px;min-height:72px}#work .orbit-center small{font-size:8px}#photo-book{width:calc(100vw - 16px);padding:16px 13px 12px;max-height:calc(100dvh - 16px)}.album-header{margin-bottom:13px}.album-header h2{font-size:29px}.album-header .meta{font-size:8px}.album-header button,.album-navigation button{font-size:12px;padding:9px 14px}.album-stage{height:min(61dvh,600px);min-height:260px;overflow:hidden}.album-spread{grid-template-columns:1fr}.album-page{padding:17px 16px 23px;gap:16px}.album-page figcaption{font-size:9px}.album-turn-sheet{width:100%;left:0}.album-navigation{gap:18px;margin-top:16px}.album-navigation span{font-size:11px}.album-help{font-size:10px}.contact-links .social-links{gap:8px}.contact-links .social-links a{font-size:11px;padding:10px}.footer-quote{padding-bottom:25px}.footer-quote p{font-size:26px}}
@media(prefers-reduced-motion:reduce){.album-turn-sheet{animation:none!important}#work #photo-grid .photo-image img{transition:none}}
@media(hover:hover){#work #photo-grid:has(.photo-button:hover) .photo-button:focus-visible:not(:hover) .photo-image img{filter:grayscale(1)}}

/* Explicit always-on motion and enlarged inspection; the rest of the ring keeps turning. */
#work #photo-grid .photo-button{transform:scale(1);transform-origin:center;transition:transform .24s cubic-bezier(.2,.7,.2,1)}
#work #photo-grid .photo-card.is-hovered .photo-button{transform:scale(1.65);outline:2px solid #f7f6ef;outline-offset:3px}
#work #photo-grid .photo-card.is-hovered .photo-image img{filter:grayscale(0)}
#photo-book{width:min(1540px,calc(100vw - 24px));max-height:calc(100dvh - 16px);padding:14px 18px 10px}
#photo-book .album-header{margin-bottom:12px}#photo-book .album-header h2{font-size:28px}#photo-book .album-header .meta{font-size:9px}
#photo-book .album-stage{height:calc(100dvh - 184px);min-height:290px;max-height:820px;overflow:visible;cursor:grab}
#photo-book .album-stage.album-dragging{cursor:grabbing}#photo-book .album-photo{cursor:inherit}
#photo-book .album-page{padding:12px 15px 23px;gap:12px}
#photo-book .album-page-portraits{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:minmax(0,1fr)}
#photo-book .album-page figure{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:8px;width:100%;height:100%}
#photo-book .album-photo{height:100%;width:100%}#photo-book .album-photo img{height:100%;width:100%;object-fit:contain}
#photo-book .album-turn-sheet{animation:none!important;transition:none;z-index:8}
#photo-book .album-navigation{margin-top:12px;gap:25px}#photo-book .album-help{margin-top:7px}
.album-edge{position:absolute;bottom:6px;z-index:10;width:45px;height:50px;min-height:44px;border:0;background:#192c42;color:#faf7ee;font:32px/1 Georgia,serif;cursor:pointer;box-shadow:0 2px 8px #0003}
.album-edge-prev{left:0;border-radius:0 12px 0 0}.album-edge-next{right:0;border-radius:12px 0 0 0}.album-edge:disabled{visibility:hidden}.album-edge:hover{background:var(--orange)}
.footer-quote .quote-orange{color:var(--orange)}
@media(max-width:700px){#photo-book{width:calc(100vw - 12px);padding:12px 10px 9px}#photo-book .album-stage{height:calc(100dvh - 162px);min-height:260px;overflow:hidden}#photo-book .album-page{padding:10px 12px 24px;gap:9px}#photo-book .album-page-portraits{grid-template-columns:1fr;grid-template-rows:repeat(2,minmax(0,1fr))}#photo-book .album-header h2{font-size:25px}.album-edge{width:40px;height:44px}#work #photo-grid .photo-card.is-hovered .photo-button{transform:scale(1.2)}}

/* Photo journal: the same kit, a change in perspective. */
.lens-story{max-width:580px;margin:0 auto;transition:opacity .45s,transform .6s}.lens-story h3{font:italic 28px/1.2 Georgia,serif;letter-spacing:-.03em;color:var(--yellow);margin-bottom:7px}.lens-story p{font-size:14px;line-height:1.5}.changing-lens .lens-story{opacity:.2;transform:translateY(9px)}.kit-copy h2{font-size:clamp(50px,5.5vw,80px)}
/* Author-written stories remain absent until there is something to read. */
.photo-story{max-width:900px;margin:20px auto 0;border-top:1px solid #ffffff30;padding-top:14px}.story-actions{display:flex;gap:24px;justify-content:space-between;flex-wrap:wrap}.story-actions button{padding:8px 0;min-height:44px;font-size:13px;text-decoration:underline;text-underline-offset:5px}.story-actions [data-story-edit]{font:11px var(--mono);color:#bbb}.story-prose{white-space:pre-wrap;font:19px/1.65 Georgia,serif;margin:15px 0 20px;overflow-wrap:anywhere}.story-details{display:flex;gap:20px 35px;flex-wrap:wrap;margin:0 0 20px}.story-details dt{font:10px var(--mono);color:#aaa}.story-details dd{margin:5px 0 0;font-size:13px;overflow-wrap:anywhere;max-width:400px}.story-editor-launch{color:#bbb;font:10px var(--mono);padding:12px 0;text-decoration:underline;text-underline-offset:5px;white-space:nowrap}.orbit-footer{flex-wrap:wrap}.orbit-footer .story-editor-launch{margin-left:auto}
#photo-story-editor{position:fixed;inset:0;width:min(850px,calc(100vw - 24px));max-height:calc(100dvh - 24px);margin:auto;padding:30px;border:0;background:var(--paper);color:var(--ink);overflow:auto;border-radius:5px}#photo-story-editor::backdrop{background:#090908d9}.story-editor-header{display:flex;justify-content:space-between;align-items:center;gap:16px}.story-editor-header h2{font:italic 36px/1.2 Georgia,serif;letter-spacing:-.035em;margin-top:5px}.story-editor-header .meta{font-size:10px}.story-editor-header button{padding:10px;min-height:44px}.story-editor-note{font-size:12px;color:var(--muted);margin:18px 0 25px;max-width:630px}.story-editor-layout{display:grid;grid-template-columns:210px 1fr;gap:28px}.story-preview{width:100%;height:210px;object-fit:contain;background:#e5e0d4;margin-bottom:20px}.story-editor-layout label{display:block;font-size:12px;font-weight:600;margin-bottom:16px}.story-editor-layout small{font-weight:400;color:var(--muted)}.story-editor-layout input,.story-editor-layout textarea,.story-editor-layout select{display:block;margin-top:6px;width:100%;padding:10px;background:#fffef9;color:var(--ink);border:1px solid #192c4240;border-radius:2px;font:14px/1.5 URSans,Arial,sans-serif}.story-editor-layout textarea{resize:vertical}.story-field-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.story-fields [role=status]{font-size:11px;color:var(--muted)}.story-editor-footer{display:flex;justify-content:space-between;gap:20px;margin-top:24px;padding-top:18px;border-top:1px solid #192c4240;font-size:12px}.story-editor-footer button{background:var(--blue);color:white;border-radius:30px;padding:12px 20px}.story-import{position:relative;display:flex;align-items:center;padding:10px;cursor:pointer;text-decoration:underline}.story-import input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}.story-import:focus-within{outline:3px solid var(--orange)}
/* A real opening moment, before the first spread. */
.album-cover{position:absolute;inset:0 auto 0 50%;width:50%;height:100%;transform:translateX(-50%);transform-origin:left center;z-index:15;display:flex;flex-direction:column;text-align:left;padding:clamp(20px,3vw,48px);background:linear-gradient(90deg,#111f37,#213853 4%,#192c42 7%);color:var(--paper);border-radius:2px 8px 8px 2px;box-shadow:inset 9px 0 12px #0003,3px 3px 0 #ded7c7,6px 6px 0 #a59c87,12px 18px 28px #0003;backface-visibility:hidden;-webkit-backface-visibility:hidden;cursor:pointer;overflow:hidden}.album-cover[hidden]{display:none}.cover-edition{font:9px/1.4 var(--mono);letter-spacing:.12em;color:#d8cda9}.cover-title{font:500 clamp(35px,5vw,76px)/.92 URSans,Arial,sans-serif;letter-spacing:-.055em;margin:20px 0}.cover-title em{color:var(--orange)}.album-cover img{min-height:0;flex:1;width:100%;object-fit:cover;object-position:50% 48%;filter:saturate(.75);border:6px solid #f4eece}.cover-author{display:flex;justify-content:space-between;gap:12px;font:10px/1.5 var(--mono);letter-spacing:.1em;margin-top:18px}.cover-author span{color:#d8cda9}.cover-open{font:9px/1.5 var(--mono);letter-spacing:.12em;color:#d8cda9;margin-top:12px}.album-covered:not(.album-opening) .album-spread{visibility:hidden}.album-covered .album-edge{visibility:hidden}.album-opening .album-spread{animation:spread-unveil .8s ease both}@keyframes spread-unveil{from{opacity:.15}to{opacity:1}}.album-covered .album-help{visibility:hidden}
/* My desk is an arrangement of personal objects, each with a readable detail. */
.desk-heading{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:48px}.desk-heading h2{font-size:clamp(70px,10vw,140px);line-height:.9}.desk-heading .eyebrow{font-size:10px;margin-bottom:24px}.desk-heading>p{font-size:14px;line-height:1.7;padding-bottom:7px}.desk-section .desk-layout{display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:7%;}.desk-objects{position:relative;min-height:550px;isolation:isolate}.desk-object{position:absolute;display:flex;flex-direction:column;text-align:left;border:0;border-radius:0;background:#f4eece;box-shadow:5px 8px 18px #192c4230;transition:transform .3s,box-shadow .3s;min-height:44px;color:var(--ink);cursor:pointer}.desk-object[aria-selected=true]{z-index:4;box-shadow:0 0 0 3px var(--ink),8px 12px 24px #192c4235}.desk-object:hover{z-index:5;transform:translateY(-10px) rotate(0)}.desk-object-label{display:block;font:9px/1.5 var(--mono);letter-spacing:.025em;margin-top:auto;padding-top:15px}.desk-object-top{font:8px/1.5 var(--mono);letter-spacing:.1em}.desk-section .desk-portrait{width:42%;max-width:none;left:3%;top:10px;margin:0;padding:10px 10px 14px;transform:rotate(-7deg)}.desk-section .desk-portrait:hover{transform:translateY(-10px) rotate(-2deg)}.desk-section .portrait-slot{display:block;width:100%;height:auto;aspect-ratio:2/3;padding:0;transform:none;box-shadow:none;border:0;overflow:hidden}.desk-section .portrait-slot img{width:100%;height:100%;object-fit:cover;filter:none}.desk-camera{width:46%;right:2%;top:55px;min-height:225px;padding:18px;transform:rotate(7deg);background:#dcdccc}.desk-camera img{width:100%;height:155px;object-fit:contain;mix-blend-mode:multiply}.desk-school{width:43%;left:6%;top:345px;min-height:185px;padding:20px;transform:rotate(-5deg);background:#f8d754}.desk-school strong{font:500 clamp(26px,3vw,42px)/1 URSans,Arial,sans-serif;letter-spacing:-.055em;margin:15px 0}.desk-note-rule{display:block;height:1px;background:#192c4250;margin:0 0 6px}.desk-build{width:42%;right:2%;top:310px;min-height:195px;padding:20px;transform:rotate(5deg);background:#234cdb;color:white}.desk-build strong{font:500 clamp(25px,3vw,40px)/1.05 URSans,Arial,sans-serif;letter-spacing:-.06em;margin:22px 0}.desk-scribble{position:absolute;right:8%;bottom:-20px;font:italic 20px Georgia,serif;transform:rotate(-5deg)}.desk-reading{padding:26px 0;min-height:440px;border-top:1px solid #192c4260;border-bottom:1px solid #192c4260}.desk-reading [hidden]{display:none}.desk-reading article>h3{font-size:clamp(34px,3.7vw,54px);line-height:1.05;margin:23px 0}.desk-reading article>p{font-size:15px;line-height:1.7;margin:15px 0;max-width:440px}.desk-reading .meta{font-size:10px}.desk-reading .text-link{font-size:13px;margin-top:12px;border-color:#192c42}.desk-signature{font:italic 34px Georgia,serif;margin-top:20px;transform:rotate(-4deg)}.desk-facts{margin:25px 0}.desk-facts>div{padding:12px 0;border-bottom:1px solid #192c4230}.desk-facts dt{font:9px var(--mono);margin-bottom:6px}.desk-facts dd{font-size:19px;line-height:1.3;margin:0}
@media(max-width:900px){.desk-section .desk-layout{grid-template-columns:1fr;gap:45px}.desk-objects{width:min(560px,100%);margin:auto;min-height:600px}.desk-reading{min-height:0}.desk-reading article>p{max-width:640px}.desk-camera{top:55px}.desk-school{top:365px}.desk-build{top:345px}.desk-heading>p{font-size:12px}}
@media(max-width:700px){.kit-copy h2{font-size:clamp(35px,9.3vw,55px)}.lens-story h3{font-size:23px}.lens-story p{font-size:12px;max-width:280px;margin:auto}.orbit-footer .story-editor-launch{margin:auto}.album-cover{left:0;width:100%;transform:none;padding:25px 26px}.cover-title{font-size:clamp(40px,12vw,65px);margin:18px 0}.cover-edition{font-size:8px}.cover-author{font-size:9px}.cover-open{margin-top:8px}.desk-heading{align-items:start;flex-direction:column;gap:25px;margin-bottom:30px}.desk-heading h2{font-size:85px}.desk-objects{min-height:510px}.desk-section .desk-portrait{width:44%;left:2%;top:12px}.desk-camera{right:0;top:38px;padding:12px;min-height:185px}.desk-camera img{height:125px}.desk-school{top:290px;left:3%;width:45%;min-height:170px;padding:15px}.desk-build{top:270px;right:0;width:44%;min-height:180px;padding:15px}.desk-scribble{font-size:17px;bottom:0}.desk-object-label{font-size:8px}.desk-object-top{font-size:7px}.desk-reading article>h3{font-size:39px}.desk-reading article>p{font-size:14px}.story-editor-layout{grid-template-columns:1fr;gap:15px}.story-preview{height:130px;width:90px;float:left;margin:0 15px 15px 0}.story-editor-layout>div:first-child{display:flow-root}.story-editor-layout>div:first-child label{padding-top:12px}#photo-story-editor{padding:20px}.story-editor-header h2{font-size:29px}.story-editor-note{font-size:11px}.story-editor-footer{flex-wrap:wrap;gap:10px}.story-prose{font-size:17px}.story-actions{gap:8px}}
@media(max-width:380px){.desk-objects{min-height:475px}.desk-school{top:260px}.desk-build{top:245px}.desk-camera{min-height:160px}.desk-camera img{height:100px}.desk-object-label{font-size:7px}.cover-title{font-size:42px}.cover-edition{letter-spacing:0}.story-field-pair{grid-template-columns:1fr;gap:0}}

/* Bound photography journal: cover boards, paper blocks, printed margins and hinge. */
#photo-book{background:radial-gradient(ellipse at 50% 34%,#e7e3d9,#c8c1b1 85%);border:1px solid #f4eee080;border-radius:12px;padding:18px 30px 16px;box-shadow:0 35px 120px #0009;max-height:calc(100dvh - 20px)}
#photo-book .album-header{padding:0 4px;margin-bottom:24px}.album-header h2{font-family:Georgia,serif;font-weight:400;letter-spacing:-.04em}.album-header .meta{letter-spacing:.1em}
#photo-book .album-stage{height:calc(100dvh - 226px);min-height:310px;max-height:760px;margin:0 12px 22px;perspective:2200px;--stack-left:3px;--stack-right:9px}
#photo-book .album-spread{position:relative;isolation:isolate;border-radius:3px 7px 7px 3px;box-shadow:0 1px 0 #fefbf1,0 20px 35px -12px #30261785,0 35px 55px -24px #30261766}
.album-spread::before{content:'';position:absolute;inset:-9px -11px -15px;z-index:-2;background:linear-gradient(90deg,#142338,#243c54 48.5%,#101e30 50%,#243c54 51.5%,#142338);border:1px solid #091526;border-radius:6px 9px 9px 6px;box-shadow:0 3px 0 #091526,0 6px 0 #33485a,0 8px 12px #1118}
.album-spread::after{content:'';position:absolute;inset:4px -4px -10px;z-index:-1;border-radius:2px 6px 5px 2px;background:repeating-linear-gradient(0deg,#b7ae9b 0 1px,#f6efdc 1px 2px,#dcd3be 2px 3px);border:1px solid #b4a88e;box-shadow:inset 0 -2px 2px #62523a30}
#photo-book .album-page{padding:34px 20px 31px;gap:14px;border:1px solid #d8cfb8;border-radius:3px 6px 6px 3px;background-color:#faf7ec;background-image:linear-gradient(90deg,#fcfaef 0%,#faf7ec 87%,#ede7d6 96%,#c9bfaa 100%);box-shadow:-2px var(--stack-left) 0 -1px #e9e1cf,-4px calc(var(--stack-left) + 2px) 0 -2px #afa58e}
#photo-book .album-page[data-side=right]{border-radius:3px 6px 6px 3px;background-image:linear-gradient(90deg,#c3b79e 0%,#e8dfcb 2%,#f6f1e3 6%,#fffdf3 35%,#faf7ec 100%);box-shadow:2px var(--stack-right) 0 -1px #ece4d1,4px calc(var(--stack-right) + 2px) 0 -2px #afa58e}
.album-page::before{content:'';position:absolute;inset:25px 11px 22px;border:1px solid #a699782a;pointer-events:none;border-radius:1px}
.album-running-head{position:absolute;left:22px;right:22px;top:11px;font:9px/1 var(--mono);letter-spacing:.12em;color:#766a55;pointer-events:none}.album-page[data-side=right] .album-running-head{text-align:right}
#photo-book .album-page figcaption{font-size:10px;color:#5e574b;letter-spacing:.025em;padding-top:3px}#photo-book .album-folio{bottom:8px;left:auto;right:20px;font:10px/1 var(--mono);color:#746851}.album-page[data-side=left] .album-folio{right:auto!important;left:20px!important}
#photo-book .album-photo{padding:5px;background:#fffdf6;border:1px solid #bcb49f88;border-radius:1px;box-shadow:0 2px 3px #4038261c,0 5px 12px #40382612;transition:box-shadow .2s}
#photo-book .album-photo:hover{box-shadow:0 2px 4px #4038262c,0 8px 16px #40382620}#photo-book .album-photo img{background:#fffdf6}
.album-binding{position:absolute;top:-4px;bottom:-11px;left:calc(50% - 21px);width:42px;z-index:4;background:linear-gradient(90deg,transparent,#51412b0c 18%,#34261928 43%,#25190e4f 49%,#f9f5e08c 51%,#34261921 57%,transparent 100%);pointer-events:none;border-radius:50% / 2%;box-shadow:inset 1px 0 #fff1}
.album-covered .album-binding{visibility:hidden}.album-opening .album-binding{visibility:visible}
.album-turn-shadow{position:absolute;top:0;bottom:0;width:50%;z-index:6;pointer-events:none;opacity:0;background:linear-gradient(90deg,#20180e88,transparent 90%);transform-origin:left center}.shadow-next{left:0;transform-origin:right center;background:linear-gradient(270deg,#20180e88,transparent 90%)}.shadow-prev{left:50%}
#photo-book .album-turn-sheet{filter:drop-shadow(0 3px 2px #3a2e2520)}.album-face{border:1px solid #c7baa0;box-shadow:inset 0 0 1px #fff}.album-face::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#33271824,transparent 12%,transparent 80%,#fff8);mix-blend-mode:multiply}.album-face-back::after{background:linear-gradient(270deg,#33271826,transparent 18%,transparent 85%,#fff8)}
.album-closed-block{position:absolute;left:50%;top:5px;width:50%;height:100%;transform:translateX(-50%) rotateY(-7deg) rotateZ(-1deg);transform-origin:left center;z-index:0;border-radius:3px 8px 7px 3px;background:repeating-linear-gradient(0deg,#b6aa90 0 1px,#f2e9d3 1px 3px,#dad0b8 3px 4px);border:1px solid #b8ab90;box-shadow:6px 5px 0 #e7dfc9,9px 8px 0 #13243a,11px 10px 0 #304359,14px 16px 12px #171b2533,22px 32px 40px #171b2555;pointer-events:none}
#photo-book:not(.album-covered) .album-closed-block,.album-opening .album-closed-block{visibility:hidden}
#photo-book .album-cover{transform:translateX(-50%) rotateY(-7deg) rotateZ(-1deg);padding:clamp(28px,3.3vw,50px);border:1px solid #56657a;border-left:2px solid #0a1726;border-radius:3px 8px 8px 3px;background-color:#192c42;background-image:repeating-linear-gradient(0deg,#ffffff05 0 1px,transparent 1px 3px),repeating-linear-gradient(90deg,#00000012 0 1px,transparent 1px 3px),linear-gradient(90deg,#091624,#30485f 4%,#192c42 7%,#21384e 100%);box-shadow:inset 1px 1px 0 #b1bed247,inset -2px -2px 2px #060f1d88,3px 3px 0 #101e2e,5px 5px 0 #4b5969,7px 8px 12px #0003;overflow:hidden}
.album-cover::before{content:'';position:absolute;left:10px;top:0;bottom:0;width:5px;border-left:1px solid #080f1c99;border-right:1px solid #8191a033;box-shadow:2px 0 5px #0005;pointer-events:none}.album-cover::after{content:'';position:absolute;inset:17px 17px 17px 24px;border:1px solid #cfb98575;outline:1px solid #cfb98530;outline-offset:4px;border-radius:1px;pointer-events:none}
#photo-book .cover-title{color:#f0e2be;text-shadow:0 1px 0 #020b14,0 -1px 0 #ffffff25;position:relative;margin:18px 0 22px;font-size:clamp(38px,5vw,74px)}#photo-book .cover-title em{color:#ef7650}#photo-book .cover-edition{color:#d3bd87;font-size:10px;letter-spacing:.12em}#photo-book .album-cover img{border:7px solid #e8dcc0;outline:1px solid #071522;outline-offset:1px;box-shadow:0 0 0 2px #c4b08a55,0 4px 9px #0006;filter:none}
#photo-book .cover-author{color:#e6d6ae;border-top:1px solid #c2ab794a;padding-top:12px;margin-top:18px;font-size:11px}.cover-open{color:#d3bd87;font-size:10px}
#photo-book .album-navigation{margin-top:25px}#photo-book .album-edge{bottom:8px;width:38px;height:38px;min-height:38px;background:#20344aeb;font-size:25px;box-shadow:1px 2px 4px #352b2040}.album-edge-prev{left:-7px}.album-edge-next{right:-7px}
@media(max-width:700px){#photo-book{width:calc(100vw - 12px);padding:14px 15px 13px;border-radius:7px}#photo-book .album-header{margin-bottom:22px;padding:0;gap:12px}#photo-book .album-stage{height:calc(100dvh - 218px);min-height:280px;margin:0 6px 20px;overflow:clip;overflow-clip-margin:16px}#photo-book .album-spread::before{inset:-7px -7px -13px}#photo-book .album-page{padding:28px 14px 27px;gap:12px}#photo-book .album-page::before{inset:21px 8px 21px}#photo-book .album-photo{padding:4px}.album-running-head{font-size:8px;top:10px;left:15px;right:15px;letter-spacing:.07em}#photo-book .album-page figcaption{font-size:9px}#photo-book .album-binding{left:-2px;width:18px;background:linear-gradient(90deg,#211d1647,transparent);z-index:4}.album-turn-shadow{width:100%;left:0}#photo-book .album-cover,.album-closed-block{left:0;width:100%;transform:rotateY(-4deg) rotateZ(-1deg)}#photo-book .album-cover{padding:29px 25px 25px 30px}#photo-book .album-cover::after{inset:13px 12px 13px 20px}#photo-book .cover-title{font-size:clamp(37px,11vw,59px);margin:13px 0 17px}#photo-book .cover-edition{font-size:8px;letter-spacing:.06em}#photo-book .cover-author{font-size:9px;margin-top:13px;padding-top:10px}#photo-book .cover-open{font-size:9px;margin-top:9px}#photo-book .album-navigation{gap:16px;margin-top:26px}#photo-book .album-edge{width:36px;height:40px;bottom:7px}.album-edge-prev{left:-6px}.album-edge-next{right:-6px}}
@media(max-height:620px){#photo-book .album-cover{padding-top:24px;padding-bottom:21px}#photo-book .cover-title{font-size:35px;margin:10px 0}#photo-book .cover-author{margin-top:9px;padding-top:7px}.cover-open{margin-top:6px}}

/* Keep the scroll layout; remove the offscreen camera from paint/compositing. */
.camera-stage.camera-away,.camera-stage.camera-suspended{visibility:hidden}
.hero:not(.motion-in-view) .scroll-caption span,.camera-kit:not(.motion-in-view) .lens-photo,.interlude:not(.motion-in-view) .marquee-track,.page-sleeping .marquee-track,.page-sleeping .lens-photo,.page-sleeping .scroll-caption span,.modal-open .marquee-track,.modal-open .lens-photo{animation-play-state:paused}
.interlude:not(.motion-in-view) .marquee-track{will-change:auto}
.brand-loader.dismissed .loader-logo{animation:none}

/* Match the supplied car frame without changing its crop. */
#compare{aspect-ratio:1800/1208}

/* Reserved camera and spare-lens areas, independent of device height or pixel density. */
.hero-camera-space{position:absolute;left:53%;top:26%;width:40%;height:clamp(220px,36vw,430px);pointer-events:none}
.kit-camera-space{left:20%;width:43%;top:40px;height:270px}
.kit-lens-space{position:absolute;left:71%;width:17%;top:74px;height:170px;pointer-events:none}
.parked-lens-label{left:69%;width:22%;top:255px}
@media(min-width:1800px){.hero-camera-space{left:54%;width:34%;height:440px}.kit-camera-space{left:27%;width:32%}.kit-lens-space{left:68%;width:13%}.parked-lens-label{left:65%;width:19%}}
@media(min-width:701px) and (max-width:1100px){.hero-camera-space{left:57%;top:39%;width:37%;height:310px}.kit-camera-space{left:20%;width:44%;height:245px}.kit-lens-space{left:73%;width:17%;height:145px;top:85px}}
@media(max-width:700px){.hero-camera-space{left:39%;top:510px;width:58%;height:220px}.hero-sticky{min-height:900px}.photo-one{top:735px;right:8%;width:25%}.photo-two{bottom:14%;left:5%}.kit-camera-space{left:19%;top:55px;width:47%;height:195px}.kit-lens-space{left:76%;top:90px;width:19%;height:120px}.parked-lens-label{top:239px;left:73%;width:24%;font-size:8px}.lens-photo,.lens-photo:nth-child(2),.lens-photo:nth-child(3),.lens-photo:nth-child(4){width:15%;max-width:100px}.lens-photo:nth-child(3),.lens-photo:nth-child(4){right:1%;top:274px}.lens-photo:nth-child(2){top:165px}.lens-photo img{height:80px}.lens-selector{top:292px}}
@media(max-width:380px){.hero-camera-space{left:35%;width:62%;top:490px;height:190px}.kit-camera-space{left:18%;width:48%;height:170px;top:58px}.kit-lens-space{top:88px;height:110px}.parked-lens-label{font-size:7px}}
@media(max-height:600px) and (min-width:701px){.hero-camera-space{top:170px;height:270px}.hero-sticky{min-height:790px}.kit-camera-space{height:230px}.kit-lens-space{height:145px}.kit-sticky{min-height:950px}}
@media(orientation:landscape) and (max-height:500px) and (max-width:950px){.hero-camera-space{left:58%;top:170px;width:34%;height:200px}.hero-title{width:53%;left:5%;top:85px}.hero-title h1{font-size:74px}.hero-role,.hero-description{max-width:95%}.photo-one{top:410px}.hero-sticky{min-height:850px}}
