/* Idler identity system - shared furniture across surfaces.
   Aggregate DNA: Tufte data-ink (hairline, no chartjunk) + Montessori proportion
   + construction frame + one pixel-icon family. Ground-agnostic via currentColor. */

/* construction identity frame - one mark per corner, one label per spine */
.frame{position:fixed;inset:0;pointer-events:none;z-index:50;color:var(--frame-ink,var(--ink-3,var(--faint,#9a9aa2)));}
.frame .cm{position:absolute;width:13px;height:13px;}
.frame .cm.tl{top:14px;left:14px;border-top:1px solid currentColor;border-left:1px solid currentColor;}
.frame .cm.tr{top:14px;right:14px;border-top:1px solid currentColor;border-right:1px solid currentColor;}
.frame .cm.bl{bottom:14px;left:14px;border-bottom:1px solid currentColor;border-left:1px solid currentColor;}
.frame .cm.br{bottom:14px;right:14px;border-bottom:1px solid currentColor;border-right:1px solid currentColor;}
.frame .spine{position:absolute;top:0;bottom:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--mono,"Fragment Mono",ui-monospace,monospace);font-size:9px;letter-spacing:0.34em;text-transform:uppercase;}
.frame .spine span{writing-mode:vertical-rl;}
.frame .spine.l{left:0;width:34px;} .frame .spine.l span{transform:rotate(180deg);}
.frame .spine.r{right:0;width:34px;}
@media(max-width:1080px){.frame{display:none;}}

/* pixel-glyph icons - bitmap on a 5x5 grid, rendered to crisp SVG by ico.js */
.ico{display:inline-block;width:20px;height:20px;flex:0 0 auto;line-height:0;}
.ico svg{display:block;width:100%;height:100%;}
