img{height:auto}
/* zsofiakrone.com: the Framer site's look, in plain CSS. Measurements are the live site's at 1440 px. */
@font-face{font-family:Jaro;src:url(fonts/jaro.1fc5b1e8.woff2) format("woff2");font-weight:400;font-display:block}
@font-face{font-family:Switzer;src:url(fonts/switzer-400.278e991b.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Switzer;src:url(fonts/switzer-500.592a8716.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:Switzer;src:url(fonts/switzer-500-italic.b4c8a0f0.woff2) format("woff2");font-weight:500;font-style:italic;font-display:swap}

:root{--ink:#121212;--paper:#fff;--dim:rgba(0,0,0,.62);--hair:#ebebeb;--glass:rgba(0,0,0,.3);--off:#f5f5f5;--pad:16px;--gap:8px;--r:4px}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:500 14px/1.15 Switzer,system-ui,sans-serif;letter-spacing:-.025em;-webkit-font-smoothing:antialiased}
p,h1,figure,ul{margin:0;padding:0}
h1{font:inherit}
a{color:inherit;text-decoration:none}
img,video,svg{display:block;max-width:100%}
button{font:inherit;letter-spacing:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
em{font-style:italic}
:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
/* selected text is soft grey everywhere, never the visitor's system accent colour */
::selection{background:#e0e0e0;color:#000}

/* header */
.top{padding:0 var(--pad)}
.wm{width:100%;height:auto;overflow:visible}
.wm path{fill:var(--ink)}
.wm-link{display:block;padding-top:0}
.bar{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding-bottom:12px}
.pills{display:flex;gap:6px}
/* buttons: no outlines and no grey bubbles (Cam, 23 Oct 2026). Plain text, dimming on hover; only the current
   choice and the main action are solid */
.pills a{padding:4px 8px;border-radius:var(--r);transition:background .25s,color .25s,opacity .25s}
.pills a:not(.on):hover{opacity:.55}
.pills a.on{background:var(--ink);color:var(--paper);box-shadow:none}
.clock .time:not(:empty)::before{content:"\00a0\2022\00a0"}
main{border-top:1px solid var(--hair)}
/* no orphan words, at any width (Cam, 23 Oct 2026) */
p,li,dd,figcaption{text-wrap:pretty}
h1,h2{text-wrap:balance}

/* three-column frame */
.intro,.work,.cards3,.facts,.reach{padding:0 var(--pad)}
.intro{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);padding-top:8px;min-height:157px}
.intro p{grid-column:3}
.intro-home{align-content:start}
.intro-home .latest{grid-column:1/3;grid-row:1;align-self:end;justify-self:start;display:flex;align-items:flex-end;gap:10px;padding:0}
.intro-home .latest::before{display:none}
.intro-home .latest{align-items:stretch;gap:10px}
.intro-home .latest img{width:32px;height:32px;flex:none;align-self:flex-end;object-fit:cover;border-radius:3px}
.intro-home .latest u{text-underline-offset:2px}
.intro-reel{align-items:start;padding-bottom:16px}
.intro-reel .reel{grid-column:1/3;width:100%;height:auto;aspect-ratio:16/9;border-radius:var(--r);background:#121212}

/* work: grid / list */
.toggle{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap);margin:0 0 12px}
.tg{display:flex;justify-content:space-between;align-items:center;height:32px;padding:8px 12px;border-radius:var(--r);background:none;text-align:left;transition:background .3s,color .3s,opacity .25s}
.tg[aria-pressed=false]:hover{opacity:.55}
.tg svg{width:10px;height:10px;fill:currentColor}
.tg[aria-pressed=true]{background:var(--ink);color:var(--paper);box-shadow:none}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap)}
.grid{row-gap:20px}
.card{position:relative;display:block}
.frame{position:relative;display:block;aspect-ratio:1;border-radius:var(--r);overflow:hidden;background:#e9e9e9 center/cover}
.card img,.card video{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.card:hover img,.card:hover video{transform:scale(1.03)}
/* name and role under each tile, so the face stays clear and phones see the role too */
.tcap{display:flex;justify-content:space-between;gap:12px;padding-top:8px}
.tcap .meta{color:var(--dim);text-align:right}
.list{display:none}
.row{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr) minmax(0,1fr) 24px;align-items:baseline;gap:var(--gap);padding:18px 0 16px;border-top:1px solid var(--hair)}
.row:last-child{border-bottom:1px solid var(--hair)}
.row .ix{color:var(--dim)}
.row .name{font-size:clamp(22px,2.6vw,34px);line-height:1;letter-spacing:-.03em;transition:transform .4s cubic-bezier(.2,.7,.2,1)}
.row .credit{color:var(--dim);transition:color .3s}
.row .go{justify-self:end;opacity:0;transform:translateX(-6px);transition:opacity .3s,transform .3s}
.row:hover .name{transform:translateX(8px)}
.row:hover .credit{color:var(--ink)}
.row:hover .go{opacity:1;transform:none}
.row .pv{display:none}
.float{position:fixed;left:0;top:0;z-index:15;width:220px;aspect-ratio:4/5;object-fit:cover;border-radius:var(--r);pointer-events:none;opacity:0;transform:scale(.96);transition:opacity .25s,transform .25s;margin:-138px 0 0 24px}
.float.on{opacity:1;transform:none}
@media (hover:none){.float{display:none}}
.work[data-view=list] .grid{display:none}
.work[data-view=list] .list{display:block}
.work[data-view=list] .list{animation:fade .8s both}

/* about */
.p-about .intro{min-height:170px;padding-bottom:40px}
.cards3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.acard{position:relative;display:flex;flex-direction:column;justify-content:flex-end;height:272px;padding:8px;border-radius:var(--r);background:var(--ink);color:#fff}
.num{position:absolute;top:8px;left:8px;width:20px;height:20px;border-radius:50%;background:#fff;color:var(--ink);font-size:8.75px;line-height:20px;text-align:center}
.atitle{margin:0 0 8px}
.ticker{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.ticker ul{display:flex;gap:4px;width:max-content;list-style:none;animation:tick 38s linear infinite}
.ticker:hover ul{animation-play-state:paused}
.ticker li{flex:none;width:111px;height:111px;padding-right:0}
.ticker li:last-child{margin-right:4px}
.tile{width:100%;height:100%;border-radius:var(--r);background:#d8d3c9}
.tile path{fill:#1c1c1c}
@keyframes tick{to{transform:translateX(-50%)}}
.atext{margin-top:4px}
.alist{margin-top:16px;color:var(--dim)}
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap);margin-top:70px;padding-top:12px;border-top:1px solid var(--hair)}
.lab{color:var(--dim)}
.fbody{margin-top:8px}
.grp+.grp{margin-top:18px}
.fcol-mid .grp+.grp{margin-top:16px}
.lab-gap{margin-top:40px}

/* contact */
.p-contact .intro{min-height:190px;padding-bottom:8px}
.reach{display:grid;grid-template-columns:repeat(3,1fr);align-content:start;gap:var(--gap);padding-top:8px;min-height:340px;border-top:1px solid var(--hair);margin:0 var(--pad);padding-left:0;padding-right:0}
.reach .lab{margin-bottom:8px}
.reach-book{grid-column:1}
.reach-based{grid-column:3}
.reach-based .travel{line-height:1.3}
.btn{grid-column:1;display:flex;justify-content:center;align-items:center;height:32px;border-radius:var(--r);background:var(--ink);color:#fff;transition:opacity .25s}
.btn:hover{opacity:.85}

/* 404 */
.nf{display:flex;flex-direction:column;align-items:center;text-align:center;padding:245px 16px 245px}
.nf-big{width:min(712px,100%);height:auto;margin-bottom:8px}
.nf-big path{fill:var(--ink)}
.nf h1{margin-top:2px}
.nf a,.foot a{text-decoration:underline;text-underline-offset:2px}

/* cookie banner on the site's own gutter, phone and desktop alike */
.sg-consent[data-consent-brand='zsofia-krone']{padding-left:var(--pad);padding-right:var(--pad)}
/* footer: on short pages the content grows so the footer sits at the foot of the window */
body:has(>footer){display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}
body:has(>footer)>:has(+footer){flex-grow:1;align-content:start}
.foot{margin-top:40px;border-top:1px solid var(--hair);padding-top:16px}
.foot-mini{margin-top:0}
.fm{display:grid;grid-template-columns:1fr 1fr;grid-template-areas:"mk book" "legal social";align-items:end;gap:8px var(--gap);padding:0 var(--pad) 16px}
.fm .mk{grid-area:mk;justify-self:start;font:400 32px/.85 Jaro,Impact,sans-serif;text-transform:uppercase;letter-spacing:0;text-decoration:none}
.fm-legal{grid-area:legal}
.fm-book{grid-area:book;justify-self:end;text-align:right}
.fm-social{grid-area:social;justify-self:end;text-align:right}
.fm-home{grid-template-columns:1fr auto 1fr;grid-template-areas:"legal btt book" "legal . social";align-items:start;align-content:start;row-gap:0;padding-bottom:0;min-height:120px}
.fm-home .fm-legal>*,.fm-home .fm-book>*{display:block}
.fm-home .fm-legal .dot,.fm-home .fm-book .dot{display:none}
.wm-foot{width:calc(100% - var(--pad) * 2);margin:40px var(--pad) 2px}
.wm-foot path{fill:var(--ink)}
.nojs{white-space:nowrap}

/* project */
.p-proj main{border:0;padding:8px var(--pad) 24px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:auto 1fr;gap:0 var(--gap)}
/* desktop: the picture fits the window's height, on the left edge, so the page needs no scroll */
.media{grid-column:1/3;justify-self:start;width:min(100%,calc(max(360px,100dvh - 266px - var(--sg-consent-h,0px)) * var(--ar,.8)));aspect-ratio:4/5;border-radius:var(--r);overflow:hidden;background:#e9e9e9}
.media img,.media video{width:100%;height:100%;object-fit:cover}
.media.film{background:#000}
.media.film video{object-fit:contain}
.play{position:absolute;left:50%;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;background:var(--glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.play::after{content:"";position:absolute;left:26px;top:21px;border-style:solid;border-width:11px 0 11px 17px;border-color:transparent transparent transparent #fff}
/* watch links: soft filled pills, no borders */
.watch{display:flex;flex-wrap:wrap;gap:6px 20px;align-items:center}
.watch a{transition:opacity .25s}
.watch a:hover{opacity:.55}
/* film sound: one small round button on the picture, the icon says the state */
.media{position:relative}
.media.film video{cursor:pointer}
.snd{position:absolute;left:10px;bottom:10px;z-index:3;width:40px;height:40px;display:grid;place-items:center;background:none;transition:opacity .25s,transform .25s}
.snd:hover{transform:scale(1.08)}
.snd svg{width:22px;height:22px;fill:none;stroke:#fff;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 3px rgba(0,0,0,.55))}
.snd .s-on,.snd[aria-pressed=true] .s-off{display:none}
.snd[aria-pressed=true] .s-on{display:block}
.cap{grid-column:1;margin-top:16px}
/* project info: the right half, set like the home page's intro column */
.info{grid-column:3;grid-row:1;align-self:start;position:sticky;top:8px;display:flex;flex-direction:column;gap:24px}
.iname{font:400 clamp(48px,6.2vw,96px)/.8 Jaro,Impact,sans-serif;letter-spacing:-.01em;text-transform:uppercase}
.cred{margin:0;display:grid;gap:6px}
.cred div{display:grid;grid-template-columns:96px 1fr;gap:var(--gap);padding-bottom:6px;border-bottom:1px solid var(--hair)}
.cred dt{color:var(--dim)}
.cred dd{margin:0}
.idesc{max-width:36em}
.ilines{max-width:36em;display:grid;gap:6px;color:var(--dim)}
.ilines p{margin:0;text-wrap:pretty}
.still{margin:0}
.still img{display:block;width:100%;height:auto;border-radius:var(--r)}
.pager{grid-column:1/-1;align-self:end;display:grid;grid-template-columns:1fr 1fr;gap:var(--gap);margin-top:24px}
.cap+.pager{margin-top:24px}
/* Previous and Next: a picture of the project and its title in her logo type */
.pn{display:grid;grid-template-columns:96px minmax(0,1fr);gap:14px;align-items:center;transition:opacity .25s}
.pn.next{grid-template-columns:minmax(0,1fr) 96px;text-align:right}
.pn img{width:96px;height:96px;object-fit:cover;border-radius:3px;background:var(--off)}
.pn .k{display:flex;align-items:center;gap:6px;color:var(--dim);margin-bottom:8px}
.pn.next .k{justify-content:flex-end}
/* arrow keys work on project pages; the keycaps say so (desktop only) */
kbd{font:inherit;color:var(--dim)}
.pn .t{display:block;font:400 clamp(28px,2.8vw,40px)/.9 Jaro,Impact,sans-serif;text-transform:uppercase;letter-spacing:0}
a.pn:hover{opacity:.6}
/* cinema: project pages with footage play in a dark room */
.p-proj.dark{--paper:#0d0d0d;--ink:#ededed;--dim:#8f8f8f;--hair:#262626;--off:#1a1a1a;background:var(--paper);color:var(--ink)}
.p-proj.dark .media{background:#000}
.p-proj.dark ::selection{background:#ededed;color:#0d0d0d}
.dim{color:var(--dim)}
/* the floating title: plain text, no pill; it inverts over whatever is behind it, so it reads on any picture */
.chip{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom,0px) + var(--sg-consent-h,0px));transform:translateX(-50%);display:flex;align-items:baseline;gap:20px;z-index:30;color:#fff;mix-blend-mode:difference;animation:chip .6s .3s both;white-space:nowrap}
.chip h1{font:inherit}
.chip .x{opacity:.6;transition:opacity .25s}
.chip .x:hover{opacity:1}
@keyframes chip{from{opacity:0;transform:translate(-50%,12px)}}

/* work filter, hover credit, blurred placeholders, View cursor */
.filters{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.filters button{padding:4px 8px;border-radius:var(--r);transition:background .25s,color .25s,opacity .25s}
.filters button[aria-pressed=false]:hover{opacity:.55}
.filters button[aria-pressed=true]{background:var(--ink);color:var(--paper);box-shadow:none}
.card[hidden],.row[hidden]{display:none}
.card img{opacity:0;transition:opacity .6s ease-out,transform .8s cubic-bezier(.2,.7,.2,1)}
.card img.ok{opacity:1}
.cursor{position:fixed;left:0;top:0;z-index:20;margin:14px 0 0 14px;color:#fff;mix-blend-mode:difference;font-size:13px;pointer-events:none;opacity:0;transition:opacity .2s}
.cursor.on{opacity:1}
@media (hover:none){.cursor{display:none}}

/* portraits page: filter by look, every headshot in one download */
.p-portraits .intro{min-height:0;padding-bottom:48px}
.kit{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap);align-items:center;padding:0 var(--pad);margin:0 0 12px}
.kit .filters{grid-column:1/3;margin:0}
.kit .btn{grid-column:3}
.shot[hidden]{display:none}
.shots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap);padding:0 var(--pad);align-items:start}
.shots{row-gap:20px}
.shot{margin:0}
.shot .frame{aspect-ratio:4/5}
.shot img{width:100%;height:100%;object-fit:cover;object-position:50% 25%;opacity:0;transition:opacity .6s ease-out}
.shot img.ok{opacity:1}
.shot figcaption{display:flex;justify-content:space-between;gap:12px;padding-top:8px}
.shot figcaption a{text-decoration:underline;text-underline-offset:2px}

/* about: headshot and résumé */
.intro-about{align-items:start;min-height:0;padding-bottom:40px}
.intro-about .headshot{grid-column:1;margin:0;border-radius:var(--r);overflow:hidden;aspect-ratio:4/5;max-width:320px}
.intro-about .headshot img{width:100%;height:100%;object-fit:cover}
.intro-about .bio{grid-column:3;display:flex;flex-direction:column;gap:24px}
.intro-about .actions{display:flex;flex-direction:column;gap:16px}
.intro-about .btn{width:100%}

/* project: picture opens large */
.media[data-zoom]{cursor:zoom-in}
.zoom{position:fixed;inset:0;z-index:30;background:rgba(255,255,255,.96);display:grid;place-items:center;padding:16px;cursor:zoom-out;animation:fade .3s both}
.zoom img{max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);width:auto;height:auto;object-fit:contain;border-radius:var(--r)}

/* home: Seen on, the networks and brands in her logo type, one line edge to edge */
.seen-on{margin:0 var(--pad) 14px;padding:14px 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.seen-on ul{list-style:none;margin:0;padding:0;display:flex;justify-content:space-between;align-items:baseline;gap:4px 10px;font:400 1.9vw/1 Jaro,Impact,sans-serif;text-transform:uppercase;letter-spacing:0;white-space:nowrap}
.seen-on .lab{font:500 14px/1 Switzer,system-ui,sans-serif;letter-spacing:-.025em;text-transform:none}
/* separators: a thin hairline instead of a slash */
.seen-on .sl{display:inline-block;flex:none;width:1px;height:calc(1.9vw * .62);background:#cfcfcf;font-size:0;color:transparent;align-self:center}

/* the slim header that follows the scroll, and the phone booking bar */
.mini{position:fixed;top:0;left:0;right:0;z-index:15;height:48px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 var(--pad);background:rgba(255,255,255,.88);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--hair);transform:translateY(-100%);visibility:hidden;transition:transform .35s cubic-bezier(.2,.7,.2,1),visibility 0s .35s}
.mini.on{transform:none;visibility:visible;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.mini .mk{justify-self:start;font:400 24px/1 Jaro,Impact,sans-serif;text-transform:uppercase;letter-spacing:0}
.mini .book{justify-self:end;height:32px;padding:8px 14px;border-radius:var(--r);background:var(--ink);color:#fff;transition:opacity .25s}
.mini .book:hover{opacity:.85}
.mini .prog{position:absolute;left:0;bottom:-1px;height:2px;width:calc(var(--p,0) * 100%);background:var(--ink);pointer-events:none}
/* headshots full screen */
.shot img{cursor:zoom-in}
.lb{position:fixed;inset:0;z-index:40;display:grid;grid-template-rows:64px minmax(0,1fr) 64px;justify-items:center;align-items:center;background:rgba(255,255,255,.97);animation:fade .25s both}
.lb img{grid-row:2;max-width:min(88vw,1100px);max-height:100%;object-fit:contain;border-radius:var(--r)}
.lb button{position:absolute;width:44px;height:44px;display:grid;place-items:center;background:none;transition:opacity .25s}
.lb button:hover{opacity:.5}
.lb button svg{width:20px;height:20px}
.lb button svg{width:16px;height:16px;fill:none;stroke:var(--ink);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.lb .lx{top:12px;right:12px}.lb .lp{left:16px;top:50%;margin-top:-22px}.lb .ln{right:16px;top:50%;margin-top:-22px}
.lb .lc{grid-row:3;display:flex;gap:20px;align-items:center}
.lb .lc a{text-decoration:underline;text-underline-offset:2px}
/* About: voice clips */
.voice{padding:0 var(--pad);margin:0 0 40px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.voice .lab{grid-column:1/-1}
.clip{display:grid;grid-template-columns:24px auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:0;background:none;text-align:left}
.clip .pl{width:24px;height:24px;border-radius:50%;background:var(--ink);position:relative}
.clip .pl::after{content:"";position:absolute;left:9px;top:7px;border-left:8px solid var(--paper);border-top:5px solid transparent;border-bottom:5px solid transparent}
.clip.playing .pl::after{left:8px;top:8px;width:2px;height:8px;border:0;border-left:2px solid var(--paper);border-right:2px solid var(--paper)}
/* the clip as one thin line that fills as it plays */
.clip .track{position:relative;height:1px;background:var(--hair)}
.clip .fill{position:absolute;left:0;top:-.5px;height:2px;width:calc(var(--t,0) * 100%);background:var(--ink);transition:width .25s linear}
.clip .cl-d{color:var(--dim);font-variant-numeric:tabular-nums}
.clip.off{opacity:.4}
.clip.off .pl{background:#9a9a9a}
/* About: a line set large */
.pq{margin:56px var(--pad) 0;padding:28px 0;border-top:1px solid var(--hair);align-items:center;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.pq blockquote{grid-column:1/3;grid-row:1;margin:0;font-size:clamp(26px,2.6vw,40px);line-height:1.05;letter-spacing:-.04em}
.pq .lab{grid-column:3;grid-row:1}
.pq+.facts{margin-top:0}
.fcol-mid .im{color:var(--dim);text-decoration:underline;text-underline-offset:2px;margin-left:4px}
/* Contact: casting kit, availability */
.p-contact .reach{min-height:0;padding-bottom:56px}
.kit2{margin:0 var(--pad) 40px;padding-top:12px;border-top:1px solid var(--hair);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap)}
.kit2 .lab{grid-column:1/-1;margin-bottom:4px}
.kit2 a{display:flex;flex-direction:column;gap:4px;transition:opacity .25s}
.kit2 a:hover{opacity:.55}
/* symmetric across the row: first flush left, last flush right, the middle two centred */
.kit2 a:nth-of-type(2),.kit2 a:nth-of-type(3){align-items:center;text-align:center}
.kit2 a:last-of-type{align-items:flex-end;text-align:right}
.kit2 b{font-weight:500}.kit2 span{color:var(--dim)}
.avail{margin-top:24px}
.avail p:last-child{display:flex;align-items:center;gap:8px}
.avail p:last-child::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ink)}
/* résumé page */
.cv{padding:8px var(--pad) 40px}
.cv-head{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap);align-items:end;padding-bottom:28px}
.cv-head h1{grid-column:1/3;font:400 clamp(56px,8.2vw,132px)/.82 Jaro,Impact,sans-serif;text-transform:uppercase;letter-spacing:-.01em}
.cv-act{grid-column:3;display:grid;grid-template-columns:1fr 1fr;gap:var(--gap)}
.cv-act .btn{grid-column:auto}
.cv-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap);padding:12px 0 24px;border-top:1px solid var(--hair)}
.cv-row h2{font-size:inherit;font-weight:inherit}
.cv-row table{grid-column:2/4;width:100%;border-collapse:collapse;table-layout:fixed}
.cv-row td{padding:5px 12px 5px 0;border-bottom:1px solid var(--hair);vertical-align:top}
.cv-row td:first-child{width:40%}
.cv-row td:nth-child(2){width:24%}
.cv-row td+td{color:var(--dim)}
/* home: her latest Instagram posts */
.insta{margin:56px var(--pad) 0}
.insta .ih{display:flex;justify-content:space-between;margin-bottom:8px}
.insta .ih a{transition:opacity .25s}.insta .ih a:hover{opacity:.55}
.ig-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--gap)}
.ig-row a{display:block;aspect-ratio:4/5;border-radius:var(--r);overflow:hidden;background:var(--off)}
.ig-row img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.ig-row a:hover img{transform:scale(1.04)}
/* back to top: a quiet text button, no border */
.btt{grid-area:btt;justify-self:center;align-self:start;display:inline-flex;gap:6px;transition:opacity .25s}
.btt:hover{opacity:.55}
.foot .btt{text-decoration:none}
.bk{display:none}

/* home: Latest line, showreel slot */
.latest{padding:0 var(--pad) 12px;display:flex;align-items:center;gap:8px}
.latest::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ink);flex:none}
.showreel{padding:8px var(--pad) 8px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.reel-box{grid-column:1/3;position:relative;aspect-ratio:16/9;border-radius:var(--r);background:#121212 linear-gradient(135deg,#1b1b1b,#0d0d0d);overflow:hidden}
.reel-play{position:absolute;left:50%;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;background:rgba(255,255,255,.92)}
.reel-play::after{content:"";position:absolute;left:26px;top:21px;border-style:solid;border-width:11px 0 11px 17px;border-color:transparent transparent transparent var(--ink)}
.reel-cap{position:absolute;left:8px;right:8px;bottom:8px;display:flex;justify-content:space-between;height:32px;padding:8px;border-radius:var(--r);background:var(--glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff}
.reel-cap .dim{color:rgba(255,255,255,.7)}
.reel-bio{grid-column:3}

/* about: at a glance, travel, representation and union */
.btn-text{background:none;color:var(--ink)}
.btn-text:hover{opacity:.55}
.pdfs{display:flex;flex-wrap:wrap;gap:6px 20px}
.pdfs a{transition:opacity .25s}.pdfs a:hover{opacity:.55}
/* focus rings only for the keyboard */
:focus:not(:focus-visible){outline:none}
:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.travel{color:var(--ink)}
.stats{padding:0 var(--pad);margin:0 0 40px}
/* the at-a-glance band: a rule above and below, the same space inside each */
.stats dl{margin:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) minmax(0,2fr) minmax(0,1fr);gap:var(--gap);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:14px 0}
.stats dt{color:var(--dim)}
.stats dd{margin:4px 0 0}
.ru{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap);padding:12px var(--pad) 0;margin:0 0 40px;border-top:1px solid var(--hair)}
.ru-col p+p{margin-top:8px}

/* unlisted self-tape */
.tape{padding:0 var(--pad) 40px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.tape video{grid-column:1/3;width:100%;height:auto;aspect-ratio:16/9;border-radius:var(--r);background:#000}
.tape-cap{grid-column:1/3;display:flex;justify-content:space-between;gap:8px}

/* privacy policy: About's grid, the section titles in the left rail */
.pp-head{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap);padding:8px var(--pad) 40px;align-items:end}
.pp-head h1{grid-column:1/3;font:400 clamp(56px,8.2vw,132px)/.82 Jaro,Impact,sans-serif;text-transform:uppercase;letter-spacing:-.01em}
.pp-head .lab{grid-column:3}
.pp-body{padding:0 var(--pad) 40px}
.pp-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap);padding:12px 0 28px;border-top:1px solid var(--hair)}
.pp-row h2{font-size:inherit;font-weight:inherit}
.pp-text{grid-column:2/4;max-width:66ch}
.pp-text p+p,.pp-text p+ul,.pp-text ul+p{margin-top:10px}
.pp-text ul{list-style:none;padding:0;display:grid;gap:10px}
.pp-text strong,.pp-text b{font-weight:inherit}
.pp-text a{text-decoration:underline;text-underline-offset:2px}
.pp-text code{font-family:inherit}

/* motion: the page fades in as one, and blocks fade in as they scroll into view, as Framer's did */
@keyframes fade{from{opacity:0}}
.js .top,.js main,.js .foot{animation:fade .7s .25s ease-out both}
.js.seen .top,.js.seen main,.js.seen .foot{animation:none}
.top .wm{overflow:hidden}
@media (prefers-reduced-motion:no-preference){
 .js:not(.seen) .top .lt{transform:translateY(105%);animation:rise .8s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(.15s + var(--i) * 55ms)}
 .js:not(.seen) .top{animation:none}
}
@keyframes rise{to{transform:none}}
/* project to project: Next slides the page left, Previous slides it right */
@media (prefers-reduced-motion:no-preference){
 html:active-view-transition-type(next)::view-transition-old(root){animation:.42s cubic-bezier(.4,0,.2,1) both slide-out-l}
 html:active-view-transition-type(next)::view-transition-new(root){animation:.42s cubic-bezier(.4,0,.2,1) both slide-in-r}
 html:active-view-transition-type(prev)::view-transition-old(root){animation:.42s cubic-bezier(.4,0,.2,1) both slide-out-r}
 html:active-view-transition-type(prev)::view-transition-new(root){animation:.42s cubic-bezier(.4,0,.2,1) both slide-in-l}
}
@keyframes slide-out-l{to{transform:translateX(-30%);opacity:0}}
@keyframes slide-in-r{from{transform:translateX(30%);opacity:0}}
@keyframes slide-out-r{to{transform:translateX(30%);opacity:0}}
@keyframes slide-in-l{from{transform:translateX(-30%);opacity:0}}
@media (prefers-reduced-motion:no-preference){
 @view-transition{navigation:auto}
 .top{view-transition-name:top}
 ::view-transition-old(root),::view-transition-new(root){animation-duration:.35s;animation-timing-function:ease-out}
}
.js .reveal{opacity:0;transition:opacity .5s ease-out}
.js .reveal.in{opacity:1}
@media (prefers-reduced-motion:reduce){
 *,*::before,*::after{animation:none!important;transition:none!important}
 .js .reveal{opacity:1}
}

/* phone */
@media (max-width:809px){
 :root{--pad:12px}
 .seen-on ul{display:block;white-space:normal;font-size:24px;line-height:1.15;text-wrap:balance}
 .seen-on li{display:inline;white-space:nowrap}
 .seen-on .sl{display:none}
 .seen-on li:not(.lab){margin-right:.12em}
 .intro-home .latest{margin-top:16px}
 .p-home .intro-home{padding-bottom:24px}
 .mini{grid-template-columns:1fr;height:auto;padding:8px}
 .mini .mk,.mini .book{display:none}
 .bk{position:fixed;left:0;right:0;bottom:0;z-index:14;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;padding:8px var(--pad) calc(8px + env(safe-area-inset-bottom,0px));background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--hair)}
 .bk a{display:flex;justify-content:center;align-items:center;height:40px;border-radius:var(--r);background:var(--ink);color:#fff}
 .bk a+a{padding:0 14px;background:none;color:var(--ink)}
 body:has(.bk) .foot{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}
 .kit{grid-template-columns:minmax(0,1fr);gap:12px}
 .kit .filters,.kit .btn{grid-column:1}
 .pager{grid-template-columns:minmax(0,1fr)}
 .pn.off{display:none}
 .fm{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"mk mk" "book book" "legal social";align-items:start;row-gap:0;padding-bottom:72px}
 .fm .mk{margin-bottom:14px}
 .fm-book{justify-self:stretch;display:flex;justify-content:space-between;gap:12px;padding:10px 0;margin-bottom:12px;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
 .fm .dot{display:none}
 .fm-legal>*,.fm-social>*{display:block}
 .pn{grid-template-columns:64px minmax(0,1fr);gap:10px}
 .pn.next{grid-template-columns:minmax(0,1fr) 64px}
 .pn img{width:64px;height:64px}
 .pn .t{font-size:22px}
 .top{padding:8px var(--pad) 0}
 .bar{margin-top:6px}
 .pills{flex:1;display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
 .pills a{text-align:center}
 .clock{display:none}
 .intro{display:block;min-height:0;padding-top:8px;padding-bottom:40px}
 .p-about .intro{padding-bottom:40px}
 .grid{grid-template-columns:1fr}
 .pp-head,.pp-row{grid-template-columns:minmax(0,1fr)}
 .pp-head h1,.pp-head .lab,.pp-text{grid-column:1}
 .pp-head{gap:12px;padding-bottom:28px}
 .pp-row{gap:8px;padding-bottom:20px}
 .showreel,.tape{grid-template-columns:1fr}
 .reel-box,.tape video,.tape-cap,.reel-bio{grid-column:1}
 .stats dl{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:12px}
 .ru{grid-template-columns:1fr}
 .tape-cap{flex-direction:column}
 .intro-reel .reel{margin-bottom:16px}
 .shots{grid-template-columns:minmax(0,1fr)}
 .intro-about .headshot{max-width:none;margin-bottom:24px}
 .intro-about{display:block}
 .row{grid-template-columns:28px minmax(0,1fr) 64px;align-items:center;padding:10px 0}
 .row .credit,.row .go{display:none}
 .row .pv{display:block;grid-column:3;grid-row:1;width:64px;height:80px;object-fit:cover;border-radius:var(--r)}
 .cards3{grid-template-columns:minmax(0,1fr);gap:56px}
 .facts{grid-template-columns:1fr;gap:32px;margin-top:56px;min-height:0}
 .fcol{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap)}
 .fcol-mid{padding-left:0}
 .fbody{margin-top:0}
 .lab-gap{margin-top:16px}
 .reach{grid-template-columns:1fr;min-height:0;padding-bottom:40px;gap:32px}
 .reach-book,.reach-based{grid-column:1}
 .fm-home{grid-template-areas:"book book" "legal social";min-height:0;padding-bottom:0}
 .fm-home .fm-book{border-top:0;padding-top:0}
 .fm-home{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"book book" "legal social" "btt btt"}
 .btt{margin-top:16px}
 kbd{display:none}
 .ig-row{grid-template-columns:repeat(3,minmax(0,1fr))}
 .pills a[href="/resume/"]{display:none}
 .voice,.kit2{grid-template-columns:minmax(0,1fr)}
 .kit2 a:nth-of-type(n){align-items:flex-start;text-align:left}
 .pq{grid-template-columns:minmax(0,1fr);margin-top:40px}
 .pq blockquote,.pq .lab{grid-column:1;grid-row:auto}
 .cv-head,.cv-row{grid-template-columns:minmax(0,1fr)}
 .cv-head h1,.cv-act,.cv-row table{grid-column:1}
 .cv-row td:first-child{width:auto}
 /* résumé rows stack on phones: the title, then role and details under it */
 .cv-row table,.cv-row tbody,.cv-row tr,.cv-row td{display:block;width:auto!important}
 .cv-row tr{padding:8px 0;border-bottom:1px solid var(--hair)}
 .cv-row td{padding:0;border:0}
 .cv-row td+td{margin-top:2px}
 .cv-row tr:last-child{border-bottom:0}
 .lb .lp,.lb .ln{display:none}
 .nf{padding:120px 8px}
 .p-proj main{grid-template-columns:1fr}
 .media{grid-column:1;width:100%}
 .info{grid-column:1;grid-row:auto;position:static;padding-left:0;margin-top:24px;gap:16px}
 .iname{font-size:56px}
 .pager{grid-column:1}
}

/* the banner on the site's margin (site.json gutter; consent.css reads --sg-consent-gutter) */
:root{--sg-consent-gutter:16px}
@media (max-width:809px){:root{--sg-consent-gutter:12px}}

/* find-in-page highlights */
::search-text{background:#e0e0e0;color:#000}::search-text:current{background:#b8b8b8;color:#000}
