/* Each project owns its material and composition. MOCI does not load this file. */
.identity-mark{width:110px;padding:0;flex:none;transform:none}
.identity-mark svg{width:100%;height:auto}
.story-masthead{margin-bottom:0}
.story-hero-grid{padding-top:44px}
.story-hero{position:relative;isolation:isolate}
.story-button{background:var(--accent);border-radius:2px}
.contact-sheet,.evidence-route,.field-index,.budget-heading,.continuity-line,.study-heading{font:11px/1.6 var(--mono);color:var(--muted)}

/* ViraLens — contact sheet, edit marks, and a hypothesis crossed out in coral. */
body[data-project=viralens]{--ink:#141111;--surface:#211b1c;--paper:#f5eee6;--muted:#bfaead;--line:#e4b5af30;--accent:#ff897a}
html[data-theme=light] body[data-project=viralens]{--ink:#f5eee6;--surface:#eee0d6;--paper:#2b2222;--muted:#776260;--line:#4e24292b;--accent:#ac362d}
[data-project=viralens] .story-masthead{border-bottom:3px solid var(--paper);padding-bottom:20px}
[data-project=viralens] .story-masthead h1{font-family:"Bahnschrift Condensed","Arial Narrow",var(--headline);text-transform:uppercase;font-weight:750;letter-spacing:-.065em;font-size:clamp(80px,12vw,176px)}
[data-project=viralens] .identity-mark{transform:rotate(-12deg);width:95px}
.contact-sheet{display:grid;grid-template-columns:120px repeat(3,1fr);border-bottom:1px solid var(--line);position:relative;padding:18px 0}
.contact-label{align-self:center;letter-spacing:.13em;color:var(--accent);font-size:9px}
.contact-sheet>div{display:flex;align-items:center;gap:18px;border-left:1px solid var(--line);padding:10px 24px;position:relative}
.contact-sheet b{font:500 15px var(--body);color:var(--paper)}
.contact-sheet i{margin-left:auto;color:var(--accent);font-size:23px;font-style:normal}
[data-project=viralens] .visual-viralens{border-radius:0;transform:rotate(1deg);box-shadow:9px 9px 0 var(--line);padding:28px 32px 26px 45px;border-color:var(--line)}
[data-project=viralens] .hypothesis{font-weight:620;font-size:clamp(29px,3vw,43px)}
[data-project=viralens] .sample-result>strong{font-size:68px;letter-spacing:-.06em}
[data-project=viralens] .story-decisions{gap:0;border-block:1px solid var(--line);padding-block:24px}
[data-project=viralens] .story-decisions article{border-top:0;padding:12px 28px;border-right:1px solid var(--line)}
[data-project=viralens] .story-decisions article:first-child{padding-left:0}
[data-project=viralens] .story-decisions article:last-child{border-right:0;padding-right:0}
[data-project=viralens] .decision-number{font-size:38px;letter-spacing:-.06em}
[data-project=viralens] .story-artifact{border-radius:0;border-block:14px solid var(--paper)}
[data-project=viralens] .story-closing h2{max-width:1000px;text-transform:uppercase}

/* FactLens — blue drafting paper, a traceable route, and an evidence docket. */
body[data-project=factlens]{--ink:#09141c;--surface:#0e202b;--paper:#e3f0f8;--muted:#9db8ca;--line:#81b8d333;--accent:#7ccff3;background-image:linear-gradient(#83b7ce06 1px,transparent 1px),linear-gradient(90deg,#83b7ce06 1px,transparent 1px);background-size:48px 48px}
html[data-theme=light] body[data-project=factlens]{--ink:#edf4f7;--surface:#e0ebf1;--paper:#172f42;--muted:#4e697c;--line:#24577730;--accent:#126590;background-image:linear-gradient(#24577707 1px,transparent 1px),linear-gradient(90deg,#24577707 1px,transparent 1px)}
[data-project=factlens] .story-masthead{border-bottom:1px solid var(--accent)}
[data-project=factlens] .story-masthead h1{font-weight:400;letter-spacing:-.075em}
.evidence-route{display:flex;align-items:center;gap:22px;padding:24px 0;border-bottom:1px solid var(--line)}
.evidence-route>span:not(.route-label):not(.route-end){display:flex;gap:9px;align-items:center;color:var(--paper)}
.evidence-route b{font:10px var(--mono);border:1px solid var(--line);padding:5px;color:var(--accent)}
.route-label{margin-right:auto;font-size:9px;letter-spacing:.12em}
.evidence-route i{font-style:normal;color:var(--accent)}
.route-end{margin-left:auto;font-size:10px}
[data-project=factlens] .visual-factlens{border-radius:0;box-shadow:12px 12px 0 color-mix(in srgb,var(--accent) 8%,transparent)}
[data-project=factlens] .story-decisions{grid-template-columns:1fr;gap:0;border-left:1px solid var(--accent);margin-left:12px;max-width:1050px}
[data-project=factlens] .story-decisions article{position:relative;display:grid;grid-template-columns:45px .7fr 1.4fr;gap:22px;padding:24px 0 24px 30px;align-items:start}
[data-project=factlens] .story-decisions article::before{content:"";width:9px;height:9px;background:var(--accent);position:absolute;left:-5px;top:32px}
[data-project=factlens] .story-decisions h3{margin:0;line-height:1.6}
[data-project=factlens] .story-artifact{border-radius:0;padding:14px;background:var(--surface);border:1px solid var(--accent)}
[data-project=factlens] .story-artifact figcaption{padding:16px 4px 4px}
[data-project=factlens] .story-limits{background:var(--surface);padding:24px 28px;max-width:100%}

/* SkillTree — a field guide, an open landscape, and a living trunk. */
body[data-project=skilltree]{--ink:#101b14;--surface:#18271b;--paper:#edf0d9;--muted:#abb79f;--line:#adca912c;--accent:#b9da83;background-image:radial-gradient(ellipse at 0 18%,#73924a16,transparent 42%)}
html[data-theme=light] body[data-project=skilltree]{--ink:#f1f2e6;--surface:#e6ead7;--paper:#253b22;--muted:#607050;--line:#4b6e332d;--accent:#476d27}
[data-project=skilltree] .story-masthead{border:0;padding-bottom:8px}
[data-project=skilltree] .story-masthead h1{font-weight:450;letter-spacing:-.07em}
.field-index{display:flex;align-items:center;justify-content:space-between;gap:20px;border-block:1px solid var(--line);padding:15px 0;font-size:10px}
.field-index>span:last-child{color:var(--accent);font-size:22px}
[data-project=skilltree] .hero-art{position:relative}
[data-project=skilltree] .hero-art::before{content:"";position:absolute;inset:65px 0 105px;pointer-events:none;background:repeating-linear-gradient(0deg,var(--line) 0 1px,transparent 1px 20px) left/7px 100% no-repeat,repeating-linear-gradient(0deg,var(--line) 0 1px,transparent 1px 20px) right/7px 100% no-repeat;opacity:.7}
[data-project=skilltree] .growth-node{border-radius:36% 36% 18% 18%;background:var(--surface);padding:17px 20px;box-shadow:0 12px 28px #0000000b}
[data-project=skilltree] .story-decisions{position:relative;gap:52px}
[data-project=skilltree] .story-decisions article{border-top:0;border-left:1px solid var(--accent);padding:0 0 0 25px;position:relative}
[data-project=skilltree] .story-decisions article::before{content:"";position:absolute;left:-7px;top:0;width:13px;height:22px;background:var(--accent);border-radius:100% 0 100% 0;transform:rotate(-25deg)}
[data-project=skilltree] .story-artifact{border:10px solid var(--surface);border-radius:8px}
[data-project=skilltree] .story-closing{background:radial-gradient(ellipse at 80% 40%,color-mix(in srgb,var(--accent) 9%,transparent),transparent 65%)}

/* ctxtax — utilitarian type on a workbench, with a real paper receipt. */
body[data-project=ctxtax]{--ink:#181713;--surface:#24231c;--paper:#f3eede;--muted:#b6b09c;--line:#d7c89f30;--accent:#e5be63}
html[data-theme=light] body[data-project=ctxtax]{--ink:#ece9df;--surface:#e0dccf;--paper:#2c2a24;--muted:#686455;--line:#544b342f;--accent:#7e5b16}
[data-project=ctxtax] .story-masthead h1{font-family:var(--mono);font-size:clamp(72px,11vw,150px);font-weight:400;letter-spacing:-.095em}
[data-project=ctxtax] .story-masthead{border-bottom:2px solid var(--paper)}
.budget-heading{display:flex;align-items:center;gap:28px;padding:20px 0;border-bottom:1px dashed var(--line)}
.budget-heading code{color:var(--accent);font:14px var(--mono)}
.barcode{width:100px;height:27px;margin-left:auto;background:repeating-linear-gradient(90deg,var(--paper) 0 2px,transparent 2px 4px,var(--paper) 4px 5px,transparent 5px 8px,var(--paper) 8px 12px,transparent 12px 14px);opacity:.6}
[data-project=ctxtax] .story-hero-grid{grid-template-columns:1fr 1fr;gap:70px;padding-block:56px 70px}
[data-project=ctxtax] .hero-art{padding:8px 24px 20px;background:radial-gradient(ellipse at center,#00000022,transparent 72%)}
[data-project=ctxtax] .visual-ctxtax{--ink:#e6dfce;--surface:#fbf6e9;--paper:#343329;--muted:#706b5e;--line:#5b513539;--accent:#795918;max-width:480px;margin:auto;padding:28px 30px 38px;border:0;border-radius:0;transform:rotate(2deg);box-shadow:0 17px 35px #0002;overflow:visible;background:var(--surface)}
[data-project=ctxtax] .visual-ctxtax::after{content:"";position:absolute;bottom:-9px;left:0;right:0;height:10px;background:linear-gradient(135deg,var(--surface) 25%,transparent 25%) -10px 0,linear-gradient(225deg,var(--surface) 25%,transparent 25%) -10px 0;background-size:20px 20px}
[data-project=ctxtax] .receipt-total strong{font-family:var(--mono);font-weight:400}
[data-project=ctxtax] .receipt-command{border-bottom:1px dashed var(--line);padding-bottom:20px}
[data-project=ctxtax] .story-decisions{grid-template-columns:1fr;gap:0}
[data-project=ctxtax] .story-decisions article{display:grid;grid-template-columns:60px 1fr 1.7fr;gap:24px;padding-block:25px;border-top-style:dashed}
[data-project=ctxtax] .story-decisions h3{margin:0;line-height:1.6}
[data-project=ctxtax] .evidence-ledger{background:none;border:0;border-block:2px solid var(--paper);padding:30px 0}
[data-project=ctxtax] .story-section,[data-project=ctxtax] .next-project{border-bottom-style:dashed}

/* Looming — the orbit moves on, the journal stays at the centre. */
body[data-project=looming]{--ink:#15121f;--surface:#201b31;--paper:#ece7fa;--muted:#b3a9ca;--line:#b5a0e430;--accent:#c3a7ff;background-image:radial-gradient(ellipse at 90% 10%,#7955be23,transparent 45%)}
html[data-theme=light] body[data-project=looming]{--ink:#efedf6;--surface:#e7e1f0;--paper:#332743;--muted:#706380;--line:#67458f30;--accent:#72509b}
[data-project=looming] .story-masthead{border-bottom:0}
[data-project=looming] .story-masthead h1{font-weight:350;letter-spacing:-.075em}
.continuity-line{display:flex;align-items:center;gap:12px;padding:18px 0;border-block:1px solid var(--line)}
.continuity-line code{font:10px var(--mono);margin-left:auto;color:var(--accent)}
.continuity-dot{height:8px;width:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 5px var(--surface)}
[data-project=looming] .visual-looming{border:0;border-radius:18px 18px 3px 3px;background:radial-gradient(ellipse at 50% 28%,color-mix(in srgb,var(--accent) 13%,transparent),transparent 60%),var(--surface);box-shadow:0 0 0 1px var(--line),0 18px 50px #00000015}
[data-project=looming] .loop-track{position:relative;height:180px;isolation:isolate;justify-content:space-around;padding:0;margin:10px 0}
.loop-orbit{position:absolute;inset:0;width:100%;height:100%;stroke:var(--accent);stroke-width:1;fill:none;opacity:.3;z-index:-1}
[data-project=looming] .loop-track>span:not(.loop-node){display:none}
[data-project=looming] .loop-node{background:var(--surface);border-radius:50%;width:74px;height:74px;min-width:0;display:flex;flex-direction:column;justify-content:center;line-height:1.05;transition:background .35s,border-color .35s}
[data-project=looming] .loop-node:nth-of-type(3){align-self:flex-start;margin-top:8px}
[data-project=looming] .loop-node br{display:none}
[data-project=looming] .loop-node.active{background:var(--ink);box-shadow:0 0 25px color-mix(in srgb,var(--accent) 12%,transparent)}
[data-project=looming] .journal-card{transform:none;border-radius:5px;box-shadow:0 5px 0 var(--surface),0 6px 0 var(--line),0 11px 0 var(--surface),0 12px 0 var(--line);padding:22px 26px;margin-bottom:28px}
[data-project=looming] [data-loop="3"] .loop-orbit{opacity:.1}
[data-project=looming] .story-decisions{gap:18px}
[data-project=looming] .story-decisions article{padding:26px;border:1px solid var(--line);border-radius:30px 30px 3px 3px;background:var(--surface)}
[data-project=looming] .decision-number{display:inline-flex;width:38px;height:38px;align-items:center;justify-content:center;border:1px solid var(--accent);border-radius:50%}
[data-project=looming] .evidence-ledger{background:transparent;border:0;border-left:1px solid var(--accent);padding:0 0 0 30px;grid-template-columns:1fr;gap:0;margin-left:8px}
[data-project=looming] .evidence-ledger>div{position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:24px 0;border-bottom:1px solid var(--line)}
[data-project=looming] .evidence-ledger>div::before{content:"";position:absolute;width:9px;height:9px;background:var(--accent);border-radius:50%;left:-35px;top:45%}
[data-project=looming] .evidence-ledger strong{font-size:25px}

/* RLCard — felt, playing cards and the sober precision of an experiment sheet. */
body[data-project=rlcard]{--ink:#092820;--surface:#10372d;--paper:#f0f0df;--muted:#a7c1b5;--line:#c1ddbd2e;--accent:#d3d693;background-image:radial-gradient(#d3ddca09 .6px,transparent .6px);background-size:5px 5px}
html[data-theme=light] body[data-project=rlcard]{--ink:#eef0e7;--surface:#dfe7db;--paper:#173b2c;--muted:#526e5c;--line:#2c573b30;--accent:#52742c;background-image:radial-gradient(#305c390b .6px,transparent .6px)}
[data-project=rlcard] .story-masthead{border-bottom:2px solid var(--accent)}
[data-project=rlcard] .story-masthead h1{font-weight:600;letter-spacing:-.065em}
.study-heading{display:flex;align-items:center;gap:25px;padding:18px 0;border-bottom:1px solid var(--line)}
.study-heading>span:last-child{margin-left:auto;font-size:10px}
.study-suits{font-size:24px;letter-spacing:.2em;color:var(--accent)}
[data-project=rlcard] .visual-rlcard{border-radius:18px;background:var(--surface);border:1px solid var(--accent);padding:26px 30px;box-shadow:inset 0 0 0 6px var(--surface),inset 0 0 0 7px var(--line)}
.poker-hand{display:flex;align-items:center;gap:0;padding:22px 8px 10px;height:100px}
.poker-hand>span{display:flex;flex-direction:column;width:45px;height:62px;border:1px solid #e5ddc5;border-radius:4px;background:#f7f2e6;color:#1c3a2e;padding:3px 7px;font:500 21px/1.3 var(--mono);box-shadow:3px 3px 8px #0002;transform:rotate(-12deg)}
.poker-hand>span:nth-child(2){color:#a7483b;transform:translateY(-7px)}
.poker-hand>span:nth-child(3){transform:rotate(12deg)}
.poker-hand small{font-size:19px}.poker-hand i{margin-left:auto;text-align:right;font:10px/1.8 var(--mono);color:var(--muted);letter-spacing:.16em}
[data-project=rlcard] .panel-label{margin-top:18px}
[data-project=rlcard] .research-bars{margin-top:18px;gap:14px}
[data-project=rlcard] .research-track{height:16px}
[data-project=rlcard] .story-decisions{gap:20px}
[data-project=rlcard] .story-decisions article{padding:26px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
[data-project=rlcard] .decision-number{font:28px var(--mono)}
[data-project=rlcard] .evidence-ledger{background:transparent;border:0;border-block:1px solid var(--accent);padding:36px 0;gap:0}
[data-project=rlcard] .evidence-ledger>div{padding:0 32px;border-right:1px solid var(--line)}
[data-project=rlcard] .evidence-ledger>div:first-child{padding-left:0}
[data-project=rlcard] .evidence-ledger>div:last-child{border-right:0}
[data-project=rlcard] .story-limits{background:var(--surface);padding:22px 28px;max-width:100%}

@media(max-width:1050px){
  .contact-sheet{grid-template-columns:85px repeat(3,1fr)}.contact-sheet>div{gap:10px;padding:8px 15px}.contact-sheet i{display:none}
  .evidence-route{gap:13px}.route-end{display:none}
  [data-project=ctxtax] .story-hero-grid{gap:32px}[data-project=ctxtax] .hero-art{padding-inline:8px}
  [data-project=viralens] .sample-result>strong{font-size:52px}
}
@media(max-width:760px){
  .identity-mark{width:55px}.story-masthead{gap:14px}.story-hero-grid{padding-top:30px}
  [data-project=viralens] .story-masthead h1{font-size:14vw}[data-project=viralens] .identity-mark{width:48px}
  .contact-sheet{grid-template-columns:repeat(3,1fr);padding:14px 0}.contact-label{grid-column:1/-1;margin-bottom:12px;display:flex;gap:8px}.contact-label br{display:none}.contact-sheet>div{padding:7px 10px;gap:8px}.contact-sheet>div:nth-child(2){padding-left:0;border:0}.contact-sheet b{font-size:12px}.contact-sheet>div>span{font-size:9px}
  [data-project=viralens] .visual-viralens{transform:none;box-shadow:5px 5px 0 var(--line);padding:24px 22px 20px 33px}
  [data-project=viralens] .story-decisions{padding:0;gap:0}[data-project=viralens] .story-decisions article,[data-project=viralens] .story-decisions article:first-child{padding:22px 0;border-right:0;border-top:1px solid var(--line);grid-template-columns:42px 1fr}[data-project=viralens] .decision-number{font-size:26px}
  .evidence-route{flex-wrap:wrap;gap:13px;padding:17px 0}.route-label{flex-basis:100%}
  [data-project=factlens] .story-decisions article{grid-template-columns:27px 1fr;gap:9px 15px;padding:22px 0 22px 22px}[data-project=factlens] .story-decisions p{grid-column:2}[data-project=factlens] .story-limits{padding:20px}
  [data-project=skilltree] .story-masthead h1{font-size:13.4vw}.field-index{font-size:9px;gap:12px}.field-index>span:last-child{display:none}
  [data-project=skilltree] .growth-node{padding:14px 10px}[data-project=skilltree] .story-decisions{gap:30px}[data-project=skilltree] .story-decisions article{padding-left:24px}
  [data-project=ctxtax] .story-masthead h1{font-size:17vw}.budget-heading{flex-wrap:wrap;gap:10px 16px}.budget-heading>span:not(.barcode){order:3;width:100%}.barcode{height:22px;width:80px}
  [data-project=ctxtax] .story-hero-grid{grid-template-columns:1fr;gap:34px;padding-block:30px 45px}[data-project=ctxtax] .visual-ctxtax{transform:none;padding:24px 22px 32px}
  [data-project=ctxtax] .story-decisions article{grid-template-columns:28px 1fr;gap:10px 15px}[data-project=ctxtax] .story-decisions p{grid-column:2}
  .continuity-line{flex-wrap:wrap;font-size:10px}.continuity-line code{flex-basis:100%;margin-left:20px;font-size:9px}
  [data-project=looming] .loop-track{height:170px}[data-project=looming] .loop-node{width:64px;height:64px;font-size:19px}[data-project=looming] .loop-node b{font-size:10px}
  [data-project=looming] .journal-card{padding:20px}[data-project=looming] .story-decisions article{padding:24px;grid-template-columns:38px 1fr;gap:8px 18px}[data-project=looming] .decision-number{grid-row:1/3;padding:0}
  [data-project=looming] .evidence-ledger strong{font-size:17px}[data-project=looming] .evidence-ledger>div{grid-template-columns:1.2fr 1fr;gap:15px;padding:22px 0}
  .study-heading{flex-wrap:wrap;gap:10px 16px;font-size:9px}.study-suits{font-size:21px}.study-heading>span:last-child{margin:0;flex-basis:100%}
  [data-project=rlcard] .visual-rlcard{padding:24px}[data-project=rlcard] .story-decisions article{padding:22px;grid-template-columns:42px 1fr}[data-project=rlcard] .decision-number{font-size:25px;padding:0}
  [data-project=rlcard] .evidence-ledger>div,[data-project=rlcard] .evidence-ledger>div:first-child{padding:20px 0;border-right:0}[data-project=rlcard] .evidence-ledger{padding:0;gap:0}
}
@media(prefers-reduced-motion:reduce){.loop-node{transition:none}}
