.portfolio-reader{--paper:#161c1a;--surface:#202823;--ink:#e0e5dc;--muted:#a9b5a7;--line:#728275;--focus:#acc9ae;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:var(--paper);min-height:100dvh;color:var(--ink);padding:0 32px;font-size:16px;line-height:1.7}.portfolio-reader[data-theme=light]{--paper:#eee6d6;--surface:#f5efe1;--ink:#25342d;--muted:#586354;--line:#a0ae99;--focus:#375848;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.portfolio-reader *{box-sizing:border-box}.portfolio-reader :is(button,a,summary):focus-visible{outline:3px solid var(--focus);outline-offset:3px}.portfolio-reader a{color:inherit;text-underline-offset:4px}.reader-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;max-width:1120px;margin:auto;padding:24px 0;display:flex}.reader-brand{letter-spacing:-.06em;font-size:25px;font-weight:700;text-decoration:none}.reader-brand span{font-weight:400}.reader-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.reader-actions :is(a,button){border:1px solid var(--line);min-width:44px;min-height:44px;color:inherit;font:inherit;cursor:pointer;background:0 0;border-radius:3px;justify-content:center;align-items:center;gap:8px;padding:8px 12px;font-size:13px;text-decoration:none;display:inline-flex}.reader-actions :is(a,button):hover{background:var(--surface)}.reader-intro{max-width:1120px;margin:64px auto 56px}.reader-eyebrow{color:var(--muted);letter-spacing:.09em;text-transform:uppercase;font-size:12px}.reader-intro h1{letter-spacing:-.04em;margin:14px 0 24px;font:400 clamp(38px,5vw,64px)/1.08 Georgia,serif}.reader-intro>p:last-of-type{max-width:640px;font-size:19px}.reader-contact-line{flex-wrap:wrap;gap:24px;margin-top:20px;display:flex}.reader-contact-line a{align-items:center;min-height:44px;display:inline-flex}.reader-formats{flex-wrap:wrap;gap:8px 24px;margin-top:16px;font-size:14px;display:flex}.reader-formats a{align-items:center;min-height:44px;display:inline-flex}.reader-format-help{max-width:660px;color:var(--muted);margin-top:8px;font-size:14px}.reader-media figure{margin:20px 0}.reader-media :is(img,video){object-fit:contain;background:var(--surface);width:100%;height:auto;max-height:440px}.reader-media figcaption{color:var(--muted);font-size:14px}.reader-stats div{margin:12px 0}.reader-stats dt{font-weight:600}.reader-stats dd{color:var(--muted);margin:0}.reader-work h4{margin:20px 0 8px;font-size:16px;font-weight:600}.reader-layout{grid-template-columns:220px minmax(0,1fr);gap:64px;max-width:1120px;margin:auto;padding-bottom:64px;display:grid}.reader-index{align-self:start;position:sticky;top:24px}.reader-index nav{margin:14px 0 24px;display:grid}.reader-index a{align-items:center;min-height:44px;padding:6px 0;font-size:14px;text-decoration:none;display:flex}.reader-index a:hover{text-decoration:underline}.reader-index>p:last-child{color:var(--muted);max-width:180px;font-size:13px}.reader-work{min-width:0}.reader-work section{padding:0 0 56px;scroll-margin-top:24px}.reader-work section+section{border-top:1px solid var(--line);padding-top:32px}.reader-work h2{letter-spacing:-.025em;margin:0 0 16px;font:400 36px/1.2 Georgia,serif}.reader-work h3{margin:8px 0 12px;font-size:22px;font-weight:600;line-height:1.35}.reader-work p{margin:14px 0}.reader-section-lead{color:var(--muted);max-width:650px;font-size:18px}.reader-project{border-top:1px solid var(--line);padding:28px 0}.reader-project:first-of-type{margin-top:28px}.reader-summary{font-size:18px}.reader-evidence{object-fit:cover;object-position:top;border:1px solid var(--line);width:100%;height:auto;max-height:440px;margin:20px 0}.reader-work :is(ul,ol){margin:18px 0;padding-left:24px}.reader-work li{margin:7px 0}.reader-tech{color:var(--muted);font-size:13px}.reader-detail-link{align-items:center;min-height:44px;font-size:14px;display:inline-flex}.reader-work details{border-top:1px solid var(--line);margin:24px 0}.reader-work summary{cursor:pointer;min-height:44px;padding:14px 0}.reader-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.reader-gallery img{object-fit:contain;background:var(--surface);width:100%;height:220px}.reader-gallery figcaption{color:var(--muted);margin-top:8px;font-size:13px}.reader-footer{border-top:1px solid var(--line);color:var(--muted);padding-top:24px}.reader-footer nav{flex-wrap:wrap;gap:12px 24px;display:flex}.reader-footer a{align-items:center;min-height:44px;font-size:13px;display:inline-flex}.reader-media-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.reader-media-gallery img{height:220px}.reader-media-gallery figure{min-width:0}@media (max-width:700px){.reader-media-gallery{grid-template-columns:1fr}}.reader-skip{background:var(--surface);z-index:10;padding:10px 16px;position:absolute;top:8px;left:16px;transform:translateY(-200%)}.reader-skip:focus{transform:none}@media (max-width:800px){.reader-layout{grid-template-columns:180px minmax(0,1fr);gap:32px}}@media (max-width:700px){.portfolio-reader{padding:0 20px}.reader-header{align-items:flex-start;gap:12px;padding:18px 0}.reader-brand{font-size:22px}.reader-actions{flex-shrink:0;justify-content:flex-end;gap:8px;width:164px}.reader-actions>a{flex-basis:100%}.reader-actions button{padding:8px}.reader-actions button[aria-label=Dark\ mode] span{display:none}.reader-intro{margin:36px auto}.reader-intro>p:last-of-type{font-size:17px}.reader-layout{display:block}.reader-index{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:36px;padding:20px 0;position:static}.reader-index nav{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px;margin:8px 0;display:grid}.reader-index>p:last-child{max-width:none}.reader-work h2{font-size:30px}.reader-gallery{grid-template-columns:1fr}.reader-work section{padding-bottom:36px}}@media print{.portfolio-reader{--paper:#fff;--ink:#111;--muted:#444;--line:#999;color:#111;background:#fff;padding:0;font-size:11pt}.reader-header,.reader-actions,.reader-index,.reader-skip,.reader-footer{display:none}.reader-intro{margin:0 0 24px}.reader-intro h1{font-size:30pt}.reader-layout{display:block}.reader-evidence{object-fit:contain;border:0;max-height:240px}.reader-work section{padding-bottom:24px}.reader-work h2{font-size:22pt}.reader-work h3{break-after:avoid;font-size:16pt}.reader-work li{margin:3px 0}.reader-project{padding:16px 0}.reader-tech{font-size:10pt}.reader-gallery img{height:160px}.reader-work a{color:#111}}
