.shl-doc{background:var(--ffly-paper);min-height:100vh}.shl-doc .wrap{max-width:768px;margin:0 auto;padding:56px 28px 96px}@media (width<=620px){.shl-doc .wrap{padding:36px 18px 64px}}.shl-doc .crumb{font-family:var(--ffly-font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--ffly-coral-text);margin-bottom:14px;font-size:11px}.shl-doc .lede{color:var(--ffly-muted);max-width:60ch;margin:0 0 8px;font-size:19px;line-height:1.6}.shl-doc .shl-callout{border-radius:var(--ffly-r-md);background:#38afa714;border:1.5px solid #38afa766;margin:0 0 24px;padding:16px 20px;position:relative}.shl-doc .shl-callout p{font-family:var(--ffly-font-body);color:var(--ffly-ink);margin:0;font-size:15px;line-height:1.6}.shl-doc .shl-callout strong{color:var(--ffly-aqua)}.shl-doc .shl-callout a{color:var(--ffly-blue);text-underline-offset:2px;text-decoration:underline}.shl-doc .shl-next{gap:10px;display:grid}.shl-doc .shl-next a{border:1.5px solid var(--ffly-line);border-radius:var(--ffly-r-md);background:var(--ffly-surface);transition:border-color var(--ffly-dur) var(--ffly-ease), transform var(--ffly-dur) var(--ffly-ease);align-items:flex-start;gap:12px;padding:14px 16px;text-decoration:none;display:flex}.shl-doc .shl-next a:hover{border-color:var(--ffly-ink);transform:translate(2px)}.shl-doc .shl-next .arr{color:var(--ffly-coral-text);flex-shrink:0;margin-top:2px;font-size:13px}.shl-doc .shl-next .t{font-family:var(--ffly-font-body);color:var(--ffly-ink);font-weight:700}.shl-doc .shl-next .d{color:var(--ffly-muted);font-size:14px}.shl-viewer{background:var(--ffly-paper);min-height:100vh}.shl-viewer .wrap{max-width:760px;margin:0 auto;padding:56px 28px 96px}@media (width<=620px){.shl-viewer .wrap{padding:36px 18px 64px}}.shl-viewer .crumb{font-family:var(--ffly-font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--ffly-coral-text);margin-bottom:14px;font-size:11px}.shl-viewer h1{font-family:var(--ffly-font-display);letter-spacing:-.02em;color:var(--ffly-ink);margin:0 0 12px;font-size:clamp(2rem,5vw,2.9rem);font-weight:700}.shl-viewer .lede{color:var(--ffly-muted);max-width:62ch;margin:0 0 32px;font-size:18px;line-height:1.6}.shl-viewer .lede code{font-family:var(--ffly-font-mono);color:var(--ffly-blue);background:#1f6fb21a;border-radius:5px;padding:2px 6px;font-size:.85em}.shl-viewer .field-label{font-family:var(--ffly-font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ffly-muted);margin-bottom:8px;font-size:11px;display:block}.shl-viewer .shl-input-row{gap:12px;display:flex}.shl-viewer .shl-url-input{background:var(--ffly-surface);border:1.5px solid var(--ffly-line);border-radius:var(--ffly-r-md);min-width:0;font-family:var(--ffly-font-mono);color:var(--ffly-ink);flex:1;padding:14px 16px;font-size:15px}.shl-viewer .shl-url-input:focus{border-color:var(--ffly-blue);outline:none;box-shadow:0 0 0 4px #1f6fb224}.shl-viewer .shl-go{background:var(--ffly-ink);color:var(--ffly-paper);border-radius:var(--ffly-r-full);font-family:var(--ffly-font-mono);text-transform:uppercase;letter-spacing:.06em;cursor:pointer;box-shadow:var(--ffly-sh-sm);white-space:nowrap;border:none;padding:0 26px;font-size:13px;font-weight:700}.shl-viewer .shl-go:disabled{opacity:.45;cursor:not-allowed}.shl-viewer .shl-go:not(:disabled):hover{filter:brightness(1.15)}.shl-viewer .shl-hint{color:var(--ffly-muted);margin-top:12px;font-size:13px}.shl-viewer .shl-hint code{font-family:var(--ffly-font-mono);color:var(--ffly-blue);background:#1f6fb21a;border-radius:5px;padding:2px 6px;font-size:.85em}.shl-viewer .shl-state{text-align:center;color:var(--ffly-muted);padding:56px 24px}.shl-viewer .shl-state p{margin-top:14px;font-size:15px}.shl-viewer .shl-pass{background:var(--ffly-surface);border:1.5px solid var(--ffly-line);border-radius:var(--ffly-r-md);box-shadow:var(--ffly-sh-sm);text-align:center;max-width:420px;margin:0 auto;padding:32px}.shl-viewer .shl-pass .lock{width:56px;height:56px;color:var(--ffly-blue);background:#1f6fb21f;border-radius:50%;justify-content:center;align-items:center;margin-bottom:14px;font-size:22px;display:inline-flex}.shl-viewer .shl-pass h2{font-family:var(--ffly-font-display);color:var(--ffly-ink);margin:0 0 6px;font-size:20px;font-weight:700}.shl-viewer .shl-pass .sub{color:var(--ffly-muted);margin:0 0 18px;font-size:14px}.shl-viewer .shl-pass .sub b{color:var(--ffly-ink);margin-top:4px;display:block}.shl-viewer .shl-pass input{text-align:center;background:var(--ffly-paper);border:1.5px solid var(--ffly-line);border-radius:var(--ffly-r-md);width:100%;font-family:var(--ffly-font-mono);color:var(--ffly-ink);margin-bottom:14px;padding:12px;font-size:16px}.shl-viewer .shl-pass input:focus{border-color:var(--ffly-blue);outline:none}.shl-viewer .shl-unlock{background:var(--ffly-ink);width:100%;color:var(--ffly-paper);border-radius:var(--ffly-r-full);font-family:var(--ffly-font-mono);text-transform:uppercase;letter-spacing:.06em;cursor:pointer;box-shadow:var(--ffly-sh-sm);border:none;padding:12px;font-size:13px;font-weight:700}.shl-viewer .shl-unlock:disabled{opacity:.45;cursor:not-allowed}.shl-viewer .shl-textbtn{color:var(--ffly-muted);cursor:pointer;background:0 0;border:none;margin-top:12px;font-size:13px;text-decoration:underline}.shl-viewer .shl-textbtn:hover{color:var(--ffly-ink)}.shl-viewer .shl-summary-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:22px;display:flex}.shl-viewer .shl-summary-head h2{font-family:var(--ffly-font-display);color:var(--ffly-ink);margin:0;font-size:22px;font-weight:700}.shl-viewer .shl-ghost{background:var(--ffly-surface);color:var(--ffly-ink);border:1.5px solid var(--ffly-line);border-radius:var(--ffly-r-full);font-family:var(--ffly-font-mono);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;padding:8px 18px;font-size:12px;font-weight:600}.shl-viewer .shl-ghost:hover{border-color:var(--ffly-ink)}.shl-viewer .shl-privacy{border-radius:var(--ffly-r-md);background:#38afa714;border:1.5px solid #38afa766;margin-top:48px;padding:16px 20px}.shl-viewer .shl-privacy p{color:var(--ffly-ink);text-align:center;margin:0;font-size:14px;line-height:1.6}.shl-viewer .shl-privacy strong{color:var(--ffly-aqua)}
