:root{--paper:#fdfcf8;--surface:#fffefa;--ink:#2c2c24;--muted:#68685e;--moss:#5d7052;--moss-dark:#41503a;--clay:#b9784e;--sand:#e6dccd;--stone:#f0ebe5;--timber:#d7cfc4;--danger:#a85448;--shadow:0 18px 48px -28px rgba(93,112,82,.48)}
*{box-sizing:border-box}html{color-scheme:light}body{margin:0;background:var(--paper);color:var(--ink);font:500 15px/1.6 Nunito,system-ui,sans-serif}button,input{font:inherit;color:inherit}::selection{background:var(--sand);color:var(--ink)}:focus-visible{outline:3px solid var(--clay);outline-offset:4px}.skip{position:fixed;top:-6rem;left:1rem;z-index:30;padding:.8rem 1rem;background:var(--ink);color:#fff;border-radius:999px}.skip:focus{top:1rem}
.topbar{width:min(calc(100% - 2rem),1320px);min-height:88px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--timber)}.brand{display:flex;align-items:center;gap:.85rem;color:inherit;text-decoration:none;font:700 1.12rem Fraunces,serif}.brand span{display:grid;place-items:center;width:46px;height:46px;background:var(--moss);color:#fff;border-radius:61% 39% 45% 55%/54% 43% 57% 46%;box-shadow:0 8px 18px rgba(93,112,82,.22)}.top-actions{display:flex;gap:.7rem}.button{min-height:46px;padding:.68rem 1.2rem;border:1px solid transparent;border-radius:999px;font-weight:800;cursor:pointer;transition:transform .22s cubic-bezier(.16,1,.3,1),box-shadow .22s ease,background .22s ease}.button:hover{transform:translateY(-2px) scale(1.01)}.button:active{transform:translateY(0) scale(.98)}.primary{background:var(--moss);color:#fff;box-shadow:0 9px 22px -10px rgba(65,80,58,.7)}.primary:hover{background:var(--moss-dark);box-shadow:0 14px 28px -12px rgba(65,80,58,.72)}.secondary{background:transparent;color:var(--clay);border-color:var(--clay)}.secondary:hover{background:rgba(185,120,78,.08)}
main{width:min(calc(100% - 2rem),1320px);margin:0 auto;padding:clamp(3rem,6vw,6rem) 0}.intro{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(2rem,6vw,6rem);align-items:end;margin-bottom:2.5rem}.intro::after{content:"";position:absolute;width:280px;height:210px;right:7%;top:-30%;z-index:-1;background:rgba(193,140,93,.13);border-radius:62% 38% 68% 32%/38% 60% 40% 62%;filter:blur(2px)}.intro h1{max-width:800px;margin:0;font:700 clamp(3rem,6.7vw,6.2rem)/.94 Fraunces,serif;letter-spacing:-.035em;text-wrap:balance}.intro>div>p:last-child{max-width:680px;margin:1.2rem 0 0;color:var(--muted);font-size:1.08rem}.score-card{min-width:220px;padding:1.45rem 1.6rem;background:var(--sand);border:1px solid rgba(185,120,78,.35);border-radius:43% 57% 28px 36%/33% 40% 60% 67%;box-shadow:0 18px 45px -24px rgba(185,120,78,.6);transform:rotate(1.5deg)}.score-card span,.score-card small{display:block;font-size:.78rem;font-weight:700}.score-card strong{display:block;margin:.2rem 0;font:700 3.9rem/1 Fraunces,serif;font-variant-numeric:tabular-nums}
.layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:1.5rem;align-items:start}.panel{background:rgba(255,254,250,.92);border:1px solid var(--timber);box-shadow:var(--shadow)}.weights{padding:1.5rem;border-radius:38px 22px 42px 24px}.roadmap{overflow:hidden;border-radius:24px 44px 28px 38px}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.section-heading h2{margin:0;font:700 1.85rem Fraunces,serif}.shape.dot{width:42px;height:42px;background:var(--clay);border-radius:64% 36% 52% 48%/45% 65% 35% 55%;transform:rotate(12deg)}.helper{color:var(--muted);font-size:.88rem}.weight{margin:1.35rem 0}.weight label{display:flex;justify-content:space-between;gap:1rem;font-weight:800}.weight output{color:var(--moss-dark);font-variant-numeric:tabular-nums}.weight input{width:100%;accent-color:var(--moss)}.formula{margin-top:1.6rem;padding:1.05rem;background:var(--stone);border-radius:18px 26px 17px 23px}.formula strong,.formula span,.formula small{display:block}.formula span{margin:.35rem 0;font-size:.82rem}.formula small{color:var(--muted)}.roadmap-heading{padding:1.55rem 1.6rem 1.15rem}.roadmap-heading>p{margin:.4rem 0 0;color:var(--muted);font-size:.82rem;font-weight:700}.table-wrap{min-width:0;max-width:100%;overflow:auto}table{width:100%;min-width:790px;border-collapse:collapse}th{padding:.78rem .85rem;text-align:left;background:var(--stone);border-block:1px solid var(--timber);color:var(--moss-dark);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}td{padding:.85rem;border-bottom:1px solid var(--timber);vertical-align:middle}.initiative{display:flex;align-items:center;gap:.75rem;min-width:210px}.rank{display:grid;place-items:center;flex:0 0 34px;height:34px;background:var(--sand);border-radius:59% 41% 52% 48%/43% 55% 45% 57%;color:var(--moss-dark);font-weight:800}.initiative input{width:100%;min-width:150px;padding:.35rem .1rem;border:0;border-bottom:1px solid transparent;background:transparent;font-weight:800}.initiative input:focus{border-bottom-color:var(--moss)}.metric-input{width:64px;padding:.55rem;border:1px solid var(--timber);border-radius:999px;background:rgba(255,255,255,.7);text-align:center}.metric-input:focus{border-color:var(--moss)}.score{color:var(--moss-dark);font:700 1.25rem Fraunces,serif;font-variant-numeric:tabular-nums}.delete{width:44px;height:44px;border:0;background:transparent;border-radius:50%;color:var(--danger);cursor:pointer;font-size:1.2rem}.delete:hover{background:#f5e7e3}.empty{text-align:center;padding:4rem 1rem}.empty>span{display:block;color:var(--moss);font:700 3rem Fraunces,serif}.empty h3{margin:.4rem 0;font:700 1.6rem Fraunces,serif}.empty p{color:var(--muted)}.legend{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;margin-top:2rem;padding:1rem 1.3rem;background:rgba(230,220,205,.38);border-radius:30px 22px 34px 20px;color:var(--muted);font-size:.8rem}.legend strong{color:var(--moss-dark)}
dialog{width:min(calc(100% - 2rem),570px);padding:0;border:1px solid var(--timber);border-radius:30px 40px 32px 24px;background:var(--surface);box-shadow:0 30px 80px rgba(44,44,36,.25)}dialog::backdrop{background:rgba(44,44,36,.46);backdrop-filter:blur(3px)}form{padding:1.7rem}.dialog-head{display:flex;justify-content:space-between;align-items:start;gap:1rem}.dialog-head h2{margin:0;font:700 2.1rem Fraunces,serif}.icon-button{width:44px;height:44px;border:1px solid var(--timber);border-radius:50%;background:var(--stone);font-size:1.5rem;cursor:pointer}label{display:block;font-weight:800}form>label{margin-top:1.4rem}form input{width:100%;padding:.8rem .9rem;border:1px solid var(--timber);border-radius:18px;background:rgba(255,255,255,.72)}form input:focus{border-color:var(--moss)}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem}.dialog-actions{display:flex;justify-content:flex-end;gap:.8rem;margin-top:1.7rem}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(max-width:850px){.layout,.intro{grid-template-columns:1fr}.score-card{width:220px}.roadmap{width:calc(100vw - 2rem)}.topbar{padding-block:.7rem}.brand{font-size:0}.brand span{font-size:1rem}.top-actions .secondary{display:none}}
@media(max-width:600px){.intro h1{font-size:3.35rem}.score-card{width:100%;min-width:0;border-radius:28px 42px 26px 36px}.field-grid{grid-template-columns:1fr 1fr}.legend{display:grid}table{min-width:0}thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}tbody{display:grid;gap:1rem;padding:1rem}tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:.8rem;background:var(--surface);border:1px solid var(--timber);border-radius:24px 32px 22px 28px;box-shadow:0 10px 30px -24px rgba(93,112,82,.7)}td{padding:.5rem;border:0}td:first-child{grid-column:1/-1}.metric-input{width:100%}td:nth-child(2)::before,td:nth-child(3)::before,td:nth-child(4)::before,td:nth-child(5)::before,td:nth-child(6)::before{display:block;margin-bottom:.2rem;color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase}td:nth-child(2)::before{content:"Reach"}td:nth-child(3)::before{content:"Impact"}td:nth-child(4)::before{content:"Confidence"}td:nth-child(5)::before{content:"Effort"}td:nth-child(6)::before{content:"Score"}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
