:root{--bg:#0d0a06;--bg-raised:#17110a;--amber:#ffb000;--amber-hi:#ffc94d;--amber-dim:#a8741f;--text:#e8d3a8;--cat-teal:#5fb3a1;--cat-brick:#c26b4f;--cat-slate:#8a93a8;--glow:0 0 6px #ffb00059;--font-mono:"D2Coding", ui-monospace, "Menlo", monospace;--font-body:"IBM Plex Sans KR", system-ui, "Apple SD Gothic Neo", sans-serif;--step-1:.83rem;--step0:1rem;--step1:1.33rem;--step2:1.77rem;--step3:2.37rem;--space:1rem;--measure:66ch}@font-face{font-family:D2Coding;src:url(/fonts/d2coding.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:IBM Plex Sans KR;src:url(/fonts/plex-sans-kr.woff2)format("woff2");font-weight:400;font-display:swap}*{box-sizing:border-box}html{color-scheme:dark}body{background:var(--bg);color:var(--text);font-family:var(--font-body);margin:0;line-height:1.7}h1,h2,h3,.mono,code,kbd{font-family:var(--font-mono);color:var(--amber-hi);text-shadow:var(--glow)}a{color:var(--amber)}a:hover{color:var(--amber-hi)}main{max-width:var(--measure);padding:calc(var(--space)*2) var(--space);margin-inline:auto}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}html[data-crt=on] body:after{content:"";pointer-events:none;z-index:9;background:repeating-linear-gradient(0deg,#0000 0 2px,#0000002e 2px 3px);position:fixed;inset:0}html[data-crt=on] main{text-shadow:0 0 2px #ffb00040}header{padding:var(--space);border-bottom:1px solid var(--amber-dim);justify-content:space-between;align-items:center;display:flex}#crt-toggle{border:1px solid var(--amber-dim);color:var(--amber);cursor:pointer;background:0 0;padding:.25rem .5rem}#crt-toggle[aria-pressed=true]{background:var(--amber-dim);color:var(--bg)}.field{margin-block:calc(var(--space)*2)}.field-label{font-size:var(--step1);border-left:3px solid var(--amber);padding-left:.6rem}.steps{margin-block:var(--space)}.step-name{color:var(--amber-hi);font-size:var(--step0);display:block}.step-desc{color:var(--text);margin-top:.15rem;display:block}.step-flow{margin:var(--space) 0;counter-reset:step;padding:0;list-style:none}.step-flow .step-row{border-left:1px solid var(--amber-dim);margin-left:.95rem;padding:0 0 1.1rem 2.6rem;position:relative}.step-flow .step-row:last-child{border-left-color:#0000;padding-bottom:.2rem}.step-flow .step-row:before{counter-increment:step;content:counter(step);width:1.9rem;height:1.9rem;font-family:var(--font-mono);font-size:var(--step-1);color:var(--amber-hi);background:var(--bg-raised);border:1px solid var(--amber);border-radius:50%;place-items:center;display:grid;position:absolute;top:-.1rem;left:-.95rem}.step-flow.is-cycle .step-loop{color:var(--amber-dim);font-family:var(--font-mono);font-size:var(--step-1);margin-left:.95rem;padding-left:2.6rem;list-style:none}.step-grid{margin:var(--space) 0;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.6rem;padding:0;list-style:none;display:grid}.step-grid .step-card{border:1px solid var(--amber-dim);background:var(--bg-raised);padding:.7rem .8rem}.step-tree{margin:var(--space) 0;padding:0;list-style:none}.step-tree .tree-root{border-left:2px solid var(--amber);padding:.1rem 0 .7rem .8rem}.step-tree .tree-leaf{border-left:1px solid var(--amber-dim);margin-left:1.5rem;padding:.15rem 0 .7rem .8rem}.step-tree li:last-child{padding-bottom:.2rem}.chip{font-family:var(--font-mono);font-size:var(--step-1);border:1px solid var(--amber-dim);border-radius:2px;margin:.15rem;padding:.15rem .5rem;display:inline-block}.chip.cat-privacy{border-color:var(--cat-teal);color:var(--cat-teal)}.chip.cat-organizational{border-color:var(--cat-slate);color:var(--cat-slate)}.chip.cat-risk-assessment{border-color:var(--cat-brick);color:var(--cat-brick)}.lead{font-size:var(--step1);color:var(--amber-dim)}.grid{gap:var(--space);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));display:grid}.fw-card{padding:var(--space);border:1px solid var(--amber-dim);background:var(--bg-raised);color:var(--text);text-decoration:none;transition:box-shadow .2s,border-color .2s;display:block}.fw-card:hover{border-color:var(--amber);box-shadow:var(--glow)}.fw-card h2{font-size:var(--step1)}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}
