*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{background:#0e0e0e;color:#f2f0ea;font-family:IBM Plex Sans,Segoe UI,sans-serif;font-size:16px;line-height:1.45}main#app,.page{min-height:100dvh;max-width:52rem;padding:1rem 1.25rem 3rem}a{color:#c8e6c0}.site-nav{display:flex;flex-wrap:wrap;gap:.85rem;margin-bottom:1.25rem;font-size:.85rem;opacity:.85}.site-nav a.active{text-decoration:underline}.fixture-banner{display:inline-block;margin:0 0 1rem;padding:.25rem .55rem;border:1px solid #c47a2c;color:#f0c090;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.kicker{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;opacity:.65;margin:0 0 .35rem}.id{font-size:clamp(3.5rem,18vw,7rem);font-weight:650;line-height:.95;margin:0 0 1rem;font-family:IBM Plex Mono,ui-monospace,monospace}h1{font-size:1.55rem;font-weight:600;margin:0 0 .75rem}h2{font-size:1.05rem;margin:1.5rem 0 .5rem}.lede{max-width:36rem}.muted{opacity:.65;font-size:.92rem}.plain{padding-left:1.1rem}.btn{display:inline-block;margin:.35rem .5rem .35rem 0;padding:.55rem .9rem;border:1px solid #8aa88a;background:transparent;color:inherit;text-decoration:none;cursor:pointer;font:inherit}.btn.danger{border-color:#b86;color:#f0c0b0}.status{padding:.55rem .7rem;border-left:3px solid #666}.status.ok{border-color:#6a9;background:#1a2420}.status.warn{border-color:#c80;background:#241e14}.ref img,.candidate img,.op-compare img{max-width:100%;background:#1a1a1a;border:1px solid #333}.ref figcaption{font-size:.85rem;opacity:.7;margin-top:.35rem}.field-plane{position:relative;width:min(100%,28rem);background:linear-gradient(#222 1px,transparent 1px) 0 0 / 12.5% 12.5%,linear-gradient(90deg,#222 1px,transparent 1px) 0 0 / 12.5% 12.5%,#151515;border:1px solid #333;margin:1rem 0}.field-plane .stud{position:absolute;border:1px solid rgba(0,0,0,.35);display:block}.fragment-bar{display:flex;align-items:flex-end;gap:.35rem;overflow-x:auto;padding:1.5rem .25rem .75rem;border-bottom:1px solid #333;margin-bottom:1rem}.bar-item{--scale: 1;flex:0 0 auto;width:4.2rem;transform:scale(var(--scale));transform-origin:bottom center;transition:transform .12s ease;background:#181818;border:1px solid #333;color:inherit;padding:.4rem .25rem .35rem;cursor:pointer}.bar-item.focused,.bar-item.selected{border-color:#8aa88a}.silhouette{display:block;width:2.4rem;height:2.4rem;margin:0 auto .35rem;background:#cfc8b8;mask-size:contain;mask-repeat:no-repeat;mask-position:center;-webkit-mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center}.silhouette[data-shape="1x1Circle"]{border-radius:50%;background:#cfc8b8}.silhouette[data-shape="1x1Quarter"]{border-radius:100% 0 0}.silhouette[data-shape="1x2Pill"]{width:2.8rem;border-radius:999px}.silhouette[data-shape="1x2Rect"]{width:2.8rem;height:1.3rem;margin-top:.55rem}.silhouette[data-shape="2x2Mac"]{clip-path:polygon(0 0,100% 0,100% 45%,55% 45%,55% 100%,0 100%)}.silhouette[data-shape="2x2Arrow"]{clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.silhouette[data-shape="2x2Square"]{border-radius:.15rem}.bar-label{display:block;font-size:.62rem;line-height:1.15;text-align:center;opacity:.8}.candidate-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(7.5rem,1fr));gap:.65rem}.candidate{background:#161616;border:1px solid #333;color:inherit;padding:.4rem;text-align:left;cursor:pointer}.candidate .cid{display:block;font-size:.72rem;font-family:ui-monospace,monospace}.candidate .ccolor{display:block;font-size:.7rem;opacity:.7}.badge{font-size:.65rem;opacity:.6}.stack{display:grid;gap:.65rem;max-width:28rem}.stack label{display:grid;gap:.25rem;font-size:.85rem}.stack textarea,.stack input[type=text],.stack input:not([type=file]){font:inherit;padding:.45rem;background:#151515;border:1px solid #444;color:inherit}.challenge{padding:.75rem;background:#1a1a1a;border-left:3px solid #8aa88a}.op-table{width:100%;border-collapse:collapse;font-size:.9rem}.op-table th,.op-table td{border-bottom:1px solid #333;text-align:left;padding:.4rem .3rem}.op-compare{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));margin:1rem 0}dl{margin:0}dt{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;opacity:.55;margin:.85rem 0 .15rem}dd{margin:0}.debug .notice{opacity:.75;font-size:.9rem}
