:root{--bg:#391d29;--ink:#f1eddd;--muted:#c5abb6;--line:#75505e;--accent:#e9ed99;--selected:#4c2b38}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:40px}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif;transition:background .3s,color .3s}body.paper{--bg:#edecdf;--ink:#391d29;--muted:#79636b;--line:#b9a9ac;--accent:#64223d;--selected:#e0dcd0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;padding:0;border:0;cursor:pointer}a:hover{color:var(--accent)}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}header{display:flex;justify-content:space-between;align-items:center;padding:34px 3.5% 36px}.identity{font-size:21px;letter-spacing:-.7px;font-weight:600}.identity span{display:block;font:9px 'Courier New',monospace;letter-spacing:.08em;margin-top:8px;font-weight:400}.header-right{display:flex;align-items:center;gap:28px;font-size:12px}#tone{font-size:24px}main{padding:0 3.5%}.topline{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:16px 0 30px;font:10px 'Courier New',monospace;letter-spacing:.06em;color:var(--muted)}.workspace{display:grid;grid-template-columns:1fr 1.18fr;gap:5vw;align-items:start;padding:0 0 65px}.filters{display:flex;gap:22px;flex-wrap:wrap;font:11px 'Courier New',monospace;margin:0 0 26px;min-height:25px;align-items:start}.filters button{color:var(--muted);padding-bottom:7px}.filters .active{color:var(--accent);border-bottom:1px solid var(--accent)}.project-row{display:flex;width:100%;gap:15px;text-align:left;padding:22px 0;border-top:1px solid var(--line);align-items:baseline;position:relative;transition:padding .25s,background .25s}.project-row:last-child{border-bottom:1px solid var(--line)}.row-number{font:10px 'Courier New',monospace;color:var(--muted);flex-shrink:0;width:20px}.row-body{display:block}.row-title{display:block;font-size:clamp(19px,1.8vw,29px);letter-spacing:-.055em;line-height:1.03;font-weight:400}.row-sub{display:block;font:9px 'Courier New',monospace;letter-spacing:.04em;color:var(--muted);text-transform:uppercase;margin-top:10px}.row-arrow{margin-left:auto;font-size:23px;opacity:0;transition:opacity .2s}.project-row.active{padding-left:12px;padding-right:12px;background:var(--selected)}.project-row.active .row-title{color:var(--accent)}.project-row.active .row-arrow{opacity:1}.index-foot{display:flex;justify-content:space-between;padding-top:24px;font:9px 'Courier New',monospace;line-height:1.7;color:var(--muted)}.cross{font-size:33px;line-height:1}.viewer{position:sticky;top:35px;padding-top:4px}.viewer-meta{display:flex;justify-content:space-between;font:9px 'Courier New',monospace;letter-spacing:.06em;color:var(--muted);margin-bottom:19px}.main-image{display:block;width:100%;position:relative;background:#1b1618;aspect-ratio:1.5;overflow:hidden}.main-image img{width:100%;height:100%;object-fit:contain;display:block;animation:appear .35s ease}.open-mark{position:absolute;right:16px;bottom:16px;background:var(--accent);color:var(--bg);width:38px;height:38px;display:grid;place-items:center;font-size:23px}.image-caption{display:flex;justify-content:space-between;align-items:start;gap:15px;padding:15px 0 28px;font-size:12px}.image-caption span:last-child{font:9px 'Courier New',monospace;line-height:1.5;text-align:right;color:var(--muted);max-width:50%}.strip{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.strip button{opacity:.4;position:relative;padding-bottom:10px;transition:opacity .2s}.strip button.active,.strip button:hover{opacity:1}.strip button.active{border-bottom:1px solid var(--accent)}.strip img{width:100%;height:70px;object-fit:cover;display:block}.strip span{display:block;text-align:left;font:9px 'Courier New',monospace;margin-top:9px}.viewer-bottom{display:flex;justify-content:space-between;gap:15px;margin-top:30px;font:9px 'Courier New',monospace;color:var(--muted)}.viewer-bottom button{color:var(--accent);white-space:nowrap}.archive{border-top:1px solid var(--line);padding:23px 0;display:flex;justify-content:flex-end;gap:30px;flex-wrap:wrap;font-size:11px}.archive>span{font:9px 'Courier New',monospace;margin-right:auto;color:var(--muted)}#about{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 2fr;gap:6vw;padding:65px 0 90px}.section-label{font:10px 'Courier New',monospace;color:var(--muted);padding-top:6px}.bio-block{font-size:18px;line-height:1.75;letter-spacing:-.02em;margin:0 0 35px;max-width:760px}.bio-name{font-weight:600}.credentials{font:9px 'Courier New',monospace;color:var(--muted);border-top:1px solid var(--line);padding-top:20px;display:flex;justify-content:space-between;gap:20px}.contact{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:30px}.contact span{display:block;font:9px 'Courier New',monospace;color:var(--muted);margin-bottom:10px}.contact a{font-size:14px}.footer-line{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding:22px 0;font:9px 'Courier New',monospace;color:var(--muted)}dialog{border:1px solid var(--line);background:var(--bg);color:var(--ink);width:min(1100px,95vw);max-height:94svh;padding:30px}dialog::backdrop{background:#100b10e8;backdrop-filter:blur(8px)}.dialog-header,.dialog-footer{display:flex;justify-content:space-between;gap:20px;font:10px 'Courier New',monospace}.dialog-header{margin-bottom:30px}dialog h2{font-size:clamp(24px,2.6vw,36px);font-weight:400;letter-spacing:-.05em;margin:0}#dialog-credit{font:11px 'Courier New',monospace;color:var(--muted);margin:15px 0 30px}#media{display:grid;gap:18px}#media img{width:100%;height:auto;display:block}#media iframe{width:100%;aspect-ratio:16/9;border:0;background:#151015}.dialog-footer{padding-top:30px}@keyframes appear{from{opacity:.4}to{opacity:1}}@media(min-width:1500px){.main-image{aspect-ratio:1.65}.strip img{height:90px}}@media(max-width:800px){header{padding:25px 5%}.identity{font-size:18px}.header-right{gap:18px;font-size:11px}main{padding:0 5%}.topline{font-size:9px;padding-bottom:22px}.workspace{grid-template-columns:1fr;gap:28px;padding-bottom:40px}.viewer{grid-row:1;position:static}.viewer-meta{margin-bottom:12px}.main-image{aspect-ratio:1.65}.image-caption{padding-bottom:18px}.strip img{height:55px}.viewer-bottom{margin-top:18px}.filters{margin:0 0 12px;gap:22px}.project-row{padding:17px 0}.row-title{font-size:20px}.row-arrow{opacity:1}.index-foot{display:none}.archive{gap:20px;justify-content:start}.archive>span{width:100%}#about{grid-template-columns:1fr;gap:25px;padding:35px 0 60px}.bio-block{font-size:17px}.credentials{flex-direction:column;gap:10px}.contact{grid-template-columns:1fr}.footer-line{font-size:8px}dialog{padding:20px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}

.filters{gap:15px;line-height:1.5}.filters sup{font-size:8px;margin-left:4px}
.search-wrap{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:0 0 18px}.search-wrap label{font:8px 'Courier New',monospace;color:var(--muted);width:100%;letter-spacing:.08em}.search-wrap input{font:12px Arial,sans-serif;color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--line);padding:7px 0;min-width:0;flex:1;border-radius:0}.search-wrap input:focus{outline:none;border-color:var(--accent)}#result-count{font:9px 'Courier New',monospace;color:var(--muted)}.empty{padding:35px 0;font-size:15px;line-height:1.6}.strip{display:flex;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}.strip button{flex:0 0 calc((100% - 24px)/4)}.dialog-footer>div{display:flex;gap:22px;flex-wrap:wrap}.film-note{font-size:14px;line-height:1.6;border:1px solid var(--line);padding:20px}.film-note a{text-decoration:underline}.row-title{overflow-wrap:anywhere}.viewer-bottom>span{max-width:70%;line-height:1.5}
@media(min-width:801px){.viewer{top:24px}.main-image{max-height:46vh}.strip img{height:60px}.image-caption{padding-bottom:18px}.viewer-bottom{margin-top:20px}}@media(max-width:800px){.filters{gap:15px}.row-title{font-size:20px}.dialog-footer{align-items:start}.dialog-footer>div{flex-direction:column;gap:15px}}

#project-details{margin:0 0 25px;font-size:12px;line-height:1.6}#project-details summary{cursor:pointer;font:10px Courier New,monospace;text-transform:uppercase;padding:10px 0;border-top:1px solid var(--line)}#credit-lines{padding:8px 0 12px}#credit-lines p{margin:3px 0}[hidden]{display:none!important}

.stills-heading{font:10px Courier New,monospace;letter-spacing:.08em;color:var(--muted);border-top:1px solid var(--line);padding-top:22px;margin-top:8px}

#motion-preview{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;opacity:0;transition:opacity .25s;background:#1b1618}#motion-preview.playing{opacity:1}.open-mark{z-index:2}.motion-label{color:var(--accent)}@media(hover:none){.motion-label{display:none}}@media(prefers-reduced-motion:reduce){#motion-preview{display:none}}

#youtube-preview{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:0;background:#1b1618}#youtube-preview iframe{width:100%;height:100%;border:0}#youtube-preview.playing{opacity:1}#motion-preview{transition:none}@media(prefers-reduced-motion:reduce){#youtube-preview{display:none}}

.resume-links{display:flex;gap:24px;flex-wrap:wrap;margin-top:24px;font-size:12px}.resume-links a{border-bottom:1px solid var(--line);padding-bottom:6px}@media(max-width:480px){.header-right{gap:12px;font-size:10px}}

.contact>div{min-width:0}.contact .agent-email{display:block;font-size:12px;line-height:1.5;color:var(--muted);margin-top:8px;overflow-wrap:anywhere}.contact .agent-email:hover{color:var(--accent)}

/* Match unused still-preview space to the page instead of adding a dark border. */
.main-image{background:var(--bg)}

/* Vector arrows use the same geometry and ink on every device. */
.arrow-icon{display:inline-block;width:1em;height:1em;vertical-align:-.12em;flex-shrink:0;overflow:visible;pointer-events:none}
.row-body{min-width:0}.row-arrow{flex:0 0 auto;line-height:1}.open-mark .arrow-icon{width:23px;height:23px;vertical-align:0}
.header-right a,.resume-links a{white-space:nowrap}
@media(max-width:480px){.footer-line{flex-wrap:wrap;row-gap:14px}.dialog-footer>button{white-space:nowrap}.viewer-meta{gap:12px}.viewer-meta>span{min-width:0}}
