:root{
  --pool:#1A8C9E;
  --navy:#101827;
  --cream:#F4E7C5;
  --red:#D83B2A;
  --mint:#A7D8B8;
  --gold:#C79B43;
  --violet:#5B477E;
  --heading:'Bricolage Grotesque',sans-serif;
  --body:'DM Sans',sans-serif;
  --serif:'Fraunces',serif;
  --mono:'IBM Plex Mono',monospace;
  --sparingly: 1;
  --timestamps: 'IBM Plex Mono';
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--navy)}
body{margin:0;color:var(--cream);font-family:var(--body);overflow-x:hidden;background:var(--navy)}
body.token-lit{background:#153046}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}

.grain{position:fixed;inset:0;z-index:80;pointer-events:none;opacity:.17;background-image:radial-gradient(circle at 20% 10%,rgba(244,231,197,.8) 0 1px,transparent 1.5px),radial-gradient(circle at 80% 40%,rgba(16,24,39,.8) 0 1px,transparent 1.5px);background-size:17px 19px,23px 29px;mix-blend-mode:overlay}
.grain:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 0 48%,rgba(244,231,197,.06) 49% 51%,transparent 52%)}
.mono,.eyebrow{font-family:var(--mono);text-transform:uppercase;letter-spacing:.12em;font-size:clamp(.66rem,1vw,.82rem)}
.fraunces{font-family:var(--serif)}

.club-plaque{position:fixed;right:1.1rem;top:1rem;z-index:90;max-width:310px;padding:.85rem 1rem;background:var(--cream);color:var(--navy);border:2px solid var(--gold);box-shadow:6px 7px 0 rgba(0,0,0,.35);transform:rotate(1.5deg);font-family:var(--serif);font-size:.92rem;transition:transform .35s ease,background .35s ease}
.club-plaque span{display:block;font-family:var(--mono);color:var(--red);margin-bottom:.25rem}
.club-plaque.bump{transform:rotate(-1.5deg) scale(1.035);background:var(--mint)}
.floorplan{position:fixed;left:1rem;bottom:1rem;z-index:91;display:flex;gap:.35rem;transform:skewX(-10deg);background:rgba(16,24,39,.68);border:1px solid rgba(167,216,184,.55);padding:.4rem;backdrop-filter:blur(6px)}
.floorplan a{font-family:var(--mono);font-size:.68rem;padding:.42rem .52rem;background:rgba(26,140,158,.5);border:1px solid rgba(244,231,197,.25);text-transform:uppercase}
.floorplan a.active{background:var(--red);color:var(--cream)}

.scene{min-height:100vh;position:relative;isolation:isolate;overflow:hidden;padding:clamp(5rem,7vw,7rem) clamp(1rem,4vw,4rem);background-color:var(--pool);background-image:linear-gradient(90deg,rgba(244,231,197,.12) 1px,transparent 1px),linear-gradient(rgba(244,231,197,.12) 1px,transparent 1px),linear-gradient(115deg,rgba(16,24,39,.18) 0 2px,transparent 2px 140px);background-size:54px 54px,54px 54px,180px 180px}
.scene:before{content:"";position:absolute;inset:-20%;z-index:-1;background:radial-gradient(circle at 30% 20%,rgba(167,216,184,.22),transparent 28%),radial-gradient(circle at 80% 70%,rgba(91,71,126,.35),transparent 38%);animation:flicker 5s infinite steps(1)}
.paper{background:var(--cream);color:var(--navy);border:2px solid var(--navy);box-shadow:10px 12px 0 rgba(16,24,39,.28)}

.tiled-scene{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(260px,.55fr);align-items:center;gap:2rem;background-color:#126f82}
.curved-wall{min-height:58vh;border-radius:55% 18% 28% 16%/24% 45% 18% 45%;border:3px solid rgba(244,231,197,.55);padding:clamp(2rem,5vw,5rem);background:linear-gradient(130deg,rgba(16,24,39,.45),rgba(26,140,158,.1)),repeating-linear-gradient(0deg,transparent 0 42px,rgba(244,231,197,.15) 43px 45px),repeating-linear-gradient(90deg,transparent 0 42px,rgba(244,231,197,.13) 43px 45px);box-shadow:inset -28px -24px 0 rgba(16,24,39,.22),0 24px 50px rgba(0,0,0,.35);transform:perspective(900px) rotateY(-7deg) skewY(-1deg)}
h1,h2,h3{font-family:var(--heading);line-height:.9;margin:0}
h1{font-size:clamp(4rem,15vw,13rem);letter-spacing:-.08em;text-shadow:5px 5px 0 var(--navy),9px 9px 0 var(--red)}
h1 span{display:block}.wall-copy{max-width:620px;font-size:clamp(1.1rem,2vw,1.55rem);font-weight:700}
.rubber-stamp{justify-self:center;width:210px;height:170px;border-radius:18px;border:8px solid var(--red);background:rgba(216,59,42,.12);color:var(--red);font-family:var(--mono);font-weight:600;transform:rotate(-12deg);box-shadow:0 28px 0 #6d1b16,0 42px 35px rgba(0,0,0,.45);cursor:pointer;animation:stampIdle 2.3s ease-in-out infinite}
.rubber-stamp.landed{animation:stampHit .55s cubic-bezier(.2,1.4,.4,1)}
.stamp-mark{position:absolute;right:10%;top:46%;font-family:var(--heading);font-size:clamp(2rem,5vw,5rem);color:var(--red);border:7px solid var(--red);padding:.2em .45em;transform:rotate(-11deg) scale(.2);opacity:0;filter:blur(8px);mix-blend-mode:multiply}.stamp-mark.visible{animation:inkBloom 1s forwards}
.vestibule-slip{position:absolute;left:10%;bottom:9%;max-width:440px;padding:1.1rem 1.3rem;transform:rotate(3deg)}
.floor-drain{position:absolute;right:19%;bottom:13%;width:112px;height:112px;border-radius:50%;border:9px double var(--mint);background:repeating-conic-gradient(from 10deg,var(--navy) 0 7deg,transparent 7deg 14deg);opacity:.75}.chalk-arrow{position:absolute;right:24%;bottom:30%;font-family:var(--serif);color:var(--mint);font-size:1.4rem;transform:rotate(-13deg)}

.ledger-scene{background-color:#1A8C9E;display:grid;place-items:center}.ledger-book{width:min(1120px,94vw);min-height:64vh;display:grid;grid-template-columns:1fr 18px 1fr;transform:rotate(-2deg);filter:drop-shadow(20px 26px 0 rgba(16,24,39,.32))}.ledger-page{background:var(--cream);color:var(--navy);padding:clamp(1.4rem,4vw,3.2rem);border:3px solid var(--navy);background-image:repeating-linear-gradient(0deg,transparent 0 33px,rgba(16,24,39,.12) 34px 35px)}.ledger-spine{background:var(--gold);border-block:3px solid var(--navy)}.ledger-page h2{font-size:clamp(3rem,7vw,7rem);color:var(--red)}.ledger-page .fraunces{font-size:clamp(1.4rem,2.4vw,2.2rem)}.signature-line{margin-top:2rem;border-top:2px solid var(--navy);font-family:var(--mono);padding-top:.6rem}.membership-card{background:var(--mint);border:2px solid var(--navy);padding:1rem;transform:rotate(4deg);box-shadow:7px 8px 0 var(--gold)}.membership-card h3{font-size:2.1rem;color:var(--violet)}.ledger-rules{margin-top:2rem;list-style:none;padding:0;font-family:var(--serif);font-size:1.1rem}.ledger-rules li{margin:.9rem 0}.ledger-rules b{font-family:var(--mono);color:var(--red)}.push-pin{position:absolute;width:25px;height:25px;border-radius:50%;background:var(--red);box-shadow:3px 4px 0 rgba(0,0,0,.3)}.pin-one{left:12%;top:19%}.pin-two{right:15%;bottom:18%}.floating-token{position:absolute;border-radius:50%;display:grid;place-items:center;width:82px;height:82px;background:var(--gold);color:var(--navy);font-family:var(--mono);text-transform:uppercase;animation:drift 7s ease-in-out infinite}.token-a{left:8%;bottom:28%}.token-b{right:7%;top:29%;animation-delay:-2s;background:var(--red);color:var(--cream)}

.motion-scene{background-color:#154d6b;display:grid;grid-template-columns:.42fr .58fr;gap:2rem;align-items:center}.chalkboard{background:var(--navy);border:8px solid var(--gold);padding:2rem;box-shadow:14px 16px 0 rgba(0,0,0,.35);transform:rotate(1.2deg)}.chalkboard h2,.locker-intro h2,.roof-card h2{font-size:clamp(3rem,8vw,8rem)}.chalkboard ol{font-family:var(--serif);font-size:clamp(1.1rem,1.8vw,1.5rem);color:var(--mint)}.debate-pit{position:relative;min-height:620px;border-radius:50% 50% 12% 12%;background:radial-gradient(ellipse at 50% 58%,rgba(167,216,184,.18),transparent 35%),rgba(26,140,158,.45);border:2px solid rgba(244,231,197,.4);transform:skewX(-4deg)}.chalk-ring{position:absolute;inset:10% 8%;border-top:5px dashed var(--mint);border-radius:50%;opacity:.85}.ring-two{inset:24% 20%;opacity:.6}.bench{position:absolute;bottom:13%;width:190px;padding:1rem;background:var(--gold);color:var(--navy);font-family:var(--mono);text-align:center;border-radius:100px 100px 18px 18px;box-shadow:6px 8px 0 rgba(0,0,0,.3)}.bench-left{left:14%;transform:rotate(16deg)}.bench-right{right:14%;transform:rotate(-16deg)}.floor-token{position:absolute;left:50%;top:50%;z-index:3;width:118px;height:118px;border-radius:50%;display:grid;place-items:center;text-align:center;background:var(--red);border:5px solid var(--cream);box-shadow:0 0 30px rgba(216,59,42,.7);font-family:var(--mono);cursor:grab;user-select:none}.floor-token:active{cursor:grabbing}.chalk-lines{position:absolute;inset:8%;width:84%;height:84%;fill:none;stroke:var(--mint);stroke-width:6;stroke-linecap:round;stroke-dasharray:900;stroke-dashoffset:900;opacity:.9}.motion-scene.in-view .chalk-lines path{animation:drawChalk 1.6s ease forwards}.motion-scene.in-view .chalk-lines path:nth-child(2){animation-delay:.2s}.motion-scene.in-view .chalk-lines path:nth-child(3){animation-delay:.38s}.motion-scene.in-view .chalk-lines path:nth-child(4){animation-delay:.52s}.motion-quote{position:absolute;right:5%;bottom:6%;max-width:390px;font-family:var(--serif);font-size:1.45rem;color:var(--cream);background:rgba(91,71,126,.78);padding:1rem 1.2rem;border-left:7px solid var(--red)}

.lockers-scene{display:grid;grid-template-columns:.34fr .42fr .24fr;gap:1.2rem;align-items:center;background-color:#146d80}.locker-intro{align-self:start;margin-top:6vh}.locker-bank{display:grid;grid-template-columns:repeat(2,minmax(150px,1fr));gap:1rem;transform:perspective(1000px) rotateY(5deg)}.locker{min-height:230px;background:linear-gradient(100deg,#203049,var(--violet));border:3px solid var(--gold);box-shadow:9px 11px 0 rgba(0,0,0,.32);padding:1rem;position:relative;cursor:pointer;text-align:left;transition:transform .45s ease,background .45s ease}.locker:before{content:"";position:absolute;left:14px;right:14px;top:62px;height:9px;background:var(--mint);box-shadow:0 22px 0 var(--mint),0 44px 0 var(--mint);opacity:.55}.locker span{font-family:var(--mono);font-size:2rem;color:var(--gold)}.locker em{position:absolute;bottom:1rem;left:1rem;font-family:var(--serif);color:var(--cream)}.locker.open{transform:rotateY(-24deg) translateX(-8px);background:linear-gradient(100deg,var(--red),#67251f)}.argument-note{min-height:340px;background:var(--cream);color:var(--navy);padding:1.3rem;border:3px solid var(--red);font-family:var(--serif);font-size:clamp(1.2rem,2vw,1.7rem);box-shadow:10px 12px 0 rgba(16,24,39,.3);transform:rotate(2deg)}

.pool-scene{background-color:#1A8C9E;color:var(--navy);display:grid;grid-template-columns:1fr .48fr;gap:2rem;align-items:center}.pool-lanes{grid-row:1/3;position:relative;height:72vh;border:6px solid var(--cream);background:linear-gradient(180deg,rgba(244,231,197,.12),rgba(16,24,39,.18));box-shadow:inset 0 0 50px rgba(244,231,197,.25),14px 18px 0 rgba(16,24,39,.26)}.lane{height:25%;border-bottom:4px dashed rgba(244,231,197,.9);position:relative;overflow:hidden}.lane span{position:absolute;left:5%;top:50%;font-family:var(--serif);font-size:clamp(2rem,6vw,5rem);color:rgba(244,231,197,.76);transform:translateY(-50%);animation:laneFloat 8s ease-in-out infinite}.lane:nth-child(2) span{animation-delay:-1.5s}.lane:nth-child(3) span{animation-delay:-3s}.lane:nth-child(4){border-bottom:0}.lane:nth-child(4) span{animation-delay:-4.5s}.amendment-tabs{display:flex;gap:.6rem;flex-wrap:wrap}.tab{background:var(--cream);color:var(--navy);border:3px solid var(--navy);padding:.7rem 1rem;font-family:var(--mono);cursor:pointer;box-shadow:4px 5px 0 rgba(16,24,39,.3)}.tab.active{background:var(--red);color:var(--cream)}.pool-copy{padding:1.5rem;font-family:var(--serif);font-size:clamp(1.5rem,3vw,2.8rem);transform:rotate(-2deg)}.megaphone{position:absolute;right:8%;bottom:10%;width:170px;height:120px;background:var(--cream);clip-path:polygon(0 30%,58% 0,100% 0,82% 100%,55% 100%,0 70%);display:grid;place-items:center;font-family:var(--mono);color:var(--red);text-transform:uppercase}.clock{position:absolute;left:8%;top:12%;width:122px;height:122px;border-radius:50%;border:7px solid var(--gold);background:var(--cream);display:grid;place-items:center;font-family:var(--mono)}.clock span{position:absolute;width:4px;height:42px;background:var(--red);top:18px;transform-origin:bottom;animation:tick 4s steps(12) infinite}.clock b{margin-top:42px}

.roof-scene{background:linear-gradient(180deg,var(--violet),var(--navy) 72%);display:grid;grid-template-columns:.42fr .58fr;align-items:center}.roof-scene:after{content:"";position:absolute;left:0;right:0;bottom:0;height:22vh;background:linear-gradient(160deg,transparent 0 20%,rgba(244,231,197,.16) 21% 24%,transparent 25% 55%,rgba(199,155,67,.22) 56% 60%,transparent 61%)}.roof-card{background:rgba(244,231,197,.92);color:var(--navy);padding:clamp(1.5rem,4vw,3rem);border:3px solid var(--gold);box-shadow:12px 14px 0 rgba(0,0,0,.3);transform:rotate(-1.5deg);z-index:2}.constellation{position:relative;height:70vh;z-index:1}.constellation span{position:absolute;left:var(--x);top:var(--y);width:86px;height:86px;border-radius:50%;background:var(--cream);color:var(--navy);display:grid;place-items:center;text-align:center;font-family:var(--mono);font-size:.72rem;border:3px solid var(--gold);animation:starDrift 6s ease-in-out infinite}.constellation span:nth-child(2n){background:var(--mint);animation-delay:-2s}.constellation span:nth-child(3n){background:var(--red);color:var(--cream);animation-delay:-4s}.constellation svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:rgba(167,216,184,.65);stroke-width:4;stroke-dasharray:12 14}.final-stamp{position:absolute;right:7%;bottom:9%;z-index:3;border:6px solid var(--red);color:var(--red);font-family:var(--mono);font-weight:600;text-transform:uppercase;padding:1rem 1.4rem;transform:rotate(8deg);background:rgba(244,231,197,.86)}

@keyframes flicker{0%,91%,100%{filter:brightness(1)}92%{filter:brightness(1.45)}93%{filter:brightness(.7)}95%{filter:brightness(1.25)}}
@keyframes stampIdle{0%,100%{transform:rotate(-12deg) translateY(0)}50%{transform:rotate(-10deg) translateY(-10px)}}
@keyframes stampHit{0%{transform:rotate(-12deg) translateY(-80px) scale(1.05)}55%{transform:rotate(-12deg) translateY(22px) scale(.92)}100%{transform:rotate(-12deg) translateY(0) scale(1)}}
@keyframes inkBloom{0%{opacity:0;filter:blur(9px);transform:rotate(-11deg) scale(.2)}55%{opacity:.95;filter:blur(1px);transform:rotate(-11deg) scale(1.08)}100%{opacity:.88;filter:blur(.2px);transform:rotate(-11deg) scale(1)}}
@keyframes drift{0%,100%{transform:translate(0,0) rotate(-7deg)}50%{transform:translate(18px,-22px) rotate(9deg)}}
@keyframes drawChalk{to{stroke-dashoffset:0}}
@keyframes laneFloat{0%,100%{transform:translate(0,-50%)}50%{transform:translate(18vw,-50%)}}
@keyframes tick{to{transform:rotate(360deg)}}
@keyframes starDrift{0%,100%{transform:translate(0,0) rotate(-3deg)}50%{transform:translate(0,-16px) rotate(4deg)}}

@media (max-width:900px){.floorplan{display:none}.club-plaque{left:1rem;right:1rem;max-width:none}.tiled-scene,.motion-scene,.lockers-scene,.pool-scene,.roof-scene{grid-template-columns:1fr}.scene{padding-top:8rem}.ledger-book{grid-template-columns:1fr;transform:none}.ledger-spine{display:none}.debate-pit,.pool-lanes,.constellation{height:56vh;min-height:430px}.locker-bank{grid-template-columns:1fr 1fr;transform:none}.argument-note{min-height:auto}.pool-copy{grid-row:auto}}
@media (max-width:560px){.locker-bank{grid-template-columns:1fr}h1{font-size:4.2rem}.rubber-stamp{width:160px;height:132px}.scene{padding-inline:1rem}.curved-wall{transform:none}.vestibule-slip{position:relative;left:auto;bottom:auto;margin-top:1rem}.floor-drain,.chalk-arrow{display:none}}
