/* =====================================================================
   THE U.S. WOMEN'S OPEN ROOM · "A diamond in the rough"
   Light, calm, fine lines. Fescue gold and dew sage are accents, fills and marks only, never text.
   Small text uses Slate ink (#5F6561, 5.3:1 on Dawn mist) or Fairway (#4F6B55, 5.2:1).
   ===================================================================== */
:root{
  --mist:#F4F1EA; --linen:#FBF9F4; --oat:#E4DED1; --oat2:#ECE7DD;
  --gold:#B89A5E; --gold-l:#D8C49A; --sage:#9DB0A0; --fair:#4F6B55; --rough:#2E3B33;
  --ink:#22282B; --slate:#5F6561; --ice:#DCEAF2;
  --prism:linear-gradient(110deg,#F7D9C4,#FFF6E8 30%,#D7E6F4 55%,#E3D9F2 80%,#F4F1EA);
  --display:'Cormorant Garamond','Newsreader',Georgia,serif; --serif:'Newsreader',Georgia,serif;
  --sans:'IBM Plex Sans Condensed','Arial Narrow',sans-serif; --mono:'JetBrains Mono',ui-monospace,monospace;
  --ease:cubic-bezier(.2,.8,.2,1); --r:18px;
}
*{box-sizing:border-box}
html{background:var(--mist);color-scheme:light}
body{margin:0;background:var(--mist);color:var(--ink);font-family:var(--serif);-webkit-font-smoothing:antialiased;overflow-x:hidden}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
a{color:var(--fair);text-decoration-color:rgba(79,107,85,.35);text-underline-offset:3px}a:hover{color:var(--ink);text-decoration-color:var(--gold)}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:2px solid var(--fair);outline-offset:3px}
.label,.kicker{display:block;font-family:var(--sans);font-weight:600;font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--fair)}
.linkish{color:var(--fair);text-decoration:underline;text-decoration-color:rgba(79,107,85,.35);text-underline-offset:3px}
.linkish:hover{color:var(--ink);text-decoration-color:var(--gold)}

/* ================= THE OPENING ================= */
.opening{position:relative;height:100svh;min-height:620px;max-height:1100px;overflow:hidden;isolation:isolate;background:linear-gradient(#cfdbe2,#efe4d2 55%,#6f7d55 56%,#4b5a3b)}
.opening canvas{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity 2.4s ease}
.opening.ready canvas{opacity:1}
.op-dof{position:absolute;inset:0;pointer-events:none;--dx:62%;--dy:68%}
/* a macro lens: the stone sharp; the grass at the lens and the far course soft */
.op-dof.near{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);-webkit-mask:radial-gradient(ellipse 20% 15% at var(--dx) var(--dy),transparent 0,transparent 55%,#000 100%),linear-gradient(0deg,#000 0,#000 12%,transparent 38%);-webkit-mask-composite:source-in;mask:radial-gradient(ellipse 20% 15% at var(--dx) var(--dy),transparent 0,transparent 55%,#000 100%) intersect,linear-gradient(0deg,#000 0,#000 12%,transparent 38%)}
.op-dof.far{-webkit-backdrop-filter:blur(2.6px);backdrop-filter:blur(2.6px);-webkit-mask:radial-gradient(ellipse 26% 22% at var(--dx) var(--dy),transparent 0,transparent 60%,#000 100%);mask:radial-gradient(ellipse 26% 22% at var(--dx) var(--dy),transparent 0,transparent 60%,#000 100%)}
.opening.flat .op-dof{display:none}
.op-grain{position:absolute;inset:0;pointer-events:none;opacity:.07;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.op-flat{position:absolute;inset:0;display:none;background:radial-gradient(60% 40% at 30% 72%,rgba(255,255,255,.8),transparent 60%),linear-gradient(#cfdbe2,#efe4d2 55%,#7c8a5c 56%,#4b5a3b)}
.opening.flat .op-flat{display:block}
.op-veil{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(244,241,234,.55) 0%,rgba(244,241,234,0) 34%),linear-gradient(0deg,rgba(28,36,30,.28) 0%,rgba(28,36,30,0) 30%)}
.opening.heat .op-veil{background:linear-gradient(180deg,rgba(250,232,205,.6) 0%,rgba(250,232,205,0) 40%),linear-gradient(0deg,rgba(28,36,30,.25),rgba(28,36,30,0) 30%)}
.op-flash{position:absolute;inset:0;background:#eef3ff;opacity:0;pointer-events:none;mix-blend-mode:screen}
.op-head::before{content:"";position:absolute;z-index:-1;inset:-60px -120px -50px -80px;background:radial-gradient(closest-side,rgba(246,242,234,.82),rgba(246,242,234,0));pointer-events:none}
.op-head{position:absolute;left:clamp(16px,4vw,56px);top:clamp(24px,5vh,56px);max-width:560px;z-index:2}
.op-head h1{margin:8px 0 0;font-family:var(--display);font-weight:300;font-size:clamp(44px,5.6vw,84px);line-height:.96;letter-spacing:-.01em;color:var(--ink)}
.op-head h1 i{display:block;font-style:italic;font-weight:300;font-size:.5em;letter-spacing:.04em;color:var(--fair);margin-top:6px}
.deck{margin:16px 0 0;max-width:400px;font-size:16.5px;line-height:1.55;color:var(--ink)}
.op-links{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:16px 0 0;font-family:var(--sans);font-size:14px}
.op-links span{display:none}
.op-links a,.op-links .linkish{display:inline-flex;align-items:center;height:34px;padding:0 14px;border-radius:20px;background:rgba(251,249,244,.86);border:1px solid rgba(34,40,43,.08);color:var(--ink);text-decoration:none;font-weight:500;letter-spacing:.02em;backdrop-filter:blur(8px)}
.op-links a:hover,.op-links .linkish:hover{border-color:var(--gold);color:var(--ink)}
.op-tools{position:absolute;right:clamp(16px,4vw,56px);top:clamp(24px,5vh,56px);z-index:3}
.find{position:relative;display:flex;align-items:center;gap:8px;width:300px;height:42px;padding:0 14px;border-radius:24px;background:rgba(251,249,244,.78);border:1px solid rgba(34,40,43,.1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.find svg{width:16px;height:16px;color:var(--slate);flex:none}
.find input{flex:1;min-width:0;height:100%;background:none;border:0;outline:none;font:15px var(--sans);color:var(--ink)}
.find input::placeholder{color:var(--slate)}
.find:focus-within{border-color:var(--fair)}
.find-list{position:absolute;top:48px;left:0;right:0;z-index:40;margin:0;padding:6px;list-style:none;background:var(--linen);border:1px solid var(--oat);border-radius:14px;box-shadow:0 20px 40px rgba(34,40,43,.14);max-height:340px;overflow:auto}
.find-list li{display:flex;flex-direction:column;padding:8px 10px;border-radius:9px;cursor:pointer;font:15px var(--sans)}
.find-list li small{color:var(--slate);font-size:12.5px}
.find-list li[aria-selected="true"],.find-list li:hover{background:var(--oat2)}

/* the drift: the 81 years */
.drift{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:0 clamp(16px,4vw,56px) 18px}
.drift-card{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:0 auto 12px;max-width:1100px}
.dc{display:grid;grid-template-columns:auto 1fr;column-gap:16px;align-items:baseline;color:#fbf9f4;text-shadow:0 1px 18px rgba(20,26,22,.55)}
.dc-y{grid-row:span 3;font-family:var(--display);font-weight:300;font-size:clamp(54px,6vw,86px);line-height:.9}
.dc-w{font-family:var(--display);font-size:clamp(24px,2.4vw,32px);font-weight:400}
.dc-c{font-family:var(--sans);font-size:14px;letter-spacing:.02em}
.dc-r{display:flex;align-items:center;gap:7px;margin-top:4px;font-family:var(--sans);font-size:13px;letter-spacing:.08em;text-transform:uppercase}
.dc-r em{font-style:normal;text-transform:none;letter-spacing:.02em;opacity:.9}
.drift-open{flex:none;display:inline-flex;align-items:center;gap:8px;height:46px;padding:0 22px;border-radius:30px;background:var(--linen);color:var(--ink);font:500 15px var(--sans);letter-spacing:.06em;box-shadow:0 10px 30px rgba(20,26,22,.25);transition:transform .3s var(--ease),box-shadow .3s}
.drift-open:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(20,26,22,.3)}
.drift-open svg{width:18px;height:18px}
.drift-rail{display:flex;align-items:center;gap:6px;max-width:1100px;margin:0 auto;padding:6px;border-radius:40px;background:rgba(251,249,244,.74);border:1px solid rgba(255,255,255,.6);backdrop-filter:blur(14px) saturate(1.1);-webkit-backdrop-filter:blur(14px) saturate(1.1)}
.drift-step{flex:none;width:36px;height:36px;border-radius:50%;font-size:22px;line-height:1;color:var(--fair)}
.drift-step:hover{background:var(--oat2)}
.drift-scroll{flex:1;min-width:0;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity;-webkit-mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.drift-scroll::-webkit-scrollbar{display:none}
.drift-scroll:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--fair);border-radius:30px}
.drift-list{display:flex;margin:0;padding:0;list-style:none}
.drift-list .pad{flex:0 0 calc(50% - 29px)}
.yr{scroll-snap-align:center;display:flex;flex-direction:column;align-items:center;gap:4px;width:58px;padding:6px 0;border-radius:16px;font:400 15px var(--display);color:var(--slate);transition:color .3s,transform .4s var(--ease)}
.yr span{font-feature-settings:"lnum"}
.yr:hover{color:var(--ink)}
.yr[aria-selected="true"]{color:var(--ink);transform:scale(1.28)}
.yr[aria-selected="true"] span{font-weight:500}
.mk{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--fair)}
.mk.r-open{background:transparent;box-shadow:inset 0 0 0 1.3px var(--fair)}
.mk.r-ex{background:var(--fair)}
.mk.r-unk{width:7px;height:1.5px;border-radius:0;background:var(--slate);opacity:.6}
.gem{width:12px;height:12px;fill:var(--ice);stroke:#7da2b6;stroke-width:.8}
.yr.r-q .gem{width:14px;height:14px;filter:drop-shadow(0 0 4px rgba(170,205,230,.9))}
.dc .mk{background:#fbf9f4}.dc .mk.r-open{background:transparent;box-shadow:inset 0 0 0 1.3px #fbf9f4}.dc .mk.r-unk{background:#fbf9f4}
.drift-key{display:flex;justify-content:center;flex-wrap:wrap;gap:6px 18px;margin:10px 0 0;font:12.5px var(--sans);letter-spacing:.06em;color:#fbf9f4;text-shadow:0 1px 8px rgba(20,26,22,.6)}
.drift-key span{display:inline-flex;align-items:center;gap:6px}
.drift-key .mk{background:#fbf9f4}.drift-key .mk.r-open{background:transparent;box-shadow:inset 0 0 0 1.3px #fbf9f4}
.opening.opening-go .op-head,.opening.opening-go .drift,.opening.opening-go .op-tools{opacity:0;transition:opacity .45s}

/* the prism: the diamond opening, across the whole screen */
.prism{position:fixed;inset:0;z-index:90;pointer-events:none;opacity:0;background:conic-gradient(from 210deg at 32% 70%,rgba(247,217,196,.0),rgba(255,246,232,.95),rgba(215,230,244,.95),rgba(227,217,242,.95),rgba(247,217,196,.95),rgba(255,255,255,0)),radial-gradient(circle at 32% 70%,#fff,rgba(255,255,255,0) 60%);mix-blend-mode:screen}
.prism.go{animation:prism 1.6s var(--ease) forwards}
@keyframes prism{0%{opacity:0;filter:blur(30px)}22%{opacity:1;filter:blur(0)}55%{opacity:.9}100%{opacity:0;filter:blur(20px)}}

/* ================= THE ROOM ================= */
.room{max-width:1480px;margin:0 auto;padding:0 clamp(16px,3vw,40px) 30px;scroll-margin-top:0}
.hero{position:relative;height:clamp(520px,78vh,820px);margin:clamp(16px,3vw,32px) 0 0;border-radius:28px;overflow:hidden;isolation:isolate;background:var(--linen);box-shadow:0 30px 60px -36px rgba(34,40,43,.35),0 0 0 1px rgba(34,40,43,.05)}
.h-sky{position:absolute;inset:0;background:linear-gradient(180deg,#c9d7e0 0%,#e3e7e4 44%,#f3e8d6 70%);transition:background 1.6s}
.h-sun{position:absolute;right:16%;top:22%;width:110px;height:110px;border-radius:50%;background:radial-gradient(circle,#fff8ea 0%,rgba(255,240,214,.9) 30%,rgba(255,230,200,0) 70%);transition:opacity 1.6s,transform 1.6s}
.h-clouds i{position:absolute;height:60px;border-radius:50%;background:rgba(255,255,255,.55);filter:blur(10px);animation:cloud 90s linear infinite}
.h-clouds i:nth-child(1){top:12%;left:-20%;width:40%}
.h-clouds i:nth-child(2){top:22%;left:30%;width:28%;animation-delay:-40s;animation-duration:120s}
.h-clouds i:nth-child(3){top:8%;left:60%;width:34%;animation-delay:-70s;animation-duration:100s}
@keyframes cloud{from{transform:translateX(0)}to{transform:translateX(160%)}}
.h-art{position:absolute;left:0;right:0;bottom:0;height:92%;opacity:0;transform:translateY(14px) scale(1.01);transition:opacity 1.4s var(--ease),transform 1.8s var(--ease)}
.h-art.in{opacity:1;transform:none}
.h-art svg{width:100%;height:100%;display:block}
.h-art.stand-in{filter:saturate(.55) contrast(.95)}
.stand-in .house,.stand-in .p-path,.stand-in .planting{display:none}
.h-art.loading{filter:saturate(.7)}
.h-note{position:absolute;right:4%;bottom:30%;margin:0;max-width:30ch;font:500 12px/1.4 'IBM Plex Sans Condensed',sans-serif;color:var(--slate,#5F6561);background:rgba(251,249,244,.86);padding:.45em .7em;border-radius:3px;text-align:right}
@media (max-width:640px){.h-note{bottom:auto;top:16%;font-size:11px}}
.h-art .gl.on{fill:#f4cf86!important}
.h-art{--px:0;--py:0}
.h-art svg g{transition:transform 1.2s var(--ease)}
.h-art .p-hills{transform:translate(calc(var(--px) * -4px),calc(var(--py) * -2px))}
.h-art .p-far{transform:translate(calc(var(--px) * -7px),calc(var(--py) * -3px))}
.h-art .p-mid{transform:translate(calc(var(--px) * -12px),calc(var(--py) * -5px))}
.h-art .house{transform:translate(calc(var(--px) * -16px),calc(var(--py) * -6px))}
.h-art .planting,.h-art .p-path{transform:translate(calc(var(--px) * -22px),calc(var(--py) * -8px))}
.h-art .p-lawn2{transform:translate(calc(var(--px) * -26px),calc(var(--py) * -9px))}
.h-art .p-lawn3{transform:translate(calc(var(--px) * -32px),calc(var(--py) * -11px)) scale(1.04);transform-origin:50% 100%}
/* the poster: her name across the foot of the scene */
.h-mark{position:absolute;left:0;right:0;bottom:3.5%;z-index:2;margin:0;text-align:center;white-space:nowrap;font:400 64px/1 var(--display);letter-spacing:.09em;text-transform:uppercase;color:#fbf9f4;text-shadow:0 2px 24px rgba(30,40,30,.35),0 1px 2px rgba(30,40,30,.25);pointer-events:none;opacity:0;transform:translateY(10px);transition:opacity 1.6s .4s var(--ease),transform 1.8s .4s var(--ease)}
.h-art.in ~ .h-mark{opacity:1;transform:none}
.h-fog{position:absolute;inset:0;opacity:0;pointer-events:none;background:linear-gradient(180deg,rgba(236,239,240,.4),rgba(236,239,240,.85) 60%,rgba(236,239,240,.6));transition:opacity 1.6s}
.h-rain{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.h-flash{position:absolute;inset:0;background:#f2f6ff;opacity:0;pointer-events:none;mix-blend-mode:screen}
.h-bolt{position:absolute;left:26%;top:0;width:64px;height:46%;opacity:0;fill:#fffbe9;filter:drop-shadow(0 0 14px #fff)}
.h-bolt.go{animation:bolt .7s ease-out}
@keyframes bolt{0%{opacity:0}8%{opacity:1}20%{opacity:.2}32%{opacity:.9}100%{opacity:0}}
.h-flag{position:absolute;right:9%;bottom:7%;width:40px;height:80px}
.h-flag .cloth{transform-origin:10px 24px;animation:flag 3.2s ease-in-out infinite}
@keyframes flag{0%,100%{transform:skewY(0) scaleX(1)}50%{transform:skewY(-4deg) scaleX(.94)}}
.hero.wx-wind .h-flag .cloth{animation-duration:.9s}
.hero.wx-wind .h-clouds i{animation-duration:34s}
.hero.wx-wind .trees-bg{animation:sway 2.6s ease-in-out infinite;transform-origin:50% 80%}
@keyframes sway{0%,100%{transform:skewX(0)}50%{transform:skewX(-1.4deg)}}
/* each recorded weather */
.hero[data-wx="heat"] .h-sky{background:linear-gradient(180deg,#e9dcc6 0%,#f5e6cc 50%,#fbeedb 72%)}
.hero[data-wx="heat"] .h-sun,.hero.wx-heat .h-sun{transform:scale(1.5);opacity:1}
.hero.wx-heat .h-art svg{filter:url(#shimmer) saturate(1.05) brightness(1.03)}
.hero[data-wx="wind"] .h-sky{background:linear-gradient(180deg,#bccbd5,#dfe4e3 50%,#efe6d8)}
.hero[data-wx="gale"] .h-sky{background:linear-gradient(180deg,#a9b6bf,#cfd6d8 50%,#e4ded3)}
.hero[data-wx="rain"] .h-sky,.hero[data-wx="unsettled"] .h-sky,.hero[data-wx="cold"] .h-sky{background:linear-gradient(180deg,#a7b1b8,#c7cdd0 50%,#dad9d3)}
.hero[data-wx="storm"] .h-sky{background:linear-gradient(180deg,#6f7a84,#9aa3a9 46%,#c4c3bb)}
.hero[data-wx="fog"] .h-sky{background:linear-gradient(180deg,#d9dedf,#e6e8e6)}
.hero[data-wx="soft"] .h-sky{background:linear-gradient(180deg,#bfc9cf,#dee2df 50%,#ebe5d9)}
.hero:is([data-wx="rain"],[data-wx="storm"],[data-wx="fog"],[data-wx="unsettled"],[data-wx="cold"]) .h-sun{opacity:0}
.hero:is([data-wx="rain"],[data-wx="storm"],[data-wx="unsettled"]) .h-clouds i{background:rgba(120,130,138,.45)}
.hero[data-wx="storm"] .h-art svg{filter:brightness(.78) saturate(.82)}
.hero:is([data-wx="rain"],[data-wx="unsettled"],[data-wx="cold"]) .h-art svg{filter:brightness(.9) saturate(.85)}
.hero:is([data-wx="storm"],[data-wx="fog"]) .h-art .gl{fill:#f0c97c}
.hero[data-wx="fog"] .h-fog{opacity:1}
.hero[data-wx="soft"] .lawn{filter:saturate(1.15) brightness(.95)}
.h-text{position:absolute;left:clamp(16px,3.4vw,48px);top:clamp(20px,3.6vw,44px);right:clamp(16px,3.4vw,48px);z-index:3;pointer-events:none}
.h-text > *{pointer-events:auto}
.h-kick{margin:0;font:600 11.5px var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--rough)}
.h-title{margin:10px 0 0;font-weight:300;display:flex;flex-direction:column}
.h-year{font-family:var(--display);font-weight:300;font-size:clamp(76px,10vw,150px);line-height:.82;letter-spacing:-.02em;color:var(--ink)}
.h-name{font-family:var(--display);font-weight:400;font-size:clamp(24px,2.6vw,38px);line-height:1.1;margin-top:8px;color:var(--ink)}
.h-club{font:500 15px var(--sans);letter-spacing:.04em;color:var(--rough);margin-top:6px}
.hero[data-wx="storm"] .h-year,.hero[data-wx="storm"] .h-name,.hero[data-wx="storm"] .h-kick,.hero[data-wx="storm"] .h-club{color:#fbf9f4;text-shadow:0 1px 16px rgba(20,26,30,.5)}
.h-wx{display:inline-flex;align-items:center;gap:8px;margin-top:16px;height:34px;padding:0 14px 0 10px;border-radius:20px;background:rgba(251,249,244,.82);border:1px solid rgba(34,40,43,.08);font:500 13px var(--sans);letter-spacing:.06em;color:var(--ink);backdrop-filter:blur(8px)}
.wxi{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.h-nav{position:absolute;right:0;top:0;display:flex;gap:8px}
.h-arrow{width:42px;height:42px;border-radius:50%;background:rgba(251,249,244,.82);border:1px solid rgba(34,40,43,.08);font-size:24px;line-height:1;color:var(--ink)}
.h-arrow:disabled{opacity:.35;cursor:default}
.to-rough{position:absolute;left:clamp(16px,3.4vw,48px);top:auto;bottom:18px;z-index:3;height:34px;padding:0 14px;border-radius:20px;background:rgba(251,249,244,.82);font:500 13px var(--sans);letter-spacing:.04em;color:var(--ink)}

/* the week */
.week{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);margin:clamp(30px,4vw,56px) 0 0}
.story{font-size:18.5px;line-height:1.7;max-width:720px}
.story p{margin:0 0 16px}
.story .lede{font-family:var(--display);font-size:clamp(24px,2.2vw,30px);line-height:1.38;font-weight:400}
.story .rec.moment{position:relative;padding-left:22px;margin-top:22px}
.story .rec.moment::before{content:"";position:absolute;left:0;top:.6em;width:10px;height:10px;transform:rotate(45deg);border:1px solid var(--gold);background:var(--linen)}
.sn{font:500 10px var(--mono);color:var(--fair);margin-left:1px}
.srcnote{display:flex;flex-wrap:wrap;gap:4px 14px;margin:-8px 0 14px 22px;font:12px var(--mono);color:var(--slate)}
.srcnote sup{color:var(--fair)}
.playoff{margin:26px 0 0;padding:18px 20px;border-radius:16px;background:var(--linen);border:1px solid var(--oat)}
.playoff .po-f{margin:6px 0 6px;font-weight:500}
.playoff .srcnote{margin-left:0}
.more{margin-top:24px!important;font:500 15px var(--sans);letter-spacing:.02em}
.winner{align-self:start;position:sticky;top:20px;padding:26px 26px 22px;border-radius:24px;background:var(--linen);border:1px solid var(--oat);box-shadow:0 20px 40px -30px rgba(34,40,43,.3)}
.w-name{margin:8px 0 0;font-family:var(--display);font-weight:400;font-size:clamp(32px,3vw,44px);line-height:1}
.w-name .pl{color:var(--ink);text-decoration:none;background-image:linear-gradient(var(--gold),var(--gold));background-size:0 1px;background-repeat:no-repeat;background-position:0 100%;transition:background-size .4s var(--ease)}
.w-name a.pl:hover{background-size:100% 1px}
.w-meta{margin:10px 0 0;font:14px var(--sans);color:var(--slate)}
.w-mp{margin:16px 0 0;font:500 15px var(--sans)}
.card-score{display:grid;grid-template-columns:repeat(5,1fr);margin:18px 0 0;border-top:1px solid var(--oat);border-bottom:1px solid var(--oat)}
.rd{display:flex;flex-direction:column;align-items:center;padding:12px 0 10px}
.rd span{font:11px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--slate)}
.rd b{font:400 28px var(--display);line-height:1.1}
.rd em{font:normal 11.5px var(--mono);color:var(--slate)}
.rd.tot{border-left:1px solid var(--oat);background:linear-gradient(180deg,rgba(184,154,94,.1),transparent)}
.rd.tot b{font-weight:500}
.w-par{margin:10px 0 0;font:13px var(--sans);color:var(--slate)}
.majors{margin:20px 0 0}
.mj-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.mj{display:flex;flex-direction:column;align-items:flex-start;padding:7px 11px;border-radius:12px;border:1px solid var(--oat);background:var(--mist);text-align:left;transition:border-color .2s}
.mj:hover{border-color:var(--gold)}
.mj b{font:500 12.5px var(--sans);letter-spacing:.02em}
.mj span{display:flex;gap:5px;font:12px var(--mono);color:var(--slate)}
.mj i.now{font-style:normal;color:var(--ink);font-weight:500;text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px}
.amlinks{margin:18px 0 0;display:flex;flex-direction:column;gap:6px}
.amlinks a{font:14px var(--sans)}
.amlinks a span{color:var(--slate)}
.caddie{margin:18px 0 0}
.caddie .cd{display:block;margin-top:5px;font-family:var(--display);font-style:italic;font-size:21px;line-height:1.3}
.runners{margin:20px 0 0}
.runners ul{list-style:none;margin:6px 0 0;padding:0}
.ru{display:grid;grid-template-columns:40px 1fr auto;gap:10px;align-items:baseline;width:100%;padding:8px 0;border-bottom:1px solid var(--oat2);text-align:left}
.ru:hover .ru-n{color:var(--fair)}
.ru-f{font:12px var(--mono);color:var(--slate)}
.ru-n{font:500 15px var(--sans)}
.ru-n .am{font-style:normal;color:var(--slate)}
.ru-t{font:13px var(--mono);color:var(--slate)}
.lowam-btn{display:inline-flex;align-items:center;gap:10px;margin-top:20px;height:40px;padding:0 16px;border-radius:24px;border:1px solid var(--oat);background:var(--mist);font:500 14px var(--sans);letter-spacing:.04em;transition:border-color .2s,background .2s}
.lowam-btn:hover,.lowam-btn[aria-expanded="true"]{border-color:var(--gold);background:var(--linen)}
.dia{display:inline-block;width:9px;height:9px;transform:rotate(45deg);background:var(--prism);box-shadow:0 0 0 1px #9fb9c8}
.lowam{margin-top:12px;padding:16px 18px;border-radius:16px;background:var(--mist);border:1px solid var(--oat);animation:rise .4s var(--ease)}
@keyframes rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.la-h{margin:0 0 10px;font:13px var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--fair)}
.la{padding:10px 0;border-top:1px solid var(--oat2)}
.la b{font-family:var(--display);font-weight:500;font-size:22px}
.la .sc{font:13px var(--mono);color:var(--slate)}
.la-m{display:flex;align-items:center;gap:8px;margin:6px 0 0;font:14px var(--sans)}
.la-a{display:block;margin-top:6px;font:14px var(--sans)}
.la-a span{color:var(--slate)}
.lowam .q{margin:0;font:15px var(--sans);color:var(--slate)}

/* the Sunday picture */
.sunday{margin:40px 0 0;padding:22px 26px 18px;border-radius:22px;background:var(--linen);border:1px solid var(--oat);max-width:900px}
.sd-line{position:relative;height:70px;margin:18px 0 0}
.sd-line .axis{position:absolute;left:8%;right:8%;top:34px;height:1px;background:var(--oat)}
.sd-line .tick{position:absolute;top:30px;width:1px;height:9px;background:var(--oat)}
.sd-line .tick small{position:absolute;top:14px;left:50%;transform:translateX(-50%);font:11px var(--mono);color:var(--slate);white-space:nowrap}
.sd-line .dot{position:absolute;top:28px;width:13px;height:13px;margin-left:-6px;border-radius:50%;background:var(--sage)}
.sd-line .dot.win{background:var(--gold);box-shadow:0 0 0 4px rgba(184,154,94,.22)}
.sd-line .dot em{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);font:normal 500 13px var(--sans);white-space:nowrap;color:var(--ink)}
.sd-line .dot.lead em{color:var(--slate)}
.sd-line .arc{position:absolute;top:18px;height:14px;border:1px solid var(--gold);border-bottom:0;border-radius:14px 14px 0 0;opacity:.7}
.sd-cap{margin:6px 0 0;font:15px var(--sans);color:var(--ink)}

/* how she got in */
.spine{margin:56px 0 0;padding:30px clamp(18px,3vw,36px) 26px;border-radius:26px;background:linear-gradient(180deg,var(--linen),var(--mist));border:1px solid var(--oat)}
.spine-head{display:flex;flex-wrap:wrap;gap:6px 26px;align-items:baseline}
.spine-head p{margin:0;max-width:700px;font-size:15.5px;line-height:1.55;color:var(--slate)}
.spine-strip{display:flex;align-items:center;gap:2px;height:34px;margin:18px 0 0;overflow:hidden}
.sp{flex:1 1 0;min-width:0;height:100%;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background .2s}
.sp i{display:block;width:5px;height:5px;border-radius:50%;background:var(--fair)}
.sp.r-open i{background:transparent;box-shadow:inset 0 0 0 1.2px var(--fair)}
.sp.r-unk i{width:6px;height:1.4px;border-radius:0;background:var(--slate);opacity:.5}
.sp.r-q .gem{width:13px;height:13px;filter:drop-shadow(0 0 4px rgba(150,190,220,.9))}
.sp:hover{background:var(--oat2)}
.sp.now{background:var(--oat)}
.sp.now::after{content:"";position:absolute}
.route{margin:22px 0 0}
.r-h{margin:0;font:400 clamp(24px,2.4vw,32px)/1.2 var(--display)}
.steps{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px 0}
.st{position:relative;display:flex;align-items:center;gap:12px;padding:12px 18px 12px 12px;margin-right:36px;border-radius:16px;background:var(--linen);border:1px solid var(--oat);font:15px var(--sans);max-width:560px}
.st:not(:last-child)::after{content:"";position:absolute;right:-30px;top:50%;width:24px;height:1px;background:var(--gold)}
.st .n{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--mist);border:1px solid var(--oat);font:500 12px var(--mono);color:var(--fair)}
.st.win{background:var(--prism);border-color:#cfdbe3}
.st.q{color:var(--slate)}
.r-n{margin:12px 0 0;font:14px var(--sans);color:var(--slate)}

/* the layers */
.layers{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin:40px 0 0}
.ly{display:grid;grid-template-columns:22px 1fr;gap:8px 10px;align-items:center;padding:16px 18px;border-radius:18px;background:var(--linen);border:1px solid var(--oat);text-align:left;transition:border-color .25s,transform .35s var(--ease)}
.ly:hover{border-color:var(--gold);transform:translateY(-2px)}
.ly .wxi{color:var(--fair)}
.ly-t{grid-column:1/-1}
.ly-l{font:600 11.5px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--fair)}
.ly-t{font-size:15px;line-height:1.45}
.ly-none{grid-column:1/-1;margin:2px 0 0;font:14px var(--sans);color:var(--slate)}
.facts{display:flex;flex-wrap:wrap;gap:0;margin:36px 0 0;border-top:1px solid var(--oat);border-bottom:1px solid var(--oat)}
.facts div{flex:1 1 140px;padding:16px 18px 14px;border-right:1px solid var(--oat2)}
.facts div:last-child{border-right:0}
.facts b{display:block;font:400 26px var(--display)}
.facts span{font:11.5px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--slate)}
.notes-box,.sources{margin:18px 0 0;font:14px var(--sans);color:var(--slate)}
.notes-box summary,.sources summary{cursor:pointer;font-weight:500;color:var(--ink)}
.notes-box .rec{font:15.5px/1.6 var(--serif);color:var(--ink);max-width:880px}
.notes-box .srcnote{margin-left:0}
.sources ul{columns:3 220px;margin:10px 0 0;padding-left:18px}

/* the annals */
.annals{max-width:1480px;margin:40px auto 60px;padding:0 clamp(16px,3vw,40px)}
.annals h2{margin:0;font:300 clamp(34px,4vw,56px)/1 var(--display)}
.tiles{display:flex;gap:12px;margin:24px 0 0;padding:4px 0 14px;list-style:none;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin}
.tile{flex:0 0 230px;scroll-snap-align:start;padding:18px 18px 16px;border-radius:20px;background:var(--linen);border:1px solid var(--oat)}
.tile b{display:block;font:300 44px/1 var(--display);color:var(--ink)}
.tile span{display:block;margin-top:10px;font-size:15px;line-height:1.45}
.sets{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 0}
.set{display:inline-flex;align-items:center;gap:10px;height:44px;padding:0 18px;border-radius:26px;background:var(--mist);border:1px solid var(--oat);font:500 15px var(--sans);text-decoration:none;color:var(--ink);transition:border-color .2s,background .2s}
.set em{font:normal 12px var(--mono);color:var(--slate)}
.set:hover{border-color:var(--gold);background:var(--linen);color:var(--ink)}
.set.champs{background:var(--prism);border-color:#d3dee5}

/* the drawer (player or club) and the modal above it */
.drawer{position:fixed;z-index:60;top:16px;right:16px;bottom:16px;width:min(380px,calc(100vw - 32px));display:flex;flex-direction:column;padding:22px 22px 18px;border-radius:24px;background:var(--linen);border:1px solid var(--oat);box-shadow:0 30px 60px -20px rgba(34,40,43,.3);transform:translateX(calc(100% + 30px));transition:transform .45s var(--ease);overflow:hidden}
.drawer.open{transform:none}
.drawer h3{margin:6px 40px 0 0;font:400 32px/1.05 var(--display)}
.drawer .x,.modal .x{position:absolute;top:14px;right:14px;width:40px;height:40px;border-radius:50%;background:var(--mist);font-size:15px}
.dr-m{margin:8px 0 0;font:14px var(--sans);color:var(--slate)}
.card-link{display:inline-block;margin-top:10px;font:500 14px var(--sans)}
.dr-art{margin:14px -22px 0;height:150px;overflow:hidden;background:linear-gradient(#cfdbe2,#efe4d2)}
.dr-art svg{width:100%;height:100%}
.dr-years{flex:1;min-height:0;overflow:auto;list-style:none;margin:14px 0 0;padding:0}
.dr-years button{display:grid;grid-template-columns:54px 1fr;gap:10px;width:100%;padding:10px 4px;border-bottom:1px solid var(--oat2);text-align:left}
.dr-years button:hover{background:var(--mist)}
.dr-years .y{font:400 22px var(--display)}
.dr-years b{font:500 14.5px var(--sans)}
.dr-years small{display:block;font:13px var(--sans);color:var(--slate)}
.modal{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:16px}
.modal-scrim{position:absolute;inset:0;background:rgba(34,40,43,.28);backdrop-filter:blur(6px);opacity:0;transition:opacity .3s}
.modal-card{position:relative;display:flex;flex-direction:column;width:min(880px,100%);max-height:min(86vh,820px);border-radius:26px;background:var(--linen);box-shadow:0 40px 80px -30px rgba(34,40,43,.45);opacity:0;transform:translateY(14px) scale(.98);transition:opacity .3s,transform .4s var(--ease);overflow:hidden}
.modal.open .modal-scrim{opacity:1}.modal.open .modal-card{opacity:1;transform:none}
.modal-top{flex:none;padding:24px 70px 14px 28px;border-bottom:1px solid var(--oat)}
.modal-top h2{margin:0;font:400 34px/1.05 var(--display)}
.modal-body{flex:1;min-height:0;overflow:auto;padding:10px 28px 28px;overscroll-behavior:contain}
.rows{list-style:none;margin:0;padding:0}
.rows li{display:grid;grid-template-columns:110px 1fr;gap:14px;padding:12px 0;border-bottom:1px solid var(--oat2);font-size:15.5px;line-height:1.45}
.rows .y{font:400 20px var(--display)}
.rows small{display:block;font:13px var(--sans);color:var(--slate)}
.rows .cat{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em}
.champs-grid{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.ch{display:flex;flex-direction:column;align-items:flex-start;width:100%;padding:12px 14px;border-radius:14px;border:1px solid var(--oat);background:var(--mist);text-align:left}
.ch:hover{border-color:var(--gold);background:var(--linen)}
.ch b{font:400 20px/1.1 var(--display)}
.ch span{font:12.5px var(--mono);color:var(--slate);margin-top:4px}
.ch i{font:normal 12.5px var(--sans);color:var(--slate)}
.purse{display:flex;align-items:flex-end;gap:2px;height:240px;margin:20px 0 0}
.pb{flex:1 1 0;height:100%;display:flex;align-items:flex-end}
.pb i{display:block;width:100%;height:var(--h);border-radius:3px 3px 0 0;background:linear-gradient(180deg,var(--gold-l),var(--gold))}
.pb:hover i{background:var(--fair)}
.note-sm{font:13px var(--sans);color:var(--slate)}

/* the tooltip */
.tip{position:fixed;z-index:95;max-width:340px;padding:12px 14px;border-radius:14px;background:rgba(251,249,244,.97);border:1px solid var(--oat);box-shadow:0 20px 40px -12px rgba(34,40,43,.28);font:14px/1.5 var(--sans);color:var(--ink);pointer-events:none;backdrop-filter:blur(8px)}
.tip .k{display:block;font:500 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fair)}
.tip b{display:block;margin-top:3px;font:500 15.5px var(--sans)}
.tip .m{display:block;margin-top:6px;color:var(--ink)}
.tip .src,.tip .cite{font-size:12.5px;color:var(--slate)}
.tip .rounds{display:flex;gap:10px;margin-top:8px}
.tip .rounds i{display:flex;flex-direction:column;align-items:center;font:normal 400 22px var(--display)}
.tip .rounds small{font:10.5px var(--sans);letter-spacing:.12em;color:var(--slate)}
.tip .rounds .t{padding-left:10px;border-left:1px solid var(--oat);font-weight:500}

/* ================= PHONE ================= */
@media (max-width:760px){
  .opening{min-height:640px}
  .op-head{right:16px}
  .op-head h1{font-size:44px}
  .deck{font-size:15.5px;max-width:none}
  .op-tools{position:absolute;top:auto;left:16px;right:16px;bottom:auto}
  .op-head .kicker{display:none}
  .op-tools{top:calc(clamp(24px,5vh,56px) + 300px)}
  .find{width:100%}

  .drift{padding:0 16px 14px}
  .drift-card{flex-direction:column;align-items:stretch;gap:12px}
  .dc-y{font-size:52px}
  .dc-w{font-size:22px}
  .drift-open{align-self:flex-start;height:42px}
  .drift-step{display:none}
  .drift-key{font-size:11.5px;gap:4px 12px}
  .hero{height:min(72vh,560px);border-radius:22px;margin-top:16px}
  .h-art{height:58%}
  .h-art svg{transform:scale(1.35);transform-origin:50% 100%}
  .h-year{font-size:72px}
  .h-name{font-size:22px}
  .h-nav{position:static;margin-bottom:10px}
  .h-arrow{width:38px;height:38px}
  .to-rough{bottom:12px}
  .h-mark{bottom:9%;letter-spacing:.06em}
  .week{grid-template-columns:1fr}
  .winner{position:static;padding:22px 18px}
  .story{font-size:17px}
  .card-score .rd b{font-size:24px}
  .steps{flex-direction:column}
  .st{margin-right:0}
  .st:not(:last-child)::after{right:auto;left:26px;top:auto;bottom:-11px;width:1px;height:10px}
  .spine-strip{gap:1px}
  .sources ul{columns:1}
  .rows li{grid-template-columns:70px 1fr}
  .drawer{top:auto;left:8px;right:8px;bottom:8px;width:auto;max-height:78vh;transform:translateY(calc(100% + 20px))}
  .modal{padding:8px}
  .modal-card{max-height:90vh;border-radius:22px}
  .modal-top{padding:20px 64px 12px 18px}
  .modal-top h2{font-size:28px}
  .modal-body{padding:8px 18px 22px}
  .tile{flex-basis:200px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ---------- anything hidden stops taking clicks, whatever display the element sets ---------- */
[hidden]{display:none!important}
.tip{pointer-events:none}
