/* The Living Index, live 7 Nov 2026. Graphite background; film pages keep their own paper player. */
@font-face{font-family:"IBM Plex Mono";src:url("../assets/fonts/plex-mono-regular.ttf") format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("../assets/fonts/plex-mono-medium.ttf") format("truetype");font-weight:500;font-display:swap}
*{box-sizing:border-box;margin:0;padding:0}
a{color:inherit;text-decoration:none}
img,video{display:block}
.frame{position:relative;overflow:hidden;background:#111}
.frame img,.frame video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.frame video{opacity:0}
.tile.playing .frame video{opacity:1}
.filters{display:flex;overflow-x:auto;scrollbar-width:none;white-space:nowrap}
.filters::-webkit-scrollbar{display:none}
.film-page .player{position:relative;aspect-ratio:16/9;background:#000;overflow:hidden}
.film-page .player img{width:100%;height:100%;object-fit:cover}
body:not(.is-film) .film-only{display:none}
body.is-film .home-only{display:none}
.hero-tile.live .frame video{opacity:1}
:root{--paper:#F5F5F2;--ink:#161616;--grey:#777771;--rule:#D9D9D3;--red:#AD4C43;--m:40px;
 --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='173' height='173'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.87' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='173' height='173' filter='url(%23g)' opacity='.08'/%3E%3C/svg%3E")}
body{background:var(--paper) var(--grain);color:var(--ink);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}
.mono{font-family:"IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.05em}
header{display:flex;align-items:center;justify-content:space-between;padding:26px var(--m) 0;gap:30px}
.mark{font-weight:700;font-size:25px;letter-spacing:-.045em}
.right{display:flex;align-items:center;gap:34px}
nav{display:flex;gap:28px;font-size:12px;font-weight:500;letter-spacing:.03em;text-transform:uppercase}nav a{color:var(--grey)}nav a.on{color:var(--ink)}
.path{width:40px;height:24px;display:block;color:var(--ink)}
/* category row */
.cats{display:flex;align-items:center;gap:26px;padding:30px var(--m) 24px}
.sig{width:44px;height:44px;flex:none;position:relative}.sig svg{position:absolute;inset:0;width:100%;height:100%;fill:currentColor;transition:opacity .15s}
.filters{gap:26px;font-size:12px;font-weight:500;letter-spacing:.03em;text-transform:uppercase}
.filters a{display:flex;align-items:center;gap:8px;color:var(--grey);padding:6px 0;border-bottom:1px solid transparent}
.filters a svg{width:14px;height:14px;fill:currentColor;opacity:.7}
.filters a.on{color:var(--ink);border-color:var(--red)}.filters a.on svg{opacity:1}
main{padding:0 var(--m) 140px}
/* hero inside paper */
.hero-tile{display:block;position:relative}
.hero-tile .frame{aspect-ratio:2.35}
.hero-tile .frame::after{content:"";position:absolute;inset:55% 0 0 0;background:linear-gradient(180deg,rgba(14,14,13,0),rgba(14,14,13,.55))}
.hcap{position:absolute;left:32px;right:32px;bottom:28px;color:#F5F3EC;display:flex;align-items:flex-end;justify-content:space-between}
.hcap .count{font-size:11px;margin-bottom:14px;display:flex;align-items:center;gap:10px;opacity:.9}.hcap .count em{font-style:normal;color:#E0897F}
.hcap .count svg{width:13px;height:13px;fill:currentColor}
.hcap b{display:block;font-weight:700;font-size:64px;letter-spacing:-.055em;line-height:.92;text-transform:uppercase}
.hcap .t{font-size:18px;margin-top:8px}
.watch{font-size:11px;display:flex;gap:9px;align-items:center;padding-bottom:4px}.watch::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--red)}
.below{display:flex;justify-content:space-between;padding:14px 0 0;font-size:11px;color:var(--grey)}
/* grid */
#grid{display:grid;grid-template-columns:1fr 1fr;column-gap:20px;row-gap:52px;margin-top:56px}
#grid .frame{aspect-ratio:16/9;background:var(--frame,#e4e3dd)}
.frame video{transition:opacity .18s ease}
.cap{display:flex;justify-content:space-between;align-items:flex-start;margin-top:13px}
.cap b{display:block;font-weight:700;font-size:18px;letter-spacing:-.02em;text-transform:uppercase}
.cap span{display:block;font-size:14px;color:var(--grey);margin-top:3px}
.plus{width:16px;height:16px;position:relative;margin-top:3px;flex:none;transition:color .18s,transform .25s}
.plus::before,.plus::after{content:"";position:absolute;background:currentColor;left:50%;top:50%}.plus::before{width:16px;height:1.2px;margin:-.6px 0 0 -8px}.plus::after{width:1.2px;height:16px;margin:-8px 0 0 -.6px}
.tile.playing .plus{color:var(--red);transform:rotate(90deg)}
/* film page */
.film-page{padding:6px var(--m) 140px}
.film-page .player{background:#0f0f0e}
.play{position:absolute;left:28px;bottom:24px;color:#F5F3EC;font-size:11px;display:flex;gap:9px;align-items:center}.play::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--red)}
.ft{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:30px}
.ft .count{font-size:11px;color:var(--grey);display:flex;align-items:center;gap:10px;margin-bottom:14px}.ft .count em{font-style:normal;color:var(--red)}.ft .count svg{width:14px;height:14px;fill:var(--ink)}
.ft h1{font-weight:700;font-size:64px;letter-spacing:-.055em;line-height:.92;text-transform:uppercase}.ft h2{font-weight:400;font-size:20px;color:var(--grey);margin-top:10px}
.sheet div{display:grid;grid-template-columns:150px 1fr;padding:11px 0;border-top:1px solid var(--rule);font-size:15px}
.sheet div span:first-child{font-family:"IBM Plex Mono";font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--grey);padding-top:3px}
.next{display:flex;justify-content:space-between;align-items:flex-end;margin-top:90px;border-top:1px solid var(--ink);padding-top:16px}
.next .mono{font-size:11px;color:var(--grey)}.next b{font-size:40px;letter-spacing:-.05em;text-transform:uppercase}.next b span{font-weight:400;text-transform:none;color:var(--grey);font-size:20px;letter-spacing:-.01em;margin-left:12px}
@media(max-width:700px){:root{--m:18px}
 header{padding-top:18px;flex-wrap:wrap;gap:10px 0}.mark{font-size:21px}.right{display:contents}.path{order:2}nav{order:3;flex-basis:100%;gap:22px;font-size:11px}
 .cats{gap:14px;padding:18px var(--m) 14px}.sig{width:28px;height:28px}.filters{gap:20px;font-size:11px;padding-right:20px}
 .hero-tile .frame{aspect-ratio:16/9}.hero-tile .frame::after{display:none}
 .hcap{position:static;color:var(--ink);flex-direction:column;align-items:flex-start;gap:10px;margin-top:14px}.hcap .count em{color:var(--red)}.hcap .count{margin-bottom:8px;opacity:1}
 .hcap b{font-size:34px}.hcap .t{font-size:15px;color:var(--grey);margin-top:4px}.below{display:none}
 #grid{column-gap:10px;row-gap:28px;margin-top:34px}.cap{margin-top:9px}.cap b{font-size:13px}.cap span{font-size:11px}.plus,.plus::before,.plus::after{transform-origin:center}.plus{width:12px;height:12px}.plus::before{width:12px;margin-left:-6px}.plus::after{height:12px;margin-top:-6px}
 .ft{grid-template-columns:1fr;gap:24px}.ft h1{font-size:40px}.next b{font-size:26px}.next b span{display:block;margin:4px 0 0;font-size:15px}}
/* preview additions */
.hero-tile.live .frame video{opacity:1}
#grid,#hero{transition:opacity .14s ease}
.fading #grid,.fading #hero{opacity:0}
.filters a sup{font-family:"IBM Plex Mono";font-size:9px;color:var(--grey);margin-left:-3px;align-self:flex-start;margin-top:3px}
.sig svg{opacity:0}.sig svg.on{opacity:1}
.film-page .player{aspect-ratio:16/9;transition:aspect-ratio .2s}
.film-page .player video{position:absolute;inset:0;width:100%;height:100%;display:block;background:#0f0f0e;object-fit:contain}
.back{display:inline-flex;gap:8px;align-items:center;font-size:11px;color:var(--grey);margin:22px 0 18px}.back svg{width:12px;height:12px;fill:currentColor}
.back:hover{color:var(--ink)}
/* info */
.info{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px;padding:44px var(--m) 140px}
.info .portrait{aspect-ratio:4/5;background:#ddd center/cover;position:sticky;top:30px}
.info h1{font-size:30px;font-weight:400;letter-spacing:-.02em;line-height:1.25;max-width:22em}
.info h1 b{font-weight:700}
.info .lead{margin-top:22px;font-size:17px;line-height:1.55;max-width:36em;color:var(--ink);opacity:.82}
.block{margin-top:52px;border-top:1px solid var(--ink);padding-top:14px}
.block h3{font-family:"IBM Plex Mono";font-weight:400;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--grey);display:flex;gap:10px;align-items:center;margin-bottom:12px}
.block h3 svg{width:13px;height:13px;fill:var(--ink)}
.clients{font-size:22px;letter-spacing:-.02em;line-height:1.35;font-weight:700;text-transform:uppercase}
.clients span{color:var(--grey);font-weight:400}
.rec div{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:9px 0;border-bottom:1px solid var(--rule);font-size:14px}
.rec div span:last-child{color:var(--grey)}
.rec div.win span:first-child::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--red);margin:0 9px 2px 0}
.contact{display:flex;gap:28px;flex-wrap:wrap;font-family:"IBM Plex Mono";font-size:12px;text-transform:uppercase;letter-spacing:.05em}
.contact a{border-bottom:1px solid var(--ink);padding-bottom:2px}
@media(max-width:700px){.next{flex-direction:column;align-items:flex-start;gap:8px}.next b span{margin:4px 0 0}
.info{grid-template-columns:1fr;gap:28px;padding-top:24px}.info .portrait{position:static}.info h1{font-size:23px}.clients{font-size:17px}.rec div{grid-template-columns:1fr;gap:2px}}

body.dark{--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='173' height='173'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.87' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='173' height='173' filter='url(%23g)' opacity='.12'/%3E%3C/svg%3E")}
body.dark .code-beacon .cb-ghost{opacity:.35}
@media(max-width:700px){}

/* laurels over the still, as on the current site */
.tile .film-recognition{position:absolute;left:50%;bottom:5%;z-index:2;transform:translateX(-50%);display:flex;gap:5%;width:52%;max-width:370px;align-items:center;pointer-events:none;opacity:.96}
.tile .film-recognition img{display:block;min-width:0;flex:1;width:28%;height:auto;object-fit:contain}
.tile .film-recognition img:only-child{flex:none;width:28%;margin-inline:auto}
.tile[data-slug=frank-gehry] .film-recognition img:only-child,.tile[data-slug=sue-webster] .film-recognition img:only-child{width:36%;min-width:80px}
.tile[data-slug=alan-moore] .film-recognition img:only-child,.tile[data-slug=nike] .film-recognition img:only-child{width:28%;min-width:0;max-width:92px}
.tile[data-slug=stubborn-heart] .film-recognition{width:58%;max-width:230px;gap:4%}
.tile[data-slug=supermodel] .film-recognition{width:77%;max-width:490px;gap:2%}
.hero-tile[data-slug=supermodel] .film-recognition{width:87%;max-width:590px}
.hero-tile .film-recognition{bottom:7%}
.hero-tile:has(.film-recognition) .hcap{bottom:auto;top:28px}
.hero-tile:has(.film-recognition) .frame::after{inset:0 0 60% 0;background:linear-gradient(0deg,rgba(14,14,13,0),rgba(14,14,13,.45))}
/* a lone last film spans the full width */
#grid .tile:last-child:nth-child(odd){grid-column:1/-1}
#grid .tile:last-child:nth-child(odd) .frame{aspect-ratio:2.35}
@media(max-width:700px){.tile[data-slug=supermodel] .film-recognition{width:92%}.tile[data-slug=alan-moore] .film-recognition img:only-child,.tile[data-slug=nike] .film-recognition img:only-child{width:42%}
.hero-tile:has(.film-recognition) .hcap{top:auto}}
.frame .film-recognition img{position:static;inset:auto;height:auto;object-fit:contain}


:root{--accent:var(--red)}
.path.code-beacon{position:relative;display:grid;place-items:center;width:52px;height:44px;margin:-10px -6px -10px 0}

/* Graphite */
:root{--paper:#1A1A18;--ink:#EDEAE2;--grey:#8E8C85;--rule:#34332F;--red:#C9624F;--frame:#262624;--accent:var(--red);color-scheme:dark}
body.dark .code-beacon .cb-ghost{opacity:.35}
.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:12px;z-index:50;background:var(--ink);color:var(--paper);padding:6px 10px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tile:hover .plus,.tile:focus-visible .plus{color:var(--red);transform:rotate(90deg)}

/* still runs (Jaguar, Nike, Converse, Sue Webster) */
.frame .seq{position:absolute;inset:0;z-index:1}
.frame .seq img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0}
.frame .seq img.cur{opacity:1}
.tile:not(.playing) .frame .seq{display:none}

/* light version (tone switch) */
html.tone-light{--paper:#F5F5F2;--ink:#161616;--grey:#777771;--rule:#D9D9D3;--red:#AD4C43;--frame:#E4E3DD;color-scheme:light}
html.tone-light body.dark{--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='173' height='173'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.87' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='173' height='173' filter='url(%23g)' opacity='.08'/%3E%3C/svg%3E")}
html.tone-light body.dark .code-beacon .cb-ghost{opacity:.22}
/* the switch: a small half moon next to The Path */
.tone{width:28px;height:28px;padding:5px;border:0;background:none;color:var(--grey);cursor:pointer;opacity:.7;transition:opacity .2s,color .2s}
.tone svg{display:block;width:16px;height:16px;fill:currentColor}
.tone:hover,.tone:focus-visible{opacity:1;color:var(--ink)}

/* Glacier blue (tone switch) */
html.tone-glacier{--paper:#BDD5DE;--ink:#15292F;--grey:#49616A;--rule:#94B0BA;--red:#9C3F36;--frame:#A9C4CE;color-scheme:light}
html.tone-glacier body.dark{--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='173' height='173'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.87' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='173' height='173' filter='url(%23g)' opacity='.07'/%3E%3C/svg%3E")}
html.tone-glacier body.dark .code-beacon .cb-ghost{opacity:.3}
@media(max-width:700px){.tone{order:2;margin-left:auto;margin-right:8px}}
