:root{font-family:Inter,Arial,sans-serif;color:#22372f;background:#f6f1e2;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button{cursor:pointer;border:1px solid #bac4af;border-radius:5px;background:#f9f7ed;color:#254235;padding:11px 13px;text-align:left}button:hover{background:#dce8cc}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #e19038;outline-offset:2px}header{display:flex;justify-content:space-between;align-items:center;padding:25px 32px;border-bottom:1px solid #b4bda6}header small{letter-spacing:2px;font-size:10px}h1{font-size:30px;margin:9px 0 0;font-weight:500}i,em{font-family:Georgia,serif;color:#638044;font-weight:400}nav{display:flex;gap:8px}main{display:grid;grid-template-columns:260px minmax(510px,1fr) 270px;min-height:calc(100vh - 150px)}aside{padding:24px 20px;border-right:1px solid #bbc5b0}aside.source{border-left:1px solid #bbc5b0;border-right:0}h2{font-size:13px;letter-spacing:1px;margin:10px 0 19px}p{font-size:12px;line-height:1.65;color:#5b6b5b}label{display:block;font-size:11px;margin:12px 0;color:#53634c}input,textarea{width:100%;display:block;border:1px solid #bbc5ad;border-radius:3px;background:#fffdf5;color:#263e30;padding:8px;margin-top:5px}input[type=number]{font-variant-numeric:tabular-nums}.parts{display:grid;grid-template-columns:1fr 1fr;gap:5px}.parts button{font-size:11px;overflow-wrap:anywhere}.parts .active{background:#3e5e4c;color:#fff}.entry{border:1px solid #c9cbb6;border-radius:6px;margin:12px 0;padding:12px}.entry b{font-size:12px}.entry-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.entry label{margin:8px 0}.entry button{font-size:10px;padding:6px}.stage{padding:38px 32px;min-width:0}.intro small{font-size:10px;letter-spacing:2px}.intro h2{font-size:clamp(40px,4.8vw,76px);font-weight:400;letter-spacing:-3px;line-height:.98;margin:23px 0}.intro p{font-size:14px;max-width:360px}.score-head{display:flex;justify-content:space-between;border-top:1px solid #b7c0a9;margin-top:30px;padding-top:18px;font-size:10px;letter-spacing:1px}.score{margin:16px 0 25px;overflow-x:auto}.score-row,.measure-labels,.coverage-row{display:grid;grid-template-columns:90px repeat(16,minmax(19px,1fr));gap:3px;min-width:500px;align-items:center;margin:5px 0}.score-row strong,.coverage-row strong{font-size:10px;overflow-wrap:anywhere}.measure-labels span{text-align:center;font-size:10px}.cell{height:50px;background:#e3e5d6;text-align:center;display:grid;place-items:center;border-radius:2px;color:#9aa98a}.cell.on{background:#405f4c;color:#f4e7af;animation:reveal .35s ease-out}.coverage-row input{padding:6px 1px;width:100%;font-size:10px;text-align:center;appearance:textfield}.coverage-row span{text-align:center;font-size:11px}.actions,.exports{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.actions button:first-child{background:#2c4e3c;color:#f9f4df}.status{background:#e5eacb;border-left:3px solid #72904e;padding:12px;color:#2d4c36;min-height:43px}.notice{border-top:1px solid #c6cab9;padding-top:18px}.exports button{font-size:11px}textarea{height:340px;font-family:monospace;font-size:10px;resize:vertical}.source>button{display:block;width:100%;margin:8px 0;font-size:11px}.source h3{margin-top:28px;font-size:14px}.warning{color:#943f22}footer{padding:16px 32px;font-size:10px;letter-spacing:3px;border-top:1px solid #b6c0ab}.focus main{grid-template-columns:1fr}.focus aside{display:none}.focus .stage{max-width:1300px;width:100%;margin:auto;min-height:calc(100vh - 150px)}@keyframes reveal{0%{opacity:.4}to{opacity:1}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(max-width:1150px){main{grid-template-columns:240px minmax(460px,1fr)}aside.source{grid-column:1/-1;border-top:1px solid #bac4ad;display:grid;grid-template-columns:1fr 1fr;gap:8px 20px}aside.source textarea{grid-row:2/8;grid-column:2}aside.source h2{grid-column:1/-1}}@media(max-width:760px){header{padding:20px;align-items:flex-start;gap:15px}nav{flex-wrap:wrap;justify-content:flex-end}nav button{font-size:11px;padding:7px}main{display:flex;flex-direction:column}.stage{order:-1;padding:25px 18px}aside.source{display:block}h1{font-size:24px}aside{border-top:1px solid #bcc6b0}.intro h2{font-size:58px}.focus .stage{width:100%}}.voicing{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.voicing>b{grid-column:1/-1;font-size:11px;letter-spacing:.05em}.voicing input,.range input{width:100%;min-width:0}.range{display:grid;grid-template-columns:1fr 1fr;gap:8px}.range>b{grid-column:1/-1}.candidate-stage{border-top:1px solid #344959;margin-top:20px}.candidate-stage article{padding:10px 0;border-bottom:1px solid #263847}.bridge-visual{overflow:auto;border:1px solid #344959;padding:18px;background:#132230;border-radius:20px}.voice{display:grid;grid-template-columns:28px repeat(6,minmax(70px,1fr));gap:8px;min-width:550px;align-items:center;margin:14px 0}.note-node{display:flex;flex-direction:column;gap:8px;text-align:center;border-top:2px solid var(--voice);padding-top:8px}.note-node b{display:grid;place-content:center;border-radius:50%;width:46px;height:46px;background:var(--voice);color:#102030;margin:auto;font-size:14px}.note-node small,.note-node span{font-size:9px}.voice-0{--voice:#e6b56b}.voice-1{--voice:#d88972}.voice-2{--voice:#83c7b4}.voice-3{--voice:#a99bda}.alternatives{display:flex;gap:10px;margin:20px 0}.alternatives button{display:flex;flex-direction:column;flex:1;gap:8px}.alternatives b{font-size:36px}.alternatives small,.alternatives span{font-size:10px}.focus .stage{max-width:none}button.active{border-color:#e6b56b;background:#3c3a31}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
