.cycle-card[role=button]{cursor:pointer;outline:none;transform-box:fill-box;transform-origin:center;transition:transform .45s var(--ease),opacity .35s}
.cycle-card[role=button]:focus-visible>rect{stroke:var(--bone);stroke-width:3}
.cycle-chosen .cycle-card{animation:none;opacity:.45}
.feature-grid article .cycle-chosen .cycle-card{transform:translateY(0)}
.feature-grid article .cycle-chosen .cycle-card[aria-pressed=true]{opacity:1;transform:translateY(-14px) scale(1.04)}
.cycle-card[aria-pressed=true]>rect{stroke:var(--bone);stroke-width:1.5}
.cycle-chosen .art-route{stroke:#9eae88;stroke-width:2}
.feature-art{height:330px}.feature-art:has(.coaching-demo){height:330px;min-height:330px}
.coaching-demo{width:100%;max-width:360px;margin-inline:auto;padding-top:6px}
.demo-label{font-size:9px;letter-spacing:.12em;color:var(--taupe);margin:0 0 14px}
.chat-thread{min-height:200px;position:relative}
.chat-message{padding:12px 14px;width:93%;border-radius:12px;transition:opacity .3s,transform .4s var(--ease);font-size:12px;line-height:1.55}
.chat-question{background:#242c20;border:1px solid #42533b70;border-bottom-left-radius:3px}
.chat-answer{background:#481e25;border:1px solid #80565c88;margin:10px 0 0 auto;border-bottom-right-radius:3px}
.chat-sender{display:block;font-size:8px;letter-spacing:.11em;font-weight:700;color:#c7cebc;margin-bottom:5px}
.chat-answer .chat-sender{color:#d7b5bb}
.chat-message p{margin:0;color:var(--bone)}
.chat-message.is-pending{opacity:0;transform:translateY(12px);visibility:hidden}
.chat-typing{position:absolute;right:12px;bottom:17px;display:flex;gap:5px;padding:14px 18px;border:1px solid #80565c88;border-radius:12px;background:#481e25}
.chat-typing[hidden]{display:none}
.chat-typing span{width:4px;height:4px;background:#d8ccb8;border-radius:50%;animation:typing-bounce .65s ease-in-out infinite}
.chat-typing span:nth-child(2){animation-delay:.12s}.chat-typing span:nth-child(3){animation-delay:.24s}
@keyframes typing-bounce{50%{transform:translateY(-3px);opacity:.4}}
.chat-topics{display:flex;gap:6px;margin-top:14px;flex-wrap:wrap}
.chat-topics button{padding:7px 10px;min-height:34px;border:1px solid #42533b55;border-radius:20px;background:none;color:var(--taupe);font:500 10px/1.3 "Nimbus Sans",Arial,sans-serif;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.chat-topics button:hover,.chat-topics button[aria-pressed=true]{border-color:#8f9d7a;background:#42533b30;color:var(--bone)}
.chat-topics button:focus-visible{outline:2px solid var(--bone);outline-offset:3px}
@media(max-width:1100px) and (min-width:761px){.feature-grid{grid-template-columns:1fr}.feature-grid article{display:grid;grid-template-columns:330px 1fr;column-gap:36px}.feature-art{grid-row:1/3;height:300px}.feature-heading{min-height:0}}
@media(max-width:760px){.chat-message{font-size:13px}.chat-topics button{min-height:40px}.feature-art:has(.coaching-demo){min-height:330px}.chat-thread{min-height:228px}}
@media(prefers-reduced-motion:reduce){.chat-message{transition:none}.chat-typing{display:none}}

/* Equipment supports the coaching identity; it is a small scroll accent. */
.hero .equipment-stage{width:210px;height:165px;margin:45px 0 0 auto;pointer-events:none;opacity:.85}
.hero .equipment-pair{width:100%;transform:translate3d(0,var(--float-y,0px),0) rotate(var(--float-r,0deg))}
.equipment-pair img{max-width:210px;object-position:center}
/* Neutral controls at rest; brand color appears on interaction and selection. */
.hero-cta,.site-header .nav-cta,.start-button,.dialog-dismiss{background:#242625;color:var(--bone);border:1px solid #555853;transition:background .2s,border-color .2s,color .2s}
.hero-cta:hover,.site-header .nav-cta:hover,.start-button:hover,.dialog-dismiss:hover{background:var(--red);border-color:#80565c;color:var(--bone)}
.hero-cta:active,.site-header .nav-cta:active,.start-button:active,.dialog-dismiss:active{background:var(--olive);border-color:var(--olive)}
.app-dock>a,.app-dock>button{background:#242625;color:#c1c3bc}
.app-dock>a:hover,.app-dock>button:hover{background:var(--red);color:var(--bone)}
.app-dock>a[aria-current]{background:var(--olive);color:var(--bone)}
.app-dock>a[aria-current]:hover{background:var(--red)}
.chat-topics button{background:#242625;border-color:#555853;color:#c1c3bc}
.chat-topics button[aria-pressed=true]{background:var(--olive);border-color:var(--olive);color:var(--bone)}
.chat-topics button:hover{background:var(--red);border-color:#80565c;color:var(--bone)}
.cycle-card>rect{fill:#242625;stroke:#555853}
.cycle-card[aria-pressed=true]>rect{fill:var(--olive);stroke:#a6b48d}
.cycle-card:hover>rect{fill:var(--red);stroke:#80565c}
.accordion summary:hover{background:#481e2555;color:var(--bone)}
.accordion[open] summary{background:#42533b18}
.accordion[open] summary:hover{background:#481e2555}
.close-sections,.dialog-close{background:#242625;color:var(--bone);border-color:#555853}
.close-sections:hover,.dialog-close:hover{background:var(--red);border-color:#80565c}
.section-menu nav a:hover{color:var(--bone);background:#481e2555}
@media(max-width:760px){.hero .equipment-stage{width:150px;height:118px;margin:25px 0 0 auto}.equipment-pair img{max-width:150px}}
@media(prefers-reduced-motion:reduce){.hero .equipment-pair{transform:none}}

/* Quiet accordion surfaces and a staged anatomical introduction. */
.accordion summary:hover,.accordion[open] summary,.accordion[open] summary:hover{background:transparent}
.accordion summary{transition:color .25s,padding .4s}
.accordion .answer{animation:answer-in .45s ease-out}
@keyframes answer-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.anatomy-sequence{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:600px;margin-top:55px}
.anatomy-pose{margin:0;animation:anatomy-arrive 1.1s var(--pose-delay) cubic-bezier(.22,1,.36,1) both}
.anatomy-pose svg{width:100%;height:auto;display:block;overflow:visible}
.anatomy-pose figcaption{font-size:9px;letter-spacing:.12em;text-align:center;color:#b8b5aa;margin-top:10px}
@keyframes anatomy-arrive{from{opacity:0;transform:translateY(38px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:760px){.anatomy-sequence{margin-top:35px;gap:2px}.anatomy-pose figcaption{font-size:7px;letter-spacing:.07em}}
@media(prefers-reduced-motion:reduce){.anatomy-pose,.accordion .answer{animation:none}}
