.poster__racket--photo{height:104%;right:-7%;top:50%;transform:translateY(-50%);width:auto;max-width:none;opacity:1;clip-path:url(#heroRacketCutout);filter:drop-shadow(-25px 20px 35px #0009)}
.lift__line{font-size:clamp(30px,4.8vw,66px);line-height:1.45}
.tournament-demo__instruction{text-align:center;font-size:14px;margin:26px 0 12px;font-weight:700}
.match-tree{display:grid;grid-template-columns:minmax(0,1fr) 100px minmax(0,1fr);align-items:center;max-width:790px;margin:35px auto 45px;text-align:left;padding-top:20px}
.match-tree__pair,.match-tree__next{position:relative}.match-tree__label{position:absolute;top:-29px;left:0;font-size:11px;color:#7a8290;letter-spacing:.08em}
.match-tree__pair{box-shadow:0 4px 12px #132a4010;border:1px solid #e0e2e8;border-radius:14px;overflow:visible;background:white}.match-tree__pair button.match-tree__player{height:80px;width:100%;padding:0 22px;background:#fff;color:#151b25;border:0;border-radius:14px 14px 0 0;font-size:17px;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;transition:color .2s,background .2s}.match-tree__pair button+button.match-tree__player{border-top:1px solid #e1e4ea;border-radius:0 0 14px 14px}.match-tree__pair button:hover{background:#f0f4fc}.match-tree__pair button.is-winner{color:#ba2e35;background:#fff8f8}.match-tree__pair button.is-loser>span{text-decoration:line-through;color:#7c8290}.match-tree__score{font:700 14px var(--ff-en);white-space:nowrap}.match-tree__lines{display:block;width:100%;height:160px;overflow:visible}.tree-track{fill:none;stroke:#c2c7d1;stroke-width:2}.tree-winner{fill:none;stroke:#bd3038;stroke-width:4;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .6s ease}.tree-winner.is-drawn{stroke-dashoffset:0}.match-tree__next>div{background:#fff;border:1px solid #dfe2e9;border-radius:14px;padding:24px 22px;font-size:17px;font-weight:700;box-shadow:0 4px 12px #132a4010;transition:border-color .3s,box-shadow .3s}.match-tree__next>div.is-decided{border:2px solid #bd3038;box-shadow:0 0 0 4px #bd303819}.tournament-demo button.tournament-demo__undo{background:#bd3038;padding:9px 18px;font-size:12px;white-space:nowrap}
.score-dialog{border:0;border-radius:26px;padding:34px;width:min(570px,calc(100% - 32px));max-height:90dvh;overflow:auto;color:#151a23;background:#fff;box-shadow:0 30px 120px #0005;text-align:left}.score-dialog::backdrop{background:#07101c88;backdrop-filter:blur(4px)}.score-dialog h3{font-size:24px;padding-right:25px;margin:0 0 6px}.score-dialog__caption{font-size:13px;color:#626b78;margin-bottom:24px}.score-dialog__close{position:absolute;right:15px;top:13px;border:0;background:transparent;color:#69717d;font-size:27px;cursor:pointer}.score-presets{display:flex;flex-wrap:wrap;gap:8px}.score-presets button{border:1px solid #dfe2ea;border-radius:13px;background:white;min-width:58px;padding:14px 12px;font-weight:700;font-size:16px;cursor:pointer}.score-presets button[aria-pressed=true]{background:#417cf3;border-color:#417cf3;color:#fff}#scoreSummary{text-align:center;margin:23px 0 17px;font-size:14px;color:#515965;font-weight:700}.score-inputs{display:grid;grid-template-columns:1fr 1fr;gap:14px}.score-inputs label{background:#f0f1f5;border-radius:18px;padding:15px;text-align:center;font-size:13px;font-weight:700;color:#555f70}.score-inputs input{display:block;width:100%;margin-top:10px;border:1px solid #d9dee5;background:#fff;border-radius:12px;padding:10px;font:bold 28px var(--ff-en);text-align:center;color:#171c25}.score-dialog__submit,.score-dialog__skip{width:100%;border:0;border-radius:40px;padding:17px;font-size:15px;font-weight:700;cursor:pointer}.score-dialog__submit{background:#417cf3;color:white}.score-dialog__skip{border:1px solid #d3d8df;background:white;margin-top:10px;color:#171c25}#scoreError{font-size:12px;color:#b52130;min-height:16px;margin:12px 0}
@media(max-width:800px){.poster__racket--photo{right:-23%;height:91%}}
@media(max-width:640px){.poster__racket--photo{top:160px;right:-43%;height:570px;transform:none;opacity:.95}.lift__line{font-size:clamp(22px,6vw,32px);left:24px;right:18px;top:75px;letter-spacing:-.045em}.match-tree{grid-template-columns:minmax(0,1fr) 38px minmax(0,1fr);margin:40px 0 30px}.match-tree__pair button.match-tree__player{font-size:12px;padding:0 10px;gap:4px}.match-tree__score{font-size:10px}.match-tree__next>div{font-size:12px;padding:24px 9px}.tournament-demo__instruction{font-size:11px}.score-dialog{padding:26px 20px;border-radius:23px}.score-dialog h3{font-size:21px}.score-presets{gap:6px}.score-presets button{min-width:48px;padding:12px 9px;font-size:14px}}
@media(prefers-reduced-motion:reduce){.tree-winner{transition:none}}

/* Readable tournament copy and balanced mobile feature cards. */
.matches::before{background:linear-gradient(180deg,rgba(246,248,251,.97),rgba(246,248,251,.94) 45%,rgba(246,248,251,.98)),url('../images/taikai-sm.jpg') center 38% / cover no-repeat}
.matches__intro-text{background:#fff;padding:28px;border:1px solid #e2e8ef;border-radius:20px;box-shadow:0 12px 35px #132a4008}
.matches__intro-text p,.tournament-flow p{color:#394a60}
.matches__ai-badge{color:#087d59;background:#e3f7ef}
.tournament-flow{background:#fff;padding:26px 22px;border:1px solid #e2e8ef;border-radius:18px}
@media(max-width:640px){
  #featureGrid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;gap:12px}
  #featureGrid .feature-card{grid-column:auto;padding:18px 12px;min-width:0}
  #featureGrid .feature-card__title{font-size:14px;line-height:1.5}
  #featureGrid .feature-card__desc{font-size:12px;line-height:1.8}
  .about__extra{display:block;line-height:2.2;text-align:center;color:#e2eaf6}
  .about__extra a{color:#dce8ff;text-decoration:underline;text-underline-offset:4px}
  .matches__intro-text{padding:24px 18px}
  .tournament-flow{padding:22px 12px;gap:10px}
}
