.frab-grid{border:var(--hair) solid var(--line-ink);border-bottom:0;border-right:0;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;display:grid}@media (max-width:1000px){.frab-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.frab-grid{grid-template-columns:1fr}}.frab-grid>li{border-right:var(--hair) solid var(--line-ink);border-bottom:var(--hair) solid var(--line-ink);min-width:0}.frab-card{background:var(--paper);height:100%;transition:background var(--dur-tactile) var(--ease-soft);flex-direction:column;display:flex}.frab-card:hover,.frab-card:focus-visible{background:var(--paper-2)}.frab-shot{aspect-ratio:4/3;background:var(--paper-2);border-bottom:var(--hair) solid var(--line-ink);display:block;position:relative;overflow:hidden}.frab-shot img{object-fit:cover;object-position:top center;width:100%;height:100%}.frab-shot:after{content:"";background:var(--blue);opacity:0;transition:opacity var(--dur-tactile) var(--ease-soft);position:absolute;inset:0}.frab-card:hover .frab-shot:after,.frab-card:focus-visible .frab-shot:after{opacity:.85}.frab-open{z-index:2;font-family:var(--font-mono);font-size:var(--t-label);text-transform:uppercase;letter-spacing:var(--track-label);color:var(--on-blue);opacity:0;transition:opacity var(--dur-tactile) var(--ease-soft);place-items:center;display:grid;position:absolute;inset:0}.frab-card:hover .frab-open,.frab-card:focus-visible .frab-open{opacity:1}.frab-daynum{z-index:2;font-family:var(--font-mono);font-size:var(--t-label);text-transform:uppercase;letter-spacing:var(--track-label);color:#fff;padding:6px var(--s1);background:#111417e0;line-height:1;position:absolute;top:0;left:0}.frab-body{padding:var(--s2) var(--s3) var(--s3);flex-direction:column;flex:1;gap:6px;display:flex}.frab-tag{font-family:var(--font-mono);font-size:var(--t-label);text-transform:uppercase;letter-spacing:var(--track-label);color:var(--accent-ink)}.frab-title{font-family:var(--font-head);font-weight:600;font-size:var(--t-sm);color:var(--ink);line-height:1.25}.frab-desc{color:var(--ink-2);flex:1;font-size:.875rem;line-height:1.5}.frab-cta{font-family:var(--font-mono);font-size:var(--t-label);text-transform:uppercase;letter-spacing:var(--track-label);color:var(--ink-3);transition:color var(--dur-tactile) var(--ease-soft);margin-top:4px}.frab-card:hover .frab-cta,.frab-card:focus-visible .frab-cta{color:var(--blue-text)}.frab-outro-cell{display:flex}.frab-outro{justify-content:center;gap:var(--s1);width:100%;padding:var(--s3);background:var(--blue);color:var(--on-blue);flex-direction:column;display:flex}.frab-outro-n{font-family:var(--font-head);font-weight:600;font-size:var(--t-h3);letter-spacing:var(--track-display)}.frab-outro-l{font-family:var(--font-mono);font-size:var(--t-label);text-transform:uppercase;letter-spacing:var(--track-label)}.frab-outro-s{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:var(--track-label);opacity:1}.frab-modal-sheet{z-index:101;padding:var(--s4);pointer-events:none;place-items:center;display:grid;position:fixed;inset:0}@media (max-width:640px){.frab-modal-sheet{padding:var(--s1)}}.frab-modal-card{pointer-events:auto;width:min(920px,92vw);max-height:calc(100vh - 2 * var(--s4));background:var(--surface);border:var(--hair) solid var(--line-ink);grid-template-rows:auto 1fr auto;display:grid;position:relative;overflow:hidden}@media (max-width:640px){.frab-modal-card{border-width:0;width:100vw;max-height:100vh}}.frab-modal-bar{align-items:center;gap:var(--s3);padding:var(--s2) var(--s3);border-bottom:var(--hair) solid var(--line-ink);background:var(--paper);display:flex}.frab-modal-title{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.frab-modal-title .t{font-family:var(--font-head);font-weight:600;font-size:var(--t-sm);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.frab-modal-title .s{font-family:var(--font-mono);font-size:var(--t-label);text-transform:uppercase;letter-spacing:var(--track-label);color:var(--accent-ink)}.frab-modal-stage{background:var(--paper-2);min-height:0;position:relative;overflow:auto}.frab-modal-stage img{width:100%;height:auto;display:block}.frab-modal-desc{padding:var(--s3);border-top:var(--hair) solid var(--line-ink);background:var(--paper);font-size:var(--t-sm);color:var(--ink-2);max-width:70ch;line-height:1.5}.lab-note{padding:var(--s3) var(--s3) 0;font-size:var(--t-sm);color:var(--ink-2);line-height:1.55;display:block}
