.cipher-hub{--hub-accent:var(--green);grid-template-columns:15rem minmax(0,1fr);align-items:start;gap:clamp(1rem,2.5vw,2rem);width:min(86rem,100% - 2rem);padding-top:1.25rem;padding-bottom:4rem;display:grid}.hub-sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.hub-navigator{align-content:start;gap:.7rem;min-width:0;display:grid;position:sticky;top:5.25rem}.hub-search{background:var(--surface);border:1px solid #afb5b0;border-radius:10px;grid-template-columns:minmax(0,1fr) auto;min-width:0;display:grid;box-shadow:0 .35rem 1.2rem #1c25200f}.hub-search:focus-within{border-color:var(--blue);outline:3px solid var(--focus);outline-offset:2px}.hub-search label{align-items:center;gap:.4rem;min-width:0;padding-inline:.6rem;display:flex}.hub-search label>svg{width:1.05rem;height:1.05rem;color:var(--muted);flex:none}.hub-search input{width:100%;min-width:0;min-height:2.45rem;color:var(--ink);background:0 0;border:0;padding:0;font-size:.7rem;outline:0!important}.hub-search input::placeholder{color:#777f79}.hub-search>button{background:var(--green);color:#fff;border:0;border-radius:7px;min-width:4.15rem;min-height:1.95rem;margin:.25rem;padding:.4rem .55rem;font-size:.62rem;font-weight:750}.hub-views-scroll{border-top:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0;overflow:visible}.hub-views{flex-direction:column;align-items:stretch;padding:.4rem 0;display:flex}.hub-views a{min-height:2.3rem;color:var(--muted);text-align:left;white-space:nowrap;background:0 0;border:0;border-left:3px solid #0000;justify-content:space-between;align-items:center;gap:.45rem;padding:.45rem .7rem;font-size:.74rem;font-weight:720;text-decoration:none;display:flex}.hub-views a:hover{color:var(--ink)}.hub-views a[aria-current=page]{border-left-color:var(--hub-accent);background:var(--green-soft);color:var(--ink)}.hub-views small{min-width:1.45rem;height:1.45rem;color:var(--muted);font:500 .62rem/1 var(--font-mono);background:#e8e9e4;border-radius:999px;place-items:center;padding:0 .32rem;display:grid}.hub-views a[aria-current=page] small{color:var(--green);background:#dce9df}.hub-filter-desktop{display:none}.hub-filter-disclosure>summary{border:1px solid var(--line);background:var(--surface);border-radius:10px;justify-content:space-between;align-items:center;gap:.75rem;min-height:2.75rem;padding:.65rem .75rem;font-size:.75rem;font-weight:750;list-style:none;display:flex}.hub-filter-disclosure>summary::-webkit-details-marker{display:none}.hub-filter-disclosure>summary:after{content:"+";color:var(--muted);font:500 .9rem/1 var(--font-mono);margin-left:auto}.hub-filter-disclosure[open]>summary:after{content:"−"}.hub-filter-disclosure>summary strong{background:var(--green);color:#fff;min-width:1.45rem;height:1.45rem;font:500 .62rem/1 var(--font-mono);border-radius:999px;place-items:center;padding:0 .35rem;display:grid}.hub-filter-panel{align-content:start;gap:1.15rem;padding-top:.15rem;display:grid}.hub-filter-panel fieldset{border:0;min-width:0;margin:0;padding:0}.hub-filter-panel legend{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.55rem;padding:0;font-size:.62rem;font-weight:780}.hub-filter-options{gap:.25rem;display:grid}.hub-filter-options label{color:#39443e;border-radius:6px;align-items:center;gap:.5rem;min-width:0;padding:.28rem .35rem;font-size:.72rem;line-height:1.25;display:flex}.hub-filter-options label:hover{background:#315a7612}.hub-filter-options input{width:.95rem;height:.95rem;accent-color:var(--green);flex:none;margin:0}.hub-clear-filters{color:var(--blue-dark);background:0 0;border:0;border-bottom:1px solid;justify-self:start;padding:0;font-size:.68rem;font-weight:700}.hub-catalog{gap:.85rem;min-width:0;padding-top:.15rem;display:grid}.hub-active-filters{flex-wrap:wrap;gap:.4rem;display:flex}.hub-active-filters button{background:var(--green-soft);min-height:1.9rem;color:var(--green);border:1px solid #9eb1a6;border-radius:999px;align-items:center;gap:.4rem;padding:.3rem .48rem .3rem .65rem;font-size:.66rem;font-weight:680;display:inline-flex}.hub-active-filters button span{font:500 .82rem/1 var(--font-mono)}.hub-results,.hub-challenge-list,.hub-list-rows{min-width:0}.hub-challenge-list{border:1px solid var(--line);border-left:3px solid var(--hub-accent);background:var(--surface);overflow:hidden}.hub-list-heading,.hub-challenge-row{grid-template-columns:minmax(15rem,1.55fr) minmax(8rem,.8fr) 5rem 6.1rem;align-items:center;gap:.75rem;display:grid}.hub-list-heading{border-bottom:1px solid var(--line-strong);min-height:1.75rem;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;background:#f0f0ea;padding:.3rem .65rem;font-size:.57rem;font-weight:780}.hub-challenge-row{background:var(--surface);border-bottom:1px solid #deded8;min-height:3.35rem;padding:.35rem .65rem;position:relative}.hub-challenge-row:last-child{border-bottom:0}.hub-challenge-row:hover,.hub-challenge-row:focus-within{z-index:1;box-shadow:inset 3px 0 var(--hub-accent);background:#f8faf7}.hub-row-main{min-width:0}.hub-row-main h2{font:650 .92rem/1.1 var(--font-serif);letter-spacing:-.015em;text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.hub-row-main h2 a{color:var(--ink);text-decoration:none}.hub-row-main h2 a:after{content:"";position:absolute;inset:0}.hub-row-main h2 a:focus-visible{outline:0}.hub-challenge-row:has(.hub-row-main h2 a:focus-visible){outline:3px solid var(--focus);outline-offset:-1px}.hub-row-introduction{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:.14rem 0 0;font-size:.57rem;line-height:1.3;overflow:hidden}.hub-row-tags{z-index:2;flex-wrap:wrap;gap:.24rem;display:flex;position:relative}.hub-row-tags span{color:#315044;background:#f8faf7;border:1px solid #b7c3bb;border-radius:999px;align-items:center;min-height:1.2rem;padding:.1rem .32rem;font-size:.51rem;font-weight:650;display:inline-flex}.hub-row-meta{justify-content:flex-start;align-items:center;gap:.45rem;display:flex}.hub-completion-count,.hub-completed-state{color:var(--muted);align-items:center;display:inline-flex}.hub-completion-count{font:500 .59rem/1 var(--font-mono);gap:.32rem}.hub-completion-count svg,.hub-completed-state svg{width:1rem;height:1rem}.hub-completed-state{color:var(--green)}.hub-row-actions{z-index:3;justify-content:flex-end;align-items:center;gap:.35rem;display:flex;position:relative}.hub-save-form{margin:0}.hub-solve-button{min-height:1.7rem;color:var(--blue-dark);white-space:nowrap;background:#fff;border:1px solid #aeb9b1;border-radius:7px;justify-content:center;align-items:center;padding:.28rem .42rem;font-size:.54rem;font-weight:740;text-decoration:none;display:inline-flex}.hub-solve-button:hover{border-color:var(--blue);background:var(--blue-soft)}.hub-bookmark{width:1.7rem;height:1.7rem;color:var(--muted);background:#fff;border:1px solid #c2c8c3;border-radius:8px;flex:none;place-items:center;padding:0;display:grid;position:relative}.hub-bookmark:hover,.hub-bookmark.is-saved{border-color:var(--blue);background:var(--blue-soft);color:var(--blue-dark)}.hub-bookmark:disabled{cursor:wait;opacity:.6}.hub-bookmark>svg{width:1.05rem;height:1.05rem}.hub-bookmark[data-tooltip]:after{color:#fff;content:attr(data-tooltip);opacity:0;pointer-events:none;background:#17221d;border-radius:6px;width:max-content;max-width:13rem;padding:.4rem .5rem;font-size:.62rem;font-weight:650;line-height:1.25;position:absolute;bottom:calc(100% + .45rem);right:-.1rem;transform:translateY(.2rem)}.hub-bookmark[data-tooltip]:hover:after,.hub-bookmark[data-tooltip]:focus-visible:after{opacity:1;transform:translateY(0)}.hub-empty-state{text-align:center;background:#fffefa8c;border:1px dashed #aeb5af;align-content:center;place-items:center;gap:.9rem;min-height:15rem;padding:2rem;display:grid}.hub-empty-state p{color:var(--muted);margin:0;font-size:.78rem}.hub-empty-state button{border:1px solid var(--green);background:var(--green);color:#fff;border-radius:8px;min-height:2.35rem;padding:.5rem .75rem;font-size:.7rem;font-weight:720}@media (min-width:56.01rem){.hub-results{overscroll-behavior:contain;scrollbar-gutter:stable;max-height:calc(100dvh - 5.25rem);overflow-y:auto}.hub-list-heading{z-index:4;position:sticky;top:0}.hub-filter-desktop{display:block}.hub-filter-disclosure{display:none}}@media (max-width:56rem){.cipher-hub{grid-template-columns:1fr;gap:.9rem;padding-top:1.35rem}.hub-navigator{gap:.8rem;position:static}.hub-views-scroll{scrollbar-width:thin;border-top:0;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 0 calc(100% - 2rem),#0000 100%);mask-image:linear-gradient(90deg,#000 0 calc(100% - 2rem),#0000 100%)}.hub-views{flex-direction:row;width:max-content;min-width:100%;padding:0}.hub-views a{background:0 0;border-bottom:2px solid #0000;border-left:0;justify-content:center}.hub-views a[aria-current=page]{border-bottom-color:var(--hub-accent);background:0 0}.hub-filter-disclosure[open]>.hub-filter-panel{border:1px solid var(--line);background:var(--surface);border-top:0;border-radius:0 0 10px 10px;padding:.85rem}.hub-filter-disclosure[open]>summary{border-radius:10px 10px 0 0}.hub-catalog{padding-top:0}}@media (max-width:45rem){.cipher-hub{width:min(100% - 1.1rem,84rem)}.hub-list-heading{display:none}.hub-challenge-list{border-radius:0}.hub-challenge-row{grid-template-columns:minmax(0,1fr) auto;gap:.45rem .75rem;min-height:4.7rem;padding:.65rem .7rem}.hub-row-main{grid-area:1/1}.hub-row-actions{grid-area:1/2}.hub-row-tags{grid-area:2/1}.hub-row-meta{grid-area:2/2;justify-content:flex-end}}@media (max-width:34rem){.hub-search{grid-template-columns:1fr}.hub-search>button{min-height:2.35rem;margin-top:0}}@media (prefers-reduced-motion:no-preference){.hub-search>button,.hub-empty-state button,.hub-views a,.hub-bookmark,.hub-active-filters button{transition:background .12s,border-color .12s,color .12s,transform .12s}.hub-search>button:hover,.hub-empty-state button:hover{transform:translateY(-1px)}}
