/* Photo-led editorial layer, using the existing forest / paper palette. */
.visual-dashboard{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(260px,1fr);gap:22px;margin-top:28px}.visual-panel{border:1px solid var(--line);border-radius:6px;padding:28px;background:#fffdf6;min-width:0}.visual-panel h3{font-size:24px;margin:9px 0}.visual-panel .eyebrow{font-size:9px;color:var(--muted)}.chart-subtitle{font-size:11px;color:var(--muted)}.chart-subtitle b{font-weight:500;color:var(--ink);margin-left:4px}.journey-scroll{overflow-x:auto;padding:7px 2px 3px}.journey-chart{display:flex;position:relative;min-width:540px;padding:0 0 0 15px;margin-top:5px}.journey-chart:before{content:'';position:absolute;top:106px;left:15px;right:0;border-top:1px solid #b9c6b2}.journey-chart:after{content:'';position:absolute;top:20px;left:15px;right:0;border-top:1px dashed #e1e5d9;pointer-events:none}.zero-label{position:absolute;left:0;top:96px;font:12px 'Barlow Condensed';color:var(--muted)}.journey-column{flex:1;min-width:0;border:0;background:none;padding:0 2px;display:flex;align-items:center;flex-direction:column;position:relative;border-radius:4px}.journey-column:hover{background:#e9ede3}.journey-plot{height:200px;width:100%;position:relative;display:block}.journey-plot>i{width:48%;max-width:24px;position:absolute;left:50%;transform:translateX(-50%);height:var(--bar-height);background:var(--ink);bottom:94px;border-radius:3px 3px 0 0}.negative .journey-plot>i{top:106px;bottom:auto;background:var(--orange);border-radius:0 0 3px 3px}.journey-plot b{font:500 13px 'Barlow Condensed';position:absolute;bottom:calc(100% + 4px);width:36px;left:50%;transform:translateX(-50%);font-style:normal;white-space:nowrap}.negative .journey-plot b{top:calc(100% + 4px);bottom:auto;color:#b96447}.journey-face{display:block;width:34px;height:38px;overflow:hidden;border-radius:50% 50% 3px 3px;background:#e6ebdd}.journey-face img{width:54px;max-width:none;margin:0 0 0 -10px}.journey-year{font:500 11px 'Barlow Condensed';color:var(--muted);margin-top:7px}.journey-result{font-size:9px;line-height:20px;color:var(--ink);font-weight:700}.journey-result.loss{color:#b56f50}.win-methods{background:#e6ecdc}.win-donut{width:180px;height:180px;margin:23px auto;border-radius:50%;background:conic-gradient(var(--ink) 0deg var(--decision-angle),var(--orange) var(--decision-angle) 360deg);padding:18px;transform:rotate(-20deg)}.win-donut>div{width:100%;height:100%;border-radius:50%;background:#e6ecdc;display:flex;justify-content:center;align-items:center;flex-direction:column;transform:rotate(20deg)}.win-donut strong{font:600 68px/.95 'Barlow Condensed'}.win-donut span{font:500 10px 'Barlow Condensed';letter-spacing:2px;margin-top:10px}.donut-legend{max-width:245px;margin:auto}.donut-legend>span{display:flex;align-items:center;gap:9px;font-size:11px;padding:6px 0}.donut-legend i{width:7px;height:7px;border-radius:2px;background:var(--ink)}.donut-legend>span:nth-child(2) i{background:var(--orange)}.donut-legend>span:nth-child(3) i{background:#c6cebc}.donut-legend b{margin-left:auto}.donut-legend small{width:44px;text-align:right;color:var(--muted);font-size:10px}
.photo-recent{padding:0 0 23px;overflow:hidden}.photo-recent .recent-top{padding:16px 21px;position:relative;z-index:2;background:#fafbf4}.recent-photo{height:245px;position:relative;overflow:hidden;background:#d9e1cd;isolation:isolate}.recent-photo:after{content:'';position:absolute;inset:60% 0 0;background:linear-gradient(transparent,#d9e1cd);z-index:2}.photo-recent:nth-child(2) .recent-photo{background:#dddccc}.photo-recent:nth-child(2) .recent-photo:after{background:linear-gradient(transparent,#dddccc)}.photo-recent:nth-child(3) .recent-photo{background:#e6d8ca}.photo-recent:nth-child(3) .recent-photo:after{background:linear-gradient(transparent,#e6d8ca)}.recent-photo>img{position:absolute;width:240px;max-width:none;top:8px;left:50%;transform:translateX(-50%);z-index:1;filter:saturate(.8)}.recent-backtype{position:absolute;left:0;right:0;top:39px;text-align:center;white-space:nowrap;font:800 clamp(44px,5.6vw,77px)/1 'Barlow Condensed';letter-spacing:-1px;color:#afbea5;opacity:.65}.photo-orbit{position:absolute;width:220px;height:220px;border:1px solid #9cad8c70;border-radius:50%;top:33px;left:50%;transform:translateX(-50%)}.recent-photo-label{position:absolute;left:19px;bottom:15px;z-index:3;font:600 9px 'Barlow Condensed';letter-spacing:1.7px;color:#526648}.recent-photo-credit{position:absolute;right:13px;top:15px;font-size:7px;writing-mode:vertical-rl;letter-spacing:1.5px;color:#6d7f61}.photo-recent h3,.photo-recent .english,.photo-recent .recent-result,.photo-recent .recent-numbers,.recent-duel{margin-left:21px;margin-right:21px}.photo-recent h3{margin-top:18px;font-size:20px}.photo-recent .recent-numbers{gap:25px}.photo-recent .recent-arrow{bottom:20px}.recent-duel{padding:0 0 18px}.recent-duel>span{display:flex;justify-content:space-between;font-size:10px;color:#556a4c}.recent-duel small{font-size:8px;color:var(--muted)}.recent-duel>div{display:flex;align-items:center;gap:12px;margin-top:6px}.recent-duel b{font:600 22px 'Barlow Condensed'}.recent-duel b:last-child{color:#b76949}.duel-meter{flex:1;display:flex;gap:3px;height:6px;overflow:hidden;border-radius:3px}.duel-meter i{background:var(--ink)}.duel-meter i:last-child{background:var(--orange)}
.compare-head{grid-template-columns:minmax(0,1fr) 60px minmax(0,1fr);padding-top:25px;position:relative}.match-portrait{height:195px;max-width:280px;margin:0 auto 14px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 80%,#ccd9bf 0%,#edf0e5 60%,transparent 71%);border-bottom:2px solid var(--ink)}.opponent-portrait{background:radial-gradient(ellipse at 50% 80%,#e6c9b6 0%,#f0e6db 60%,transparent 71%);border-color:var(--orange)}.match-portrait img{position:absolute;width:225px;max-width:none;left:50%;transform:translateX(-50%);top:0;filter:saturate(.8)}.park-portrait img{width:210px}.compare-head .versus{font:700 47px 'Barlow Condensed';color:#b1bca5;align-self:start;padding-top:65px}.compare-head h3{font-size:24px}.match-photo-source{text-align:center;font-size:9px;color:var(--muted);margin-bottom:25px}.match-photo-source a{text-decoration:underline;text-underline-offset:3px}.round-visual{background:#eef0e6;border:1px solid #dce2d2;padding:22px 28px 17px;border-radius:4px;margin-bottom:23px}.round-chart-heading{display:flex;justify-content:space-between;align-items:center;gap:18px}.round-chart-heading .eyebrow{font-size:8px;color:var(--muted)}.round-chart-heading h4{font-size:16px;margin:6px 0 0}.chart-key{display:flex;gap:15px;font-size:9px;flex-wrap:wrap}.chart-key i{width:7px;height:7px;background:var(--ink);display:inline-block;margin-right:6px;border-radius:2px}.chart-key>span+span i{background:var(--orange)}.round-chart-columns{display:flex;gap:20px;max-width:620px;margin:16px auto 0}.round-plot{flex:1;border:1px solid transparent;border-radius:4px;padding:12px 14px 8px;background:none}.round-plot:hover{background:#e4e9da}.round-plot.active{border-color:#9cad8d;background:#e1e8d5}.round-bars{height:111px;display:flex;align-items:flex-end;justify-content:center;gap:10px;border-bottom:1px solid #c9d4bd}.round-bars>span{width:32px;max-width:38%;position:relative;background:var(--ink);border-radius:3px 3px 0 0}.round-bars>span+span{background:var(--orange)}.round-bars b{position:absolute;bottom:calc(100% + 2px);left:0;right:0;font:600 20px 'Barlow Condensed';text-align:center}.round-plot strong{font:600 11px 'Barlow Condensed';letter-spacing:1px;display:block;margin-top:12px}.round-visual>p{text-align:center;color:var(--muted);font-size:9px;margin-top:12px}.opponent-atlas{margin-bottom:35px;padding:25px;background:#e7ecdf;border:1px solid var(--line);border-radius:5px}.atlas-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:20px}.atlas-heading .eyebrow{font-size:8px;color:var(--muted)}.atlas-heading h3{font-size:23px;margin-top:8px}.atlas-heading p{font-size:10px;color:var(--muted)}.opponent-gallery{display:grid;grid-auto-flow:column;grid-auto-columns:137px;gap:12px;overflow-x:auto;padding:2px 2px 12px;scroll-snap-type:x mandatory}.opponent-tile{border:1px solid #d1dac8;border-radius:4px;background:#f9faf2;padding:0 0 13px;text-align:left;overflow:hidden;scroll-snap-align:start;position:relative}.opponent-tile:hover{border-color:var(--ink);background:#fffef9}.tile-photo{height:120px;position:relative;background:#d6dfca;overflow:hidden}.tile-photo img{width:150px;max-width:none;position:absolute;top:4px;left:50%;transform:translateX(-50%)}.tile-photo .badge{position:absolute;bottom:7px;left:8px;font-size:9px;padding:1px 6px}.opponent-tile strong{display:block;font-size:11px;margin:12px 10px 5px;min-height:36px}.opponent-tile small{font:500 12px 'Barlow Condensed';color:var(--muted);margin-left:10px}.tile-arrow{position:absolute;bottom:8px;right:10px;color:var(--muted);font-size:14px}.opponent-atlas .footnote{font-size:9px;margin-top:10px}.judge-card h3{display:flex;align-items:center;gap:14px}.judge-photo{width:52px;height:60px;border-radius:5px;overflow:hidden;background:#e2e8d8;flex-shrink:0}.judge-photo img{width:76px;max-width:none;margin-left:-12px}.judge-dots{display:flex;flex-wrap:wrap;gap:4px;margin:12px 0 3px}.judge-dots i{width:10px;height:10px;border-radius:50%;background:#dfc2b1}.judge-dots i.for-park{background:var(--ink)}.routine-cover.has-thumbnail{height:190px;padding:0;background:#1d352a}.routine-cover.has-thumbnail>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.has-thumbnail .routine-symbol{display:none}.has-thumbnail .eyebrow{position:absolute;left:12px;top:12px;z-index:2;background:#173d32d9;padding:4px 6px;color:#f4f5e7}.has-thumbnail .play-symbol{top:auto;right:14px;bottom:14px;background:#173d32dc;border-color:#ffffffa0;color:white}.portrait-sources{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;font-size:10px;padding:8px 0 20px}.portrait-sources a{text-decoration:underline;text-underline-offset:3px}.credits>.detail-box{margin-bottom:23px}
@media(max-width:1000px){.visual-dashboard{grid-template-columns:1fr}.win-methods{display:grid;grid-template-columns:1fr 1fr;column-gap:30px;align-items:center}.win-methods>.eyebrow,.win-methods>h3,.win-methods>.chart-subtitle{grid-column:1}.win-methods .win-donut{grid-column:2;grid-row:1/5;margin:5px auto}.win-methods .donut-legend{grid-column:1;width:100%;margin:15px 0 0}.recent-photo>img{width:215px}.recent-photo{height:220px}.photo-recent h3{font-size:17px}.photo-recent .recent-numbers{gap:15px}.photo-recent .recent-arrow{display:none}.compare-head h3{font-size:21px}}
@media(max-width:640px){.visual-panel{padding:22px 18px}.visual-panel h3{font-size:22px}.journey-chart{min-width:570px}.win-methods{column-gap:10px;grid-template-columns:minmax(0,1fr) minmax(120px,1fr)}.win-donut{width:135px;height:135px;padding:14px}.win-donut strong{font-size:51px}.donut-legend>span{font-size:10px;gap:5px}.donut-legend small{font-size:9px;width:35px}.donut-legend b{white-space:nowrap}.photo-recent{padding-bottom:22px}.photo-recent .recent-photo{height:245px}.recent-photo>img{width:245px}.recent-backtype{font-size:70px}.photo-recent h3{font-size:22px}.recent-numbers{justify-content:space-between}.photo-recent .recent-top{padding:14px 21px}.compare-head{grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);padding-top:18px}.match-portrait{height:135px;margin-bottom:12px}.match-portrait img{width:159px;top:2px}.park-portrait img{width:152px}.compare-head .versus{font-size:26px;padding-top:50px}.compare-head h3{font-size:16px;line-height:1.5;min-height:48px;display:flex;align-items:center;justify-content:center}.compare-head small{font-size:8px;letter-spacing:1px}.round-visual{padding:18px 12px 14px}.round-chart-heading{display:block}.round-chart-heading h4{font-size:15px}.chart-key{margin-top:12px;font-size:8px;gap:12px}.round-chart-columns{gap:6px;margin-top:10px}.round-plot{padding-left:8px;padding-right:8px}.round-bars{gap:6px}.round-bars>span{width:24px}.round-bars b{font-size:18px}.round-visual>p{font-size:8px;line-height:1.8}.opponent-atlas{padding:20px 15px}.atlas-heading{display:block}.atlas-heading h3{font-size:21px}.atlas-heading p{margin-top:9px;font-size:9px}.opponent-gallery{grid-auto-columns:132px}.routine-card{display:block}.routine-cover.has-thumbnail{height:auto;aspect-ratio:16/9;min-height:0}.routine-copy{padding:20px}.routine-copy h3{font-size:20px}.routine-copy p{font-size:11px}.portrait-sources{grid-template-columns:1fr 1fr}.judge-card h3{font-size:20px}}

.number-unit{font-size:12px;margin-left:2px}
