*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
body{background:#1e1e2a;color:#e8e4df;font-family:'Nunito',sans-serif;overflow-x:hidden;cursor:none}

/* Cursor lantern */
#cursor-lantern{position:fixed;top:0;left:0;width:340px;height:340px;border-radius:50%;pointer-events:none;z-index:9999;background:radial-gradient(circle,rgba(240,200,77,.07) 0%,transparent 70%);transform:translate(-50%,-50%);transition:opacity .3s}

/* Sidebar tracker */
#sidebar-tracker{position:fixed;left:24px;top:50%;transform:translateY(-50%);z-index:100;display:flex;flex-direction:column;align-items:center;gap:40px}
#sidebar-line{position:absolute;left:50%;transform:translateX(-50%);width:4px;height:100%;z-index:-1}
.waypoint-marker{width:14px;height:14px;border-radius:50%;border:2px solid #8a8698;background:transparent;cursor:pointer;position:relative;transition:all .3s}
.waypoint-marker.active{background:#f0c84d;border-color:#f0c84d;box-shadow:0 0 12px rgba(240,200,77,.5)}
.waypoint-label{position:absolute;left:22px;top:50%;transform:translateY(-50%);font-family:'Caveat',cursive;font-size:.85rem;color:#8a8698;white-space:nowrap;opacity:0;transition:opacity .3s}
.waypoint-marker:hover .waypoint-label,.waypoint-marker.active .waypoint-label{opacity:1}

/* Section: Compass */
.section-compass{height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;background:#1e1e2a}
.wordmark{font-family:'Bebas Neue',sans-serif;font-size:clamp(2.5rem,6vw,5rem);letter-spacing:.08em;color:#f0c84d;text-transform:uppercase;position:absolute;top:5vh;left:5vw;opacity:0;animation:fadeIn 1.5s .5s forwards}
.compass-container{width:min(70vmin,420px);height:min(70vmin,420px);position:relative}
.compass-rose{width:100%;height:100%}
.compass-path{stroke-dasharray:1000;stroke-dashoffset:1000;animation:drawPath 3s .5s forwards}
.compass-cardinal{font-family:'Caveat',cursive;font-size:18px;fill:#f0c84d}
#compass-needle{transition:transform .15s ease-out}
.compass-tagline{font-family:'Caveat',cursive;font-size:clamp(1rem,2.5vw,1.5rem);color:#8a8698;margin-top:2rem;text-align:center;opacity:0;animation:fadeIn 2s 3.5s forwards}
.scroll-hint{position:absolute;bottom:4vh;opacity:0;animation:fadeIn 2s 4.5s forwards,bounce 2s 4.5s infinite}
.scroll-arrow{font-size:1.5rem;color:#f0c84d}

/* Background contour lines */
.contour-background{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;opacity:.4;pointer-events:none}

/* Section: Waypoints */
.section-waypoints{position:relative;padding:10vh 5vw;min-height:200vh}
.section-title{font-family:'Bebas Neue',sans-serif;font-size:clamp(2rem,5vw,4rem);letter-spacing:.08em;color:#f0c84d;text-transform:uppercase;text-align:center;margin-bottom:6vh}
.route-lines{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}
.route-path{stroke-dasharray:1200;stroke-dashoffset:1200;transition:stroke-dashoffset 2s ease-out}
.route-path.visible{stroke-dashoffset:0}
.waypoint-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2.5rem;position:relative;z-index:1}
.waypoint-module{background:rgba(42,42,61,.65);border:1px solid rgba(138,134,152,.3);border-radius:4px;padding:2rem;position:relative;transition:transform .5s,box-shadow .5s,border-color .5s;opacity:0;transform:translateY(30px)}
.waypoint-module.visible{opacity:1;transform:translateY(0) rotate(var(--tilt,0deg))}
.waypoint-module:hover{border-color:#f0c84d;box-shadow:0 0 20px rgba(240,200,77,.15);transform:translateY(-4px) rotate(var(--tilt,0deg))}
.module-marker{font-family:'Bebas Neue',sans-serif;font-size:2.5rem;color:rgba(240,200,77,.25);position:absolute;top:-.5rem;right:1rem;line-height:1}
.waypoint-module h3{font-family:'Bebas Neue',sans-serif;font-size:1.6rem;letter-spacing:.05em;color:#e8e4df;margin-bottom:.75rem;text-transform:uppercase}
.waypoint-module p{font-family:'Nunito',sans-serif;font-size:.95rem;line-height:1.7;color:#8a8698}
.module-annotation{display:block;margin-top:1rem;font-family:'Caveat',cursive;font-size:.9rem;color:#3ec9a7;font-style:italic}

/* Section: Corridor */
.section-corridor{position:relative;padding:8vh 0;overflow:hidden}
.section-corridor .section-title{padding:0 5vw;margin-bottom:4vh}
.corridor-scroll{display:flex;gap:2.5rem;overflow-x:auto;padding:2rem 5vw;scrollbar-width:thin;scrollbar-color:#2a2a3d #1e1e2a;-webkit-overflow-scrolling:touch}
.corridor-scroll::-webkit-scrollbar{height:6px}
.corridor-scroll::-webkit-scrollbar-track{background:#1e1e2a}
.corridor-scroll::-webkit-scrollbar-thumb{background:#2a2a3d;border-radius:3px}
.corridor-item{min-width:260px;max-width:300px;flex-shrink:0;background:rgba(42,42,61,.5);border:1px solid rgba(138,134,152,.2);border-radius:4px;padding:1.5rem;position:relative;transition:border-color .3s,transform .3s}
.corridor-item:hover{border-color:#3ec9a7;transform:translateY(-4px)}
.corridor-marker{width:12px;height:12px;border-radius:50%;background:#e85d3a;margin-bottom:.75rem;box-shadow:0 0 8px rgba(232,93,58,.4)}
.corridor-date{font-family:'Caveat',cursive;font-size:.85rem;color:#f0c84d;display:block;margin-bottom:.5rem}
.corridor-item h4{font-family:'Bebas Neue',sans-serif;font-size:1.2rem;letter-spacing:.04em;color:#e8e4df;margin-bottom:.5rem;text-transform:uppercase}
.corridor-item p{font-family:'Nunito',sans-serif;font-size:.85rem;line-height:1.6;color:#8a8698}

/* Section: Commitment */
.section-commitment{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10vh 5vw;text-align:center}
.commitment-content{max-width:640px;display:flex;flex-direction:column;align-items:center;gap:3rem}
.commitment-statement h2{font-family:'Bebas Neue',sans-serif;font-size:clamp(2rem,5vw,3.5rem);letter-spacing:.06em;color:#f0c84d;text-transform:uppercase;line-height:1.15;margin-bottom:1.5rem}
.commitment-statement p{font-family:'Nunito',sans-serif;font-size:1.05rem;line-height:1.8;color:#8a8698}
.mini-compass{width:120px;height:120px;opacity:.7}
.closing-annotation{margin-top:4rem;font-family:'Caveat',cursive;font-size:1rem;color:rgba(138,134,152,.6)}

/* Animations */
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes drawPath{to{stroke-dashoffset:0}}
@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(8px)}}

/* Alert/danger state */
.corridor-marker.alert{background:#c0392b;box-shadow:0 0 8px rgba(192,57,43,.5)}

/* Responsive */
@media(max-width:768px){
  #sidebar-tracker{left:12px}
  .waypoint-label{display:none}
  .wordmark{font-size:2rem;top:3vh;left:4vw}
  .waypoint-grid{grid-template-columns:1fr}
  .corridor-item{min-width:220px}
}
@media(max-width:480px){
  #sidebar-tracker{display:none}
  .section-waypoints{padding:6vh 4vw}
}
