:root{--ink:#29362e;--muted:#697167;--berry:#385247;--berry2:#789080;--soft:#edf0e7;--paper:#f8f5ef;--line:#e2e4d9;--green:#385b42;--gold:#b79250}html{scroll-behavior:auto;scroll-padding-top:76px}body{font-size:16px;color:var(--ink);background:var(--paper)}header{padding:0;background:#f4f0e6;color:var(--ink);border-bottom:1px solid #e5e0d5}.cover{max-width:1060px;margin:auto;display:grid;grid-template-columns:1.3fr .7fr;align-items:center;gap:30px;padding:42px 28px 32px}.cover h1{font-family:Georgia,'Times New Roman',serif;font-weight:500;font-size:66px;line-height:1.02;letter-spacing:-.045em;margin:22px 0}.cover p{color:#687064;font-size:17px;line-height:1.55}.cover .eyebrow{color:#69725b;font-size:10px;letter-spacing:.14em}.hero-copy{min-width:0}.hero-art{display:flex;flex-direction:column;align-items:center;align-self:end}.hero-art img{width:220px;height:300px;object-fit:contain}.ipa-name{font-size:11px;color:#78816c;margin-top:7px}.cta{display:inline-flex;align-items:center;justify-content:space-between;gap:25px;text-decoration:none;margin-top:24px;padding:15px 20px;font-size:15px}.cta span{font-size:21px}nav{display:flex;justify-content:center;gap:30px;background:#fbfaf6f2;position:sticky;top:0;z-index:10;border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}nav a,nav a:visited{color:var(--ink);padding:16px 0;font-size:13px;text-decoration:none}main{padding-top:24px}.intro{background:transparent;border:0;padding:0 4px 12px;font-size:13px;line-height:1.6}.card{border-radius:16px;padding:24px;border-color:var(--line);box-shadow:0 3px 18px #36442e03}.results{position:static}.section-title{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;min-height:76px}.section-title h2{margin:0;max-width:calc(100% - 82px);font-size:23px;line-height:1.18;letter-spacing:-.03em}.mini-ipa{width:76px;height:76px;flex:none;overflow:hidden;pointer-events:none;border-radius:12px;background:#fcf7ef}.mini-ipa img{width:84px;height:84px;object-fit:cover;clip-path:inset(4% 10% 4% 4%);margin:-4px;mix-blend-mode:multiply}.metric,.focusBar,.outcome{background:#f4f5ee;border-color:#e4e7dc}.metrics{gap:10px}.metric small{font-size:12px}.metric strong{font-size:25px}.phase{background:#fafbf7;border-color:var(--line);padding:16px}.stephelp{background:#f0f2e9}.checkrow{background:var(--soft);border-color:var(--line)}input,select{font-size:16px;min-height:48px;border-color:#cfd5ca;border-radius:9px}input:focus,select:focus{box-shadow:0 0 0 3px #38524716;border-color:#385247}.btn,.btn.tiny,.pill{min-height:44px}.btn{border-radius:9px}.btn.ghost{border-color:#d5d9cd}.pill{color:#566451;border-color:#d5d9cd}.tag{background:#e5eada}.summaryline{flex-wrap:wrap;gap:8px}.summaryline strong{margin-left:auto}.three{grid-template-columns:1fr}.three>div{display:flex;justify-content:space-between;gap:12px;padding:8px 0}.three b{font-size:17px}.analysis{background:#f5f6f0;border-color:#a3b18d;color:var(--ink);line-height:1.6}.analysis strong{color:#314c3a}.breakdown{background:#fafbf7;border-color:var(--line)}.flow{display:flex;height:16px;background:#eceee5;border-radius:8px;overflow:hidden;margin:18px 0}.flow i{transition:width .25s}main,.workspace,.left,.right,.card{min-width:0;max-width:100%}.tableScroll{width:100%;overflow-x:auto}.yearTable,.compareTable{min-width:0}#compareMonth{margin-bottom:10px}.footer{font-size:12px;line-height:1.7;color:#777e72}.author-footer{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #dedfd5;margin-top:24px;padding:22px 0;font-size:13px;color:#4e5f4f}.author-footer span{font-size:12px;color:#89907e}.status{background:#f7f1e6}.top .small{white-space:nowrap;font-size:10px}button:focus-visible,a:focus-visible{outline:3px solid #a6b38e;outline-offset:3px}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media(max-width:600px){main{padding:18px 14px 28px}.cover{padding:28px 22px 25px;gap:8px;grid-template-columns:minmax(0,1fr) 116px}.cover h1{font-size:38px;margin:17px 0;line-height:1.06}.cover p{font-size:13px;line-height:1.55}.cover p br{display:none}.hero-art img{width:126px;height:192px}.hero-art{align-self:center}.ipa-name{font-size:9px;max-width:110px;text-align:center}.cta{font-size:13px;padding:12px 13px;margin-top:18px;gap:10px;white-space:nowrap}.cta span{font-size:18px}.cover .eyebrow{font-size:9px}.card{padding:20px 16px}.section-title h2{font-size:21px}.metrics{grid-template-columns:1fr 1fr}.metric strong{font-size:23px}.three b{font-size:16px}nav{gap:22px}nav a{font-size:12px}.graph{min-height:140px}.phase select{font-size:16px}.top{flex-wrap:wrap}.author-footer{flex-direction:column;gap:4px}}@media(max-width:360px){.cover{padding-left:16px;padding-right:16px;grid-template-columns:minmax(0,1fr) 98px}.cover h1{font-size:33px}.hero-art img{width:106px;height:174px}.metrics{grid-template-columns:1fr}.summaryline strong{white-space:normal;overflow-wrap:anywhere}nav{gap:18px}}

.mini-ipa img[data-motion="assets/calculate.gif"]{clip-path:inset(4% 20% 4% 4%)}
/* Articulated Ipa: independent ears, hands and feet. One 3-second scene per section. */
.mini-ipa{width:88px;height:108px;overflow:visible;background:transparent;border-radius:0;display:block}
.mini-ipa svg{display:block;width:88px;height:108px;overflow:visible}
.section-title{min-height:108px}.section-title h2{max-width:calc(100% - 98px)}
.results .section-title{position:relative;padding-bottom:18px;flex-wrap:nowrap}
.results .section-title .tag{position:absolute;bottom:0;left:0;font-size:10px}
.ipa-line{fill:none;stroke:#173e2b;stroke-width:2.7;stroke-linecap:round;stroke-linejoin:round}
.ipa-ear-l{transform-origin:54px 81px}.ipa-ear-r{transform-origin:102px 79px}
.ipa-arm-l{transform-origin:42px 139px}.ipa-arm-r{transform-origin:120px 139px}
.ipa-leg-l{transform-origin:69px 150px}.ipa-leg-r{transform-origin:94px 150px}
.ipa-actor{transform-origin:80px 184px}.ipa-eyes{transform-origin:80px 108px}.ipa-shadow{transform-origin:80px 187px}
.ipa-playing .ipa-ear-l{animation:ipa-ear 4s ease-in-out both}
.ipa-playing .ipa-ear-r{animation:ipa-ear-small 4s ease-in-out both}
.ipa-playing .ipa-eyes{animation:ipa-blink 4s linear both}
.ipa-hello.ipa-playing .ipa-arm-r{animation:ipa-wave 4s ease-in-out both}
.ipa-hello.ipa-playing .ipa-leg-r{animation:ipa-toe 4s ease-in-out both}
.ipa-coin.ipa-playing .ipa-arm-r{animation:ipa-offer 4s ease-in-out both}
.ipa-coin.ipa-playing .ipa-leg-l{animation:ipa-toe 4s ease-in-out both}
.ipa-save.ipa-playing .ipa-arm-l{animation:ipa-hug-l 4s ease-in-out both}
.ipa-save.ipa-playing .ipa-arm-r{animation:ipa-hug-r 4s ease-in-out both}
.ipa-jump.ipa-playing .ipa-actor{animation:ipa-jump 4s ease-in-out both}
.ipa-jump.ipa-playing .ipa-leg-l{animation:ipa-kick-l 4s ease-in-out both}
.ipa-jump.ipa-playing .ipa-leg-r{animation:ipa-kick-r 4s ease-in-out both}
.ipa-jump.ipa-playing .ipa-arm-l{animation:ipa-celebrate-l 4s ease-in-out both}
.ipa-jump.ipa-playing .ipa-arm-r{animation:ipa-celebrate-r 4s ease-in-out both}
.ipa-jump.ipa-playing .ipa-shadow{animation:ipa-shadow 4s ease-in-out both}
.ipa-point.ipa-playing .ipa-arm-l{animation:ipa-point 4s ease-in-out both}
.ipa-step.ipa-playing .ipa-leg-l{animation:ipa-step-l 4s ease-in-out both}
.ipa-step.ipa-playing .ipa-leg-r{animation:ipa-step-r 4s ease-in-out both}
.ipa-step.ipa-playing .ipa-arm-l{animation:ipa-step-r 4s ease-in-out both}
.ipa-think.ipa-playing .ipa-arm-r{animation:ipa-think 4s ease-in-out both}
@keyframes ipa-ear{0%,15%,100%{transform:rotate(0)}30%{transform:rotate(-13deg)}48%{transform:rotate(10deg)}66%{transform:rotate(-7deg)}82%{transform:rotate(3deg)}}
@keyframes ipa-ear-small{0%,20%,100%{transform:rotate(0)}38%{transform:rotate(9deg)}58%{transform:rotate(-7deg)}78%{transform:rotate(3deg)}}
@keyframes ipa-blink{0%,42%,48%,100%{transform:scaleY(1)}45%{transform:scaleY(.1)}}
@keyframes ipa-wave{0%,100%{transform:rotate(0)}25%,65%{transform:rotate(-135deg)}38%,78%{transform:rotate(-105deg)}50%{transform:rotate(-145deg)}}
@keyframes ipa-toe{0%,20%,85%,100%{transform:rotate(0)}42%,62%{transform:rotate(-19deg)}}
@keyframes ipa-offer{0%,100%{transform:rotate(0)}30%,70%{transform:rotate(-82deg)}50%{transform:rotate(-100deg)}}
@keyframes ipa-hug-l{0%,100%{transform:rotate(0)}32%,68%{transform:rotate(-62deg)}}
@keyframes ipa-hug-r{0%,100%{transform:rotate(0)}32%,68%{transform:rotate(62deg)}}
@keyframes ipa-jump{0%,16%,85%,100%{transform:translateY(0) scale(1)}26%{transform:translateY(2px) scale(1.04,.94)}46%{transform:translateY(-22px) scale(.98,1.02)}65%{transform:translateY(0) scale(1.04,.96)}}
@keyframes ipa-kick-l{0%,25%,75%,100%{transform:rotate(0)}46%{transform:rotate(22deg)}}
@keyframes ipa-kick-r{0%,25%,75%,100%{transform:rotate(0)}46%{transform:rotate(-22deg)}}
@keyframes ipa-celebrate-l{0%,100%{transform:rotate(0)}40%,60%{transform:rotate(115deg)}}
@keyframes ipa-celebrate-r{0%,100%{transform:rotate(0)}40%,60%{transform:rotate(-115deg)}}
@keyframes ipa-shadow{0%,100%{transform:scaleX(1);opacity:1}46%{transform:scaleX(.6);opacity:.4}}
@keyframes ipa-point{0%,100%{transform:rotate(0)}30%,70%{transform:rotate(78deg)}}
@keyframes ipa-step-l{0%,100%{transform:rotate(0)}28%,67%{transform:rotate(20deg)}47%,83%{transform:rotate(-12deg)}}
@keyframes ipa-step-r{0%,100%{transform:rotate(0)}28%,67%{transform:rotate(-20deg)}47%,83%{transform:rotate(12deg)}}
@keyframes ipa-think{0%,100%{transform:rotate(0)}30%,72%{transform:rotate(142deg)}}
@media(prefers-reduced-motion:reduce){.mini-ipa *{animation:none!important}}

/* Each section has a legible prop-based scene. */
.mini-ipa{width:102px;height:120px}.mini-ipa svg{width:102px;height:120px}.section-title h2{max-width:calc(100% - 112px)}
.ipa-hello.ipa-playing .ipa-arm-l{animation:ipa-celebrate-l 4s ease-in-out both}
.ipa-hello.ipa-playing .ipa-arm-r{animation:ipa-celebrate-r 4s ease-in-out both}
.ipa-playing .paper-one{animation:paper-left 4s ease-in-out both}.ipa-playing .paper-two{animation:paper-right 4s ease-in-out both}.ipa-playing .paper-three{animation:paper-up 4s ease-in-out both}
.paper-two{transform:rotate(8deg)}.paper-three{transform:rotate(-8deg)}
.ipa-playing .coin-drop{animation:coin-drop 4s ease-in-out both}.ipa-playing .ipa-jar{animation:jar-bump 4s ease-in-out both;transform-origin:80px 170px}
.ipa-playing .file-sheet{animation:file-away 4s ease-in-out both}.ipa-playing .file-tick{animation:tick-on 4s ease-in-out both}
.ipa-playing .ipa-flag{animation:flag-wave 4s ease-in-out both;transform-origin:119px 141px}
.ipa-playing .chart-dot{animation:chart-trace 4s ease-in-out both}
.ipa-playing .calendar-page{animation:page-turn 4s ease-in-out both;transform-origin:80px 145px}
.ipa-playing .ipa-lens{animation:lens-search 4s ease-in-out both}
@keyframes paper-left{0%,12%,100%{transform:translate(0,0) rotate(0)}35%{transform:translate(-40px,-57px) rotate(-36deg)}60%{transform:translate(-48px,4px) rotate(-65deg)}80%{transform:translate(-18px,17px) rotate(-18deg)}}
@keyframes paper-right{0%,12%,100%{transform:translate(0,0) rotate(8deg)}40%{transform:translate(45px,-47px) rotate(45deg)}65%{transform:translate(49px,7px) rotate(75deg)}84%{transform:translate(20px,17px) rotate(20deg)}}
@keyframes paper-up{0%,12%,100%{transform:translate(0,0) rotate(-8deg)}36%{transform:translate(0,-80px) rotate(20deg)}63%{transform:translate(10px,-38px) rotate(-20deg)}82%{transform:translate(0,10px) rotate(0)}}
@keyframes coin-drop{0%,100%{transform:translateY(0);opacity:1}25%{transform:translateY(-28px);opacity:1}53%{transform:translateY(19px);opacity:1}58%,80%{transform:translateY(24px);opacity:0}88%{transform:translateY(0);opacity:0}}
@keyframes jar-bump{0%,48%,74%,100%{transform:scale(1)}58%{transform:scale(1.13,.9)}65%{transform:scale(.97,1.03)}}
@keyframes file-away{0%,100%{transform:translate(80px,134px)}25%{transform:translate(80px,109px)}58%,80%{transform:translate(80px,156px)}}
@keyframes tick-on{0%,45%,100%{opacity:0}60%,85%{opacity:1}}
@keyframes flag-wave{0%,100%{transform:rotate(0)}35%,65%{transform:rotate(-17deg)}50%{transform:rotate(13deg)}}
@keyframes chart-trace{0%,15%,100%{transform:translate(0,0)}35%{transform:translate(14px,6px)}50%{transform:translate(27px,5px)}70%,85%{transform:translate(47px,23px)}}
@keyframes page-turn{0%,20%,70%,100%{transform:scaleY(1)}40%,50%{transform:scaleY(-.2)}}
@keyframes lens-search{0%,100%{transform:translate(0,0)}30%{transform:translate(-26px,-6px)}55%{transform:translate(-16px,11px)}78%{transform:translate(4px,0)}}

/* Small expressive mouth and props attached to an outstretched hand. */
.ipa-surprise{opacity:0}.ipa-hand-prop{transform-origin:120px 139px}
.ipa-playing .ipa-hand-prop{animation:ipa-held-wave 4s ease-in-out both}
.ipa-hello.ipa-playing .ipa-smile,.ipa-coin.ipa-playing .ipa-smile,.ipa-jump.ipa-playing .ipa-smile{animation:ipa-smile-react 4s ease-in-out both}
.ipa-hello.ipa-playing .ipa-surprise,.ipa-coin.ipa-playing .ipa-surprise,.ipa-jump.ipa-playing .ipa-surprise{animation:ipa-mouth-react 4s ease-in-out both}
@keyframes ipa-held-wave{0%,100%{transform:rotate(0)}25%,65%{transform:rotate(-15deg)}45%,80%{transform:rotate(9deg)}}
@keyframes ipa-smile-react{0%,18%,82%,100%{opacity:1}28%,68%{opacity:0}}
@keyframes ipa-mouth-react{0%,18%,82%,100%{opacity:0}28%,68%{opacity:1}}
