@font-face{font-family:Barlow;src:url('/assets/Barlow-Regular.ttf') format('truetype');font-weight:400;font-display:swap}@font-face{font-family:Barlow;src:url('/assets/Barlow-SemiBold.ttf') format('truetype');font-weight:600;font-display:swap}@font-face{font-family:BarlowCondensed;src:url('/assets/BarlowCondensed-Bold.ttf') format('truetype');font-weight:700;font-display:swap}
:root{--ink:#1d2745;--violet:#5f54d9;--paper:#f8f9fd;--fog:#edf0f7;--line:#d8ddea;--peach:#ffbe88;--muted:#536078}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;color:var(--ink);background:var(--paper);font:18px/1.65 Barlow,Arial,sans-serif}a{color:var(--violet);text-underline-offset:4px}button,input,select{font:inherit}button{cursor:pointer;min-height:44px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--violet);outline-offset:4px}img{max-width:100%;height:auto}.js-only{display:none}.js .js-only{display:block}[hidden]{display:none!important}.skip{position:absolute;left:20px;top:-100px;background:white;z-index:99;padding:12px}.skip:focus{top:10px}.review-bar{padding:7px 24px;text-align:center;background:#ffdfbd;font-size:13px;font-weight:600;letter-spacing:.035em}.site-header{background:#fff;display:flex;align-items:center;gap:26px;max-width:1600px;margin:auto;padding:20px 4vw;border-bottom:1px solid var(--line)}.brand{color:var(--ink);display:flex;align-items:center;gap:12px;text-decoration:none;font:700 24px/1 BarlowCondensed,sans-serif;white-space:nowrap}.brand-mark{background:var(--ink);color:#fff;padding:14px 9px;transform:skew(-8deg);border-bottom:4px solid var(--peach)}.brand-small{display:block;font:600 10px/1.3 Barlow,sans-serif;letter-spacing:.12em;margin-top:7px}#site-nav{display:flex;gap:20px;align-items:center;margin-left:auto}#site-nav a{font-size:15px;text-decoration:none;color:var(--muted);padding:8px 0}#site-nav a[aria-current=page]{color:var(--violet);border-bottom:2px solid var(--violet);font-weight:600}.play{border:1px solid var(--line);padding:10px 14px;font-size:14px;text-decoration:none;white-space:nowrap}.menu-button{border:1px solid var(--line);background:white;padding:6px 16px}.js .menu-button{display:none}main{max-width:1300px;margin:auto;padding:0 40px}.page-hero{padding:60px 0 38px;max-width:1060px}.home-hero{display:grid;grid-template-columns:1fr 330px;gap:70px;align-items:center;max-width:none}.eyebrow{font-size:12px;font-weight:600;letter-spacing:.15em;color:var(--violet);margin:0 0 16px}h1{font:700 clamp(44px,5vw,72px)/1.04 BarlowCondensed,Impact,sans-serif;letter-spacing:-.015em;margin:0 0 22px;max-width:850px}.intro{font-size:20px;line-height:1.55;max-width:720px;margin-bottom:22px}.updated{font-size:14px;color:var(--muted)}.primary-link{background:var(--violet);color:#fff;padding:13px 20px;text-decoration:none;display:inline-block;margin-top:8px;font-weight:600}.secondary-link{display:inline-block;margin:14px 0 0 22px;font-size:16px}.hero-art{margin:0;position:relative}.hero-art img{display:block;aspect-ratio:1;border-radius:4px;box-shadow:14px 14px 0 var(--fog)}figcaption{font-size:12px;color:var(--muted);margin-top:15px}figure{margin:28px 0}.reading-layout{display:grid;grid-template-columns:240px minmax(0,850px);gap:72px;align-items:start;border-top:1px solid var(--line);padding-top:36px}.toc{position:sticky;top:28px;font-size:15px}.toc h2{font-size:14px;text-transform:uppercase;letter-spacing:.1em;margin:0 0 18px}.toc nav{display:grid;gap:12px}.toc a{text-decoration:none;color:var(--muted)}.toc a:hover{color:var(--violet)}.hub-link{border-top:1px solid var(--line);margin-top:25px;padding-top:18px}.hub-link span{display:block;font-size:13px;margin-bottom:6px}.hub-link a{color:var(--violet)}article{min-width:0}article section{padding:0 0 38px;margin:0 0 32px;border-bottom:1px solid var(--line)}h2{font:700 34px/1.16 BarlowCondensed,sans-serif;margin:0 0 20px}p{margin:0 0 18px}li{margin:10px 0}ul,ol{padding-left:25px}.review-note{border-left:3px solid #cf843e;background:#fff1e3;font-size:15px;padding:14px 18px;color:#684019}.code-list{margin-top:22px;border-top:2px solid var(--ink)}.code-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;padding:22px 0;border-bottom:1px solid var(--line)}code{font:bold 19px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere;user-select:all}.code-row p{font-size:16px;margin:8px 0}.code-meta{font-size:13px;color:var(--muted)}.copy{border:1px solid var(--violet);background:white;color:var(--violet);padding:8px 20px;font-weight:600;min-width:94px}.copy:hover{background:var(--fog)}.code-tools{padding:16px;background:var(--fog);grid-template-columns:1fr 100px;gap:12px}.js .code-tools{display:grid}.code-tools label,.planner label{font-size:14px;font-weight:600}.code-tools input,.planner input,.planner select{display:block;background:#fff;border:1px solid #b8c1d4;padding:10px;width:100%;margin-top:5px;min-height:44px}.code-tools .checkbox{grid-column:1/-1;display:flex;align-items:center;gap:10px;font-weight:400}.checkbox input{width:18px;min-height:18px;margin:0}.js #code-count{font-size:13px;color:var(--muted);margin:12px 0}#copy-feedback{font-size:15px;color:var(--violet);min-height:25px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:16px}th,td{text-align:left;padding:13px 15px;border-bottom:1px solid var(--line);vertical-align:top}th{background:var(--fog);font-weight:600}.planner{background:var(--fog);padding:25px;gap:20px;grid-template-columns:1fr 1fr}.js .planner{display:grid}.planner button{background:var(--ink);color:#fff;border:0;padding:12px}.planner output{grid-column:1/-1;background:#fff;padding:20px;font-weight:600;color:var(--violet)}.faq-list details{border-top:1px solid var(--line);padding:18px 0}.faq-list summary{font-size:18px;font-weight:600;cursor:pointer}.faq-list details p{font-size:17px;margin:14px 0 0;color:var(--muted)}.related>div{display:grid;grid-template-columns:1fr 1fr;gap:20px}.related a{text-decoration:none;display:block;font-weight:600;background:var(--fog);padding:20px}.related a span{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-bottom:8px}footer{max-width:1300px;margin:30px auto 0;padding:40px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}footer nav{display:flex;gap:22px;flex-wrap:wrap}.brand-text{font:700 24px BarlowCondensed,sans-serif;color:var(--ink);text-decoration:none;display:block;margin-bottom:18px}.not-found{padding:100px 30px}footer p{max-width:640px}
@media(min-width:1500px){main{padding:0 60px}.site-header{padding-left:6vw;padding-right:6vw}}
@media(max-width:1120px){.site-header{flex-wrap:wrap;gap:20px}#site-nav{order:3;width:100%;justify-content:center}.play{margin-left:auto}.reading-layout{gap:35px;grid-template-columns:210px minmax(0,1fr)}.home-hero{gap:40px;grid-template-columns:1fr 250px}}
@media(max-width:760px){body{font-size:17px}.site-header{padding:16px 20px;gap:12px}.brand{font-size:22px}.play{display:none}.js .menu-button{display:block;margin-left:auto}#site-nav{display:grid;grid-template-columns:1fr 1fr;gap:5px}.js #site-nav{display:none}.js #site-nav.is-open{display:grid}#site-nav a{padding:11px}main{padding:0 22px}.page-hero{padding:38px 0 28px}.home-hero{display:block}.hero-art{margin:30px 0 10px;max-width:190px}.intro{font-size:18px}.updated{font-size:12px}.reading-layout{display:block;padding-top:24px}.toc{position:static;padding:0 0 25px;margin-bottom:30px;border-bottom:1px solid var(--line)}.toc nav{display:flex;flex-wrap:wrap;gap:10px 18px;font-size:13px}.hub-link{display:none}h2{font-size:30px}.code-row{gap:10px}code{font-size:16px}.copy{min-width:76px;padding:8px 10px}.code-row p{font-size:14px}.code-meta{font-size:12px}.secondary-link{margin-left:0;display:block}.js .planner{grid-template-columns:1fr}.related>div{grid-template-columns:1fr}footer{padding:30px 22px}.review-bar{font-size:11px;padding:7px 12px}.table-wrap{margin:0 -4px}th,td{padding:11px 8px;font-size:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.guide-figure img{display:block;width:100%;border-radius:12px}.guide-figure figcaption{line-height:1.5;max-width:690px}
.ad-slot{margin:0 0 36px;padding:16px 0;border-bottom:1px solid var(--line);max-width:100%;overflow:hidden}.ad-label{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}.ad-content iframe{display:block;border:0;max-width:100%;margin:auto}.ad-content p{font-size:14px;background:var(--fog);padding:22px;text-align:center}.ad-banner-300 .ad-content{max-width:300px;margin:auto}.ad-native .ad-content{width:100%}.ad-banner-160{display:none;width:160px;margin:24px auto 0}.privacy-link{border:0;padding:0;color:var(--violet);background:transparent;text-decoration:underline;text-underline-offset:4px;font-size:14px}.privacy-notice{margin:30px auto;max-width:1220px;padding:22px;background:var(--fog);border:1px solid var(--line);font-size:15px}.privacy-notice button,.privacy-actions button{padding:8px 14px;margin:4px 8px 4px 0;border:1px solid var(--muted);background:#fff;color:var(--ink);font-size:15px}#privacy-dialog{max-width:560px;width:calc(100% - 32px);max-height:85vh;overflow:auto;border:1px solid var(--line);padding:28px;color:var(--ink);background:var(--paper);font-size:16px}#privacy-dialog::backdrop{background:rgba(29,39,69,.55)}#privacy-dialog label{display:flex;gap:12px;align-items:center;margin:18px 0;min-height:44px}#privacy-dialog input{width:20px;height:20px}.privacy-actions{margin-top:22px}@media(min-width:1600px){.ad-banner-160{display:block}}@media(max-width:760px){.privacy-notice{margin:25px 22px}.ad-content iframe{max-width:100%}}
