@font-face{font-family:Manrope;src:url("manrope.woff2") format("woff2");font-weight:200 800;font-style:normal;font-display:swap}
:root{
  --ink:#080c10;--surface:#10171d;--surface-2:#151e25;--text:#eef5f9;--muted:#a0adb8;--line:#25313a;
  --accent:#76d8f4;--accent-bright:#b3ecff;--accent-ink:#08151d;--ok:#6ee7a8;--warn:#ffcf70;
  --radius:16px;--ease:cubic-bezier(.16,1,.3,1);--header:64px;
}
*{box-sizing:border-box}
html{background:var(--ink);color-scheme:dark;scroll-behavior:smooth;scroll-padding-top:136px;-webkit-text-size-adjust:100%}
body{margin:0;font-family:Manrope,"Segoe UI",system-ui,sans-serif;color:var(--text);font-size:16px;line-height:1.6;background:var(--ink)}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer}
img{max-width:100%;display:block}
h1,h2,h3,p{margin:0}
.icon{width:1em;height:1em;flex-shrink:0;display:inline-block;vertical-align:-.12em}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link{position:fixed;left:16px;top:10px;z-index:60;padding:12px 18px;background:var(--accent);color:var(--accent-ink);border-radius:8px;font-weight:700;transform:translateY(-160%)}
.skip-link:focus{transform:none}
.shell{width:min(1180px,calc(100% - 32px));margin-inline:auto}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}

/* Header */
.ps-header{position:sticky;top:0;z-index:40;height:var(--header);background:#080c10e6;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid #25313a99}
.ps-nav{height:100%;display:flex;align-items:center;justify-content:space-between;gap:16px}
/* Brand lockup mirrors the main site header (styles.css .ps-brand / .ps-emblem) */
.ps-brand{display:inline-flex;align-items:center;gap:12px;font-weight:750;font-size:18px;line-height:1.14;letter-spacing:-.045em}
.ps-brand small{display:block;font-size:15px;font-weight:500;color:#b1c4d1;letter-spacing:-.025em}
.ps-emblem{display:block;width:46px;height:46px;border-radius:12px;overflow:hidden;border:1px solid #90ddf255;background:#dff4fa;flex-shrink:0}
.ps-emblem img{display:block;width:100%;height:100%;object-fit:contain;transform:scale(1.8)}
@media (max-width:767px){.ps-brand{font-size:16px}.ps-emblem{width:42px;height:42px}}
.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:12px 18px;border-radius:8px;border:1px solid transparent;font-size:14px;font-weight:750;line-height:1.3;transition:transform .25s var(--ease),background .25s,border-color .25s,color .25s;white-space:nowrap}
.button-primary{background:var(--accent);color:var(--accent-ink);box-shadow:inset 0 1px 0 #edffff66}
.button-primary:hover{background:var(--accent-bright);transform:translateY(-2px)}
.button-secondary{background:var(--surface);border-color:#35434e;color:#e5f0f6}
.button-secondary:hover{border-color:#78bad1;background:#172730;transform:translateY(-2px)}
.button-sm{min-height:40px;padding:9px 14px;font-size:13px}
.hide-xs{display:none}

/* Hero */
.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line);isolation:isolate}
.hero::before{content:"";position:absolute;inset:0;z-index:-2;background:
  radial-gradient(ellipse 60% 70% at 50% 0%,#1c3e5099,transparent 70%),
  linear-gradient(#ffffff06 1px,transparent 1px) 0 0/40px 40px,
  linear-gradient(90deg,#ffffff06 1px,transparent 1px) 0 0/40px 40px}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;z-index:-1;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.8}
.hero-inner{display:flex;flex-direction:column;align-items:center;text-align:center;padding:44px 0 40px;gap:18px}
.hero-brand{display:flex;flex-direction:column;align-items:center;gap:16px}
.hero-copy{display:flex;flex-direction:column;align-items:center;gap:14px}
.hero-logo{width:96px;height:auto;filter:drop-shadow(0 0 28px #3fb6ffa0) drop-shadow(0 0 6px #76d8f455)}
.eyebrow{font-size:12px;font-weight:750;letter-spacing:.24em;text-transform:uppercase;color:var(--accent)}
.hero h1{font-size:clamp(38px,9vw,68px);line-height:1.02;letter-spacing:-.055em;font-weight:700}
.hero h1 span{color:var(--accent)}
.hero-rule{width:64px;height:3px;border-radius:3px;background:var(--accent)}
.hero-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;color:var(--muted);font-size:14px}
.pill{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:#0c131acc}
.pill .icon{color:var(--accent)}
.phases{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:6px;width:min(560px,100%);margin-top:8px}
.phase{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 6px;border-radius:12px;border:1px solid var(--line);background:linear-gradient(180deg,#13222c,#0c141b);transition:border-color .25s,transform .25s var(--ease)}
.phase:hover{border-color:#78bad1;transform:translateY(-2px)}
.phase .icon{width:26px;height:26px;color:var(--accent)}
.phase b{font-size:14px;letter-spacing:-.02em}
.phase span{font-size:12px;color:var(--muted)}
.phase-arrow{color:#3d5666;width:18px;height:18px}

/* Layout */
.layout{display:block;padding:0 0 56px}
.toc{display:none}

/* Mobile step bar */
.stepbar{position:sticky;top:var(--header);z-index:30;background:#080c10f0;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.stepbar-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0 6px;font-size:12px;color:var(--muted)}
.stepbar-top strong{color:var(--text);font-weight:700}
.progress{height:4px;border-radius:4px;background:#1a262f;overflow:hidden}
.progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,#3fb6ff,var(--accent));border-radius:inherit;transition:width .45s var(--ease)}
.stepbar-list{display:flex;gap:6px;overflow-x:auto;padding:10px 0 12px;scrollbar-width:none;scroll-snap-type:x proximity}
.stepbar-list::-webkit-scrollbar{display:none}
.stepbar-list a{flex:0 0 auto;scroll-snap-align:center;display:grid;place-items:center;width:36px;height:36px;border-radius:10px;border:1px solid var(--line);background:var(--surface);font-size:13px;font-weight:750;color:var(--muted);transition:all .2s}
.stepbar-list a.is-active{border-color:var(--accent);color:var(--accent);background:#0f2330;box-shadow:0 0 0 3px #76d8f422}
.stepbar-list a.is-done{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.stepbar-list .sep{flex:0 0 1px;align-self:center;height:20px;background:var(--line);margin:0 4px}

/* Groups & cards */
.group{margin-top:36px}
.group-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.group-head .gicon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#0f2330;border:1px solid #2b5366;color:var(--accent)}
.group-head .gicon .icon{width:22px;height:22px}
.group-head h2{font-size:20px;letter-spacing:-.035em;font-weight:700;line-height:1.2}
.group-head p{font-size:13px;color:var(--muted)}
.steps{display:grid;gap:14px;list-style:none;margin:0;padding:0}
.card{position:relative;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg,#10181f,#0c1319);padding:18px;transition:border-color .3s,box-shadow .3s}
.card.is-active{border-color:#3d7890;box-shadow:0 0 0 1px #76d8f41f,0 18px 40px -24px #3fb6ff66}
.card.is-done{border-color:#2b5366}
.card-head{display:flex;align-items:flex-start;gap:14px}
.num{flex:0 0 auto;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#0f2330;border:1px solid #2b5366;color:var(--accent);font-weight:800;font-size:16px;transition:all .25s}
.card.is-done .num{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.card-title{flex:1;min-width:0;padding-top:1px}
.card h3{font-size:18px;font-weight:700;letter-spacing:-.03em;line-height:1.3}
.card p.lead{margin-top:4px;color:var(--muted);font-size:15px}
.card p.lead b{color:var(--text);font-weight:650}
.done-btn{flex:0 0 auto;display:grid;place-items:center;width:36px;height:36px;border-radius:999px;border:1px solid #35434e;background:transparent;color:#5f7686;transition:all .2s}
.done-btn:hover{border-color:var(--accent);color:var(--accent)}
.done-btn[aria-pressed="true"]{background:#133040;border-color:var(--accent);color:var(--accent)}
.done-btn .icon{width:18px;height:18px}
.card-body{margin-top:14px;display:grid;gap:12px;padding-left:0}
.actions{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;align-items:center;gap:8px;max-width:100%;padding:8px 10px 8px 12px;border-radius:10px;border:1px solid #2a3943;background:#0a1118;font:600 13.5px/1.2 ui-monospace,"Cascadia Code","SF Mono",Consolas,monospace;color:#d8eef7;transition:border-color .2s,background .2s}
.chip:hover{border-color:#4d8aa3;background:#0f1c25}
.chip .ci{color:var(--accent);opacity:.75}
.chip .cp{display:grid;place-items:center;width:24px;height:24px;border-radius:6px;background:#15232d;color:#9fbccb}
.chip.copied{border-color:var(--ok)}
.chip.copied .cp{background:#113325;color:var(--ok)}
.chip span.t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.flow{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:14px;color:var(--muted)}
.flow .k{padding:5px 10px;border-radius:8px;background:#141f28;border:1px solid #2a3943;color:var(--text);font-weight:650}
.flow .icon{color:#4f6b7c}
.callout{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:12px;font-size:14px;line-height:1.5;border:1px solid}
.callout .icon{width:20px;height:20px;margin-top:1px}
.callout b{font-weight:700}
.callout.tip{background:#0d1e28;border-color:#24495b;color:#cfeaf5}
.callout.tip .icon{color:var(--accent)}
.callout.warn{background:#231c0e;border-color:#5a4718;color:#f7e6c1}
.callout.warn .icon{color:var(--warn)}
.callout.ok{background:#0e2219;border-color:#1f5a3e;color:#cdf5df}
.callout.ok .icon{color:var(--ok)}
.shot{margin:0;border-radius:12px;overflow:hidden;border:1px solid #2a3943;background:#fff;position:relative;cursor:zoom-in}
.shot img{width:100%;height:auto}
.shot button{all:unset;display:block;cursor:zoom-in}
.shot figcaption{position:absolute;right:10px;bottom:10px;display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:8px;background:#080c10d9;color:#dff4fa;font-size:12px;font-weight:650;pointer-events:none}
.dl-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 14px;border-radius:8px;border:1px solid #35434e;background:var(--surface);font-size:13px;font-weight:700;color:#cfe2ec;transition:all .2s}
.icon-btn:hover{border-color:#78bad1;background:#172730}
.icon-btn.copied{border-color:var(--ok);color:var(--ok)}

/* Footer help */
.help{margin-top:40px;position:relative;overflow:hidden;border-radius:20px;border:1px solid #2b4a5b;background:radial-gradient(ellipse at 100% 0%,#1c3e50,#101b24 70%);padding:26px 20px;display:flex;flex-direction:column;gap:18px}
.help::after{content:"";position:absolute;right:-40px;top:-40px;width:180px;height:180px;border-radius:50%;background:#76d8f412;filter:blur(8px)}
.help h2{font-size:24px;letter-spacing:-.04em;font-weight:700;line-height:1.2}
.help p{color:#b8cad6;font-size:15px;margin-top:6px}
.help .row{display:flex;flex-wrap:wrap;gap:10px;position:relative;z-index:1}
.site-foot{border-top:1px solid var(--line);padding:22px 0 calc(22px + env(safe-area-inset-bottom));color:#7f93a2;font-size:13px}
.site-foot .shell{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;align-items:center}
.site-foot a:hover{color:var(--accent)}

/* Lightbox */
dialog.lightbox{padding:0;border:0;background:transparent;max-width:96vw;max-height:94vh;width:fit-content;overflow:visible}
dialog.lightbox::backdrop{background:#03060acc;backdrop-filter:blur(6px)}
dialog.lightbox img{width:min(960px,92vw);max-height:84vh;object-fit:contain;height:auto;border-radius:12px;border:1px solid #35434e;background:#fff}
dialog.lightbox .close{position:absolute;top:-14px;right:-14px;width:40px;height:40px;border-radius:999px;border:1px solid #35434e;background:#0c131af0;display:grid;place-items:center}
dialog.lightbox p{margin-top:10px;text-align:center;color:#b8cad6;font-size:13px}

/* Toast */
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));z-index:70;transform:translate(-50%,20px);opacity:0;pointer-events:none;display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;background:#0f2330;border:1px solid var(--accent);color:var(--accent-bright);font-size:14px;font-weight:700;transition:all .3s var(--ease)}
.toast.show{opacity:1;transform:translate(-50%,0)}

@media (min-width:560px){
  .hide-xs{display:inline}
  .card{padding:22px}
  .card-body{padding-left:54px}
  .help{padding:32px;flex-direction:row;align-items:center;justify-content:space-between}
}
@media (min-width:1024px){
  html{scroll-padding-top:96px}
  :root{--header:72px}
  .shell{width:min(1180px,calc(100% - 64px))}
  .hero-inner{flex-direction:row;text-align:left;justify-content:space-between;padding:56px 0 52px;gap:40px}
  .hero-copy{display:flex;flex-direction:column;gap:16px;align-items:flex-start}
  .hero-brand{flex-direction:row;gap:26px}
  .hero-logo{width:120px}
  .hero h1{font-size:60px;white-space:nowrap}
  .hero-meta{justify-content:flex-start}
  .phases{width:400px;flex:0 0 auto;margin-top:0}
  .stepbar{display:none}
  .layout{display:grid;grid-template-columns:260px 1fr;gap:40px;align-items:start;padding-top:8px}
  .toc{display:block;position:sticky;top:calc(var(--header) + 24px);margin-top:36px;padding:18px;border:1px solid var(--line);border-radius:var(--radius);background:#0c1319}
  .toc-head{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;color:var(--muted);margin-bottom:8px}
  .toc-head strong{font-size:13px;color:var(--text);letter-spacing:.02em}
  .toc .progress{margin-bottom:14px}
  .toc h4{margin:14px 0 4px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#6f8797;font-weight:750}
  .toc ol{list-style:none;margin:0;padding:0;display:grid;gap:2px}
  .toc a{display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:9px;font-size:14px;color:#aebdc8;transition:background .2s,color .2s}
  .toc a:hover{background:#121c24;color:var(--text)}
  .toc a .n{display:grid;place-items:center;width:24px;height:24px;border-radius:7px;border:1px solid #2a3943;font-size:12px;font-weight:750;color:#8aa2b1;flex:0 0 auto;transition:all .2s}
  .toc a.is-active{background:#0f2330;color:var(--text)}
  .toc a.is-active .n{border-color:var(--accent);color:var(--accent)}
  .toc a.is-done .n{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
  .toc .reset{margin-top:14px;width:100%;background:none;border:1px dashed #2a3943;border-radius:9px;padding:7px;font-size:12px;color:#7f93a2}
  .toc .reset:hover{border-color:#4d8aa3;color:var(--text)}
  .group-head h2{font-size:22px}
  .card h3{font-size:19px}
  .button-sm{min-height:44px;padding:11px 18px;font-size:14px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.accent-icon{color:var(--accent)}
.help-copy{position:relative;z-index:1}
.u{text-decoration:underline}

.guide-banner{margin-top:28px;margin-bottom:8px}
.guide-banner picture{display:block;max-width:760px;margin-inline:auto;overflow:hidden;aspect-ratio:3/2;border:1px solid var(--line);border-radius:var(--radius);background:#0b1217}
.guide-banner img{display:block;width:100%;height:100%;object-fit:cover}
@media (max-width:1023px){.guide-banner{margin-top:20px}}
