/* Existing split layout; colors now follow the supplied LEGO opening film. */
*{box-sizing:border-box}html,body{overflow-x:clip}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--font-body);line-height:1.55}img{display:block;max-width:100%}a{color:inherit}a:focus-visible,button:focus-visible{outline:3px solid var(--focus);outline-offset:4px;box-shadow:0 0 0 2px var(--ink)}a:active,button:active{transform:translateY(1px)}button:disabled{cursor:not-allowed;opacity:.55}
.site-nav{position:sticky;top:0;z-index:20;color:var(--night-ink);background:var(--night);border-bottom:2px solid var(--night-ink)}.nav-inner{width:min(100% - 2rem,var(--max));min-height:4.5rem;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:var(--s6)}.brand{display:flex;align-items:center;gap:var(--s3);font-family:var(--font-display);font-weight:800;text-decoration:none;text-transform:uppercase;letter-spacing:.04em}.brand span{display:grid;width:2rem;aspect-ratio:1;place-items:center;color:var(--night);background:var(--coral);border:2px solid currentColor}.nav-links{display:flex;align-items:stretch;align-self:stretch}.nav-links a{display:grid;place-items:center;padding:0 var(--s4);border-left:1px solid color-mix(in oklch,var(--night-ink) 45%,transparent);font:700 .72rem/1 var(--font-display);letter-spacing:.06em;text-decoration:none;text-transform:uppercase}.nav-links a:hover{color:var(--night);background:var(--cyan)}.nav-toggle{display:none;color:var(--night-ink);background:transparent;border:1px solid currentColor;padding:.65rem .9rem;font:700 .75rem/1 var(--font-display);text-transform:uppercase}
.band{position:relative;scroll-margin-top:4.5rem}.band--cream,.band--paper{background:var(--cream)}.band--night{color:var(--night-ink);background:var(--night)}.band--blue{color:var(--night-ink);background:var(--night-2)}.section-shell{position:relative;width:min(100% - 2rem,var(--max));margin:auto;padding:var(--s10) 0}.section-head{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s4);margin-bottom:var(--s8);border-top:2px solid currentColor;padding-top:var(--s4)}.section-head span{font:700 .72rem/1 var(--font-display);letter-spacing:.08em}.section-head h2{min-width:0;overflow-wrap:anywhere;margin:0;font:750 clamp(3.2rem,7vw,7rem)/.8 var(--font-display);letter-spacing:-.065em}.kicker{margin:0 0 var(--s5);font:700 .75rem/1.2 var(--font-display);letter-spacing:.1em;text-transform:uppercase}
.hero{width:100%;min-height:calc(100svh - 4.5rem);display:grid;grid-template-columns:minmax(0,1.08fr) minmax(20rem,.92fr);gap:clamp(2rem,6vw,7rem);align-items:center;padding:clamp(4rem,9vw,8rem) max(1rem,calc((100vw - var(--max))/2));overflow:hidden}.hero-copy{position:relative;z-index:2;min-width:0}.hero h1{min-width:0;overflow-wrap:anywhere;margin:0 0 var(--s7);font:800 clamp(5rem,12vw,10rem)/.72 var(--font-display);letter-spacing:-.085em}.hero h1 span{color:var(--berry)}.hero-thesis{max-width:13ch;margin:0;font:650 clamp(2rem,4.2vw,4.25rem)/.94 var(--font-display);letter-spacing:-.055em}.hero-art{position:relative;z-index:1;margin:0;transform:rotate(2deg)}.hero-art img{width:100%;aspect-ratio:4/3;object-fit:cover;border:var(--border);box-shadow:1rem 1rem 0 var(--coral)}.hero-art figcaption{display:flex;justify-content:space-between;align-items:center;gap:var(--s4);margin-top:var(--s5);font:600 .75rem/1.2 var(--font-display);text-transform:uppercase;letter-spacing:.06em}.orbit{position:absolute;border:2px solid var(--ink);border-radius:50%;pointer-events:none}.orbit--coral{width:14rem;aspect-ratio:1;right:-5rem;top:12%;background:transparent}.orbit--cyan{width:3.5rem;aspect-ratio:1;left:42%;bottom:8%;background:var(--cyan)}
.about-layout{display:grid;grid-template-columns:minmax(17rem,.78fr) minmax(0,1.22fr);gap:clamp(2.5rem,7vw,7rem);align-items:start}.about-image{position:sticky;top:6.5rem;margin:0}.about-image img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 70%;border:var(--border)}.about-image figcaption{margin-top:var(--s3);font:600 .72rem/1.2 var(--font-display);letter-spacing:.08em;text-transform:uppercase}.about-copy h3{margin:0 0 var(--s6);font:750 clamp(2.6rem,5vw,5rem)/.9 var(--font-display);letter-spacing:-.055em}.about-copy p{margin:0 0 var(--s5);font-size:clamp(1.05rem,1.5vw,1.3rem)}.about-copy p:first-of-type::first-letter{float:left;margin:.05em .12em 0 0;color:var(--berry);font:800 4.2em/.72 var(--font-display)}
.carousel-head{display:flex;align-items:center;justify-content:flex-end;gap:var(--s2);margin:calc(var(--s7)*-1) 0 var(--s5)}.carousel-button{min-height:2.75rem;padding:0 var(--s4);color:var(--night-ink);background:transparent;border:1px solid currentColor;cursor:pointer;font:700 .72rem/1 var(--font-display);text-transform:uppercase;white-space:nowrap}.carousel-button.square{width:2.75rem;padding:0;font-size:1.2rem}.carousel-button:hover{color:var(--night);background:var(--cyan)}.project-viewport{overflow-x:auto;scrollbar-width:none;scroll-snap-type:x mandatory}.project-viewport::-webkit-scrollbar{display:none}.project-track{display:flex;gap:var(--s5);width:max-content}.project-card{width:min(72vw,49rem);min-height:34rem;padding:var(--s6);color:var(--ink);background:var(--cream);display:flex;flex-direction:column;scroll-snap-align:start;border:2px solid var(--night-ink)}.project-card--coral .project-no,.project-card--berry .project-no{color:var(--berry)}.project-card--cyan .project-no{color:var(--cyan-deep)}.project-no{margin-bottom:var(--s5);font:700 .72rem/1 var(--font-display);letter-spacing:.08em}.media-slot{min-height:13rem;display:grid;place-items:center;margin-bottom:var(--s6);border:1px dashed currentColor;font:600 .72rem/1.3 var(--font-display);letter-spacing:.08em;text-align:center;text-transform:uppercase}.project-card h3{min-width:0;overflow-wrap:anywhere;margin:0;font:750 clamp(2.25rem,4vw,4rem)/.9 var(--font-display);letter-spacing:-.055em}.project-card h3 span{font-weight:450}.project-card p{max-width:65ch;margin:var(--s4) 0 var(--s6);font-size:1rem}.card-meta{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);margin-top:auto;padding-top:var(--s4);border-top:1px solid currentColor;font:700 .7rem/1.2 var(--font-display);letter-spacing:.06em;text-transform:uppercase}.case-study-map{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s6)}.case-study-map span{padding:.45rem .7rem;border:1px solid color-mix(in oklch,currentColor 60%,transparent);font:600 .65rem/1 var(--font-display);text-transform:uppercase}
.awards-grid{border-top:var(--border)}.award{display:grid;grid-template-columns:5rem 1fr;gap:var(--s5);padding:var(--s7) 0;border-bottom:var(--border)}.award-number{color:var(--berry);font:800 2rem/1 var(--font-display)}.award-meta{margin:0 0 var(--s3);font:700 .72rem/1 var(--font-display);letter-spacing:.1em}.award h3{margin:0 0 var(--s3);font:750 clamp(2rem,4vw,3.8rem)/.95 var(--font-display);letter-spacing:-.045em}.award div>p:last-child{max-width:44rem;margin:0;color:var(--muted)}
.experience-layout{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(3rem,7vw,7rem)}.role{display:grid;grid-template-columns:3rem 1fr;gap:var(--s4);padding:var(--s6) 0;border-top:1px solid currentColor}.role:last-child{border-bottom:1px solid currentColor}.role>span,.role small{font:700 .66rem/1.2 var(--font-display);letter-spacing:.08em}.role h3{margin:0 0 var(--s3);font:700 clamp(1.5rem,2.4vw,2.25rem)/1 var(--font-display);letter-spacing:-.035em}.role p{margin:0 0 var(--s4);color:color-mix(in oklch,var(--night-ink) 72%,transparent)}.skills-panel{align-self:start;padding:var(--s6);color:var(--ink);background:var(--cyan);border:2px solid var(--night-ink);transform:rotate(1deg)}.skills-panel h3{margin:0 0 var(--s6);font:750 2.25rem/.9 var(--font-display);letter-spacing:-.04em}.skill-group{padding:var(--s4) 0;border-top:1px solid currentColor}.skill-group h4{margin:0 0 var(--s2);font:700 .72rem/1 var(--font-display);letter-spacing:.08em;text-transform:uppercase}.skill-group p{margin:0;font-size:.9rem}
.interests-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--s4)}.interest{grid-column:span 4;min-height:21rem;padding:var(--s4);display:flex;flex-direction:column;border:var(--border);background:var(--paper)}.interest--wide{grid-column:span 8;min-height:30rem}.interest-media,.interest>img{min-height:13rem;flex:1;display:grid;place-items:center;margin-bottom:var(--s4);border:1px dashed var(--line);color:var(--muted);font:600 .7rem/1.2 var(--font-display);text-transform:uppercase}.interest>img{width:100%;object-fit:cover;border-style:solid}.interest h3{margin:0;font:700 1.5rem/1 var(--font-display);letter-spacing:-.03em}.interest>span{margin-top:var(--s2);color:var(--muted);font-size:.78rem}
.part{position:absolute;z-index:3;width:clamp(4rem,7vw,6.5rem);aspect-ratio:1;object-fit:contain;mix-blend-mode:multiply;pointer-events:none;transform:rotate(-9deg)}.part--about{right:-1rem;top:7rem}.part--awards{right:3%;bottom:3rem}.part--experience{right:-1rem;bottom:2rem;mix-blend-mode:screen;transform:rotate(12deg)}.part--interests{right:2%;top:8rem;transform:rotate(15deg)}
.contact{min-height:78svh;display:grid;place-items:center;padding:var(--s9) 1rem;text-align:center}.contact-inner{width:min(100%,70rem)}.contact h2{margin:0 0 var(--s8);font:800 clamp(4rem,10vw,9rem)/.76 var(--font-display);letter-spacing:-.08em}.contact h2 span{color:var(--coral)}.contact-links{display:flex;justify-content:center;flex-wrap:wrap;gap:var(--s3)}.contact-links a{padding:.85rem 1.1rem;border:1px solid currentColor;font:700 .75rem/1 var(--font-display);text-decoration:none;text-transform:uppercase}.contact-links a:hover{color:var(--night);background:var(--cyan)}footer{min-height:7rem;display:flex;align-items:center;justify-content:space-between;gap:var(--s5);padding:var(--s5) max(1rem,calc((100vw - var(--max))/2));color:var(--ink);background:var(--coral);border-top:var(--border);font:600 .72rem/1.2 var(--font-display);text-transform:uppercase;letter-spacing:.05em}footer a{font-weight:800}
@media(max-width:50rem){.nav-inner{min-height:4rem}.nav-toggle{display:block}.nav-links{position:absolute;top:100%;left:0;right:0;display:none;flex-direction:column;color:var(--night-ink);background:var(--night);border-bottom:2px solid currentColor}.nav-links.is-open{display:flex}.nav-links a{min-height:3rem;border-top:1px solid color-mix(in oklch,var(--night-ink) 45%,transparent);border-left:0}.hero{min-height:auto;grid-template-columns:1fr}.hero-art{max-width:38rem}.orbit--cyan{left:auto;right:15%}.about-layout,.experience-layout{grid-template-columns:1fr}.about-image{position:static;max-width:34rem}.project-card{width:calc(100vw - 3rem)}.interest,.interest--wide{grid-column:span 6;min-height:22rem}.part--about{top:5rem}}
@media(max-width:34rem){.section-shell{padding:var(--s9) 0}.section-head{margin-bottom:var(--s7)}.hero{padding-top:var(--s8)}.hero h1{font-size:clamp(4.5rem,26vw,7rem)}.hero-art img{box-shadow:.55rem .55rem 0 var(--coral)}.carousel-head{margin-top:0}.project-card{min-height:31rem;padding:var(--s5)}.card-meta{flex-direction:column}.award{grid-template-columns:3rem 1fr}.interest,.interest--wide{grid-column:span 12}.part{width:4.5rem;opacity:.8}footer{align-items:flex-start;flex-direction:column}}
.interests-grid{grid-template-columns:repeat(12,minmax(0,1fr))}.contact-links a{white-space:nowrap}

/* Approved layout and personal color accents */
::selection{color:var(--ink);background:var(--cyan)}
.brand span{background:var(--coral)}
.band--blue{color:var(--night-ink);background:var(--night-2)}
.section-head,.band--night .section-head{border-color:currentColor}
.section-head h2{font-size:clamp(3.2rem,7vw,7rem);letter-spacing:-.065em}
.hero{grid-template-columns:minmax(0,1.08fr) minmax(17rem,.92fr);padding-block:clamp(4rem,9vw,8rem)}
.hero h1{font-size:clamp(5rem,12vw,10rem);letter-spacing:-.085em}
.hero h1 span{color:var(--coral);-webkit-text-stroke:0}
.hero-thesis{font-size:clamp(2rem,4.2vw,4.25rem);letter-spacing:-.055em}
.hero-parts{position:relative;min-height:31rem;border:2px solid var(--ink);background:var(--cream)}
.hero-parts::before,.hero-parts::after{content:"";position:absolute;border:2px solid var(--ink);border-radius:50%;background:var(--cream)}
.hero-parts::before{width:3.5rem;aspect-ratio:1;left:1.5rem;top:1.5rem}.hero-parts::after{width:1.5rem;aspect-ratio:1;right:2rem;bottom:2rem}
.hero-parts p{position:absolute;left:var(--s6);bottom:var(--s6);z-index:2;margin:0;font:700 clamp(1.4rem,2.5vw,2.2rem)/.95 var(--font-display);letter-spacing:-.025em}
.hero-part{position:absolute;width:clamp(6rem,10vw,9rem);height:auto;mix-blend-mode:multiply;filter:contrast(1.12) saturate(1.08)}
.hero-part--crystal{right:12%;top:8%;transform:rotate(8deg)}.hero-part--branch{left:12%;top:34%;transform:rotate(-12deg)}.hero-part--notes{right:8%;top:50%;transform:rotate(10deg)}
.orbit--coral{border-color:var(--ink)}.orbit--cyan{display:block;background:var(--cyan-light)}
.about-layout{grid-template-columns:minmax(20rem,.9fr) minmax(0,1.1fr);gap:clamp(3rem,6vw,6rem);align-items:center}
.about-image{position:static;top:auto}
.about-image img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain;object-position:center;border:0;border-radius:var(--s4)}
.about-copy{max-width:68ch}.about-copy h3{font-size:clamp(2.6rem,4.5vw,4.75rem);letter-spacing:-.04em}.about-copy p{font-size:clamp(1rem,1.35vw,1.2rem);line-height:1.65}.about-copy p:first-of-type::first-letter{color:var(--cyan-light);-webkit-text-stroke:1px var(--cyan-deep)}
.media-slot{background:transparent;border-color:var(--line)}
.role p{color:color-mix(in oklch,var(--night-ink) 72%,transparent)}.skills-panel{background:var(--cyan);border-color:var(--night-ink);transform:rotate(1deg)}.skill-group{border-color:currentColor}
.part{filter:contrast(1.12) saturate(1.08)}
.contact h2 span{color:var(--coral)}
footer{background:var(--coral)}
@media(max-width:50rem){.hero{grid-template-columns:minmax(0,1fr)}.hero-parts{min-height:24rem;max-width:34rem}.about-layout{grid-template-columns:minmax(0,1fr)}.about-image{max-width:32rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-art,.hero-part,.skills-panel,.part,a:active,button:active{transform:none}}

/* The film's violet continues into the page; pale surfaces are reserved for a change of pace. */
html{scrollbar-color:var(--line) var(--night)}
.site-nav{border-bottom-color:var(--line)}
.hero.band--paper{color:var(--night-ink);background:var(--night)}
.hero-parts{color:var(--ink);background:var(--part-tray);border-color:var(--part-tray)}
.hero-parts::before,.hero-parts::after{background:var(--part-tray)}
.orbit--coral{border-color:var(--line)}
.orbit--cyan{border-color:var(--night-ink)}
#about{color:var(--night-ink);background:var(--night-2)}
#about .section-head{border-color:var(--line)}
.about-image figcaption{color:var(--text-on-dark-secondary)}
.about-copy p:first-of-type::first-letter{color:var(--cyan-light);-webkit-text-stroke:0}
.role p{color:var(--text-on-dark-secondary)}
.skills-panel{background:var(--cyan-light)}
.photography-card{padding:0;overflow:hidden;text-decoration:none;transition:border-color .2s}
.photography-card:hover{border-color:var(--berry)}
.photography-card:focus-visible{outline-color:var(--berry)}
.photography-card .photography-preview{position:relative;flex:1;min-height:21rem;overflow:hidden}
.photography-preview>img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover}
.photography-preview .street-preview{inset:auto 1rem 1rem auto;width:29%;height:37%;border:4px solid var(--paper);object-fit:cover}
.photography-card-copy{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.3rem 1.1rem}
.photography-card-copy h3{font-size:1.7rem}
.photography-card-copy p{margin:.5rem 0 0;color:var(--muted);font-size:.85rem}
.photography-card-copy svg{flex-shrink:0;width:1.7rem;height:1.7rem;stroke:currentColor;fill:none;stroke-width:1.5}
