/* Accession: generated by build/css.py.
   Copyright 2026 Zain Dana Harper. The fonts are licensed under the SIL Open Font License,
   Version 1.1 (OFL.txt, https://openfontlicense.org). No Reserved Font Name. */
@font-face{font-family:"Accession Text";src:url("variable/AccessionText[INKS,wght].woff2") format("woff2");font-weight:300 800;font-style:normal;font-display:swap}
@font-face{font-family:"Accession Text";src:url("variable/AccessionText-Italic[INKS,wght].woff2") format("woff2");font-weight:300 800;font-style:italic;font-display:swap}
@font-face{font-family:"Accession Display";src:url("variable/AccessionDisplay[wght].woff2") format("woff2");font-weight:300 900;font-style:normal;font-display:swap}
@font-face{font-family:"Accession Mono";src:url("variable/AccessionMono[wght].woff2") format("woff2");font-weight:300 700;font-style:normal;font-display:swap}
@font-face{font-family:"Accession Super";src:url("variable/AccessionSuper[wght].woff2") format("woff2");font-weight:600 900;font-style:normal;font-display:swap}
@font-face{font-family:"Accession Burin";src:url("variable/AccessionBurin[LINE,wght].woff2") format("woff2");font-weight:500 900;font-style:normal;font-display:swap}
@font-face{font-family:"Accession Divisumma";src:url("variable/AccessionDivisumma[TURN,wght].woff2") format("woff2");font-weight:400 650;font-style:normal;font-display:swap}
@font-face{font-family:"Accession Material";src:url("variable/AccessionMaterial[INKS,WEAR,wght].woff2") format("woff2");font-weight:300 900;font-style:normal;font-display:swap}
@font-face{font-family:"Accession Stencil";src:url("variable/AccessionStencil[wght].woff2") format("woff2");font-weight:300 900;font-style:normal;font-display:swap}
@font-face{font-family:"Accession Slab";src:url("variable/AccessionSlab[wght].woff2") format("woff2");font-weight:300 900;font-style:normal;font-display:swap}
@font-face{font-family:"Accession Carved";src:url("variable/AccessionCarved[wght].woff2") format("woff2");font-weight:300 900;font-style:normal;font-display:swap}
@font-face{font-family:"Accession Worn";src:url("cuts/AccessionWorn.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Accession Engraved";src:url("cuts/AccessionEngraved.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Accession Screen";src:url("cuts/AccessionScreen.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Accession Two Ink";src:url("cuts/AccessionTwoInk.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Accession Lit";src:url("cuts/AccessionLit.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Accession Tray";src:url("cuts/AccessionTray.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}

/* The house family as the shell's three type tokens. Text is the stable reading face; everything
   above it (display cuts, materials, colour cuts) is per piece and may change from room to room. */
:root[data-type="house"]{
  --face-text:"Accession Text","Hanken Grotesk",system-ui,sans-serif;
  --face-display:"Accession Display","Hanken Grotesk",system-ui,sans-serif;
  --face-utility:"Accession Mono","Conso",ui-monospace,monospace;
}
/* Colour cuts (COLRv1) draw as plain outlines where COLRv1 is not supported (Safari as of this
   build). Give them a solid colour so that fallback still reads. */

/* Timing layers: a living cut animates its rule-strength axis on a timing law. Pick the law with
   --cut-timing (for example var(--t-cooling-50)) and the length with --cut-dur. */
:root{--t-diffusion:linear(0.0,0.2041,0.2887,0.3536,0.4082,0.4564,0.5,0.5401,0.5774,0.6124,0.6455,0.677,0.7071,0.736,0.7638,0.7906,0.8165,0.8416,0.866,0.8898,0.9129,0.9354,0.9574,0.9789,1.0);--t-diffusion-50:linear(0.0,0.1229,0.186,0.2393,0.2875,0.3324,0.375,0.4159,0.4553,0.4937,0.5311,0.5677,0.6036,0.6388,0.6735,0.7078,0.7416,0.775,0.808,0.8407,0.8731,0.9052,0.937,0.9686,1.0);--t-cooling:linear(0.0,0.1564,0.2888,0.4008,0.4957,0.576,0.6439,0.7014,0.7501,0.7914,0.8263,0.8558,0.8808,0.902,0.9199,0.935,0.9479,0.9587,0.9679,0.9757,0.9823,0.9879,0.9926,0.9966,1.0);--t-cooling-50:linear(0.0,0.099,0.186,0.2629,0.3312,0.3921,0.447,0.4966,0.5417,0.5832,0.6215,0.6571,0.6904,0.7218,0.7516,0.78,0.8073,0.8335,0.859,0.8837,0.9078,0.9314,0.9546,0.9775,1.0);--t-heartbeat:linear(0.0,0.1845,0.369,0.5536,0.62,0.62,0.62,0.62,0.6622,0.7942,0.9261,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0);--t-heartbeat-50:linear(0.0,0.1131,0.2262,0.3393,0.3933,0.4142,0.435,0.4558,0.4978,0.5846,0.6714,0.7292,0.75,0.7708,0.7917,0.8125,0.8333,0.8542,0.875,0.8958,0.9167,0.9375,0.9583,0.9792,1.0);}
.cut-live{animation-duration:var(--cut-dur,1.8s);animation-timing-function:var(--cut-timing,var(--t-diffusion));animation-fill-mode:both}
.cut-live.burin{animation-name:accession-line}
.cut-live.divisumma{animation-name:accession-turn}
@keyframes accession-line{from{font-variation-settings:"LINE" 4}to{font-variation-settings:"LINE" 8}}
@keyframes accession-turn{from{font-variation-settings:"TURN" 0}to{font-variation-settings:"TURN" 100}}
@media (prefers-reduced-motion:reduce){.cut-live{animation:none}}
html.plain .cut-live{animation:none}
