@import url('/assets/links.css?v=c46d26901dd3cb9f265f328b706209d6c469b1770a980fb11e07fbf901630188');
:root { color-scheme:dark; --bg:#121314; --surface:#191a1b; --text:#f1eee8; --muted:#a6a5a2; --accent:#ff964f; --line:#343536; --radius:4px; --accent-hover:#ffb078; --hover-duration:160ms; --font:'Segoe UI','Helvetica Neue',Arial,sans-serif; --mono:'Cascadia Code',Consolas,monospace; }
* { box-sizing:border-box; }
html { scroll-padding-top:128px; scroll-behavior:smooth; }
body { margin:0; background:var(--bg); color:var(--text); font:18px/1.55 var(--font); }
h1,h2,h3,h4,p,figure { margin:0; }
h1,h2,h3,h4 { line-height:1.2; font-weight:600; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; height:auto; }
:focus-visible { outline:2px solid var(--accent); outline-offset:5px; }
::selection { background:var(--accent); color:var(--bg); }
.wrap { width:min(1200px,calc(100% - 80px)); margin-inline:auto; }
.skip { position:fixed; top:12px; left:12px; z-index:10; padding:12px; background:var(--surface); transform:translateY(-160%); }
.skip:focus { transform:none; }
.header { display:flex; align-items:center; justify-content:space-between; gap:32px; padding-block:24px; border-bottom:1px solid var(--line); }
.brand { display:inline-flex; flex-wrap:wrap; align-items:baseline; gap:8px; flex-shrink:0; font-size:18px; font-weight:600; }
.brand > span { white-space:nowrap; }
.brand_nick { color:var(--muted); font-weight:400; }
.brand_slash,.role .author { color:var(--accent); }
.header nav { display:flex; flex-wrap:wrap; align-items:center; gap:12px 24px; color:var(--muted); font-size:16px; }
.header a:hover,.footer a:hover { color:var(--text); }
main > section { margin-top:64px; }
main > section.work_hero { margin-top:80px; }
h1 { font-size:64px; letter-spacing:-.025em; }
h2 { font-size:40px; letter-spacing:-.015em; }
h2::before { content:''; display:inline-block; width:4px; height:.85em; margin-right:16px; background:var(--accent); vertical-align:-.02em; }
h3,h4 { font-size:24px; }
.eyebrow { margin-bottom:24px; color:var(--accent); font:14px/1.5 var(--mono); }
.work_hero { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:64px; align-items:start; }
.role { margin-top:24px; font-size:24px; }
.collaboration_terms { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px 24px; }
.availability { width:max-content; padding:6px 12px; border:1px solid var(--line); border-radius:var(--radius); color:var(--accent); font:14px/1.5 var(--mono); }
.hero_description { margin-top:24px; color:var(--muted); }
.portrait { width:280px; aspect-ratio:2/3; object-fit:cover; border-radius:var(--radius); }
.portrait { border-bottom:4px solid var(--accent); }
.downloads { display:flex; flex-wrap:wrap; gap:16px 28px; margin-top:28px; }
.button { display:inline-flex; align-items:center; gap:12px; padding-block:4px; color:var(--accent); border-bottom:1px solid var(--accent); font-size:18px; }
.button svg { width:18px; height:18px; }
.downloads .button { min-height:48px; padding:10px 16px; border:1px solid var(--line); border-radius:var(--radius); }
.downloads .primary { color:var(--bg); background:var(--accent); border-color:var(--accent); font-weight:600; }
.downloads .primary:hover { background:var(--accent-hover); }
.downloads .secondary:hover { border-color:var(--accent); }
.work_links { display:flex; flex-wrap:wrap; align-items:center; gap:12px 24px; margin-top:24px; color:var(--muted); font-size:16px; }
.competence_intro { margin-top:24px; color:var(--muted); }
.competence_intro p + p { margin-top:20px; }
.expertise { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:32px; }
.expertise > div { min-width:0; padding:24px; background:var(--surface); border-radius:var(--radius); }
.expertise p { margin-top:12px; color:var(--muted); }
.expertise .expertise_icon { display:block; width:28px; height:28px; margin-bottom:16px; color:var(--accent); }
.skills { display:flex; flex-wrap:wrap; gap:8px 20px; list-style:none; padding:0; margin:24px 0 0; color:var(--accent); font-size:16px; }
.subsection_head { display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:16px 32px; margin-bottom:24px; }
.caption,.index,.period { color:var(--muted); font:14px/1.5 var(--mono); }
.case { border-top:1px solid var(--line); }
.case:last-child { border-bottom:1px solid var(--line); }
.case summary { display:flex; align-items:center; gap:20px; padding:24px 0; cursor:pointer; list-style:none; }
.case summary::-webkit-details-marker { display:none; }
.case summary > .index { flex-shrink:0; }
.case summary > .title { min-width:0; }
.case summary strong { display:block; font-size:24px; font-weight:600; line-height:1.2; }
.case summary .caption { display:block; margin-top:8px; }
.case summary:hover strong { color:var(--accent); }
.case[open] summary > .index,.case[open] summary strong { color:var(--accent); }
.case_toggle { position:relative; flex:0 0 20px; width:20px; height:20px; margin-left:auto; color:var(--accent); }
.case_toggle::before,.case_toggle::after { content:''; position:absolute; top:50%; left:2px; width:16px; height:2px; background:currentColor; transform:translateY(-50%); }
.case_toggle::after { transform:translateY(-50%) rotate(90deg); }
.case[open] .case_toggle::after { transform:translateY(-50%) rotate(0); opacity:0; }
.case_body { padding:4px 0 28px; }
.case_body dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 40px; margin:0; }
.case_body dt { margin-bottom:12px; color:var(--text); font-weight:600; }
.case_body dd { margin:0; color:var(--muted); }
.case_flow { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin-top:24px; padding-top:24px; border-top:1px solid var(--line); color:var(--muted); font:14px/1.5 var(--mono); }
.case_flow > span:not([aria-hidden]) { padding:8px 12px; border:1px solid var(--line); }
.case_flow > [aria-hidden] { color:var(--accent); }
.timeline { list-style:none; margin:0; padding:0; }
.timeline li { padding-block:24px; border-top:1px solid var(--line); }
.timeline .period { display:block; margin-bottom:12px; }
.timeline li > div > span { display:block; margin-top:8px; color:var(--muted); }
.timeline p { margin-top:16px; color:var(--muted); }
.requests { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; list-style:none; padding:0; margin:0 0 24px; }
.requests li { min-width:0; padding:24px; border-radius:var(--radius); background:var(--surface); }
.requests h3 { margin-block:12px; }
.requests .index { color:var(--accent); }
.requests p { color:var(--muted); }
.contact { padding-top:40px; border-top:1px solid var(--line); }
.contact .work_links { font-size:20px; color:var(--accent); }
.footer { margin-top:64px; padding-block:32px; border-top:1px solid var(--line); color:var(--muted); font-size:16px; }
.button,.brand,.brand_nick,.text_link,.header nav a,.case summary,.case summary strong { transition:color 180ms ease,background-color 180ms ease,border-color 180ms ease,text-decoration-color 180ms ease,transform 180ms ease; }
.button svg,.case summary .title { transition:transform 180ms ease; }
.case_toggle::after { transition:transform 200ms ease,opacity 180ms ease; }
.text_link:is(:hover,:focus-visible) { text-decoration-color:var(--accent); }
.header nav > a:not(.text_link) { position:relative; }
.header nav > a:not(.text_link)::after { content:''; position:absolute; bottom:-4px; left:0; width:100%; height:1px; background:var(--accent); transform:scaleX(0); transform-origin:left; transition:transform 180ms ease; }
.header nav > a:not(.text_link):is(:hover,:focus-visible)::after { transform:scaleX(1); }
.brand:is(:hover,:focus-visible) .brand_nick { color:var(--accent); }
.case summary:is(:hover,:focus-visible) { background:var(--surface); }
.case summary:focus-visible strong { color:var(--accent); }
.button:active { transform:translateY(1px); }
@media (hover:hover) and (pointer:fine) {
  .button:is(:hover,:focus-visible) { transform:translateY(-2px); }
  .button:is(:hover,:focus-visible) svg { transform:translateY(2px); }
  .button:active { transform:translateY(1px); }
  .case summary:is(:hover,:focus-visible) .title { transform:translateX(4px); }
}
@media (prefers-reduced-motion:no-preference) {
  @supports (interpolate-size:allow-keywords) and selector(details::details-content) {
    .case { interpolate-size:allow-keywords; }
    .case::details-content { height:0; opacity:0; overflow:clip; transition:height 240ms ease,opacity 180ms ease,content-visibility 240ms allow-discrete; }
    .case[open]::details-content { height:auto; opacity:1; }
  }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition:none !important; animation:none !important; }
  .button,.button svg,.case summary .title,.link_arrow { transform:none !important; }
}
@media(max-width:1000px) { .work_hero { grid-template-columns:minmax(0,1fr) 240px; gap:40px; } .portrait { width:240px; } h1 { font-size:52px; } .header { align-items:start; flex-direction:column; gap:16px; } }
@media(max-width:600px) { .wrap { width:calc(100% - 48px); } .brand { font-size:16px; } .header nav { gap:12px 20px; font-size:14px; } main > section { margin-top:48px; } main > section.work_hero { margin-top:40px; } .work_hero { grid-template-columns:1fr; gap:32px; } h1 { font-size:42px; } h2 { font-size:30px; } .role { font-size:20px; } .expertise,.requests,.case_body dl { grid-template-columns:1fr; } .subsection_head { align-items:start; } .case summary { gap:12px; } .case summary strong { font-size:22px; } .case summary > .index { display:none; } .case_flow { align-items:stretch; flex-direction:column; text-align:center; } .case_flow > [aria-hidden] { transform:rotate(90deg); align-self:center; } .contact .work_links { align-items:start; flex-direction:column; } }
