*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);margin:0}button,input,select,textarea{font:inherit}button,a,label,summary{-webkit-tap-highlight-color:transparent}a{color:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,summary:focus-visible,select:focus-visible,textarea:focus-visible,.file-label:focus-within{outline:2px solid var(--voice);outline-offset:4px}[hidden]{display:none!important}.page{max-width:860px;margin:auto;padding:0 36px}.top{min-height:76px;display:flex;gap:16px;align-items:center;border-bottom:1px solid var(--ink);background:var(--paper)}.back{text-decoration:none;font-size:.9375rem;min-height:44px;display:flex;align-items:center}.issue{margin-left:auto;font-size:.75rem;text-transform:uppercase;letter-spacing:.11em}.icon{border:1px solid var(--ink);background:var(--paper);color:var(--ink);width:44px;height:44px;font-size:22px}.mast{margin:40px auto 12px;max-width:450px;text-align:center}.mast svg{width:100%;height:auto;overflow:visible}.kicker{font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;font-weight:500}.cover-kicker{text-align:center;margin:20px 0}h1,h2,h3,.did{font-family:'Noto Serif Display',Georgia,serif}h1{font-size:clamp(42px,6vw,68px);font-weight:500;line-height:1.01;letter-spacing:-.035em;margin:24px 0}h1 em{font-weight:400}#welcome h1,#welcome .lead{text-align:center}.lead{font-size:1.18rem;line-height:1.4;margin:22px 0;color:var(--ink-2)}.editorial-art{position:relative;margin:26px 0 32px;padding:12px 0 14px;text-align:center;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}.editorial-art>span{font-family:'Noto Serif Display',serif;font-size:64px;padding:0 38px;line-height:1}.editorial-art>i{font-style:normal;color:var(--gold);font-size:28px}.editorial-art small{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.16em;margin:10px 0 0}.editorial-art small span{margin-left:82px}.her{background:var(--tint);clip-path:polygon(10px 0,100% 0,100% 100%,0 100%,0 10px);padding:16px 20px}.her p{margin:0}.her p+p{margin-top:10px}.red-mark{display:inline-block;width:7px;height:7px;background:var(--voice);margin-right:6px}.privacy{font-size:.91rem;color:var(--ink-2);margin:18px 0}.actions{display:flex;gap:10px;margin:18px 0 12px}.primary,.secondary{min-height:52px;border-radius:0;border:1px solid var(--ink);padding:12px 18px;font-weight:500;display:flex;gap:16px;align-items:center;justify-content:center;text-decoration:none;font-size:1rem}.primary{color:var(--on-ink);background:var(--ink);clip-path:polygon(0 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%)}.secondary{background:var(--paper);color:var(--ink)}.actions>*{flex:1}.primary span,.secondary span{margin-left:auto}#file{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.file-label{cursor:pointer}.file-label:has(+input:focus-visible){outline:2px solid var(--voice);outline-offset:4px}.fine{font-size:.83rem;color:var(--muted)}.paste-box{margin:26px 0}.paste-box summary{font-size:.9rem;cursor:pointer;padding:10px 0}.paste-box label{display:block;margin:8px 0}textarea{width:100%;resize:vertical;background:var(--paper);color:var(--ink);border:1px solid var(--hair);padding:12px;font-family:monospace;font-size:.8rem}.chapters{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:40px 0}.chapters div{border-top:1px solid var(--ink);padding-top:12px}.chapters span{color:var(--voice);font-size:.8rem}.chapters h2{font-size:24px;margin:8px 0;line-height:1.2;font-weight:500}.chapters p{font-size:.91rem;color:var(--ink-2);margin:0}.notice{padding:12px 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);font-size:.91rem}#setup{padding:28px 0}fieldset{border:0;border-top:1px solid var(--ink);margin:28px 0;padding:20px 0 0}legend{padding:0 12px 0 0;font-weight:600}fieldset>label:not(.radio){display:block;margin:18px 0 6px}select{border:1px solid var(--ink);border-radius:0;min-height:48px;padding:8px 12px;background:var(--paper);color:var(--ink);width:100%}.radio{display:flex;gap:10px;align-items:flex-start;padding:12px 0;min-height:44px;cursor:pointer}.radio input{flex:none;width:20px;height:20px;accent-color:var(--ink);margin:1px 0 0}.report-head{padding:32px 0 24px}.report-head h1{margin:16px 0;font-size:clamp(42px,6vw,62px)}.demo-tag{display:inline-block;background:var(--tint);padding:7px 12px;font-size:.85rem;border-left:3px solid var(--voice);margin-bottom:12px}.profile-cover{display:grid;grid-template-columns:1fr 140px;gap:18px;align-items:center}.colour-stack{height:120px;position:relative;display:flex;align-items:center;justify-content:center}.colour-stack i{display:block;width:56px;height:96px;border:1px solid var(--hair);transform:rotate(-9deg)}.colour-stack i:nth-child(2){transform:rotate(4deg);margin-left:-19px}.colour-stack i:nth-child(3){transform:rotate(14deg);margin-left:-19px}.report-nav{display:flex;gap:24px;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:14px 0;margin:0 0 24px}.report-nav a{text-decoration:none;font-size:.91rem;min-height:24px}.section-title{display:flex;gap:12px;align-items:baseline;border-bottom:1px solid var(--ink);padding-bottom:10px;margin:36px 0 18px;scroll-margin-top:16px}.section-title span{font-size:.8rem;color:var(--voice)}.section-title h2{font-size:32px;font-weight:500;line-height:1.1;margin:0}.anchors{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.anchor .swatch{height:64px;border:1px solid var(--hair);margin-bottom:10px}.anchor b{font-weight:500;font-size:.9rem}.anchor p{font-size:.8rem;margin:5px 0;color:var(--ink-2)}.anchor.extra{grid-column:1/-1;display:grid;grid-template-columns:60px 1fr;gap:10px}.anchor.extra .swatch{height:40px}.axis{border-top:1px solid var(--hair);padding:22px 0}.axis-head{display:flex;gap:10px;justify-content:space-between;align-items:baseline}.axis h3{font-size:25px;font-weight:500;margin:0}.badge{font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);flex:none}.axis-value{font-size:28px;margin:9px 0;font-variant-numeric:tabular-nums}.axis-value small{font-size:.85rem;color:var(--ink-2)}.scale{position:relative;height:16px;margin:18px 5px 0;background:linear-gradient(90deg,var(--tint),var(--muted));border:1px solid var(--hair)}.scale .marker{position:absolute;top:-5px;bottom:-5px;width:2px;background:var(--voice);transform:translateX(-50%)}.scale .marker:before{content:'';position:absolute;left:-3px;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--voice)}.scale-ends{display:flex;justify-content:space-between;font-size:.8rem;color:var(--muted);margin:9px 0 15px}.axis .explanation{margin:10px 0;font-size:.95rem}.interval{font-size:.82rem;color:var(--muted);margin:10px 0}.axis details summary{cursor:pointer;min-height:44px;padding:10px 0;color:var(--ink-2);font-size:.91rem}.axis details p{margin:0 0 10px;font-size:.91rem}.axis details code{font-size:.73rem;color:var(--muted);overflow-wrap:anywhere}.components{display:grid;grid-template-columns:1fr 1fr;gap:2px 14px;font-size:.84rem;border-top:1px solid var(--hair);padding-top:10px}.components p{display:flex;justify-content:space-between;gap:8px;margin:4px 0!important}.combination{padding:22px 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);margin:24px 0}.pair-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:16px 0}.pair{height:56px;display:flex;border:1px solid var(--hair)}.pair i{flex:1}.pair-grid p{font-size:.87rem;margin:10px 0}.combination h3{font-size:24px;font-weight:500;margin:0}.method{margin:30px 0;border-top:1px solid var(--hair);padding-top:18px}.method summary{cursor:pointer;min-height:44px}.method p{font-size:.9rem;color:var(--ink-2)}.method pre{max-height:360px;overflow:auto;font-size:.73rem;background:var(--tint);padding:15px;white-space:pre-wrap;overflow-wrap:anywhere}.controls{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding-top:24px;border-top:1px solid var(--ink);margin:26px 0}.controls button{min-height:48px}.controls .quiet{border:0;color:var(--muted);background:transparent;text-decoration:underline;font-size:.9rem}footer{display:flex;justify-content:space-between;gap:15px;padding:20px 0 28px;border-top:1px solid var(--hair);font-size:.8rem;color:var(--muted)}.error{border-left:3px solid var(--voice);background:var(--tint);padding:14px;margin:20px 0;overflow-wrap:anywhere}.sr-only,.skip{position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden}.skip:focus{clip:auto;width:auto;height:auto;top:4px;left:4px;z-index:10;background:var(--paper);padding:12px}#report,#setup{animation:appear .2s ease-out}@keyframes appear{from{opacity:.5;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(min-width:700px){#welcome{max-width:620px;margin:auto}#setup{max-width:580px;margin:auto}.axes-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 32px}.anchors{gap:24px}.anchor .swatch{height:90px}}
@media(max-width:520px){.page{padding:0 18px}.top{min-height:65px;gap:12px}.issue{font-size:.65rem;letter-spacing:.04em}.back{font-size:.83rem}.mast{margin-top:28px;max-width:320px}.actions{flex-direction:column}.chapters{grid-template-columns:1fr;gap:18px;margin:28px 0}.chapters div{display:grid;grid-template-columns:28px 1fr;gap:4px 10px}.chapters h2{margin:0;font-size:24px}.chapters p{grid-column:2}.profile-cover{grid-template-columns:1fr 82px}.colour-stack i{width:36px;height:74px}.report-nav{justify-content:space-between;gap:8px}.anchors{gap:10px}.axis-head{flex-wrap:wrap}.controls{grid-template-columns:1fr}.components{grid-template-columns:1fr}.report-head h1{font-size:44px}.section-title h2{font-size:29px}footer{flex-direction:column;gap:6px}}
@media(max-width:520px){.editorial-art{display:none}#welcome h1{font-size:40px}.cover-kicker{margin:16px 0}.mast{margin-top:24px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}#report,#setup{animation:none}}
@media print{body{background:white;color:black}.top,.report-nav,.controls,.method,.privacy,footer{display:none!important}.demo-tag{color:black;border-left-color:black}.page{max-width:none;padding:0}.axis,.anchors,.combination,.her{break-inside:avoid}.report-head{padding-top:0}#report details>*{display:block}h1{font-size:42px}.scale{print-color-adjust:exact}.swatch,.pair,.colour-stack{print-color-adjust:exact}body{--paper:#fff;--ink:#0b0b0b;--ink-2:#3a3a3a;--muted:#666;--hair:#d9d9d9;--tint:#f2f2f2;--voice:#d1002c;--gold:#a88016}}
