/* Michael Zepeda — restrained editorial system, drawn from the printed portfolio. */
:root{--paper:#f9f9f7;--ink:#222321;--muted:#64655f;--line:#d7d8d2;--accent:#f77686;--dark-accent:#a8384c;--gutter:clamp(22px,4.2vw,76px);font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0}a{color:inherit;text-decoration:none}button{font:inherit}img{display:block;max-width:100%;height:auto}figure,p,h1,h2,h3,blockquote{margin:0}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--dark-accent);outline-offset:6px}a:hover{text-decoration-thickness:1px}p{font-size:1.0625rem;line-height:1.65}h1,h2,h3{font-weight:500}em{font-family:Georgia,'Times New Roman',serif;font-weight:400}::selection{background:var(--accent);color:var(--ink)}[hidden]{display:none!important}.shell{padding-inline:var(--gutter);max-width:1920px;margin-inline:auto}.eyebrow{font-size:.8125rem;line-height:1.5;letter-spacing:.09em;text-transform:uppercase;font-weight:500}.skip{position:fixed;left:20px;top:-100px;background:var(--ink);color:white;padding:14px 20px;z-index:100}.skip:focus{top:12px}.header{margin-inline:var(--gutter);padding-block:27px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);gap:24px}.wordmark{display:flex;gap:15px;align-items:center;font-size:1rem;line-height:1.35;letter-spacing:-.02em}.brand-mark{width:47px;height:47px;background:var(--accent);display:flex;align-items:center;justify-content:center;font-size:29px;letter-spacing:-.15em;font-weight:700;padding-right:5px}.brand-mark span{font-style:italic}.brand-role{display:block;font-size:.8125rem;color:var(--muted);letter-spacing:0;margin-top:2px}.header nav{display:flex;gap:32px;align-items:center;font-size:.9375rem}.header nav a{padding-block:8px;position:relative}.header nav a::after{position:absolute;bottom:0;left:0;right:0;height:2px;content:'';background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .2s}.header nav a:hover::after,.header nav a[aria-current]::after{transform:scaleX(1)}.resume-link{margin-left:20px}.resume-link span{margin-left:5px}.intro{display:grid;grid-template-columns:1.55fr 1fr;gap:7vw;padding-top:55px;padding-bottom:52px;align-items:end}.intro .eyebrow{margin-bottom:25px}.intro h1{font-size:clamp(3.5rem,7.1vw,8.6rem);line-height:.99;letter-spacing:-.065em}.intro h1 em{letter-spacing:-.067em}.intro-note{padding-bottom:7px;max-width:390px}.intro-note p{font-size:clamp(1.12rem,1.6vw,1.5rem);line-height:1.5;letter-spacing:-.015em}.text-link{display:inline-flex;gap:30px;font-size:.9375rem;line-height:1.5;border-bottom:1px solid var(--ink);padding-bottom:7px;margin-top:26px}.text-link:hover{color:var(--dark-accent);border-color:var(--dark-accent)}.section-line{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:16px 0 20px}.section-line h2,.section-line span{font-size:.8125rem;text-transform:uppercase;letter-spacing:.07em;font-weight:400}.section-line h2::before{content:'';display:inline-block;background:var(--accent);width:8px;height:8px;margin-right:10px}.home-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px 28px}.project-card{min-width:0}.project-card.wide{grid-column:1/-1}.card-image{position:relative;overflow:hidden;background:#e4e5df}.card-image img{width:100%;aspect-ratio:1.48;object-fit:cover;transition:transform .6s cubic-bezier(.2,.65,.3,1),filter .35s}.wide .card-image img{aspect-ratio:2.12}.card-open{position:absolute;right:18px;bottom:18px;background:var(--paper);height:44px;width:44px;display:grid;place-items:center;font-size:1.5rem;transform:translateY(65px);transition:transform .25s}.card-link:hover img{transform:scale(1.018);filter:brightness(.96)}.card-link:hover .card-open,.card-link:focus-visible .card-open{transform:translateY(0)}.card-caption{display:flex;align-items:baseline;gap:17px;padding-top:18px}.card-caption h2{font-size:clamp(1.2rem,1.75vw,1.65rem);line-height:1.2;letter-spacing:-.035em}.card-caption p{font-size:.875rem;color:var(--muted);margin-top:7px;line-height:1.5}.card-year{font-size:.875rem;margin-left:auto}.card-status{font-size:.8125rem;color:var(--muted);margin-top:4px;line-height:1.4}.wide .card-caption h2{font-size:clamp(1.4rem,2vw,2rem)}.home-grid .project-card:nth-child(3){padding-top:88px}.all-work{display:flex;justify-content:space-between;border-bottom:1px solid var(--ink);border-top:1px solid var(--line);padding-block:25px;margin-top:60px;font-size:1.3rem}.all-work span:last-child{font-size:1.8rem}.all-work:hover{color:var(--dark-accent)}.practice{display:grid;grid-template-columns:1fr 2fr;gap:30px;padding-top:120px;padding-bottom:130px}.practice h2{font-size:clamp(2.5rem,4.5vw,5rem);line-height:1.04;letter-spacing:-.055em;margin-bottom:30px}.practice p:not(.eyebrow){max-width:620px;font-size:1.2rem}.page-heading{padding-top:70px;padding-bottom:54px}.page-heading h1,.contact-heading h1{font-size:clamp(3.5rem,7.2vw,8rem);line-height:1.01;letter-spacing:-.062em;margin-top:23px}.page-lede{font-size:clamp(1.1rem,1.7vw,1.4rem);margin-top:27px;line-height:1.5}.filter-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;border-block:1px solid var(--line);padding:18px 0;margin-bottom:32px}.filters{display:flex;flex-wrap:wrap;gap:8px}.filters button{cursor:pointer;border:1px solid transparent;background:transparent;padding:10px 16px;font-size:.875rem;color:var(--muted);border-radius:0;min-height:44px}.filters button:hover{border-color:var(--line);color:var(--ink)}.filters button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.result-count{font-size:.8125rem;white-space:nowrap;color:var(--muted)}.work-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px 28px}.work-section{padding-bottom:110px}.project-heading{padding-top:37px}.back-link{display:inline-block;font-size:.875rem;margin-bottom:43px;padding-block:7px}.back-link:hover{text-decoration:underline}.project-heading h1{font-size:clamp(2.8rem,5.5vw,6.5rem);line-height:1.04;letter-spacing:-.055em;max-width:1200px;margin-block:20px 30px}.project-topline{display:flex;justify-content:space-between;gap:20px;font-size:.875rem;color:var(--muted);border-top:1px solid var(--line);padding-block:18px 24px}.hero-figure img{width:100%;max-height:83vh;object-fit:cover}.project-figure figcaption{display:flex;gap:18px;font-size:.8125rem;line-height:1.5;color:var(--muted);padding-top:13px;max-width:850px}.figure-number{font-variant-numeric:tabular-nums;color:var(--dark-accent)}.project-overview{display:grid;grid-template-columns:1fr 2fr;gap:7vw;padding-block:75px 60px}.project-overview dl{margin-top:26px}.project-overview dt{font-size:.8125rem;color:var(--muted);margin-top:20px;margin-bottom:5px}.project-overview dd{font-size:1rem;line-height:1.4;margin:0}.overview-text{font-size:clamp(1.4rem,2.3vw,2rem);line-height:1.4;letter-spacing:-.025em}.small-title{font-size:.8125rem;letter-spacing:.06em;text-transform:uppercase;margin:32px 0 12px}.project-overview>div>p:last-child{max-width:800px}.design-question{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-size:clamp(2.1rem,4.5vw,4.8rem);line-height:1.17;letter-spacing:-.045em;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:48px 7vw 52px;margin-bottom:70px;position:relative}.design-question::before{content:'“';position:absolute;left:0;top:28px;color:var(--accent);font-size:1.9em}.story-section{margin-bottom:80px}.story-copy{display:grid;grid-template-columns:1fr 2fr;gap:7vw;margin-bottom:34px}.story-copy h2{font-size:clamp(1.7rem,2.8vw,2.6rem);letter-spacing:-.035em;line-height:1.15;margin-bottom:18px}.story-copy p{max-width:760px}.image-sequence{display:grid;grid-template-columns:1fr 1fr;gap:25px;align-items:start}.image-sequence.single{display:block}.image-sequence.single img{width:100%;max-height:900px;object-fit:contain;background:#f0f0ed}.image-sequence:not(.single) img{width:100%;aspect-ratio:1.85;object-fit:contain;background:#f0f0ed}.credits{border-top:1px solid var(--line);padding:35px 0 60px;display:grid;grid-template-columns:1fr 2fr;gap:7vw}.credits h2{font-size:1.2rem;line-height:1.3}.credits ul{padding-left:18px;margin-top:0}.credits li{font-size:.9375rem;line-height:1.6;margin-bottom:9px}.credits details{margin-top:26px;border-top:1px solid var(--line);padding-top:20px}.credits summary{font-size:.9375rem;cursor:pointer;padding-block:5px}.credits details p{font-size:.875rem;color:var(--muted)}.credits ol{padding-left:20px}.credits strong{font-weight:500}.next-project{border-top:1px solid var(--ink);display:flex;justify-content:space-between;align-items:center;gap:30px;padding:38px 0 75px}.next-project h2{font-size:clamp(2rem,4vw,4rem);letter-spacing:-.05em;margin-top:15px}.next-project>span{font-size:4rem}.next-project:hover{color:var(--dark-accent)}.about-intro{display:grid;grid-template-columns:1fr 1.45fr;gap:9vw;padding-bottom:85px}.portrait{background:#f3f3f1;align-self:start}.portrait img{max-height:650px;object-fit:contain;width:100%;padding:35px 30px 0}.portrait figcaption{padding:18px 20px;font-size:.8125rem;border-top:1px solid var(--line)}.about-copy{padding-top:10px}.about-copy p:not(.eyebrow){margin-top:24px;font-size:1.2rem;line-height:1.65}.about-copy .eyebrow{color:var(--dark-accent)}.experience{display:grid;grid-template-columns:1fr 2fr;gap:7vw;padding-bottom:65px}.experience>h2{font-size:2rem;letter-spacing:-.04em}.experience-row{display:grid;grid-template-columns:1fr 3fr;gap:25px;padding-block:24px;border-top:1px solid var(--line)}.experience-row>span{font-size:.875rem;color:var(--muted);line-height:1.5}.experience-row h3{font-size:1.4rem;letter-spacing:-.035em;margin-bottom:10px}.experience-row p{font-size:1rem}.about-note{padding-top:35px;padding-bottom:100px;max-width:1200px}.about-note>p:not(.eyebrow):not(.source-note){font-family:Georgia,serif;font-size:2rem;line-height:1.4;margin-block:25px}.source-note{font-size:.8125rem;line-height:1.6;color:var(--muted)}.contact-heading{padding-top:70px;padding-bottom:70px}.contact-heading h1{font-size:clamp(3.6rem,8.5vw,9rem)}.contact-email{font-size:clamp(1.05rem,2.6vw,2.6rem);border-bottom:1px solid var(--ink);padding-bottom:10px;display:inline-block;margin-top:45px;overflow-wrap:anywhere;line-height:1.5}.contact-email span{display:inline-block;margin-left:20px}.contact-email:hover{color:var(--dark-accent)}.contact-details{display:grid;grid-template-columns:1fr 1.5fr;gap:10vw;padding-bottom:120px}.contact-details h2{font-size:.8125rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:20px}.contact-details a{display:flex;align-items:center;gap:20px;justify-content:space-between;border-top:1px solid var(--line);padding:18px 0;font-size:1.1rem}.contact-details a:hover{color:var(--dark-accent)}.contact-details a span{font-size:.875rem;color:var(--muted)}.footer{background:var(--ink);color:var(--paper);padding:55px var(--gutter) 24px}.footer-top{display:flex;justify-content:space-between;gap:50px;padding-bottom:65px}.footer .eyebrow{color:#c4c5bc}.footer-call{font-size:clamp(4rem,8.5vw,9rem);letter-spacing:-.06em;display:flex;gap:60px;line-height:1.2;margin-top:14px}.footer-call>span{color:var(--accent)}.footer-links{display:grid;gap:14px;align-content:start;min-width:160px;padding-top:8px}.footer-links a{font-size:1rem;padding-block:4px}.footer-links a:hover{text-decoration:underline}.footer-bottom{border-top:1px solid #53554d;padding-top:23px;display:flex;justify-content:space-between;gap:20px;font-size:.8125rem;line-height:1.5;color:#c4c5bc}.reveal-ready.is-seen{animation:enter .65s both}@keyframes enter{from{transform:translateY(14px)}to{transform:translateY(0)}}
@media(min-width:1600px){.intro{padding-top:80px;padding-bottom:70px}.intro-note{max-width:450px}}
@media(max-width:1000px){.header nav{gap:23px}.resume-link{margin-left:0}.intro{grid-template-columns:1.4fr 1fr;gap:5vw}.intro h1{font-size:clamp(3.5rem,7.4vw,6rem)}.project-overview,.story-copy,.credits,.experience{gap:5vw}.filter-bar{align-items:flex-start}.filters{gap:3px}.filters button{padding-inline:10px}.about-intro{gap:5vw}.footer-bottom>span:nth-child(2){display:none}}
@media(max-width:700px){:root{--gutter:22px}.header{padding-block:19px 15px;flex-wrap:wrap;gap:20px}.wordmark{font-size:.9375rem}.brand-mark{width:40px;height:40px;font-size:26px}.header nav{width:100%;justify-content:space-between;gap:15px;font-size:.875rem}.header nav a{padding-block:7px}.intro{grid-template-columns:1fr;gap:28px;padding-top:35px;padding-bottom:34px}.intro .eyebrow{margin-bottom:22px;font-size:.75rem}.intro h1{font-size:clamp(3.5rem,12.7vw,5.5rem);line-height:1.02;letter-spacing:-.06em}.intro-note{max-width:430px;padding:0}.intro-note p{font-size:1.125rem;line-height:1.5}.intro-note .text-link{margin-top:17px}.section-line{padding-block:15px}.home-grid,.work-grid{display:block}.project-card{margin-bottom:35px}.home-grid .project-card:nth-child(3){padding-top:0}.card-image img,.wide .card-image img{aspect-ratio:1.16;object-fit:cover}.card-caption{gap:12px;padding-top:15px}.card-caption h2,.wide .card-caption h2{font-size:1.375rem;line-height:1.18}.card-caption p{font-size:.8125rem}.card-year{font-size:.8125rem}.card-status{font-size:.8125rem}.card-open{transform:none;width:36px;height:36px;font-size:1.3rem;right:12px;bottom:12px}.all-work{margin-top:5px;font-size:1.125rem;padding-block:20px}.practice{grid-template-columns:1fr;gap:28px;padding-top:65px;padding-bottom:70px}.practice h2{font-size:3rem}.practice p:not(.eyebrow){font-size:1.125rem}.page-heading{padding-top:42px;padding-bottom:35px}.page-heading h1{font-size:clamp(3.1rem,11.5vw,5.2rem)}.page-lede{font-size:1.125rem;margin-top:22px}.filter-bar{display:block;padding:13px 0;margin-bottom:26px}.filters{gap:3px}.filters button{font-size:.8125rem;padding:9px 10px;min-height:44px}.result-count{display:block;margin:12px 0 0 10px}.work-section{padding-bottom:35px}.project-heading{padding-top:24px}.back-link{margin-bottom:29px}.project-heading .eyebrow{font-size:.75rem}.project-heading h1{font-size:clamp(2.5rem,9.7vw,4rem);margin-top:17px;margin-bottom:25px;letter-spacing:-.05em}.project-topline{flex-direction:column;gap:7px;padding-block:15px 20px;line-height:1.4;font-size:.8125rem}.hero-figure img{max-height:none;min-height:0;object-fit:contain}.project-figure figcaption{font-size:.8125rem;gap:10px;padding-top:10px}.project-overview{display:flex;flex-direction:column-reverse;padding:35px 0;gap:25px}.overview-text{font-size:1.5rem}.project-overview>aside{border-top:1px solid var(--line);padding-top:20px}.project-overview dl{display:grid;grid-template-columns:1fr 1.8fr;gap:11px;margin-top:18px}.project-overview dt{margin:0}.project-overview dd{font-size:.875rem}.small-title{margin-top:26px}.design-question{font-size:2.1rem;line-height:1.23;margin-bottom:40px;padding:36px 0 36px 23px}.design-question::before{font-size:1.5em;left:-4px;top:18px}.story-section{margin-bottom:45px}.story-copy{display:block;margin-bottom:25px}.story-copy .eyebrow{display:block;margin-bottom:16px}.story-copy h2{font-size:1.8rem}.image-sequence{grid-template-columns:1fr;gap:24px}.image-sequence:not(.single) img{aspect-ratio:auto;object-fit:contain}.credits{display:block;padding-block:26px 35px}.credits h2{margin-bottom:22px}.credits ul{padding-left:17px}.credits li{font-size:.875rem}.next-project{padding:30px 0 45px;gap:15px}.next-project h2{font-size:2rem}.next-project>span{font-size:2.5rem}.about-intro{display:flex;flex-direction:column;gap:35px;padding-bottom:50px}.portrait{width:100%}.portrait img{max-height:400px;padding-top:20px}.about-copy{padding-top:0}.about-copy p:not(.eyebrow){font-size:1.0625rem}.experience{display:block;padding-bottom:25px}.experience>h2{margin-bottom:25px}.experience-row{grid-template-columns:1fr;gap:12px}.about-note{padding-top:25px;padding-bottom:55px}.about-note>p:not(.eyebrow):not(.source-note){font-size:1.65rem}.contact-heading{padding-top:42px;padding-bottom:40px}.contact-heading h1{font-size:clamp(3.3rem,12.7vw,5.8rem)}.contact-heading .page-lede br{display:none}.contact-email{font-size:clamp(1rem,4.5vw,1.6rem);margin-top:30px}.contact-email span{margin-left:5px}.contact-details{grid-template-columns:1fr;gap:38px;padding-bottom:60px}.contact-details a{font-size:1rem}.footer{padding-top:38px}.footer-top{display:block;padding-bottom:38px}.footer .eyebrow{font-size:.75rem;max-width:280px}.footer-call{font-size:4.5rem;gap:30px;margin-top:20px}.footer-links{grid-template-columns:1fr 1fr;gap:12px;margin-top:25px}.footer-links a{font-size:.9375rem;padding-block:7px}.footer-bottom{flex-wrap:wrap;font-size:.75rem;gap:12px}.footer-bottom a{margin-left:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.card-link:hover img{transform:none}}
/* Keep larger browser text sizes usable without horizontal clipping. */
h1{overflow-wrap:anywhere}.intro>*{min-width:0}.header nav{flex-wrap:wrap}.card-caption>div{min-width:0}.footer-call{flex-wrap:wrap}
.project-figure img,.image-sequence.single img,.image-sequence:not(.single) img{width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:cover}
.story-copy>div{grid-column:2}
.intro-label{display:flex;align-items:baseline;justify-content:space-between;gap:14px}.rotating-words{display:grid;grid-template-columns:minmax(0,1fr);line-height:1.13;padding-bottom:.06em}.rotating-word{grid-area:1/1;opacity:0;transform:translateY(.1em);transition:opacity .4s ease,transform .4s ease;pointer-events:none;overflow-wrap:anywhere}.rotating-word.is-active{opacity:1;transform:translateY(0)}
@media(max-width:700px){.intro-label{gap:10px}.intro-label .eyebrow{font-size:.6875rem;letter-spacing:.065em}.intro-label .eyebrow{margin-bottom:18px}}
.project-gallery{margin-bottom:10px}.gallery-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 0 15px}.gallery-toolbar .eyebrow{font-size:.8125rem}.gallery-controls{display:flex;align-items:center;gap:9px}.gallery-count{font-size:.875rem;color:var(--muted);font-variant-numeric:tabular-nums;min-width:60px;margin-right:10px}.gallery-arrow{width:46px;height:46px;display:grid;place-items:center;border:1px solid var(--line);background:transparent;color:var(--ink);font-size:1.5rem;cursor:pointer;transition:background .2s,border-color .2s}.gallery-arrow:hover:not(:disabled){background:var(--ink);border-color:var(--ink);color:var(--paper)}.gallery-arrow:disabled{opacity:.3;cursor:default}.gallery-track{display:flex;align-items:flex-start;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;overscroll-behavior-x:contain;width:100%}.gallery-track::-webkit-scrollbar{display:none}.gallery-slide{flex:0 0 100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always}.gallery-slide img{width:100%;height:auto;max-height:none;aspect-ratio:auto;display:block}.gallery-slide figcaption{font-size:.8125rem;line-height:1.5;color:var(--muted);padding:13px 0 2px;max-width:850px}.gallery-track:focus-visible{outline:3px solid var(--dark-accent);outline-offset:5px}
@media(max-width:700px){.gallery-toolbar{gap:10px;padding-bottom:13px}.gallery-controls{gap:7px}.gallery-count{font-size:.8125rem;min-width:45px;margin-right:2px}.gallery-toolbar .eyebrow{font-size:.75rem}.gallery-arrow{width:44px;height:44px}.gallery-slide figcaption{padding-top:10px}}
.resume-heading{padding-top:50px;padding-bottom:35px}.resume-heading>div:first-of-type{display:flex;justify-content:space-between;gap:30px;align-items:center;margin-top:20px}.resume-heading h1{font-size:clamp(2.5rem,5vw,5.5rem);letter-spacing:-.05em;line-height:1.05}.resume-heading .page-lede{margin-top:16px}.download-button{display:inline-flex;justify-content:space-between;gap:25px;align-items:center;background:var(--ink);color:var(--paper);font-size:.9375rem;line-height:1.5;padding:16px 22px;white-space:nowrap}.download-button:hover{background:var(--dark-accent)}.resume-contact{display:flex;flex-wrap:wrap;gap:14px 27px;font-size:.875rem;line-height:1.5;margin-top:25px;padding-block:20px;border-block:1px solid var(--line)}.resume-contact a:hover{text-decoration:underline}.resume-layout{display:grid;grid-template-columns:1fr 2.35fr;gap:7vw;padding-bottom:100px}.resume-layout section{margin-bottom:36px}.resume-layout h2{font-size:.8125rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:18px;color:var(--dark-accent)}.resume-layout p,.resume-layout li{font-size:1rem;line-height:1.65}.resume-layout ul{padding-left:19px;margin-block:12px 0}.resume-layout li{margin-bottom:10px}.resume-job{margin-bottom:32px}.resume-job-title{display:flex;justify-content:space-between;gap:20px;align-items:baseline}.resume-job h3{font-size:1.4rem;line-height:1.25;letter-spacing:-.025em}.resume-job-title>span{font-size:.8125rem;color:var(--muted);line-height:1.5;white-space:nowrap}.resume-company{font-weight:600;margin-block:10px 4px}.resume-layout .source-note{font-size:.875rem}.resume-sidebar section{border-bottom:1px solid var(--line);padding-bottom:24px}.resume-sidebar ul{padding-left:17px}
@media(max-width:700px){.resume-heading{padding-top:35px}.resume-heading>div:first-of-type{display:block}.resume-heading h1{font-size:2.8rem}.download-button{margin-top:24px;white-space:normal}.resume-contact{display:block;overflow-wrap:anywhere}.resume-contact>*{display:block;margin-block:8px}.resume-layout{display:flex;flex-direction:column-reverse;gap:15px;padding-bottom:40px}.resume-job-title{display:block}.resume-job-title>span{display:block;margin-top:10px;white-space:normal}.resume-layout h2{font-size:.875rem}}
@media print{.header,.footer,.filter-bar,.next-project,.back-link{display:none}.shell{padding:0}.project-card,.project-figure{break-inside:avoid}body{background:white}a{text-decoration:underline}.card-image img{max-height:250px;object-fit:contain}}

.comparison{margin:80px 0;padding-top:32px;border-top:1px solid var(--line)}.comparison h2{font-size:clamp(1.65rem,3vw,2.4rem);font-weight:400;letter-spacing:-.035em;margin:0 0 30px}.comparison-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:start}.comparison figure{margin:0;min-width:0}.comparison-label{margin:0 0 12px;color:var(--accent-dark)}.comparison img{display:block;width:100%;height:auto;max-height:none;object-fit:cover}.comparison figcaption{font-size:.75rem;line-height:1.6;color:var(--muted);padding-top:12px}.comparison figure:last-child .comparison-label{color:var(--ink)}@media(max-width:700px){.comparison{margin:50px 0}.comparison-grid{grid-template-columns:1fr;gap:30px}}

.explorations{margin-top:90px;margin-bottom:100px}.collection-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.collection-links a{display:block;text-decoration:none}.collection-links img{width:100%;aspect-ratio:16/10;object-fit:cover}.collection-links a>div{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-top:18px}.collection-links h3{font-size:clamp(1.5rem,2.2vw,2rem);font-weight:400;letter-spacing:-.03em;margin:0}.collection-links p{max-width:35em;margin:8px 0 0;color:var(--muted);font-size:.9rem}.collection-heading .back-link{display:inline-block;margin-bottom:35px}.collection-intro{display:grid;grid-template-columns:2fr 1fr;gap:9%;margin-bottom:60px}.collection-intro p{margin-top:0;max-width:48em;line-height:1.7}.collection-cover{margin:0 0 55px}.collection-cover img,.collection-grid img{width:100%;height:auto;display:block}.collection-cover figcaption,.collection-grid figcaption{font-size:.75rem;color:var(--muted);padding-top:12px}.collection-grid{columns:2;column-gap:28px}.collection-grid figure{break-inside:avoid;margin:0 0 42px}.collection-credits{margin:30px 0 80px;padding-top:25px;border-top:1px solid var(--line);font-size:.8rem;line-height:1.7}.collection-credits summary{cursor:pointer}@media(max-width:700px){.collection-links,.collection-intro{grid-template-columns:1fr;gap:30px}.collection-grid{columns:1}.explorations{margin-top:55px;margin-bottom:60px}.collection-intro{margin-bottom:35px}}
.image-sequence.feature-and-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.image-sequence.feature-and-pair .project-figure:first-child{grid-column:1/-1}@media(max-width:700px){.image-sequence.feature-and-pair{grid-template-columns:1fr;gap:24px}}
.comparison-insights{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin:-20px 0 80px}.comparison-insights>div{min-width:0}.comparison-insights h2{font-size:clamp(1.5rem,2.2vw,2rem);font-weight:400;letter-spacing:-.035em;line-height:1.15;margin:0 0 14px}.comparison-insights p{font-size:1.0625rem;line-height:1.65}.story-section.image-first .story-copy{margin-top:34px;margin-bottom:0}
@media(max-width:700px){.comparison-insights{grid-template-columns:1fr;gap:35px;margin:-10px 0 55px}.comparison-insights h2{font-size:1.65rem}.story-section.image-first .story-copy{margin-top:25px}}
/* Technical editorial direction. */
:root{--paper:#efefea;--ink:#202a26;--muted:#626d65;--line:#c5ccc2;--accent:#b6c99d;--dark-accent:#345940;--gutter:clamp(22px,4vw,76px)}
body{background-image:linear-gradient(90deg,transparent calc(25% - 1px),#69755f0b 25%,transparent calc(25% + 1px),transparent calc(75% - 1px),#69755f0b 75%,transparent calc(75% + 1px))}em{font-family:inherit;font-style:normal;font-weight:inherit}h1,h2,h3{font-weight:400}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:2px solid var(--dark-accent);outline-offset:5px}.header{padding-block:22px;min-height:90px}.brand-mark{background:transparent;border:1px solid var(--ink);font-size:24px;width:40px;height:40px;position:relative}.brand-mark:after{content:'+';position:absolute;right:-6px;top:-11px;background:var(--paper);font:14px monospace}.brand-role,.header nav,.eyebrow,.technical-label,.section-line,.card-caption p,.card-year,.card-status,.project-number,.project-topline,.gallery-count,.gallery-toolbar,.back-link,.project-nav,.index-tools,.footer-bottom,.footer-links{font-family:'Courier New',monospace;font-size:11px;letter-spacing:.065em;text-transform:uppercase;line-height:1.6}.header nav{gap:30px}.header nav a[aria-current]{color:var(--dark-accent)}.intro{padding-top:64px;padding-bottom:65px;gap:4vw;grid-template-columns:1.5fr 1fr;position:relative}.intro:before{content:'+';position:absolute;left:var(--gutter);bottom:20px;font:20px monospace;color:var(--muted)}.intro h1{font-size:clamp(64px,8vw,138px);line-height:.97;letter-spacing:-.075em}.intro h1 em{letter-spacing:-.075em;color:var(--dark-accent)}.intro-note{border-left:1px solid var(--line);padding-left:28px;padding-bottom:12px;max-width:390px}.technical-label{display:block;margin-bottom:32px;max-width:240px}.intro-note p{font-size:clamp(17px,1.5vw,23px);line-height:1.5}.text-link{font-family:'Courier New',monospace;font-size:11px;text-transform:uppercase;letter-spacing:.03em}.section-line{padding-block:16px}.section-line h2,.section-line span{font-size:11px}.section-line h2:before{width:6px;height:6px;border-radius:50%;background:var(--dark-accent)}.home-grid{gap:60px 30px}.home-grid .project-card:nth-child(3){padding-top:120px}.card-image{background:#d8ddd4}.card-image img{filter:saturate(.8)}.card-link:hover img{filter:saturate(1);transform:scale(1.025)}.wide .card-image img{aspect-ratio:2.1}.card-caption{border-top:1px solid var(--ink);margin-top:12px;padding-top:14px;align-items:start}.card-caption h2,.wide .card-caption h2{font-size:clamp(21px,2.2vw,34px);letter-spacing:-.04em}.project-number{color:var(--muted);padding:3px 8px 0 0}.card-caption p{margin-top:10px;font-size:10px}.card-status{margin-left:36px;font-size:10px}.card-open{border-radius:0;background:var(--paper);transform:none;width:36px;height:36px;font-size:23px}.practice{margin-top:90px;background:#dfe5d9;padding-top:85px;padding-bottom:85px}.practice h2{font-size:clamp(40px,5vw,76px)}.explorations{margin-top:90px}.collection-links h3{font-size:27px}.page-heading h1,.contact-heading h1{letter-spacing:-.065em}.project-heading{padding-top:30px}.project-heading h1{font-size:clamp(42px,6vw,86px);max-width:1100px;letter-spacing:-.06em}.project-heading .back-link{margin-bottom:25px}.project-topline{padding-block:18px}.gallery-toolbar{border-top:1px solid var(--line);padding-top:14px}.gallery-toolbar .eyebrow{font-size:10px}.explore-images{margin-left:auto;background:transparent;border:0;border-bottom:1px solid var(--ink);padding:8px 0;font:11px 'Courier New',monospace;text-transform:uppercase;color:var(--ink)}.gallery-arrow{width:38px;height:38px;font-size:20px}.gallery-slide img{max-height:76vh;object-fit:contain;background:#dfe3da}.project-nav{position:sticky;top:0;z-index:10;display:flex;gap:25px;overflow-x:auto;padding:18px 0;background:var(--paper);border-block:1px solid var(--line);margin-top:32px;scrollbar-width:thin}.project-nav a{white-space:nowrap;padding:7px 0;border-bottom:2px solid transparent}.project-nav a[aria-current]{border-color:var(--dark-accent);color:var(--dark-accent)}section[id]{scroll-margin-top:88px}.project-overview{padding-block:65px}.project-overview aside{border-left:1px solid var(--line);padding-left:20px}.project-overview dt,.small-title{font-family:'Courier New',monospace;font-size:11px}.overview-text{font-size:clamp(22px,2.4vw,33px)}.design-question{font-family:inherit;font-style:normal;font-size:clamp(30px,4vw,58px);letter-spacing:-.045em;padding:50px 0 50px 25%;line-height:1.18}.design-question:before{content:'↗';font-family:monospace;font-size:50px;top:40px;color:var(--dark-accent)}.story-copy{border-top:1px solid var(--line);padding-top:28px}.story-copy h2{font-size:clamp(26px,3vw,40px)}.story-section{margin-bottom:95px}.image-sequence img{background:transparent!important}.project-animation{margin:60px 0}.project-animation video{display:block;width:100%;max-height:80vh;background:#151a17}.project-animation figcaption{font:11px 'Courier New',monospace;margin-top:12px;color:var(--muted)}.index-tools{display:flex;gap:20px;align-items:center;flex-wrap:wrap;border-block:1px solid var(--line);padding:15px 0;margin-bottom:35px}.index-filters{display:flex;flex-wrap:wrap;gap:5px;flex:1}.index-tools button{background:transparent;color:var(--ink);font:10px 'Courier New',monospace;text-transform:uppercase;border:1px solid var(--line);padding:12px}.index-tools button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.index-tools [data-result-count]{font-size:10px}.work-grid.is-list{grid-template-columns:1fr;gap:0}.is-list .project-card{padding-block:20px;border-bottom:1px solid var(--line)}.is-list .card-link{display:grid;grid-template-columns:160px 1fr;gap:30px}.is-list .card-image img{aspect-ratio:1.6}.is-list .card-caption{margin:0;border:0}.is-list .card-status{margin:5px 0 0 190px}.is-list .card-open{display:none}.footer{background:#141b17;color:#e3e7db;padding-top:38px;padding-bottom:0;overflow:hidden}.footer-top{padding-bottom:45px;align-items:start}.footer .eyebrow{font:10px 'Courier New',monospace;color:#aeb9aa}.footer-call{font-size:clamp(36px,5vw,70px);gap:50px;margin-top:20px;letter-spacing:-.055em}.footer-call>span{color:#aabd97}.footer-links{grid-template-columns:1fr 1fr;gap:10px 45px}.footer-links a{font-size:11px}.footer-bottom{color:#aeb9aa;border-color:#435043;font-size:10px}.halftone{position:relative;height:clamp(150px,25vw,410px);margin-top:65px;margin-inline:calc(-1 * var(--gutter));overflow:hidden}.halftone canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.halftone-fallback{display:block;font-size:17vw;font-weight:700;white-space:nowrap;letter-spacing:-.08em;text-align:center;line-height:1.2}.halftone.is-ready .halftone-fallback{visibility:hidden}.image-viewer{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:25px 4vw;background:#141b17;color:#edf0e7;border:0}.image-viewer::backdrop{background:#141b17}.viewer-header{display:flex;justify-content:space-between;align-items:center;font:12px 'Courier New',monospace;gap:15px}.image-viewer button{background:transparent;border:1px solid #697767;color:inherit;padding:12px 18px;font:12px 'Courier New',monospace;min-height:44px}.image-viewer button:focus-visible{outline-color:#c5dbac}.viewer-stage{height:calc(100dvh - 230px);display:flex;align-items:center;justify-content:center;margin-top:18px}.viewer-stage img{width:100%;height:100%;object-fit:contain}.viewer-bottom{display:flex;justify-content:space-between;gap:20px;align-items:center;margin:12px 0}.viewer-caption{font-size:13px;line-height:1.4;max-width:70%}.viewer-thumbnails{display:flex;gap:9px;overflow-x:auto;padding:8px 0}.viewer-thumbnails button{padding:0;border:2px solid transparent;flex:0 0 90px;height:55px;opacity:.55}.viewer-thumbnails button[aria-pressed=true]{border-color:#b6c99d;opacity:1}.viewer-thumbnails img{height:100%;width:100%;object-fit:cover}.viewer-nav{display:flex;gap:8px}.image-viewer button:disabled{opacity:.3}.about-note>p:not(.eyebrow):not(.source-note){font-family:inherit}.contact-details h2,.resume-layout h2{font-family:'Courier New',monospace}.download-button{background:var(--ink)}
@media(max-width:900px){.intro{grid-template-columns:1fr;padding-top:45px;gap:35px}.intro h1{font-size:clamp(64px,12vw,105px)}.intro-note{display:grid;grid-template-columns:1fr 2fr;gap:15px;max-width:none;padding-left:0;border-left:0}.technical-label{margin:0}.intro-note .text-link{grid-column:2;margin-top:0;justify-self:start}.intro-note p{font-size:19px}.footer-links{gap:10px 20px}.project-nav{gap:20px}.gallery-toolbar{flex-wrap:wrap}.gallery-controls{margin-left:auto}}
@media(max-width:600px){.header{gap:18px;padding-block:17px}.header nav{font-size:10px;gap:15px}.brand-role{font-size:10px}.intro{padding-top:35px;padding-bottom:45px}.intro h1{font-size:clamp(51px,12.4vw,75px)}.intro-note{display:block}.technical-label{margin-bottom:20px;max-width:none;font-size:9px}.intro-note p{font-size:18px}.intro-note .text-link{margin-top:20px}.home-grid,.work-grid{grid-template-columns:1fr;gap:35px}.home-grid .project-card:nth-child(3){padding-top:0}.wide .card-image img{aspect-ratio:1.5}.card-caption h2,.wide .card-caption h2{font-size:24px}.card-year{font-size:10px}.practice{margin-top:55px;padding-block:50px}.project-heading h1{font-size:43px}.project-topline{font-size:9px}.gallery-toolbar .eyebrow{display:none}.explore-images{margin-left:0}.gallery-count{font-size:10px}.project-nav{font-size:10px;padding-block:10px}.design-question{padding:35px 0 35px 35px;font-size:30px}.design-question:before{font-size:25px;top:28px}.footer-top{display:block}.footer-links{margin-top:30px}.footer-call{font-size:42px}.footer-bottom{font-size:9px}.halftone{margin-top:40px;height:130px}.is-list .card-link{grid-template-columns:95px 1fr;gap:15px}.is-list .card-caption{gap:8px}.is-list .card-caption h2{font-size:18px}.is-list .card-year,.is-list .card-caption p{display:none}.is-list .card-status{margin-left:110px;font-size:9px}.viewer-header{font-size:10px}.viewer-caption{font-size:11px;max-width:60%}.image-viewer{padding-inline:15px}.viewer-nav button{padding:10px}.viewer-stage{height:calc(100dvh - 250px)}}
@media print{.project-nav,.halftone,.index-tools,.explore-images{display:none}}
/* Monochrome direction: dark ground, bold uppercase titles, no ornamental arrows. */
:root{color-scheme:dark;--paper:#0c0c0b;--ink:#eeece5;--muted:#aaa8a1;--line:#353532;--accent:#eeece5;--dark-accent:#eeece5;--accent-dark:#eeece5}
body{background:var(--paper);color:var(--ink)}
h1,h2,h3{font-weight:800;text-transform:uppercase;letter-spacing:-.04em}
.header nav,.eyebrow,.technical-label,.section-line,.footer-links,.footer-bottom{font-weight:700}
.wordmark{font-weight:700}.brand-mark{border-color:#6b6a64}.brand-mark:after,.intro:before{content:none}.brand-mark span{font-style:normal}
.intro{grid-template-columns:1fr;gap:40px;padding-top:60px;padding-bottom:64px}.intro h1{font-size:clamp(36px,9vw,168px);font-weight:900;line-height:.94;letter-spacing:-.065em;overflow-wrap:normal}.intro h1 em{font-weight:900;letter-spacing:-.065em;color:var(--ink)}.rotating-words{line-height:1.05}.rotating-word{white-space:nowrap;overflow-wrap:normal}.intro-note{display:grid;grid-template-columns:1fr 2fr;column-gap:40px;max-width:900px;border:0;padding:0}.technical-label{margin:0;max-width:240px;color:var(--muted)}.intro-note p{font-size:clamp(18px,1.7vw,25px)}.intro-note .text-link{grid-column:2;justify-self:start;margin-top:24px}.text-link{gap:0}.text-link span:empty,.footer-call>span:empty,.next-project>span:empty,.all-work span:empty,.contact-email span:empty,.collection-links a>div>span:empty,.resume-link>span:empty{display:none}
.card-open{display:none}.card-image,.gallery-slide img,.portrait{background:#181817}.card-image img{filter:none}.card-caption{border-top-color:var(--line)}.card-caption h2,.wide .card-caption h2{font-weight:800;font-size:clamp(23px,2.4vw,38px);letter-spacing:-.035em}.card-year{padding-top:5px}.practice{background:#151514;border-block:1px solid var(--line)}.practice h2{font-weight:800;line-height:1;letter-spacing:-.045em}.page-heading h1,.contact-heading h1{font-weight:900;letter-spacing:-.055em;line-height:.98}.project-heading h1{font-weight:900;line-height:1;letter-spacing:-.045em;font-size:clamp(38px,5.8vw,92px)}.story-copy h2,.comparison h2,.comparison-insights h2,.collection-links h3,.next-project h2{font-weight:800;text-transform:uppercase;letter-spacing:-.035em}.story-copy h2{line-height:1.05}.design-question{font-weight:700;letter-spacing:-.035em;padding:48px 0;font-size:clamp(28px,3.6vw,54px);max-width:none}.design-question:before{content:none}.project-overview{border-top:1px solid var(--line);margin-top:45px}.portrait img{background:#cecdc7}.project-animation video{background:#080808}.project-animation figcaption{color:var(--muted)}.footer,.image-viewer,.image-viewer::backdrop{background:#090909;color:var(--ink)}.footer{border-top:1px solid var(--line);padding-top:45px}.footer .eyebrow,.footer-bottom{color:var(--muted)}.footer-bottom{border-color:var(--line)}.footer-call{font-weight:800;text-transform:uppercase;font-size:clamp(32px,5.5vw,84px);letter-spacing:-.045em}.footer-links a{font-size:11px}.halftone{margin-top:95px;height:clamp(150px,21vw,350px)}.halftone-fallback{text-transform:uppercase;font-size:12vw}.image-viewer button{border-color:#66645e}.image-viewer button:focus-visible{outline-color:var(--ink)}.viewer-thumbnails button[aria-pressed=true]{border-color:var(--ink)}.download-button:hover{background:#c6c4ba;color:#111}.gallery-arrow:disabled{opacity:.45}.all-work{font-weight:700;text-transform:uppercase;font-size:20px}.contact-email{font-weight:700}.resume-job h3{font-weight:700}.about-note>p:not(.eyebrow):not(.source-note){font-weight:600}
@media(max-width:900px){.intro{gap:32px;padding-top:45px}.intro h1{font-size:9.1vw}.intro-note{column-gap:25px}.project-heading h1{font-size:clamp(38px,6vw,65px)}}
@media(max-width:600px){.intro{padding-top:35px;padding-bottom:40px;gap:28px}.intro h1{font-size:9.1vw;letter-spacing:-.055em}.intro h1 em{letter-spacing:-.055em}.intro-note{display:block}.technical-label{margin-bottom:18px;max-width:none}.intro-note .text-link{margin-top:20px}.card-caption h2,.wide .card-caption h2{font-size:24px}.project-heading h1{font-size:clamp(32px,8.5vw,48px)}.page-heading h1{font-size:clamp(40px,12vw,68px)}.contact-heading h1{font-size:clamp(36px,10.5vw,64px)}.design-question{padding:30px 0;font-size:28px}.halftone{margin-top:70px;height:140px}.footer-call{font-size:36px}.is-list .card-caption h2{font-size:17px}.resume-heading h1{font-size:38px}}
@media print{:root{color-scheme:light;--paper:white;--ink:#111;--muted:#444;--line:#ccc}body{background:white;color:#111}}
/* Neutral dark palette with cyan and magenta interaction accents. */
:root{--paper:#0a0a0c;--ink:#f2f2f5;--muted:#a4a4af;--line:#303036;--accent:#00d9f5;--dark-accent:#00d9f5;--accent-dark:#00d9f5;--cyan:#00d9f5;--magenta:#fa32b4}
::selection{background:var(--magenta);color:#08080a}.brand-mark{border-color:#55555f}.brand-role{color:var(--muted)}.header nav a[aria-current]{color:var(--cyan)}.header nav a:after{background:var(--cyan)}.intro h1 em{color:var(--ink)}.intro-label .eyebrow{color:var(--cyan)}.text-link:hover,.contact-email:hover{color:var(--cyan)}.section-line h2:before{background:var(--magenta)}.project-number{color:var(--cyan)}.practice{background:#111114}.card-image,.gallery-slide img{background:#111114}.card-link:hover h2,.collection-links a:hover h3{color:var(--cyan)}.footer,.image-viewer,.image-viewer::backdrop{background:#070709}.footer-call:hover{color:var(--cyan)}.footer-links a:hover{color:var(--magenta)}.viewer-thumbnails button[aria-pressed=true]{border-color:var(--cyan)}.index-tools button[aria-pressed=true]{background:var(--cyan);border-color:var(--cyan);color:#09090b}.image-viewer button:focus-visible{outline-color:var(--cyan)}.halftone{height:clamp(220px,49vw,740px);margin-top:55px}.halftone canvas{touch-action:pan-y}.halftone-fallback{white-space:normal;font-size:22vw;line-height:.95;font-weight:900;padding-top:20px}.footer-bottom{color:var(--muted)}
@media(max-width:600px){.halftone{height:54vw;min-height:200px;margin-top:45px}}
/* The landing headline shares the footer particle system. Accessible text remains in the h1. */
.particle-heading{position:relative;height:clamp(170px,29vw,470px);isolation:isolate}
.particle-heading canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:pan-y}
.particle-heading.is-ready>span{visibility:hidden}
.intro-label{align-items:center}.intro-label .eyebrow{margin-bottom:0}.intro-label{margin-bottom:30px}
.motion-toggle{color:var(--muted);background:transparent;border:0;border-bottom:1px solid var(--line);padding:8px 0;font:10px 'Courier New',monospace;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}
.motion-toggle:hover{color:var(--cyan);border-color:var(--cyan)}
@media(max-width:600px){.particle-heading{height:31vw;min-height:125px}.intro-label{margin-bottom:20px;gap:12px}.intro-label .eyebrow{font-size:9px}.motion-toggle{font-size:9px}.intro{gap:28px}}
@media(prefers-reduced-motion:reduce){.motion-toggle{display:none}}
@media print{.particle-heading canvas{display:none}.particle-heading.is-ready>span{visibility:visible}}
.card-status{margin-left:0}
/* Approved Structure monogram. */
.brand-mark{border:0;background:transparent;width:54px;height:32px;padding:0;display:block;flex:none;letter-spacing:normal}
.brand-mark svg{display:block;width:100%;height:100%}
@media(max-width:700px){.brand-mark{width:46px;height:28px}}
/* Preserve the complete portrait, without padding or a forced image box. */
.portrait{background:transparent;min-width:0}
.portrait img{display:block;width:100%;height:auto;max-height:none;padding:0;aspect-ratio:auto;object-fit:contain;background:transparent}
.portrait figcaption{padding:14px 0;background:transparent}
.intro h1 em{font-family:Arial,Helvetica,sans-serif;font-weight:400}
/* Footer experiment: an interactive topographic field rather than lettering. */
.halftone.particle-landscape{height:clamp(230px,32vw,560px);margin-top:30px}
@media(max-width:600px){.halftone.particle-landscape{height:250px;margin-top:20px}}
/* Full-bleed particle field and solid-at-rest project titles. */
.halftone.particle-landscape{margin-top:0}
.interactive-title{position:relative;isolation:isolate}
.title-ink{display:block}
.title-particles{position:absolute;left:calc(-1 * var(--particle-pad,40px));top:calc(-1 * var(--particle-pad,40px));width:calc(100% + 2 * var(--particle-pad,40px));height:calc(100% + 2 * var(--particle-pad,40px));pointer-events:none}
.is-particle-ready .title-ink{opacity:0}
@media(prefers-reduced-motion:reduce){.title-particles{display:none}.is-particle-ready .title-ink{opacity:1}}
@media print{.title-particles{display:none}.is-particle-ready .title-ink{opacity:1}}
.gallery-slide img.native-size,.project-figure img.native-size{width:auto;max-width:100%;margin-inline:auto}.image-sequence:has(.native-size){align-items:center}
.image-sequence.natural img,.image-sequence.plans img{aspect-ratio:auto;height:auto;object-fit:contain}.image-sequence.plans{grid-template-columns:1fr;gap:40px}.project-external-animation .section-line{gap:20px;flex-wrap:wrap}.film-source{font:11px 'Courier New',monospace;text-transform:uppercase;border-bottom:1px solid currentColor;padding-bottom:4px}.video-embed{position:relative;aspect-ratio:16/9;background:#080808}.video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
/* Match the Cy-Fair stair view to the adjacent 767 × 525 lobby view. */
.image-sequence:has(img[src*="/assets/cyfair-vpac-stairs-"]){align-items:start}
.image-sequence img[src*="/assets/cyfair-vpac-stairs-"]{width:100%;height:auto;aspect-ratio:767 / 525;object-fit:cover;object-position:center}
/* AI practice: actual application screens within the portfolio's visual language. */
.ai-section,.ai-projects,.ai-method{margin-top:100px;margin-bottom:100px}
.ai-section-intro,.ai-intro{display:grid;grid-template-columns:1fr 1fr;gap:8%;margin-bottom:48px}
.ai-section-intro h2,.ai-intro h2{font-family:Arial Black,Arial,sans-serif;font-size:clamp(26px,3.2vw,52px);line-height:1.08;text-transform:uppercase;margin:0 0 24px;letter-spacing:-.045em}
.ai-section-intro p,.ai-intro p{font-size:18px;line-height:1.65;max-width:680px}
.ai-intro{padding-block:55px;border-top:1px solid #292c33;border-bottom:1px solid #292c33}
.ai-intro>.eyebrow{font-size:11px;color:#37d7f3}
.ai-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:55px 28px}
.ai-card a{display:block;text-decoration:none}
.ai-card img{display:block;width:100%;aspect-ratio:1.6;object-fit:contain;background:#0d1015;border:1px solid #252c35;transition:border-color .2s}
.ai-card a:hover img,.ai-card a:focus-visible img{border-color:#37d7f3}
.ai-card h3{font-family:Arial Black,Arial,sans-serif;font-size:clamp(23px,2.5vw,38px);text-transform:uppercase;letter-spacing:-.04em;line-height:1.1;margin:12px 0}
.ai-card .eyebrow{font-size:10px;color:#a5adba;margin:22px 0 0}
.ai-card p:not(.eyebrow){font-size:16px;color:#bfc5d0;margin:0 0 18px;line-height:1.5}
.ai-card-link{font:11px monospace;text-transform:uppercase;color:#37d7f3}
.ai-index-link{display:inline-flex;margin-top:26px;gap:14px}
.ai-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:30px}
.ai-steps article{border-top:1px solid #46505d;padding-top:24px}
.ai-steps h3{font:900 22px Arial,sans-serif;text-transform:uppercase;margin:0 0 18px}
.ai-steps p{font-size:16px;line-height:1.65;color:#bec5cf;margin:0}
.ai-process{margin:70px 0}
.ai-screens{margin:80px 0 40px}
.ai-screens figure{margin:0 0 55px}
.ai-screens img{display:block;width:100%;height:auto;max-height:1000px;object-fit:contain;background:#101216}
.ai-screens figcaption{font-size:13px;line-height:1.5;color:#aab4c3;margin-top:14px}
.ai-source-note{color:#aab4c3;font-size:13px;line-height:1.7;max-width:850px;padding:25px 0;border-top:1px solid #292c33;margin-bottom:50px}
.ai-case .gallery-slide img{object-fit:contain}
@media(max-width:700px){.ai-section,.ai-projects,.ai-method{margin-top:65px;margin-bottom:65px}.ai-grid,.ai-section-intro,.ai-intro{grid-template-columns:1fr;gap:30px}.ai-card .eyebrow{font-size:9px}.ai-section-intro p,.ai-intro p{font-size:16px}.ai-steps{grid-template-columns:1fr}.ai-process,.ai-screens{margin-top:50px}.ai-heading h1{font-size:clamp(40px,12vw,78px)}.ai-section .section-line,.ai-projects .section-line{gap:15px;align-items:start;flex-wrap:wrap}}

.ai-feature{border-top:1px solid var(--line);padding:48px 0}.ai-feature-copy{max-width:820px;margin-bottom:28px}.ai-feature-copy h2{font-size:clamp(26px,3.5vw,48px);margin:0 0 16px}.ai-feature figure{margin:0}.ai-feature img{display:block;width:100%;height:auto;max-height:1000px;object-fit:contain;background:#111319}.ai-feature figcaption{font-size:13px;color:var(--muted);margin-top:12px}

/* Compact mobile filters; desktop retains the category buttons. */
.index-filter-mobile{display:none}
@media(max-width:700px){
 .index-tools{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 16px;align-items:end;padding-block:18px}
 .index-filters{display:none}
 .index-filter-mobile{display:grid;grid-column:1;grid-row:1 / 3;gap:10px;min-width:0}
 .index-filter-mobile>span{font:10px 'Courier New',monospace;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
 .index-filter-mobile select{width:100%;min-width:0;min-height:48px;padding:12px 36px 12px 14px;border:1px solid var(--line);border-radius:0;background:var(--paper);color:var(--ink);font:12px 'Courier New',monospace;text-transform:uppercase;cursor:pointer;color-scheme:dark}
 .index-filter-mobile select:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
 .index-tools [data-layout]{grid-column:2;grid-row:2;min-height:48px;padding-inline:16px;cursor:pointer}
 .index-tools [data-result-count]{grid-column:2;grid-row:1;text-align:right;align-self:start;line-height:12px;white-space:nowrap;color:var(--muted)}
}

.interactive-title{touch-action:pan-y}

/* Section shortcuts are anchors, independent of the category filters. */
.index-jumps{display:flex;gap:5px;flex-shrink:0}
.index-jumps a{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:12px;border:1px solid var(--line);font:10px 'Courier New',monospace;text-transform:uppercase;letter-spacing:0;line-height:normal}
.index-jumps a:hover{border-color:var(--cyan);color:var(--cyan)}
@media(max-width:700px){
 .index-jumps{grid-column:1/-1;grid-row:3;display:grid;grid-template-columns:minmax(0,1fr) auto;margin-top:4px}
 .index-jumps a{min-height:44px;padding-inline:16px}
}

@media(min-width:701px) and (max-width:1600px){.index-filters{flex-basis:100%}.index-jumps{margin-right:auto}}

/* The film sits behind the existing, fully interactive landing content. */
.intro-video{position:relative;isolation:isolate;overflow:hidden;min-height:clamp(540px,48vw,850px);margin-bottom:40px}
.hero-video-media{position:absolute;inset:0;z-index:-1;pointer-events:none;background:#08080a}
.hero-video-media video{display:block;width:100%;height:100%;object-fit:cover}
.hero-video-media::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,8,10,.67),rgba(8,8,10,.35)),linear-gradient(0deg,rgba(8,8,10,.95),rgba(8,8,10,.12) 75%)}
.intro-video .hero-copy,.intro-video .intro-note{min-width:0}
.intro-video .intro-note{align-self:end}
.intro-video .technical-label,.intro-video .motion-toggle{color:#d3d3da}
.hero-video-tools{display:flex;align-items:center;gap:12px;margin-top:24px}
.hero-video-tools button,.hero-video-tools a{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:44px;padding:12px 16px;border:1px solid #64646e;background:rgba(8,8,10,.45);color:var(--ink);font:10px 'Courier New',monospace;text-transform:uppercase;letter-spacing:.04em;cursor:pointer}
.hero-video-tools button:hover,.hero-video-tools a:hover{border-color:var(--cyan);color:var(--cyan)}
.hero-film-viewer{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:24px var(--gutter);border:0;background:#070709;color:var(--ink)}
.hero-film-viewer::backdrop{background:#070709}
.hero-film-header{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:20px}
.hero-film-header h2{font:11px 'Courier New',monospace;text-transform:uppercase;letter-spacing:.05em}
.hero-film-header button{min-height:44px;padding:10px 18px;border:1px solid var(--line);background:transparent;color:var(--ink);font:11px 'Courier New',monospace;cursor:pointer}
.hero-film-viewer video{display:block;width:100%;height:calc(100dvh - 112px);object-fit:contain;background:#070709}
@media(max-width:700px){.intro-video{min-height:0;margin-bottom:26px}.hero-video-tools{margin-top:20px}.hero-film-viewer{padding:16px}.hero-film-header{gap:12px;margin-bottom:12px}.hero-film-header h2{font-size:10px}.hero-film-viewer video{height:calc(100dvh - 90px)}}
@media print{.hero-video-media,.hero-video-tools,.hero-film-viewer{display:none}.intro-video{min-height:0}}

/* Fit the monogram within the visible two-line lettering. */
.wordmark{--brand-secondary-height:19.6px}
.wordmark .brand-mark{font-size:inherit;width:auto;height:calc(1.35em + var(--brand-secondary-height) - 8px);aspect-ratio:110 / 50}
@media(max-width:600px){.wordmark{--brand-secondary-height:18px}}
/* Individual exhibit models: a neutral product stage within the project story. */
.exhibit-section{margin:clamp(56px,7vw,112px) 0;scroll-margin-top:28px}
.exhibit-intro{display:grid;grid-template-columns:1.15fr 1fr;gap:5%;align-items:end;margin:30px 0 36px}
.exhibit-intro h2{font-size:clamp(28px,3vw,50px);line-height:1.02;text-transform:uppercase;margin:0;max-width:650px}
.exhibit-intro>p{font-size:clamp(15px,1.2vw,19px);line-height:1.65;max-width:520px;margin:0;color:#c1c1c8}
.exhibit-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,29%);gap:28px;align-items:start}
.exhibit-stage{position:relative;background:#e9e9ec;aspect-ratio:1.28;min-height:360px;overflow:hidden;border:1px solid #33333b}
.exhibit-stage .exhibit-canvas{display:block;width:100%;height:100%;position:absolute;inset:0;--poster-color:#e9e9ec;--progress-bar-color:#00cce6;--progress-bar-height:3px;touch-action:pan-y}
.exhibit-loading{position:absolute;bottom:28px;left:20px;right:20px;color:#24242a;text-align:center;font-size:14px;pointer-events:none}
.exhibit-retry{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#111116;color:white;border:1px solid #444;padding:12px 22px;cursor:pointer}
.exhibit-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:17px 0;border-bottom:1px solid #303036}
.exhibit-toolbar>span{font-size:12px;color:#b7b7c0}
.exhibit-toolbar>div{display:flex;flex-wrap:wrap;gap:7px}
.exhibit-toolbar button{border:1px solid #41414a;background:transparent;color:#f0f0f4;padding:10px 13px;font:inherit;font-size:12px;cursor:pointer;min-height:40px}
.exhibit-toolbar button:hover,.exhibit-toolbar button[aria-pressed="true"]{border-color:#00cce6;color:#00cce6}
.exhibit-keyboard{font-size:11px;color:#9c9ca8;margin:12px 0 0}
.exhibit-details>.eyebrow{margin:0 0 15px}
.exhibit-options{display:grid;gap:8px}
.exhibit-option{display:flex;align-items:center;gap:15px;width:100%;min-height:66px;text-align:left;border:1px solid #33333c;background:#111115;padding:14px 18px;color:#f1f1f6;font:inherit;font-size:15px;cursor:pointer}
.exhibit-option[aria-pressed="true"]{border-color:#00cce6;background:#101d22;box-shadow:inset 3px 0 #00cce6}
.exhibit-option:hover{border-color:#aaaab5}
.exhibit-option img{width:74px;height:60px;object-fit:contain;background:#e9e9ec}
.exhibit-option-arrow{margin-left:auto;color:#00cce6;opacity:0}
.exhibit-option[aria-pressed="true"] .exhibit-option-arrow{opacity:1}
.exhibit-caption{padding-top:28px;min-height:135px}
.exhibit-caption h3{font-size:23px;text-transform:uppercase;margin:0 0 12px}
.exhibit-caption p{color:#bdbdc8;font-size:14px;line-height:1.65;margin:0}
.exhibit-note{font-size:11px;line-height:1.6;color:#92929f;padding-top:20px;margin-top:20px;border-top:1px solid #303036}
.exhibit-section button:focus-visible{outline:2px solid #00cce6;outline-offset:4px}
body.exhibit-expanded{overflow:hidden}
.exhibit-section.is-expanded{position:fixed;inset:0;z-index:10000;background:#0c0c10;margin:0;padding:25px 4vw;overflow:auto;overscroll-behavior:contain}
.exhibit-section.is-expanded .exhibit-intro,.exhibit-section.is-expanded>.section-line{display:none}
.exhibit-section.is-expanded .exhibit-stage{height:calc(100dvh - 150px);aspect-ratio:auto}
@media(max-width:900px){.exhibit-layout{grid-template-columns:minmax(0,1fr) minmax(210px,31%);gap:18px}.exhibit-option{padding:12px;font-size:13px;gap:10px}.exhibit-option img{width:55px;height:48px}.exhibit-stage{min-height:380px}}
@media(max-width:700px){.exhibit-intro{grid-template-columns:1fr;gap:20px;margin:24px 0}.exhibit-layout{grid-template-columns:1fr;gap:28px}.exhibit-stage{min-height:0;aspect-ratio:1 / 1.08}.exhibit-options{grid-template-columns:1fr 1fr}.exhibit-option{min-height:70px;font-size:12px;padding:10px;gap:8px}.exhibit-option img{width:46px;height:46px}.exhibit-option-arrow{display:none}.exhibit-caption{min-height:0;padding-top:24px}.exhibit-toolbar{gap:12px}.exhibit-toolbar>div{width:100%}.exhibit-toolbar button{flex:1;min-height:44px}.exhibit-keyboard{display:none}.exhibit-section.is-expanded .exhibit-layout{display:block}.exhibit-section.is-expanded .exhibit-details{display:none}.exhibit-section.is-expanded .exhibit-stage{height:calc(100dvh - 160px)}}

.exhibit-canvas{outline-offset:-4px;cursor:grab}.exhibit-canvas:active{cursor:grabbing}.exhibit-canvas:focus-visible{outline:2px solid #00cce6}

/* Selected French Valley drawings: four sheets, paired for comparison. */
#design-drawings .image-sequence.plans{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 24px;align-items:start}
#design-drawings .image-sequence.plans img{width:100%;aspect-ratio:1.85;height:auto;object-fit:contain;background:#fff!important;padding:12px}
.exhibit-stage{background:#303138}
.exhibit-poster{position:absolute;inset:0;pointer-events:none}
.exhibit-poster img{width:100%;height:100%;object-fit:cover;opacity:.4}
.exhibit-poster[hidden],.exhibit-launch[hidden],.exhibit-retry[hidden]{display:none}
.exhibit-launch{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#111116;color:#fff;border:1px solid #00cce6;padding:16px 24px;min-height:48px;cursor:pointer;white-space:nowrap}
.exhibit-loading{color:#fff;background:rgba(10,10,14,.8);padding:10px;border-radius:3px}
.exhibit-toolbar button:disabled{opacity:.4;cursor:default}
.exhibit-toolbar>div{flex-wrap:wrap}
@media(max-width:650px){#design-drawings .image-sequence.plans{grid-template-columns:1fr}.exhibit-toolbar button{flex:1 1 40%}}

.exhibit-section--stair .exhibit-layout{grid-template-columns:minmax(280px,600px) minmax(0,1fr);justify-content:start;gap:42px}
.exhibit-section--stair .exhibit-stage{aspect-ratio:0.72;min-height:600px}
.exhibit-credits{font-size:11px;color:var(--muted);margin-top:15px}.exhibit-credits p{font-size:11px;line-height:1.5;padding-top:8px}.exhibit-credits a{text-decoration:underline}.exhibit-credits summary{cursor:pointer}
@media(max-width:700px){.exhibit-section--stair .exhibit-layout{grid-template-columns:1fr}.exhibit-section--stair .exhibit-stage{min-height:0;aspect-ratio:.7}}

.exhibit-context{margin:30px 0 0}.exhibit-context img{display:block;width:100%;height:auto;max-height:680px;object-fit:contain;object-position:left top}.exhibit-context figcaption{font-size:12px;color:var(--muted);line-height:1.5;margin-top:12px}

.project-animation video{aspect-ratio:16/9;object-fit:contain;background:#09090b}

@media(min-width:701px){
.exhibit-section--stair .exhibit-layout{align-items:stretch;grid-template-rows:auto auto;column-gap:42px;row-gap:0}
.exhibit-section--stair .exhibit-display,.exhibit-section--stair .exhibit-details{display:grid;grid-row:1 / span 2;grid-template-rows:subgrid}
.exhibit-section--stair .exhibit-display{grid-column:1}
.exhibit-section--stair .exhibit-details{grid-column:2}
.exhibit-section--stair .exhibit-display-main,.exhibit-section--stair .exhibit-details-main{grid-row:1}
.exhibit-section--stair .exhibit-display-main{display:flex;flex-direction:column}
.exhibit-section--stair .exhibit-stage{flex:1}
.exhibit-section--stair .exhibit-toolbar{border-bottom:0}
.exhibit-section--stair .exhibit-keyboard,.exhibit-section--stair .exhibit-note{grid-row:2;margin:0;border-top:1px solid #303036;padding-top:16px;line-height:1.6}
.exhibit-section--stair .exhibit-context{margin-bottom:20px}
}

.gallery-slide img.native-size[width="400"],.project-figure img.native-size[width="400"],.viewer-stage img.native-size[width="400"]{max-width:min(100%,400px)}
.gallery-slide img.native-size[width="596"],.project-figure img.native-size[width="596"],.viewer-stage img.native-size[width="596"]{max-width:min(100%,596px)}
.gallery-slide img.native-size[width="1409"],.project-figure img.native-size[width="1409"],.viewer-stage img.native-size[width="1409"]{max-width:min(100%,1409px)}
.gallery-slide img.native-size[width="767"],.project-figure img.native-size[width="767"],.viewer-stage img.native-size[width="767"]{max-width:min(100%,767px)}
.gallery-slide img.native-size[width="1655"],.project-figure img.native-size[width="1655"],.viewer-stage img.native-size[width="1655"]{max-width:min(100%,1655px)}
.gallery-slide img.native-size[width="646"],.project-figure img.native-size[width="646"],.viewer-stage img.native-size[width="646"]{max-width:min(100%,646px)}
.gallery-slide img.native-size[width="3840"],.project-figure img.native-size[width="3840"],.viewer-stage img.native-size[width="3840"]{max-width:min(100%,3840px)}
.gallery-slide img.native-size[width="1536"],.project-figure img.native-size[width="1536"],.viewer-stage img.native-size[width="1536"]{max-width:min(100%,1536px)}
.gallery-slide img.native-size[width="1654"],.project-figure img.native-size[width="1654"],.viewer-stage img.native-size[width="1654"]{max-width:min(100%,1654px)}
.gallery-slide img.native-size[width="1923"],.project-figure img.native-size[width="1923"],.viewer-stage img.native-size[width="1923"]{max-width:min(100%,1923px)}
.gallery-slide img.native-size[width="2160"],.project-figure img.native-size[width="2160"],.viewer-stage img.native-size[width="2160"]{max-width:min(100%,2160px)}
.gallery-slide img.native-size[width="3796"],.project-figure img.native-size[width="3796"],.viewer-stage img.native-size[width="3796"]{max-width:min(100%,3796px)}
.gallery-slide img.native-size[width="736"],.project-figure img.native-size[width="736"],.viewer-stage img.native-size[width="736"]{max-width:min(100%,736px)}
.gallery-slide img.native-size[width="1617"],.project-figure img.native-size[width="1617"],.viewer-stage img.native-size[width="1617"]{max-width:min(100%,1617px)}
.gallery-slide img.native-size[width="928"],.project-figure img.native-size[width="928"],.viewer-stage img.native-size[width="928"]{max-width:min(100%,928px)}
.gallery-slide img.native-size[width="774"],.project-figure img.native-size[width="774"],.viewer-stage img.native-size[width="774"]{max-width:min(100%,774px)}
.gallery-slide img.native-size[width="775"],.project-figure img.native-size[width="775"],.viewer-stage img.native-size[width="775"]{max-width:min(100%,775px)}
.balloon-study{margin:70px 0 100px;scroll-margin-top:24px;color:#eee}.balloon-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:30px}.balloon-heading h2{font-size:clamp(36px,4.2vw,66px);line-height:1;letter-spacing:-.045em;margin:12px 0 0;font-weight:800;text-transform:uppercase}.balloon-heading>p{color:#aaa;font-size:15px;line-height:1.6;max-width:310px}.balloon-modes{display:flex;gap:5px;border-top:1px solid #424249;padding:18px 0}.balloon-study button{font:inherit;color:inherit;background:none;border:1px solid #4a4a52;padding:11px 15px;font-size:12px}.balloon-modes button[aria-pressed=true]{background:#ebedef;color:#121216;border-color:#ebedef}.balloon-layout{display:grid;grid-template-columns:minmax(0,1fr) 278px;border:1px solid #424249;background:#17171b}.balloon-stage{position:relative;min-width:0;min-height:640px;background:radial-gradient(ellipse at 50% 40%,#41434b,#26272d 70%);overflow:hidden}.balloon-stage canvas{display:block;width:100%;height:100%;position:absolute;inset:0;touch-action:none}.balloon-view-label{position:absolute;top:22px;left:24px;pointer-events:none;display:grid;gap:8px}.balloon-view-label>span{text-transform:uppercase;letter-spacing:.1em;font-size:11px;font-weight:700}.balloon-view-label small{font-size:11px;color:#c3c3c9}.balloon-stage-tools{position:absolute;bottom:18px;left:20px;display:flex;gap:6px}.balloon-stage-tools button{background:#1c1c21d9;backdrop-filter:blur(12px)}.balloon-panel{border-left:1px solid #424249;padding:24px 20px;display:flex;flex-direction:column}.balloon-panel>.eyebrow{font-size:10px;color:#aeb0b9;margin:0 0 26px}.balloon-range-label{font-size:12px;display:flex;justify-content:space-between}.balloon-range-label output{color:#8be4f2;font-variant-numeric:tabular-nums}#balloon-explode{width:100%;margin:17px 0 10px;accent-color:#8be4f2}.balloon-range-ends{display:flex;justify-content:space-between;color:#8c8d99;font-size:10px}.balloon-parts{margin:26px 0 20px;display:grid;gap:0}.balloon-parts button{display:flex;align-items:center;text-align:left;gap:10px;border:0;border-bottom:1px solid #36363d;padding:14px 0;font-size:12px}.balloon-parts i{display:block;width:5px;height:5px;border-radius:50%;background:#666671}.balloon-parts button[aria-pressed=true]{color:#8be4f2}.balloon-parts button[aria-pressed=true] i{background:#8be4f2;box-shadow:0 0 8px #8be4f270}.balloon-parts small{margin-left:auto;color:#71737f;font-size:9px}.balloon-part-detail h3{font-size:15px;letter-spacing:-.02em;margin:0 0 10px}.balloon-part-detail p{font-size:12px;color:#b8b8c2;line-height:1.65;margin:0 0 14px;min-height:80px}.balloon-part-detail>span{font-size:10px;color:#8be4f2}.balloon-switches{display:flex;flex-wrap:wrap;gap:13px;margin-top:auto;padding-top:25px;font-size:11px;color:#c5c5cd}.balloon-switches label{display:flex;align-items:center;gap:7px}.balloon-switches input{accent-color:#8be4f2}.balloon-foot{display:flex;justify-content:space-between;gap:20px;font-size:11px;color:#a0a0ac;line-height:1.6;padding:12px 0}.balloon-foot p{margin:0}.balloon-foot span{margin:0 6px}.balloon-notes{font-size:12px;color:#92929d;line-height:1.7;border-top:1px solid #33333b;padding-top:14px}.balloon-notes summary{cursor:pointer;color:#c1c1ca}.balloon-notes p{max-width:920px}.balloon-loading{position:absolute;inset:0;display:grid;place-items:center;background:#25262d;color:#ccc;font-size:14px;z-index:2}.balloon-loading[hidden]{display:none}.balloon-study.is-enlarged{position:fixed;inset:0;z-index:1000;background:#111115;margin:0;padding:22px;overflow:auto}.balloon-study.is-enlarged .balloon-heading{display:none}.balloon-study.is-enlarged .balloon-stage{height:calc(100dvh - 180px);min-height:500px}.balloon-study.is-enlarged .balloon-notes{display:none}body.balloon-expanded{overflow:hidden}.balloon-study button:focus-visible,.balloon-study input:focus-visible,.balloon-stage canvas:focus-visible{outline:2px solid #8be4f2;outline-offset:4px}
@media(max-width:850px){.balloon-layout{grid-template-columns:minmax(0,1fr) 240px}.balloon-stage{min-height:600px}.balloon-panel{padding:20px 15px}.balloon-heading>p{display:none}.balloon-foot{flex-direction:column;gap:6px}}
@media(max-width:620px){.balloon-study{margin:45px 0 65px}.balloon-layout{grid-template-columns:1fr}.balloon-stage{min-height:440px}.balloon-panel{border-left:0;border-top:1px solid #424249;padding:22px}.balloon-parts{grid-template-columns:1fr 1fr;gap:0 15px;margin-top:20px}.balloon-part-detail p{min-height:0}.balloon-modes{gap:4px;overflow:auto}.balloon-modes button{padding:10px 11px;white-space:nowrap;font-size:10px}.balloon-switches{margin-top:15px}.balloon-study.is-enlarged{padding:12px}.balloon-study.is-enlarged .balloon-stage{height:58dvh;min-height:340px}.balloon-heading h2{font-size:38px}}

.balloon-study[data-compact=true] canvas{touch-action:pan-y}
@media(max-width:620px){.balloon-modes{display:grid;grid-template-columns:1fr 1fr;overflow:visible}.balloon-modes button{font-size:12px;white-space:normal}}
