:root{
  --ink:#1A1A1A; --paper:#FAFAFA; --red:#C92A2A; --muted:#8A8A8A; --line:rgba(26,26,26,0.08);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0; background:var(--paper); color:var(--ink); font-family:'Inter',system-ui,-apple-system,sans-serif; -webkit-font-smoothing:antialiased;}
.serif{font-family:'Playfair Display',Georgia,serif;}
.wrap{max-width:1120px; margin:0 auto; padding:0 24px;}
@media(min-width:768px){ .wrap{padding:0 40px;} }
a{color:inherit; text-decoration:none;}
button{font-family:inherit; cursor:pointer; border:none; background:none;}
.tag{display:inline-block; font-size:10px; letter-spacing:0.25em; text-transform:uppercase; color:var(--muted);}
.hoverred{transition:color .2s;}
.hoverred:hover{color:var(--red);}

/* HEADER */
header{position:sticky; top:0; z-index:50; background:rgba(250,250,250,0.72); backdrop-filter:blur(12px); border-bottom:1px solid rgba(26,26,26,0.06);}
.hbar{height:64px; display:flex; align-items:center; justify-content:space-between;}
.logo{font-family:'Playfair Display',serif; font-size:22px; letter-spacing:-0.02em;}
@media(min-width:768px){ .logo{font-size:24px;} }
.logo .dot{color:var(--red);}
.navlinks{display:flex; align-items:center; gap:28px;}
.navlink{font-size:11px; letter-spacing:0.2em; text-transform:uppercase;}
@media(max-width:600px){ .navlinks{gap:16px;} .navlink.hideS{display:none;} }

/* HERO */
.hero{padding:120px 0 130px;}
@media(min-width:768px){ .hero{padding:170px 0 190px;} }
.hero h1{font-family:'Playfair Display',serif; font-weight:600; margin:32px 0 0; line-height:1.05; letter-spacing:-0.02em; font-size:clamp(2.6rem,7vw,6rem);}
.hero .grey{color:#B0B0B0; font-style:italic;}
.hero p.sub{margin:40px 0 0; max-width:28rem; color:#6A6A6A; font-size:15px; line-height:1.7;}
.viewcount{margin:36px 0 0; display:flex; align-items:baseline; gap:12px; flex-wrap:wrap;}
.vc-num{font-family:'Playfair Display',serif; font-size:clamp(1.6rem,3vw,2.2rem); font-variant-numeric:tabular-nums; letter-spacing:-0.01em; color:var(--ink);}
.vc-label{font-size:11px; letter-spacing:0.15em; text-transform:uppercase; color:var(--muted);}

/* FEATURE BLOCKS */
.feat{padding:64px 0; border-top:1px solid var(--line);}
@media(min-width:768px){ .feat{padding:112px 0;} }
.featgrid{display:grid; gap:40px; align-items:center;}
@media(min-width:768px){ .featgrid{grid-template-columns:1fr 1fr; gap:80px;} }
.featimg{aspect-ratio:4/3; width:100%; position:relative; overflow:hidden; background:#F0F0EE; cursor:pointer; display:block;}
.featimg .tex{position:absolute; inset:0; transition:transform .7s; background-image:repeating-linear-gradient(45deg, rgba(26,26,26,0.03) 0px, rgba(26,26,26,0.03) 1px, transparent 1px, transparent 22px);}
.featimg:hover .tex{transform:scale(1.05);}
.featimg .big{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:'Playfair Display',serif; font-style:italic; font-size:clamp(4rem,8vw,7rem); color:#DADAD6; user-select:none;}
.feat h3{font-family:'Playfair Display',serif; font-weight:600; margin:20px 0; line-height:1; letter-spacing:-0.02em; font-size:clamp(2rem,4vw,3.4rem);}
.feat p.blurb{color:#6A6A6A; font-size:15px; line-height:1.7; max-width:28rem; margin:0 0 32px;}
.statuschip{font-size:10px; letter-spacing:0.25em; text-transform:uppercase; color:var(--red); border:1px solid rgba(201,42,42,0.3); padding:6px 12px;}
.readpm{font-size:12px; letter-spacing:0.15em; text-transform:uppercase; display:inline-flex; align-items:center; gap:6px;}

/* WORKS GRID */
.works{padding:130px 0 40px; border-top:1px solid var(--line);}
.works-head{display:flex; align-items:baseline; justify-content:space-between; border-bottom:1px solid rgba(26,26,26,0.1); padding-bottom:24px; margin-bottom:16px;}
.works-head h2{font-family:'Playfair Display',serif; font-weight:600; font-size:clamp(1.8rem,4vw,3rem); letter-spacing:-0.02em; margin:0;}
.works-note{font-size:12px; color:var(--muted); line-height:1.6; margin:0 0 40px; max-width:34rem;}
.grid{display:grid; grid-template-columns:repeat(2,1fr); gap:2px; background:rgba(26,26,26,0.08); border:1px solid rgba(26,26,26,0.08);}
@media(min-width:640px){ .grid{grid-template-columns:repeat(3,1fr);} }
@media(min-width:900px){ .grid{grid-template-columns:repeat(4,1fr);} }
.cell{background:var(--paper); aspect-ratio:1/1; position:relative; display:flex; flex-direction:column; justify-content:flex-end; padding:16px; transition:background .25s,color .25s; overflow:hidden;}
.cell.live{cursor:pointer;}
.cell.live:hover{background:var(--ink); color:var(--paper);}
.cell.live:hover .cell-k{color:rgba(250,250,250,0.6);}
.cell.live:hover .cell-arrow{opacity:1; transform:translate(0,0);}
.cell .cell-init{position:absolute; top:14px; left:16px; font-family:'Playfair Display',serif; font-style:italic; font-size:2.2rem; color:#DADAD6; transition:color .25s;}
.cell.live:hover .cell-init{color:rgba(250,250,250,0.25);}
.cell .cell-t{font-family:'Playfair Display',serif; font-size:1.15rem; line-height:1.15; margin:0 0 4px;}
.cell .cell-k{font-size:10px; letter-spacing:0.15em; text-transform:uppercase; color:var(--muted); transition:color .25s;}
.cell .cell-arrow{position:absolute; top:14px; right:14px; opacity:0; transform:translate(-4px,4px); transition:opacity .25s,transform .25s;}
.cell.soon{color:#C4C4C4; border:1px dashed rgba(26,26,26,0.12); background:#F7F7F5;}
.cell.soon .cell-t{color:#C4C4C4;}
.cell.soon .cell-init{color:#ECECEA;}

/* ARCHIVE */
.archive{padding:120px 0;}
.archive-head{display:flex; align-items:baseline; justify-content:space-between; border-bottom:1px solid rgba(26,26,26,0.1); padding-bottom:24px; margin-bottom:12px;}
.archive-head h2{font-family:'Playfair Display',serif; font-weight:600; font-size:clamp(1.8rem,4vw,3rem); letter-spacing:-0.02em; margin:0;}
.archive-note{font-size:12px; color:var(--muted); line-height:1.6; margin:0 0 48px; max-width:34rem;}
.drawers{display:grid; grid-template-columns:1fr; gap:48px;}
@media(min-width:768px){ .drawers{grid-template-columns:repeat(3,1fr); gap:32px;} }
.drawer .n{font-family:'Playfair Display',serif; font-style:italic; font-size:1.5rem; color:#C4C4C4;}
.drawer h3{font-family:'Playfair Display',serif; font-size:clamp(1.25rem,2.5vw,1.5rem); margin:16px 0 12px;}
.drawer p{font-size:12px; line-height:1.7; color:var(--muted); margin:0;}

/* WASTE TIME */
.waste{border-top:1px solid var(--line); background:#F4F4F2;}
.waste-inner{padding:110px 0 120px; text-align:center;}
.waste .kick{font-size:11px; letter-spacing:0.25em; text-transform:uppercase; color:var(--muted);}
.waste-btn{font-family:'Playfair Display',serif; font-size:clamp(2rem,5vw,3.5rem); font-weight:600; letter-spacing:-0.02em; margin:20px auto 0; display:inline-block; border-bottom:2px solid transparent; transition:color .2s,border-color .2s;}
.waste-btn:hover{color:var(--red); border-color:var(--red);}
.waste-out{margin:36px auto 0; max-width:34rem; min-height:2.4em; font-size:16px; line-height:1.6; color:#3A3A3A; font-style:italic; transition:opacity .15s;}
.waste-count{margin-top:20px; font-size:10px; letter-spacing:0.2em; text-transform:uppercase; color:#B0B0B0;}

/* SUBMIT CTA */
.cta{border-top:1px solid var(--line); text-align:center;}
.cta-inner{padding:120px 0;}
.cta h2{font-family:'Playfair Display',serif; font-weight:600; margin:32px auto 40px; line-height:1.15; letter-spacing:-0.02em; max-width:48rem; font-size:clamp(1.8rem,4.5vw,3.5rem);}
.cta-btn{font-size:12px; letter-spacing:0.2em; text-transform:uppercase; display:inline-flex; align-items:center; gap:8px;}

/* FOOTER */
footer{border-top:1px solid var(--line);}
.foot{padding:40px 0; display:flex; flex-direction:column; gap:16px; align-items:center; justify-content:space-between;}
@media(min-width:768px){ .foot{flex-direction:row;} }
.foot .fnote{font-size:10px; letter-spacing:0.2em; text-transform:uppercase; color:#B0B0B0;}

/* EXHIBIT (project overview page) */
.ex-hero{max-width:900px; margin:0 auto; padding:96px 24px 80px;}
@media(min-width:768px){ .ex-hero{padding:144px 40px 80px;} }
.backlink{font-size:11px; letter-spacing:0.2em; text-transform:uppercase; color:var(--muted); display:inline-flex; align-items:center; gap:8px; margin-bottom:48px;}
.ex-hero h1{font-family:'Playfair Display',serif; font-weight:700; margin:24px 0 40px; line-height:1; letter-spacing:-0.02em; font-size:clamp(2.8rem,8vw,6.5rem);}
.tryapp{font-size:12px; letter-spacing:0.15em; text-transform:uppercase; display:inline-flex; align-items:center; gap:8px; padding:14px 24px; color:var(--paper); background:var(--ink); border:1px solid var(--ink); transition:background .2s,border-color .2s;}
.tryapp:hover{background:var(--red); border-color:var(--red);}
.ex-body{max-width:1120px; margin:0 auto; padding:0 24px 96px;}
@media(min-width:768px){ .ex-body{padding:0 40px 96px;} }
.ex-grid{display:grid; grid-template-columns:1fr; gap:48px;}
@media(min-width:768px){ .ex-grid{grid-template-columns:220px 1fr; gap:80px;} }
.side{align-self:start;}
@media(min-width:768px){ .side{position:sticky; top:96px;} }
.stacklist{list-style:none; margin:24px 0 0; padding:0;}
.stacklist li{font-size:12px; line-height:1.6; color:#6A6A6A; padding-bottom:16px; border-bottom:1px solid var(--line); margin-bottom:16px;}
.affil{font-size:10px; line-height:1.6; font-style:italic; color:#B0B0B0; margin-top:24px;}
.diary p{font-size:16px; line-height:1.9; color:#3A3A3A; margin:0 0 32px;}
.diary .drop{font-family:'Playfair Display',serif; float:left; font-size:3.6rem; line-height:.8; padding:4px 12px 0 0; color:var(--ink);}

/* verdict */
.verdict{margin-top:96px; padding-top:64px; border-top:1px solid rgba(26,26,26,0.1); text-align:center;}
.verdict .q{font-family:'Playfair Display',serif; font-size:clamp(1.5rem,3vw,2rem); margin:24px 0 48px;}
.vote-row{display:flex; align-items:stretch; justify-content:center; gap:16px; max-width:640px; margin:0 auto; flex-wrap:nowrap;}
.vote-big{flex:1 1 auto; position:relative; overflow:hidden; border:1px solid var(--ink); color:var(--ink); background:transparent; padding:28px 24px; display:flex; align-items:center; justify-content:space-between; gap:16px; transition:background .2s,color .2s;}
.vote-big:hover{background:var(--ink); color:var(--paper);}
.vote-big .vlabel{font-family:'Playfair Display',serif; font-size:clamp(1.2rem,2.5vw,1.6rem);}
.vote-big .vmeta{font-size:10px; letter-spacing:0.2em; text-transform:uppercase; display:flex; align-items:center; gap:12px;}
.vote-big .vnum{font-family:'Playfair Display',serif; font-size:1.3rem; font-variant-numeric:tabular-nums;}
.vote-small{flex:0 0 auto; width:120px; position:relative; overflow:hidden; border:1px solid var(--line); color:#9A9A9A; background:transparent; padding:12px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; transition:color .2s,border-color .2s;}
.vote-small:hover{color:var(--red); border-color:rgba(201,42,42,0.4);}
.vote-small .vlabel{font-size:11px; line-height:1.3; text-align:center;}
.vote-small .vnum{font-family:'Playfair Display',serif; font-size:1rem; font-variant-numeric:tabular-nums;}
@media(max-width:520px){ .vote-small{width:92px;} .vote-big{padding:22px 16px;} }
.stamp{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; pointer-events:none; opacity:0;}
.stamp span{border:3px solid var(--red); color:var(--red); font-size:11px; letter-spacing:0.2em; text-transform:uppercase; font-weight:600; padding:6px 14px; transform:rotate(-14deg) scale(2); border-radius:3px;}
.stamp.fire{animation:stampfire .7s ease-out;}
@keyframes stampfire{0%{opacity:0; transform:scale(1.6) rotate(-14deg);}30%{opacity:1; transform:scale(1) rotate(-14deg);}75%{opacity:1;}100%{opacity:0; transform:scale(1) rotate(-14deg);}}

/* field notes list */
.fieldnotes{margin-top:80px; padding-top:56px; border-top:1px solid rgba(26,26,26,0.1);}
.fn-head{display:flex; align-items:baseline; justify-content:space-between; margin-bottom:24px;}
.fn-count{font-size:10px; letter-spacing:0.2em; text-transform:uppercase; color:#B0B0B0;}
.fn-list{display:flex; flex-direction:column;}
.fn-item{display:flex; align-items:baseline; gap:20px; padding:24px 0; border-bottom:1px solid var(--line); transition:padding-left .25s;}
a.fn-item:hover{padding-left:8px;}
.fn-no{font-family:'Playfair Display',serif; font-style:italic; font-size:1rem; color:#C4C4C4; flex:0 0 auto; width:28px;}
.fn-main{flex:1 1 auto;}
.fn-t{font-family:'Playfair Display',serif; font-size:clamp(1.15rem,2.2vw,1.5rem); line-height:1.25; margin:0 0 6px; transition:color .2s;}
a.fn-item:hover .fn-t{color:var(--red);}
.fn-meta{font-size:11px; letter-spacing:0.05em; color:var(--muted);}
.fn-arrow{flex:0 0 auto; color:#C4C4C4; transition:color .2s,transform .2s;}
a.fn-item:hover .fn-arrow{color:var(--red); transform:translate(3px,-3px);}
.fn-item.draft{opacity:.55;}
.fn-draft-tag{font-size:9px; letter-spacing:0.2em; text-transform:uppercase; color:#B0B0B0; border:1px solid var(--line); padding:2px 8px; margin-left:8px;}

/* prev/next exhibit */
.nextnav{border-top:1px solid var(--line);}
.nextnav-inner{max-width:1120px; margin:0 auto; padding:80px 24px; display:grid; grid-template-columns:1fr 1fr; gap:2px;}
@media(min-width:768px){ .nextnav-inner{padding:110px 40px;} }
.nnav{padding:24px; transition:color .2s; display:block;}
.nnav .dir{font-size:11px; letter-spacing:0.25em; text-transform:uppercase; color:var(--muted); display:flex; align-items:center; gap:8px;}
.nnav.right{text-align:right;}
.nnav.right .dir{justify-content:flex-end;}
.nnav .nt{font-family:'Playfair Display',serif; font-weight:600; font-size:clamp(1.4rem,3.5vw,2.6rem); letter-spacing:-0.02em; margin-top:16px; transition:color .2s;}
.nnav:hover .nt{color:var(--red);}

/* ARTICLE PAGE */
.art-wrap{max-width:720px; margin:0 auto; padding:96px 24px 40px;}
@media(min-width:768px){ .art-wrap{padding:128px 24px 40px;} }
.art-crumbs{display:flex; align-items:center; gap:20px; flex-wrap:wrap; margin-bottom:56px;}
.art-back{font-size:12px; letter-spacing:0.06em; color:var(--muted);}
.art-home{font-family:'Playfair Display',serif; font-size:16px; letter-spacing:-0.01em; color:var(--ink);}
.art-home .dot{color:var(--red);}
.art-title{font-family:'Playfair Display',serif; font-weight:700; font-size:clamp(2rem,5vw,3.3rem); line-height:1.1; letter-spacing:-0.02em; margin:16px 0 24px;}
.art-standfirst{font-size:1.15rem; line-height:1.6; color:#4A4A4A; margin:0 0 28px;}
.art-byline{font-size:12px; letter-spacing:0.05em; color:var(--muted); padding-bottom:40px; border-bottom:1px solid var(--line); margin:0 0 48px;}
.art-body p{font-size:1.06rem; line-height:1.85; color:#2E2E2E; margin:0 0 28px;}
.art-body h2{font-family:'Playfair Display',serif; font-weight:600; font-size:clamp(1.4rem,3vw,1.9rem); letter-spacing:-0.01em; margin:56px 0 20px; line-height:1.2;}
.art-body h2 .hn{color:var(--red); font-style:italic; margin-right:14px; font-size:.85em;}
.art-body blockquote{margin:36px 0; padding:4px 0 4px 28px; border-left:3px solid var(--red); font-family:'Playfair Display',serif; font-style:italic; font-size:1.3rem; line-height:1.5; color:var(--ink);}
.art-body strong{font-weight:600; color:var(--ink);}
.art-body .aside{font-style:italic; color:#6A6A6A; font-size:1rem;}
.art-divider{text-align:center; color:#C4C4C4; letter-spacing:0.5em; margin:48px 0;}
.art-foot{margin-top:64px; padding-top:48px; border-top:1px solid var(--line);}
.art-nextnote{font-size:1rem; line-height:1.7; color:#4A4A4A; margin:0 0 40px;}
.art-nextnote strong{color:var(--ink);}
.art-actions{display:flex; flex-direction:column; gap:16px; align-items:flex-start;}
@media(min-width:640px){ .art-actions{flex-direction:row; align-items:center; justify-content:space-between;} }
.art-cta{font-size:12px; letter-spacing:0.12em; text-transform:uppercase; color:var(--muted); transition:color .2s;}
.art-cta:hover{color:var(--red);}
.art-cta.primary{color:var(--ink); border:1px solid var(--ink); padding:14px 22px; transition:background .2s,color .2s;}
.art-cta.primary:hover{background:var(--ink); color:var(--paper);}

/* MODAL */
.modal-bg{position:fixed; inset:0; z-index:60; display:none; align-items:center; justify-content:center; padding:24px; background:rgba(26,26,26,0.4); backdrop-filter:blur(4px);}
.modal-bg.open{display:flex;}
.modal{position:relative; width:100%; max-width:28rem; background:var(--paper); padding:40px;}
@media(min-width:768px){ .modal{padding:48px;} }
.modal h3{font-family:'Playfair Display',serif; font-size:1.9rem; margin:20px 0 16px; line-height:1.15;}
.modal p{font-size:12px; line-height:1.7; color:var(--muted); margin:0 0 32px;}
.modal-x{position:absolute; top:20px; right:20px; color:#B0B0B0;}
.modal-send{font-size:12px; letter-spacing:0.15em; text-transform:uppercase; display:inline-flex; align-items:center; gap:8px; padding:14px 24px; color:var(--paper); background:var(--ink); transition:background .2s;}
.modal-send:hover{background:var(--red);}

/* TOAST */
.toast{position:fixed; bottom:32px; left:50%; transform:translateX(-50%) translateY(20px); z-index:70; padding:14px 24px; background:var(--ink); color:var(--paper); font-size:12px; letter-spacing:0.02em; opacity:0; pointer-events:none; transition:opacity .3s,transform .3s;}
.toast.show{opacity:1; transform:translateX(-50%) translateY(0);}
.fade{opacity:0; transform:translateY(16px); transition:opacity .6s,transform .6s;}
.fade.in{opacity:1; transform:translateY(0);}
