@font-face{font-family:Satoshi;src:url('./assets/fonts/Satoshi-Regular.otf') format('opentype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Satoshi;src:url('./assets/fonts/Satoshi-Medium.otf') format('opentype');font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:Geist;src:url('./assets/fonts/Geist-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
:root{--paper:#fafafa;--ink:#0a0a0a;--font-sans:Satoshi,Arial,sans-serif;--font-serif:Satoshi,Arial,sans-serif;--lime:#ececec;--accent:#ececec;--line:#dedede;--muted:#666}
html,body{height:100%;margin:0;overflow:hidden;background:var(--paper);color:var(--ink);font-family:Satoshi,Arial,sans-serif;overscroll-behavior:none}
button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible{outline:1px solid var(--ink);outline-offset:6px}
[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.portfolio-header{position:fixed;left:3vw;right:3vw;top:28px;z-index:25;display:flex;justify-content:space-between;align-items:start;font-size:14px;line-height:1.45;font-weight:400}
.portfolio-header a{text-decoration:none}.portfolio-name{display:flex;flex-direction:column;font-weight:500}.portfolio-name span{font-size:12px;font-weight:400;color:#696969;margin-top:3px}
.portfolio-header nav{display:flex;gap:30px;align-items:center}.portfolio-header button,.portfolio-footer button,.ice-project-list button{padding:0;background:none;border:0;color:inherit;white-space:nowrap}
.portfolio-header button:hover,.portfolio-header a:hover,.portfolio-footer button:hover{opacity:.6}
.portfolio-footer{position:fixed;bottom:27px;left:3vw;right:3vw;z-index:25;display:flex;align-items:end;justify-content:space-between;font-size:12px;line-height:1.5;pointer-events:none}
.portfolio-footer a,.portfolio-footer button{pointer-events:auto}.portfolio-note p{margin:0 0 4px;font-size:14px}.portfolio-note>span{color:#737373}
.work-controls{text-align:right}.work-controls>span{display:block;color:#737373;margin-bottom:12px}.work-controls>div{display:flex;gap:22px;align-items:center}.work-controls a{text-decoration:none;border-bottom:1px solid #aaa;padding-bottom:2px}.work-controls a:hover{border-color:#000}.work-controls button{min-height:30px}
#work-position{font-family:Geist,Arial,sans-serif;font-size:12px;font-variant-numeric:tabular-nums}
.gesture-hint{position:fixed;left:50%;bottom:29px;transform:translateX(-50%);z-index:20;color:#757575;margin:0;font-size:11px;pointer-events:none;opacity:0;transition:opacity 1s}.ring-ready .gesture-hint{opacity:1}
.ice-canvas{position:fixed;inset:0;touch-action:none}.ice-canvas canvas{display:block}.ice-project-list{position:fixed;right:12vw;top:11vh;z-index:10;display:flex;flex-direction:column;align-items:start;list-style:none;margin:0;padding:0;line-height:1.65;letter-spacing:.01em;opacity:0;color:var(--ink);font-weight:400}
.ice-project-list li{pointer-events:auto}.ice-project-list button{padding:2px 0;text-align:left}.ice-project-list button:hover{text-decoration:underline;text-underline-offset:4px}
.ice-meta{position:fixed;top:50%;z-index:10;transform:translateY(-50%);pointer-events:none;letter-spacing:-.01em;color:var(--ink)}
.ice-fill{position:absolute;inset:0}.ice-layer{position:absolute;inset:0;display:flex;align-items:center}.ice-meta-row{display:flex;align-items:baseline;white-space:nowrap}.ice-meta-right .ice-meta-row>span:first-child{font-size:clamp(14px,1.3vw,21px)!important}
.ice-loader{position:fixed;left:50%;transform:translateX(-50%);z-index:10;letter-spacing:-.01em;pointer-events:none;color:var(--ink)}.ice-filter{position:absolute;width:0;height:0;pointer-events:none}
.index-mode #ice-root,.index-mode .gesture-hint,.index-mode .work-controls{visibility:hidden}
/* A fully open project page (or the About / research page) is opaque and covers the whole
   viewport, so the homepage behind it cannot be seen. Hiding it stops the browser compositing
   it under the page on every frame. It stays visible during the liquid opening, which reveals it. */
body:has(#project-dialog[open]:not(.liquid-opening)) #ice-root,body:has(.info-dialog[open]) #ice-root{visibility:hidden}
#work-index{position:fixed;inset:110px 8vw 110px;overflow-y:auto;scrollbar-width:thin;padding:0 16px 10px 0;z-index:15;background:var(--paper)}
.index-heading{display:flex;justify-content:space-between;margin:0 0 25px;font-size:14px}.index-heading span{color:#737373;font-size:12px}
.index-work{display:grid;grid-template-columns:40px 120px 1fr 90px;gap:24px;align-items:center;min-height:110px;padding:16px 0;text-decoration:none;border-top:1px solid #ddd;font-size:14px;transition:opacity .2s}
.index-work:hover{opacity:.65}.index-work>span:first-child,.index-work>span:last-child{font-family:Geist;font-size:12px}.index-work>span:last-child{text-align:right}.index-work img{width:120px;height:80px;object-fit:contain;background:#eee}.index-name{font-size:24px}.index-name small{display:block;font-size:13px;color:#666;margin-top:5px}
.info-dialog{width:100vw;height:100dvh;max-width:none;max-height:none;border:0;margin:0;padding:28px 3vw 40px;background:var(--paper);color:var(--ink);overflow:auto}
.info-top{display:flex;justify-content:space-between;align-items:center;font-size:14px}.info-body{max-width:1280px;margin:12vh auto 0;display:grid;grid-template-columns:1fr 1fr;gap:50px}.info-caption{grid-column:1/-1;font-size:11px;letter-spacing:.1em;color:#666}
.info-body h2{font-family:Satoshi;font-weight:400;font-size:clamp(40px,5vw,76px);line-height:1.05;letter-spacing:-.045em;margin:0}.info-text{max-width:500px;font-size:18px;line-height:1.65}.info-text>p:first-child{margin-top:0}.info-text>a{font-size:16px;text-decoration-thickness:1px;text-underline-offset:5px}
.info-research{margin-top:65px;padding-top:24px;border-top:1px solid #ddd;font-size:16px}.info-research>span{font-size:11px;color:#666;letter-spacing:.1em}.info-research h3{font-weight:400;font-size:24px;line-height:1.2;letter-spacing:-.025em;margin:18px 0}.info-research button{background:none;border:0;border-bottom:1px solid #999;padding:3px 0;font-size:14px}.info-credits{margin:60px 0 25px;font-size:11px;line-height:1.7;color:#737373}
.serif{font-family:Satoshi!important;font-style:normal!important;font-weight:400!important;letter-spacing:inherit}
.close-button{font-family:Satoshi;background:none!important;color:var(--ink)!important;border:0!important;border-bottom:1px solid #ccc!important;border-radius:0!important;padding:8px 0!important;font-size:14px!important;box-shadow:none!important;min-height:36px}
dialog{font-family:Satoshi}dialog::backdrop{background:rgba(250,250,250,.85);backdrop-filter:blur(10px)}
.project-dialog,.media-dialog,.game-dialog,.paper-dialog{background:var(--paper);border-radius:0}.dialog-nav{background:rgba(250,250,250,.95);backdrop-filter:blur(10px);border-bottom:1px solid #ddd;box-shadow:none}.dialog-brand{font-weight:400;font-size:12px;letter-spacing:0}.dialog-brand span{color:#666}
.case-title{font-family:Satoshi!important;font-size:clamp(40px,5.3vw,80px)!important;line-height:1.05!important;letter-spacing:-.045em!important;font-weight:400!important}.case-lede{font-size:20px!important;line-height:1.55!important;font-weight:400!important}.case-hero-image{border-radius:0!important;background:#eee}.case-hero{padding-top:80px!important;padding-bottom:85px!important;gap:7vw!important}
.case-section h2{font-family:Satoshi!important;font-size:clamp(28px,3.4vw,46px)!important;font-weight:400!important;line-height:1.15!important;letter-spacing:-.035em!important}.case-section h3,.case-next h3{font-weight:500!important}.eyebrow{font-weight:400!important;letter-spacing:.09em!important;font-size:11px!important}
.button{background:none!important;color:var(--ink)!important;border:0!important;border-bottom:1px solid #999!important;border-radius:0!important;padding:10px 0!important;font-size:14px!important;font-weight:400!important;box-shadow:none!important;transform:none!important;gap:15px!important}.button:hover{border-color:#000!important;opacity:.65}.case-quick-actions{gap:30px!important}.case-role{border-color:#ddd!important}.case-body{gap:7vw!important}
.case-sidebar a{border-radius:0!important;padding-left:0!important}.process-item .step{background:none!important;border:0!important;font-family:Geist;font-weight:400!important;color:#666!important}.process-item h3{font-weight:500!important}.process-item{border-top:1px solid #ddd;padding-top:20px}
.case-images,.gallery-figure,.asset-enlarge,.enlarged-asset img{border-radius:0!important}.learning,.honest-note{background:none!important;border-radius:0!important;border-left:1px solid #aaa!important;padding-left:25px!important}.learning h2{font-family:Satoshi!important}.result-item{border-radius:0!important;border:0!important;border-top:1px solid #ccc!important;background:none!important}.result-value{font-weight:400!important;letter-spacing:-.035em}.case-next{border-top:1px solid #ccc!important;background:none!important;border-radius:0!important;padding-left:0!important;padding-right:0!important}
.module-explorer,.module-story,.flower-portrait,.flower-lab,.blade-study,.circular-system,.cycle-panel,.circular-panel,.demo-panel,.showcase-panel,.explorer-panel,.material-panel{border-radius:0!important;background:#f1f1f1!important}.module-tabs button,.blade-tabs button,.flower-controls button,.cycle-tabs button,.demo-button{border-radius:0!important}.compare{border-radius:0!important}.compare-line span{border-radius:0!important}
.paper-intro h2{font-family:Satoshi;font-weight:400;letter-spacing:-.03em}.media-bar{background:var(--paper);border-bottom:1px solid #ddd}.game-help{background:var(--paper)}
@media(max-width:1100px){.gesture-hint{display:none}.ice-meta-right .ice-meta-row>span:first-child{font-size:18px!important}.ice-project-list{top:12vh;right:7vw}.work-controls>div{gap:17px}.portfolio-note>span{font-size:11px}}
@media(max-width:640px){.portfolio-header{top:20px;left:20px;right:20px;font-size:13px}.portfolio-header nav{gap:19px}.portfolio-name span{font-size:11px}.ice-project-list{display:none}.portfolio-footer{left:20px;right:20px;bottom:20px}.portfolio-note{display:none}.work-controls{width:100%}.work-controls>span{display:none}.work-controls>div{justify-content:space-between;gap:10px;font-size:12px}.work-controls button{min-height:40px}.work-controls a{padding:10px 0}.ice-meta-row span{font-size:25px!important}.ice-meta{max-width:calc(100vw - 40px)}
 #work-index{inset:100px 20px 80px;padding-right:4px}.index-heading span{font-size:10px}.index-work{grid-template-columns:20px 64px 1fr 48px;gap:10px;min-height:90px;padding:14px 0}.index-work img{width:64px;height:60px}.index-name{font-size:18px}.index-name small{font-size:11px}.index-work>span:last-child{font-size:11px}.index-heading{margin-bottom:20px;font-size:13px}
 .info-dialog{padding:20px}.info-body{display:block;margin-top:65px}.info-caption{display:block;font-size:10px;margin-bottom:30px}.info-body h2{font-size:48px;margin-bottom:36px}.info-text{font-size:17px}.info-research{margin-top:45px}.info-top{font-size:13px}.info-credits{margin-top:45px}
 .case-hero{padding-top:45px!important;padding-bottom:45px!important;gap:35px!important}.case-title{font-size:42px!important}.case-lede{font-size:18px!important}.case-section h2{font-size:30px!important}.case-quick-actions{gap:18px!important}.case-body{gap:30px!important}.dialog-brand span{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
/* Personal and published work live alongside the project directory. */
.info-top{position:sticky;top:-28px;z-index:3;background:var(--paper);padding:28px 0 12px;margin-top:-28px}
.portfolio-note .published-link{display:block;margin-top:9px;font-size:11px;border-bottom:1px solid #bbb;line-height:1.4;text-align:left;min-height:22px}
.profile-layout{max-width:1350px;margin:9vh auto 0;display:grid;grid-template-columns:1fr 1fr;gap:9vw;padding:0 3vw}
.profile-caption{font-size:10px;line-height:1.7;letter-spacing:.09em;color:#666}
.profile-identity h2{font-family:Satoshi;font-size:clamp(85px,10.5vw,160px);font-weight:400;line-height:.87;letter-spacing:-.075em;margin:48px 0 42px}
.profile-identity h2>span{display:inline-block;transform-origin:bottom left;transition:transform .4s}
.info-dialog[data-capability=hardware] .profile-identity h2>span{transform:translateX(8px)}
.info-dialog[data-capability=analysis] .profile-identity h2>span{transform:translateY(-8px)}
.profile-coordinate{max-width:430px;border-top:1px solid #bbb;padding-top:18px;display:flex;justify-content:space-between;gap:20px;font-size:12px;color:#555}
.profile-story{max-width:540px;font-size:17px;line-height:1.65;padding-top:2px}
.profile-story>p{margin:0 0 22px}.profile-story .profile-opening{font-size:clamp(28px,2.8vw,42px);line-height:1.15;letter-spacing:-.04em;margin-bottom:35px}
.profile-practice{margin-top:38px;padding-top:22px;border-top:1px solid #ccc;min-height:210px}
.practice-tabs{display:flex;justify-content:space-between;gap:16px;margin:22px 0 17px}
.practice-tabs button{padding:0 0 7px;border:0;border-bottom:1px solid transparent;background:none;font-size:13px;color:#737373;min-height:32px}
.practice-tabs button[aria-pressed=true]{color:#111;border-color:#111}
#practice-note{font-size:15px;line-height:1.6;margin:0;min-height:74px}#practice-example{display:block;font-size:11px;margin-top:14px;color:#737373}
.profile-links{border-top:1px solid #ccc;display:flex;justify-content:space-between;gap:25px;margin-top:18px;padding-top:22px;font-size:13px}
.profile-links a,.profile-links button{padding:0;border:0;background:none;text-decoration:none;border-bottom:1px solid #aaa;line-height:1.7}
.profile-story .info-credits{margin-top:36px}
.publication-layout{max-width:1270px;margin:8vh auto 0;display:grid;grid-template-columns:.85fr 1fr;gap:8vw;padding:0 3vw 50px;align-items:start}
.publication-document{padding:24px;background:#f0f0ee;border:1px solid #e1e1dd}.publication-document img{display:block;width:100%;height:auto}.publication-document>span{display:block;margin:24px 0 0;font-size:11px;color:#666}
.publication-copy h2{font-family:Satoshi;font-size:clamp(34px,3.8vw,57px);font-weight:400;line-height:1.05;letter-spacing:-.05em;margin:25px 0 28px}
.publication-copy>p{font-size:17px;line-height:1.6}.publication-copy>.profile-caption{font-size:10px}.publication-copy .publication-full-title{font-size:12px;color:#666;line-height:1.6;border-left:1px solid #ccc;padding-left:16px}
.publication-authors{font-size:14px!important;margin-top:28px}.publication-actions{display:flex;gap:30px;margin:34px 0 24px}.publication-actions button,.publication-actions a{font-size:14px;line-height:1.8;background:none;padding:0;border:0;border-bottom:1px solid #aaa;text-decoration:none}.publication-doi{font-size:11px;color:#666;text-underline-offset:4px}
@media(max-width:800px){.profile-layout{gap:6vw}.profile-identity h2{font-size:90px}.profile-coordinate{display:block}.profile-coordinate>span{display:block;margin-bottom:8px}.profile-story{font-size:15px}.practice-tabs{gap:12px}.practice-tabs button{font-size:11px}.profile-links{flex-wrap:wrap}.publication-layout{gap:5vw}.publication-document{padding:15px}}
@media(max-width:640px){.portfolio-header nav{gap:12px;font-size:12px}.profile-layout{display:block;margin-top:55px;padding:0}.profile-identity h2{font-size:108px;margin:35px 0}.profile-coordinate{display:flex;margin-bottom:42px;font-size:11px}.profile-story{max-width:none;font-size:16px}.profile-story .profile-opening{font-size:32px}.profile-practice{min-height:220px}.practice-tabs button{font-size:12px}.profile-links{font-size:12px}.publication-layout{display:flex;flex-direction:column-reverse;margin-top:50px;padding:0 0 30px;gap:38px}.publication-copy h2{font-size:40px}.publication-copy>p{font-size:16px}.publication-document{max-width:360px;padding:16px}.publication-actions{gap:25px}}
@media(max-width:640px){.info-top{top:-20px;padding:20px 0 12px;margin-top:-20px}.practice-tabs button{min-height:40px}}
/* Text pairs are explicit where the earlier dark panels became pale. */
.learning{color:var(--ink)!important}
.learning h2{color:var(--ink)!important}
.learning p{color:#444!important}
.learning .eyebrow{color:#555!important}
.flower-illustration-caption,.prototype-note{color:#51594a!important}
.dispenser-step-controls button>span,.variant-tabs button>span{color:#505850!important}
.metric-track small,.comparison-table thead th,.study-note{color:#48565b!important}
.metric-track small em{color:#77492b!important}
.loop-label.hard{color:#795721!important}.loop-label.soft{color:#28684c!important}
.cycle-responsibility span,.diagram-credit,.passport-preview span{color:#505b47!important}
.flow-route>b{color:#506440!important}
.paper-pages figcaption{color:#454545!important}
.variant-tabs button[aria-pressed=true]>span{color:#fafafa!important}
.fatigue-status p{color:#44514a!important}
.gesture-hint{color:#666}
.index-work:hover{opacity:1}.index-work:hover .index-name{text-decoration:underline;text-underline-offset:5px}
.portfolio-name,.portfolio-header nav,.portfolio-note,.work-controls{background:var(--paper);box-shadow:0 0 0 6px var(--paper)}
@media(max-width:640px){.ice-meta-left{isolation:isolate}.ice-meta-left::before{content:'';position:absolute;inset:0;background:var(--paper);z-index:-1}}
.gesture-hint{background:var(--paper);box-shadow:0 0 0 5px var(--paper)}
/* A hiring-focused profile, grounded in the supplied portfolio. */
.employer-profile{gap:7vw;margin-top:7vh}
.employer-profile .profile-identity{position:sticky;top:86px;align-self:start}
.profile-person{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:26px;align-items:center}
.employer-profile .profile-identity h2{font-size:clamp(80px,8.5vw,128px);margin:36px 0}
.profile-portrait{display:block;width:clamp(124px,11.5vw,174px);height:auto;aspect-ratio:3081/4096;object-fit:contain;background:#fff}
.profile-facts{margin:30px 0 0}.profile-facts>div{border-top:1px solid #ddd;padding:15px 0;display:grid;grid-template-columns:110px 1fr;gap:16px}
.profile-facts dt{font-size:10px;line-height:1.7;letter-spacing:.07em;color:#555}.profile-facts dd{font-size:14px;line-height:1.55;margin:0}
.employer-profile .profile-opening{font-size:clamp(32px,3.2vw,48px);margin-bottom:28px}.employer-profile .profile-story>p{font-size:16px;line-height:1.65}
.employer-profile .profile-links{margin:28px 0 0;padding-top:18px}.employer-profile .profile-practice{margin-top:34px;min-height:0;padding-bottom:4px}
#practice-tools{display:block;margin-top:16px;font-size:12px;line-height:1.7;color:#444}
#practice-example{display:flex;flex-wrap:wrap;gap:9px 18px;color:#111;align-items:baseline}#practice-example>span{flex-basis:100%;font-size:10px;color:#555;letter-spacing:.07em}#practice-example a{font-size:13px;text-underline-offset:4px}
.profile-experience{display:grid;grid-template-columns:140px 1fr;gap:24px;margin-top:38px;padding-top:26px;border-top:1px solid #ccc}
.experience-photo img{display:block;width:100%;height:auto}.profile-experience .profile-caption{margin:0 0 12px}.profile-experience h3{font-size:25px;line-height:1.15;font-weight:400;letter-spacing:-.03em;margin:0 0 15px}.profile-experience p:not(.profile-caption){font-size:14px;line-height:1.65;margin:0 0 18px}.profile-experience>div>a{font-size:13px;text-underline-offset:4px}
.employer-profile .profile-story>.profile-closing{font-size:22px;line-height:1.4;margin-top:40px}.profile-closing span{font-size:14px;color:#555}
@media(max-width:1000px){.employer-profile{display:block;max-width:760px}.employer-profile .profile-identity{position:static}.profile-person{max-width:560px}.employer-profile .profile-identity h2{font-size:110px}.profile-portrait{width:160px}.profile-facts{display:grid;grid-template-columns:1fr 1fr 1fr;gap:25px;margin-top:24px;margin-bottom:42px}.profile-facts>div{display:block}.profile-facts dt{margin-bottom:8px}.employer-profile .profile-story{max-width:none}.profile-coordinate{display:flex;max-width:none}.profile-coordinate>span{margin-bottom:0}}
@media(max-width:640px){.employer-profile{margin-top:42px}.profile-person{gap:18px}.employer-profile .profile-identity h2{font-size:82px;margin:28px 0}.profile-portrait{width:110px}.profile-facts{display:block;margin:22px 0 40px}.profile-facts>div{display:grid;grid-template-columns:95px 1fr;gap:12px;padding:12px 0}.profile-facts dt{font-size:9px;margin-bottom:0}.profile-facts dd{font-size:13px}.employer-profile .profile-opening{font-size:34px}.profile-coordinate{margin-bottom:0}.profile-experience{grid-template-columns:105px 1fr;gap:18px}.profile-experience h3{font-size:22px}.profile-experience p:not(.profile-caption){font-size:13px}.profile-experience .profile-caption{font-size:9px}#practice-tools{font-size:11px}.practice-tabs{gap:10px}.practice-tabs button{font-size:12px}}
.employer-profile .profile-story>.profile-opening{font-size:clamp(32px,3.2vw,48px);line-height:1.15;letter-spacing:-.04em}
@media(max-width:640px){.employer-profile .profile-story>.profile-opening{font-size:34px}}
.gallery-meta .figure-2{grid-column:1/-1;width:min(100%,430px);justify-self:center}
.gallery-meta .figure-2 img{height:auto;max-height:none;object-fit:contain}
/* Trim empty tabletop above the real prototype, retaining both modules and packaging. */
.gallery-dispenser .figure-1 .asset-enlarge{position:relative;aspect-ratio:4/3;overflow:hidden}
.gallery-dispenser .figure-1 img{position:absolute;inset:0;width:100%;height:100%;max-height:none;object-fit:cover;object-position:50% 68%}
/* Four compact disciplines, keeping every cover in the original carousel. */
.ice-project-list{line-height:1.45;gap:11px}
.ice-project-group>ul{list-style:none;padding:0;margin:2px 0 0}
.ice-group-label{display:block;font-size:9px;line-height:1.4;letter-spacing:.07em;color:#666}
.ice-project-list button{padding:1px 0}
.ice-discipline{font-size:9px;font-weight:400;letter-spacing:.04em;margin-left:8px;color:#555}
/* A personal photograph beside the name; retain both faces at the top. */
.profile-portrait{width:clamp(148px,14vw,212px);aspect-ratio:4/5;object-fit:cover;object-position:50% 0%;height:auto}
.employer-profile .profile-identity h2{font-size:clamp(76px,7.6vw,116px)}
@media(max-width:1000px){.profile-portrait{width:200px}.employer-profile .profile-identity h2{font-size:110px}}
@media(max-width:640px){.profile-portrait{width:clamp(120px,35vw,180px)}.employer-profile .profile-identity h2{font-size:clamp(64px,19vw,82px)}.profile-person{gap:18px}}
/* Running Blade uses the same graphite and paper palette as the portfolio. */
.blade-study{border-color:#d0d0d0!important;background:#f1f1f1!important;color:#171717}
.blade-study .variant-tabs{border-color:#d0d0d0}
.blade-study .variant-tabs button{border-color:#c9c9c9;border-radius:0;background:transparent;color:#333;transition:background .2s,color .2s}
.blade-study .variant-tabs button[aria-pressed=true]{background:#222;color:#fff;border-color:#222}
.blade-study .variant-visual{background:#e5e5e5;border-radius:0}
.blade-study .variant-visual span,.blade-study .variant-summary,.blade-study .stress-tag{color:#494949}
.blade-study .metric-rail{background:#d4d4d4;height:6px;border-radius:0}
.blade-study .metric-rail i{background:#343434;border-radius:0;transform-origin:left center}
.blade-study .metric-rail b{background:#111;height:14px;top:-4px}
.blade-study .metric-track small,.blade-study .comparison-table thead th,.blade-study .study-note,.blade-study .metric-track small em{color:#555!important}
.blade-study .fatigue-status{border-color:#ccc;border-radius:0;background:#e9e9e9}
.blade-study .fatigue-status.met{background:#e3e3e3;border-color:#777}
.blade-study .fatigue-status p{color:#444!important}
.blade-study .comparison-table th,.blade-study .comparison-table td{border-color:#ccc}
/* One pass on entry, with natural scrolling and readable, sharp imagery. */
.reveal-item{opacity:0;transform:translate3d(0,28px,0);transition:opacity .85s cubic-bezier(.22,1,.36,1),transform 1.05s cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay,0ms)}
.reveal-item.is-revealed{opacity:1;transform:translate3d(0,0,0)}
@media(prefers-reduced-motion:reduce){.reveal-item{opacity:1;transform:none;transition:none}.blade-study .variant-tabs button{transition:none}}
