@font-face{font-family:'Bricolage Grotesque';src:url('/assets/fonts/bricolage.woff2') format('woff2');font-weight:400 800;font-display:swap}
@font-face{font-family:'Hanken Grotesk';src:url('/assets/fonts/hanken.woff2') format('woff2');font-weight:400 800;font-display:swap}
@font-face{font-family:'Space Mono';src:url('/assets/fonts/space-mono.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Space Mono';src:url('/assets/fonts/space-mono-bold.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'Sacramento';src:url('/assets/fonts/sacramento.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
:root{color-scheme:dark;--bg:#0e0e0e;--paper:#1d1d1d;--paper-2:#262626;--ink:#fff;--muted:#adadad;--line:#3b3b3b;--accent:#f1eb1c;--accent-ink:#151515;--mono:'Space Mono',monospace;--display:'Bricolage Grotesque',system-ui,sans-serif;--body:'Hanken Grotesk',system-ui,sans-serif}
:root[data-theme=light]{color-scheme:light;--bg:#8dc7ea;--paper:#fffefb;--paper-2:#f1f6f8;--ink:#142a36;--muted:#526e7d;--line:#cfdee6;--accent:#f0531c;--accent-ink:white}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:48px}body{margin:0;min-width:320px;color:var(--ink);font-family:var(--body);background:var(--bg);line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}body.viewer-open{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:4px}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.05}::selection{background:var(--accent);color:var(--accent-ink)}.skip-link{position:fixed;top:-90px;left:14px;padding:12px;background:var(--paper);z-index:400}.skip-link:focus{top:38px}.eyebrow{font:700 10px var(--mono);letter-spacing:.12em}.portfolio-sky{position:fixed;inset:0;z-index:-2;overflow:hidden;pointer-events:none;display:none}:root[data-theme=light] .portfolio-sky{display:block}.portfolio-sky img{position:absolute;width:550px;opacity:.4}.portfolio-sky img:first-child{top:95px;left:-135px}.portfolio-sky img:last-child{right:-120px;bottom:4%;width:670px}

/* The ruler, floating navigation, frame handles and footer follow the home page. */
.frame-label{position:absolute;top:-21px;left:-1px;line-height:20px;background:var(--accent);color:var(--accent-ink);border-radius:3px 3px 0 0;padding:0 9px;font:700 8px/20px var(--mono);letter-spacing:.06em}.handle{position:absolute;width:7px;height:7px;border:1px solid var(--accent);background:var(--paper)}.tl{top:-4px;left:-4px}.tr{top:-4px;right:-4px}.bl{bottom:-4px;left:-4px}.br{bottom:-4px;right:-4px}

/* Portfolio landing. */
.portfolio-hero,.category-hero{text-align:center;padding:64px 24px 78px}.hero-kicker{display:block;color:var(--accent);font:700 10px var(--mono);letter-spacing:.14em;margin-bottom:29px}.hero-kicker span{font-size:27px;vertical-align:middle;margin-right:7px}.hero-heading{position:relative;display:table;max-width:100%;margin:0 auto;border:1px solid color-mix(in srgb,var(--accent) 70%,transparent);padding:20px 32px 27px}.hero-heading h1{font:800 clamp(52px,8.4vw,118px)/.9 var(--display);letter-spacing:-.068em}.hero-heading h1 em{font-style:normal;color:var(--accent)}.portfolio-hero>p,.category-hero>p{max-width:600px;margin:32px auto 0;color:var(--muted);font-size:17px;line-height:1.65}.scroll-link{margin:44px auto 0;display:inline-flex;align-items:center;gap:14px;font:700 9px var(--mono);letter-spacing:.08em}.scroll-link span{width:31px;height:31px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-size:17px}.portfolio-categories{padding:85px 28px 128px}.section-heading{text-align:center;margin-bottom:48px}.section-heading .eyebrow{color:var(--accent)}.section-heading h2,.portfolio-note h2{font:800 clamp(44px,5.5vw,78px)/.98 var(--display);letter-spacing:-.06em;margin:15px 0}.section-heading h2 em,.portfolio-note h2 em{font-style:normal;color:var(--accent)}.section-heading p{color:var(--muted);font-size:16px}.discipline-grid{max-width:1320px;margin:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.discipline-card{min-width:0;border:1px solid var(--line);border-radius:21px;background:var(--paper);padding:10px;transition:transform .25s,border-color .25s,box-shadow .25s}.discipline-card:hover{transform:translateY(-7px);border-color:var(--accent);box-shadow:0 22px 44px #0003}.discipline-image{height:260px;border-radius:12px;overflow:hidden;background:var(--paper-2);position:relative;display:grid;place-items:center}.discipline-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.discipline-card:hover img{transform:scale(1.035)}.discipline-card:first-child .discipline-image img,.discipline-card:nth-child(2) .discipline-image img{object-fit:contain;padding:8px}.card-index{position:absolute;top:12px;left:12px;background:var(--accent);color:var(--accent-ink);font:700 9px var(--mono);padding:7px 9px;border-radius:4px}.discipline-info{padding:24px 17px 17px}.discipline-info .eyebrow{color:var(--accent)}.discipline-info h3{font:800 clamp(26px,2.55vw,37px)/1.06 var(--display);letter-spacing:-.055em;margin:12px 0 10px}.discipline-info p{color:var(--muted);font-size:13px}.open-link{display:inline-flex;align-items:center;gap:10px;margin-top:25px;color:var(--accent);font:700 11px var(--mono)}.open-link svg{transition:transform .2s}.discipline-card:hover .open-link svg{transform:translate(3px,-3px)}.portfolio-note{text-align:center;border-top:1px solid var(--line);padding:110px 24px 140px}.portfolio-note .eyebrow{color:var(--accent)}.portfolio-note p{max-width:500px;margin:19px auto 0;color:var(--muted)}

/* Individual discipline pages and collection cards. */
.category-hero{padding-top:40px;padding-bottom:65px}.breadcrumb{display:inline-block;font:700 10px var(--mono);margin-bottom:50px;border-bottom:1px solid var(--line);padding-bottom:8px}.breadcrumb:hover{color:var(--accent)}.category-hero .hero-heading h1{font-size:clamp(55px,8.7vw,123px)}.discipline-switch{margin:46px auto 0;padding:5px;display:flex;align-items:center;justify-content:center;gap:4px;width:max-content;max-width:100%;border:1px solid var(--line);border-radius:60px;background:var(--paper)}.discipline-switch a{font:700 10px var(--mono);padding:11px 17px;border-radius:40px;white-space:nowrap}.discipline-switch a.active{background:var(--accent);color:var(--accent-ink)}.discipline-switch a:not(.active):hover{color:var(--accent)}.category-browser{max-width:1480px;width:calc(100% - 56px);margin:0 auto 130px;display:grid;grid-template-columns:235px minmax(0,1fr);gap:40px;align-items:start}.filter-panel{position:sticky;top:53px;min-width:0;border:1px solid var(--line);background:var(--paper);border-radius:20px;padding:18px}.filter-heading{padding:9px 8px 20px;border-bottom:1px solid var(--line)}.filter-heading .eyebrow{color:var(--accent);font-size:8px}.filter-heading strong{display:block;font:800 21px var(--display);letter-spacing:-.04em;margin-top:9px}.filter-options{display:flex;flex-direction:column;gap:4px;margin:11px -8px}.filter-options button{background:transparent;border:0;border-radius:10px;padding:12px 13px;display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;font-size:12px;font-weight:700}.filter-options button:hover{background:var(--paper-2)}.filter-options button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}.filter-options button small{font:700 8px var(--mono);opacity:.7;white-space:nowrap}.filter-back{display:block;border-top:1px solid var(--line);padding:16px 8px 2px;color:var(--muted);font:700 9px var(--mono)}.filter-back:hover{color:var(--accent)}.project-list{min-width:0}.list-heading{min-height:101px;display:flex;align-items:end;justify-content:space-between;gap:20px;padding:2px 0 23px}.list-heading .eyebrow{color:var(--accent)}.list-heading h2{font:800 clamp(35px,4.4vw,60px)/1 var(--display);letter-spacing:-.055em;margin-top:8px}.list-heading h2 span{color:var(--accent)}.list-heading p{font:700 9px var(--mono);color:var(--muted);white-space:nowrap;margin-bottom:5px}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.project-card{display:block;width:100%;padding:9px;border:1px solid var(--line);border-radius:18px;background:var(--paper);text-align:left;min-width:0;transition:transform .2s,border-color .2s,box-shadow .2s}.project-card:hover{transform:translateY(-5px);border-color:var(--accent);box-shadow:0 15px 30px #0003}.project-image{height:235px;display:grid;place-items:center;border-radius:10px;background:var(--paper-2);overflow:hidden;position:relative}.project-image img{width:100%;height:100%;object-fit:contain;transition:transform .35s}.project-card:hover .project-image img{transform:scale(1.035)}body[data-portfolio-page=web] .project-image img{object-fit:cover}.project-open{position:absolute;top:10px;right:10px;width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-size:20px;line-height:1}.project-info{display:block;padding:17px 10px 10px}.project-info .eyebrow{color:var(--accent);font-size:8px}.project-info strong{display:block;font:800 22px/1.1 var(--display);letter-spacing:-.035em;margin:8px 0 14px}.project-info>small{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid var(--line);padding-top:12px;color:var(--muted);font:700 9px var(--mono)}.project-info>small span{color:var(--accent);white-space:nowrap}.load-error{padding:130px 24px;text-align:center}.load-error h1{font:800 50px var(--display)}.load-error p{margin:15px 0 25px}.load-error a{color:var(--accent)}

/* Gallery: a true deep-linked project view, with the image visible in full. */
.project-viewer{inset:0;margin:0;width:100vw;max-width:none;height:100dvh;max-height:none;border:0;padding:0;background:#090909f5;color:#fff;overflow:hidden}.project-viewer::backdrop{background:#000c}.viewer-head{height:69px;display:grid;grid-template-columns:1fr 2fr 1fr;align-items:center;gap:10px;padding:7px 22px;font:700 11px var(--mono)}.viewer-head>span{color:#ddd}.viewer-head>div:nth-child(2){text-align:center}.viewer-head strong{display:block;font:800 16px var(--display)}.viewer-head small{display:block;color:#aaa;font:10px var(--body);margin-top:3px}.viewer-actions{display:flex;justify-content:flex-end;gap:8px}.viewer-actions button,.viewer-arrow{border:1px solid #ffffff38;background:#ffffff18;color:white;border-radius:50%;display:grid;place-items:center;transition:background .2s,transform .2s}.viewer-actions button:hover,.viewer-arrow:hover{background:var(--accent);color:var(--accent-ink);transform:scale(1.06)}.viewer-actions button{width:37px;height:37px;font-size:18px}.viewer-main{height:calc(100dvh - 158px);display:grid;grid-template-columns:80px minmax(0,1fr) 80px;align-items:center;gap:15px}.viewer-arrow{width:48px;height:48px;justify-self:center;font:34px var(--body)}.viewer-frame{width:min(100%,1140px);height:100%;margin:auto;background:#e8e8e8;border-radius:15px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 25px 85px #0009}.browser-bar{height:37px;flex:none;background:#f5f5f5;color:#666;display:flex;align-items:center;justify-content:space-between;padding:0 14px;font:10px var(--mono);gap:10px}.traffic{display:flex;gap:5px}.traffic i{width:9px;height:9px;border-radius:50%;background:#ff5e56}.traffic i:nth-child(2){background:#ffbd2e}.traffic i:nth-child(3){background:#27c940}.browser-bar>span:nth-child(2){background:white;border-radius:5px;padding:5px 20px;max-width:55%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-type{font-size:8px;white-space:nowrap}.viewer-scroll{flex:1;min-height:0;overflow:auto;display:flex;align-items:center;justify-content:center;background:#dce5ea}.viewer-scroll img{display:block;max-width:100%;max-height:100%;height:auto;width:auto;object-fit:contain}.viewer-scroll.web-scroll{display:block;overflow:auto;background:white}.viewer-scroll.web-scroll img{display:block;width:100%;max-width:none;max-height:none;height:auto}.viewer-thumbs{height:89px;display:flex;align-items:center;justify-content:flex-start;gap:8px;padding:9px 18px;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#777 transparent;background:#111}.viewer-thumbs button{padding:0;width:105px;height:61px;flex:none;border:2px solid transparent;border-radius:7px;background:#333;overflow:hidden}.viewer-thumbs button[aria-current=true]{border-color:var(--accent)}.viewer-thumbs img{width:100%;height:100%;object-fit:cover}.viewer-frame:fullscreen{width:100vw;height:100dvh;border-radius:0}.viewer-frame:fullscreen .viewer-scroll{height:calc(100% - 37px)}

/* Site footer and compact controls. */

@media(max-width:1120px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio-header .availability{font-size:9px;padding:9px}.portfolio-header nav a{padding:10px 14px}.discipline-image{height:220px}.viewer-main{grid-template-columns:58px minmax(0,1fr) 58px;gap:7px}}
@media(max-width:900px){.portfolio-header{padding:0 22px}.portfolio-header .availability,.header-social{display:none}.portfolio-header nav{margin:auto}.discipline-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.discipline-card:last-child{grid-column:1/-1}.discipline-card:last-child .discipline-image{height:300px}.category-browser{grid-template-columns:1fr;width:calc(100% - 42px);gap:30px}.filter-panel{position:static}.filter-options{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;margin:13px 0 0}.filter-options button{border:1px solid var(--line)}.filter-back{display:none}.footer-content{display:block}.footer-links{max-width:680px;margin-top:36px}}
@media(max-width:600px){.portfolio-ruler{font-size:7px}.ruler-brand{padding-inline:5px}.ruler-live{padding-inline:5px;font-size:6px}.ruler-numbers{display:none}.portfolio-header{min-height:83px;padding:0 12px}.portfolio-header nav{width:100%;overflow-x:auto;justify-content:flex-start;scrollbar-width:none;padding:4px}.portfolio-header nav::-webkit-scrollbar{display:none}.portfolio-header nav a{font-size:11px;padding:9px 11px}.portfolio-header nav .nav-contact{gap:7px}.portfolio-header nav .nav-contact svg{width:13px}.portfolio-hero,.category-hero{padding:65px 18px 58px}.hero-kicker{font-size:8px;margin-bottom:28px}.hero-heading{padding:20px 15px 22px}.hero-heading h1,.category-hero .hero-heading h1{font-size:clamp(44px,11.5vw,66px);letter-spacing:-.07em}.portfolio-hero>p,.category-hero>p{font-size:14px;margin-top:24px}.portfolio-categories{padding:52px 18px 85px}.section-heading h2,.portfolio-note h2{font-size:45px}.discipline-grid{grid-template-columns:1fr}.discipline-card:last-child{grid-column:auto}.discipline-image,.discipline-card:last-child .discipline-image{height:220px}.portfolio-note{padding:78px 20px 110px}.breadcrumb{margin-bottom:36px}.discipline-switch{overflow-x:auto;justify-content:flex-start;border-radius:15px;width:100%;scrollbar-width:none}.discipline-switch a{padding:10px;font-size:8px}.category-browser{width:calc(100% - 28px);margin-bottom:90px}.filter-panel{padding:13px}.filter-heading{padding:5px 7px 12px}.filter-options{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.filter-options button{flex:none;white-space:nowrap;font-size:10px;padding:9px}.list-heading{min-height:75px}.list-heading h2{font-size:38px}.list-heading p{font-size:8px}.project-grid{grid-template-columns:1fr 1fr;gap:10px}.project-card{padding:5px;border-radius:12px}.project-image{height:170px;border-radius:8px}.project-info{padding:11px 6px 6px}.project-info strong{font-size:16px}.project-info .eyebrow{font-size:6px}.project-info>small{font-size:7px;flex-wrap:wrap}.project-info>small span{display:none}.project-open{width:25px;height:25px;font-size:16px}.viewer-head{height:59px;padding:4px 8px;grid-template-columns:50px 1fr 130px}.viewer-head strong{font-size:13px}.viewer-head small{font-size:8px}.viewer-head>span{font-size:8px}.viewer-actions{gap:4px}.viewer-actions button{width:29px;height:29px;font-size:15px}.viewer-main{height:calc(100dvh - 135px);grid-template-columns:35px minmax(0,1fr) 35px;gap:2px}.viewer-arrow{width:31px;height:31px;font-size:23px}.viewer-frame{border-radius:8px}.browser-bar{height:30px;padding-inline:6px;font-size:7px}.viewer-type{display:none}.viewer-thumbs{height:76px;padding:8px}.viewer-thumbs button{width:89px;height:52px}.portfolio-footer{padding:18px 18px 0;border-radius:25px 25px 0}.footer-content h2{font-size:38px}.footer-links{gap:11px}.footer-links h3{font-size:7px}.footer-links a{font-size:10px}.footer-wordmark{font-size:11.5vw;letter-spacing:-.08em}.footer-bottom{font-size:6px;flex-wrap:wrap;padding-bottom:78px}.footer-bottom span:last-child{width:100%}.portfolio-dock{left:11px;bottom:11px}.portfolio-dock small{font-size:7px}}
@media(max-width:380px){.project-grid{grid-template-columns:1fr}.project-image{height:240px}.hero-heading h1,.category-hero .hero-heading h1{font-size:43px}.ruler-live{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.discipline-card,.discipline-image img,.project-card,.project-image img,.footer-wordmark span{transition:none!important}}

.viewer-scroll:not(.web-scroll){background:radial-gradient(circle at center,#254351,#0f202b)}

/* Landing collections: the same direct, high-contrast type language as the home page. */
body[data-portfolio-page=landing] .portfolio-categories{padding:104px 28px 142px}
body[data-portfolio-page=landing] .portfolio-categories .section-heading{max-width:980px;margin:0 auto 62px}
body[data-portfolio-page=landing] .collection-note{display:block;margin-bottom:13px;color:var(--accent);font:400 italic clamp(21px,2.1vw,30px)/1.25 var(--display);letter-spacing:-.025em}
body[data-portfolio-page=landing] .section-heading h2,
body[data-portfolio-page=landing] .portfolio-note h2{margin:0;font:800 clamp(52px,6.2vw,86px)/.95 var(--body);letter-spacing:-.055em;text-transform:uppercase}
body[data-portfolio-page=landing] .section-heading h2 em,
body[data-portfolio-page=landing] .portfolio-note h2 em{font-style:normal;color:var(--accent)}
body[data-portfolio-page=landing] .section-heading>p{max-width:590px;margin:22px auto 0;font-size:17px;line-height:1.6}
body[data-portfolio-page=landing] .discipline-grid{max-width:1440px;gap:24px}
body[data-portfolio-page=landing] .discipline-card{padding:11px;border-radius:22px}
body[data-portfolio-page=landing] .discipline-image,
body[data-portfolio-page=landing] .discipline-card:last-child .discipline-image{height:auto;aspect-ratio:3/2;border-radius:13px}
body[data-portfolio-page=landing] .discipline-card .discipline-image img{width:100%;height:100%;padding:0;object-fit:cover}
body[data-portfolio-page=landing] .discipline-info{padding:25px 17px 18px}
body[data-portfolio-page=landing] .discipline-info h3{margin:0 0 13px;font:800 clamp(31px,2.9vw,43px)/1 var(--body);letter-spacing:-.055em}
body[data-portfolio-page=landing] .discipline-info p{max-width:40ch;color:var(--muted);font-size:15px;line-height:1.6}
body[data-portfolio-page=landing] .open-link{margin-top:27px;gap:9px;color:var(--ink);font:750 14px/1.2 var(--body);letter-spacing:-.01em}
body[data-portfolio-page=landing] .open-link svg{color:var(--accent)}
body[data-portfolio-page=landing] .portfolio-note{padding:118px 24px 148px}
body[data-portfolio-page=landing] .portfolio-note p{max-width:570px;font-size:16px;line-height:1.65}

@media(max-width:900px){body[data-portfolio-page=landing] .discipline-grid{gap:18px}body[data-portfolio-page=landing] .discipline-info h3{font-size:34px}}
@media(max-width:600px){body[data-portfolio-page=landing] .portfolio-categories{padding:68px 18px 92px}body[data-portfolio-page=landing] .portfolio-categories .section-heading{margin-bottom:40px}body[data-portfolio-page=landing] .collection-note{font-size:21px}body[data-portfolio-page=landing] .section-heading h2,body[data-portfolio-page=landing] .portfolio-note h2{font-size:clamp(42px,12vw,58px);line-height:.96}body[data-portfolio-page=landing] .section-heading>p{font-size:15px;margin-top:18px}body[data-portfolio-page=landing] .discipline-card{padding:8px}body[data-portfolio-page=landing] .discipline-info{padding:22px 14px 17px}body[data-portfolio-page=landing] .discipline-info h3{font-size:34px}body[data-portfolio-page=landing] .discipline-info p{font-size:15px}body[data-portfolio-page=landing] .portfolio-note{padding:82px 20px 112px}}

/* One type system across the portfolio: Hanken for display, drawn SVG notes for the human accent. */
.hero-heading h1,
.section-heading h2,
.portfolio-note h2,
.discipline-info h3,
.filter-heading strong,
.list-heading h2,
.project-info strong,
.load-error h1,
.viewer-head strong{font-family:var(--body);font-kerning:normal}
.hero-heading h1{letter-spacing:-.055em;text-wrap:balance}
.portfolio-scribble{display:block;width:min(var(--scribble-width),calc(100vw - 40px));margin:0 auto 21px;color:var(--accent);line-height:0}
.portfolio-scribble svg{display:block;width:100%;height:auto;overflow:visible}
.portfolio-scribble text{fill:currentColor;font:400 46px 'Sacramento',cursive;letter-spacing:0}
.portfolio-hero>.portfolio-scribble{margin-bottom:27px}
.category-hero .breadcrumb{margin-bottom:25px}
.category-hero>.portfolio-scribble{margin-bottom:22px}
.section-heading>.portfolio-scribble,.portfolio-note>.portfolio-scribble{margin-bottom:15px}
@media(max-width:600px){.portfolio-scribble{width:min(var(--scribble-width),calc(100vw - 32px));margin-bottom:15px}.portfolio-scribble text{font-size:44px}.portfolio-hero>.portfolio-scribble{margin-bottom:22px}.category-hero .breadcrumb{margin-bottom:20px}.category-hero>.portfolio-scribble{margin-bottom:17px}}

/* Gallery modes: websites keep browser chrome; artwork is presented without a fake window. */
.project-viewer .browser-bar{display:none}
.project-viewer.is-website .browser-bar{display:flex}
.project-viewer .viewer-main{height:calc(100dvh - 158px)}
.project-viewer.is-artwork .viewer-frame{min-height:0;background:transparent;border-radius:0;box-shadow:none;overflow:hidden}
.project-viewer.is-artwork .viewer-scroll,
.project-viewer.is-artwork .viewer-scroll:not(.web-scroll){width:100%;height:100%;min-height:0;background:transparent;overflow:hidden}
.project-viewer.is-artwork .viewer-scroll img{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain}
.viewer-thumbs{scrollbar-width:none;-ms-overflow-style:none;user-select:none;scroll-behavior:smooth;overscroll-behavior-x:contain}
.viewer-thumbs::-webkit-scrollbar{display:none;width:0;height:0}
.viewer-thumbs img{-webkit-user-drag:none}
.viewer-rail{height:89px;display:grid;grid-template-columns:58px minmax(0,1fr) 58px;align-items:stretch;background:#111}
.viewer-rail .viewer-thumbs{height:89px;padding-inline:7px}
.thumb-rail-button{width:40px;height:40px;align-self:center;justify-self:center;display:grid;place-items:center;border:1px solid #ffffff2d;border-radius:50%;background:#ffffff0d;color:#fff;transition:background .2s,color .2s,border-color .2s,transform .2s}
.thumb-rail-button:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:var(--accent-ink);transform:scale(1.05)}
.thumb-rail-button:disabled{opacity:.25;cursor:default}
.thumb-rail-button svg,.viewer-arrow svg,.viewer-actions svg,.project-open svg,.project-info small svg,.breadcrumb svg,.filter-back svg{display:block}
.project-info small span,.breadcrumb,.filter-back{align-items:center}
.project-info small span{display:inline-flex;gap:5px}
.breadcrumb,.filter-back{display:inline-flex;gap:7px}
.viewer-cursor{position:fixed;left:0;top:0;z-index:1000;pointer-events:none;display:none}
.viewer-cursor.visible{display:block}
.viewer-cursor svg{position:absolute;top:0;left:0}
.viewer-cursor .cursor-hand{display:none}
.viewer-cursor.is-link .cursor-arrow{display:none}
.viewer-cursor.is-link .cursor-hand{display:block}
.viewer-cursor>span{position:absolute;top:2px;left:27px;display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:5px;background:var(--accent);color:var(--accent-ink);white-space:nowrap;font:700 9px var(--mono)}
.viewer-cursor>span .ui-icon{width:10px;height:10px;flex:none}
.breadcrumb{justify-content:center;line-height:1}.breadcrumb svg,.filter-back svg{flex:none}
.portfolio-contact{min-height:calc(100svh - 29px);padding:clamp(80px,10vw,145px) 24px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative;background:var(--bg);overflow:hidden;isolation:isolate}
.portfolio-contact .portfolio-scribble{margin-bottom:19px}.portfolio-contact h2{font:800 clamp(52px,7vw,98px)/.93 var(--display);letter-spacing:-.065em}.portfolio-contact h2 em{font-style:normal;color:var(--accent)}.portfolio-contact>p{max-width:610px;margin:28px auto 0;color:var(--muted);font-size:17px;line-height:1.6}.portfolio-contact-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:34px}.portfolio-contact-actions a{min-height:49px;padding:12px 20px;display:inline-flex;align-items:center;justify-content:center;gap:15px;border:1px solid var(--line);border-radius:11px;background:var(--paper);font-weight:800}.portfolio-contact-actions .portfolio-contact-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.portfolio-contact-actions a:hover{transform:translateY(-3px)}.portfolio-contact-email{margin-top:22px;color:var(--muted);font-size:14px;text-decoration:underline;text-underline-offset:5px}.portfolio-footer-curtain #portfolio-main::after{content:'';display:block;height:var(--portfolio-footer-h,0px)}.portfolio-footer-curtain .portfolio-contact{position:sticky;top:var(--portfolio-contact-top,29px);z-index:0;transform-origin:50% 0;scale:calc(1 - var(--cover,0) * .06);opacity:calc(1 - var(--cover,0) * .62);will-change:scale,opacity}.portfolio-footer-curtain #chrome-bottom .studio-footer{margin-top:calc(-1 * var(--portfolio-footer-h,0px));z-index:2;box-shadow:0 -24px 60px -30px #0008}
@media(max-width:600px){.portfolio-contact{min-height:calc(100svh - 29px);padding:82px 18px}.portfolio-contact h2{font-size:clamp(43px,12vw,58px)}.portfolio-contact>p{font-size:15px;margin-top:23px}.portfolio-contact-actions{width:100%;margin-top:28px;gap:9px}.portfolio-contact-actions a{width:100%;max-width:330px}.portfolio-contact-email{font-size:12px}}
@media(prefers-reduced-motion:reduce){.portfolio-footer-curtain .portfolio-contact{scale:none;opacity:1;will-change:auto}}
@media(max-width:600px){.project-viewer .viewer-main{height:calc(100dvh - 135px)}.viewer-rail{height:76px;grid-template-columns:44px minmax(0,1fr) 44px}.viewer-rail .viewer-thumbs{height:76px;padding-inline:4px}.thumb-rail-button{width:34px;height:34px}.thumb-rail-button svg{width:17px;height:17px}.project-info small span{display:none}}
