@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,600;0,700;1,600;1,700&display=swap');
:root{--blue:#718ba5;--ink:#262c32;--cream:#f5eee2;--paper:#e8ddcc;--rust:#ab683d;--hair:#422f28;--line:rgba(39,47,52,.26)}
*{box-sizing:border-box}html{font-family:'DM Sans',Arial,sans-serif;background:var(--blue);color:var(--ink)}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid var(--rust);outline-offset:4px}.site-shell{min-height:100svh;overflow:hidden;position:relative;isolation:isolate;background:#7892aa}.backdrop{position:absolute;inset:0;background:#7892aa url('assets/jean-world.png') center/cover no-repeat;z-index:-3}.grain{position:absolute;inset:0;pointer-events:none;opacity:.15;z-index:10;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.78' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.23'/%3E%3C/svg%3E")}.cursor-orbit{position:fixed;width:38px;height:38px;border:1px solid rgba(246,235,218,.8);border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:30;opacity:0;transition:opacity .25s,width .25s,height .25s;mix-blend-mode:difference}.cursor-orbit.show{opacity:1}.cursor-orbit.large{width:66px;height:66px}.topbar{height:86px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 clamp(22px,3.4vw,62px);border-bottom:1px solid rgba(29,42,52,.2);position:relative;z-index:20}.brand{display:flex;align-items:center;gap:13px;border:0;background:none;color:var(--ink);font-weight:700;letter-spacing:.035em;font-size:15px;padding:8px 0;white-space:nowrap}.brand i{display:block;font-style:normal;font-weight:500;letter-spacing:.18em;font-size:10px;margin-top:3px}.brand-mark{font:italic 700 31px/.9 'Playfair Display',Georgia,serif;color:var(--cream);background:var(--hair);border-radius:50%;width:43px;height:43px;display:grid;place-items:center;padding-bottom:6px;transform:rotate(-9deg)}.primary-nav{display:flex;gap:36px;align-items:center}.nav-link{background:none;border:none;padding:12px 0;font-weight:700;font-size:12px;letter-spacing:.13em;text-transform:uppercase;opacity:.65;position:relative}.nav-link.active,.nav-link:hover{opacity:1}.nav-link.active:after{content:'';position:absolute;bottom:5px;left:0;right:0;border-bottom:2px solid var(--hair)}.top-actions{display:flex;align-items:center;gap:12px}.social-link,.buy-link{height:41px;display:flex;align-items:center;justify-content:center;gap:10px;padding:0 16px;border:1px solid var(--ink);font-size:12px;font-weight:700;letter-spacing:.07em;transition:transform .2s,background .2s,color .2s}.social-link:hover,.buy-link:hover{transform:translateY(-3px)}.social-link{background:rgba(235,225,210,.3)}.buy-link{background:var(--ink);color:var(--cream);min-width:100px}.buy-link span{font-size:18px;line-height:1}.scene{min-height:calc(100svh - 143px);padding:clamp(28px,4vh,55px) clamp(24px,7vw,120px);position:relative;animation:sceneIn .64s cubic-bezier(.18,.75,.2,1) both}.scene[hidden]{display:none!important}@keyframes sceneIn{from{opacity:0;transform:translateY(24px) scale(.985);filter:blur(7px)}to{opacity:1;transform:none;filter:blur(0)}}.scene-portrait{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:3vw}.hero-copy{padding:0 0 35px 4vw;z-index:2}.eyebrow{display:flex;align-items:center;gap:13px;letter-spacing:.16em;font-size:11px;font-weight:700;margin:0 0 19px;white-space:nowrap}.eyebrow-line{width:32px;height:1px;background:currentColor;display:inline-block}.hero-copy h1{font:700 clamp(100px,11vw,190px)/.76 'Playfair Display',Georgia,serif;letter-spacing:-.075em;margin:0 0 39px 0;color:#252b31;text-shadow:1px 1px 0 rgba(255,255,255,.14)}em{font-style:italic;color:var(--cream);font-weight:600}.hero-copy h1 em{margin-left:44px;color:#efe4d6}.hero-lead{font-size:clamp(16px,1.35vw,21px);line-height:1.55;font-weight:500;max-width:540px;margin:0 0 27px}.hero-buttons{display:flex;align-items:center;gap:27px;flex-wrap:wrap}.big-cta,.text-cta{font-size:12px;letter-spacing:.15em;font-weight:700}.big-cta{background:var(--cream);border:1px solid var(--ink);box-shadow:5px 5px 0 var(--hair);padding:18px 21px;min-width:190px;display:flex;justify-content:space-between;gap:25px;transition:transform .2s,box-shadow .2s}.big-cta:hover{transform:translate(3px,3px);box-shadow:2px 2px 0 var(--hair)}.big-cta span{font-size:18px;line-height:.7}.text-cta{border:0;background:transparent;border-bottom:1px solid var(--ink);padding:8px 0}.tiny-note{font-size:10px;letter-spacing:.16em;font-weight:700;margin:48px 0 0;opacity:.62}.portrait-area{position:relative;min-height:640px;display:grid;place-items:center}.portrait-halo{position:absolute;width:min(41vw,610px);height:min(41vw,610px);border-radius:50%;border:1px dashed rgba(246,238,221,.75);transform:rotate(-12deg);box-shadow:0 0 0 30px rgba(245,238,225,.04),0 0 0 75px rgba(245,238,225,.025);animation:slowSpin 50s linear infinite}@keyframes slowSpin{to{transform:rotate(348deg)}}.portrait-card{position:relative;width:clamp(360px,34vw,565px);aspect-ratio:1/1;display:block;border:10px solid #e9dfd0;background:#718ba4;padding:0;box-shadow:15px 18px 0 rgba(48,49,46,.31),0 30px 75px rgba(31,40,44,.24);transform:rotate(3deg);transition:transform .4s,filter .4s;overflow:hidden}.portrait-card:hover{transform:rotate(0deg) scale(1.02)}.portrait-card img{width:100%;height:100%;display:block;object-fit:cover;transition:filter .5s,transform .5s}.portrait-card.memory-1 img{filter:grayscale(.9) sepia(.2) contrast(1.1)}.portrait-card.memory-2 img{filter:sepia(.45) saturate(.7) contrast(1.15);transform:scale(1.08)}.portrait-card.memory-3 img{filter:contrast(1.2) saturate(1.2) hue-rotate(-8deg)}.portrait-overlay{position:absolute;inset:0;background:linear-gradient(transparent 70%,rgba(21,31,36,.25));pointer-events:none}.portrait-label{position:absolute;bottom:19px;left:22px;color:white;font-size:10px;letter-spacing:.17em;font-weight:700;text-shadow:0 1px 7px #111}.portrait-stamp{position:absolute;right:16px;top:17px;border:2px solid rgba(248,242,228,.9);color:var(--cream);padding:8px 11px;font:700 10px 'DM Sans',sans-serif;letter-spacing:.13em;transform:rotate(8deg);background:rgba(60,42,40,.22)}.hand-note{font:italic 23px/1.2 'Playfair Display',Georgia,serif;color:var(--cream);position:absolute;right:-1vw;bottom:3vh;transform:rotate(-7deg);text-shadow:0 2px 8px rgba(20,30,38,.45)}.hand-note span{position:absolute;font-size:43px;left:-35px;top:-22px;transform:rotate(24deg)}.memory-caption{position:absolute;bottom:4%;left:6%;font-size:12px;letter-spacing:.09em;color:var(--cream);max-width:220px;line-height:1.5;text-transform:uppercase}.vertical-index{position:absolute;right:18px;top:50%;writing-mode:vertical-rl;transform:translateY(-50%);font-size:10px;letter-spacing:.19em;font-weight:700;opacity:.7}.footer-bar{height:57px;border-top:1px solid rgba(29,42,52,.2);display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 clamp(22px,3.4vw,62px);font-size:10px;font-weight:700;letter-spacing:.16em;position:relative;z-index:5}.footer-tip{opacity:.7}.scene-pips{display:flex;gap:8px}.scene-pips button{width:24px;height:8px;border:1px solid var(--ink);background:transparent;padding:0;transition:width .2s,background .2s}.scene-pips button.active{width:38px;background:var(--ink)}
.scene-archive{padding-top:clamp(25px,4vh,50px);display:flex;flex-direction:column}.archive-head h2,.route-heading h2{font:700 clamp(55px,6.3vw,98px)/.96 'Playfair Display',Georgia,serif;letter-spacing:-.055em;margin:0}.archive-head h2 em,.route-heading h2 em{color:var(--cream)}.archive-head>p:last-child,.route-heading>p:last-child{font-size:16px;line-height:1.5;margin:14px 0 0}.archive-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(360px,.8fr);gap:5vw;align-items:center;flex:1;min-height:480px;margin-top:25px}.object-board{height:min(51vh,550px);min-height:410px;position:relative;border:1px solid rgba(245,238,225,.42);border-radius:50%;background:radial-gradient(ellipse at center,rgba(224,218,205,.22),transparent 61%)}.object-board:before,.object-board:after{content:'';position:absolute;inset:8% 12%;border:1px dashed rgba(246,238,221,.45);border-radius:50%;transform:rotate(-22deg);pointer-events:none}.object-board:after{inset:22% 28%;transform:rotate(28deg)}.board-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-8deg);font:italic 24px 'Playfair Display',Georgia,serif;text-align:center;line-height:1.1;color:var(--cream);white-space:nowrap}.board-center span{font:500 10px 'DM Sans',Arial,sans-serif;letter-spacing:.19em;text-transform:uppercase;color:var(--ink)}.object-hotspot{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%) rotate(-4deg);border:1px solid var(--ink);background:var(--paper);color:var(--ink);box-shadow:5px 6px 0 rgba(47,43,42,.5);padding:12px 14px;min-width:155px;display:flex;align-items:center;gap:8px;justify-content:space-between;font-size:11px;letter-spacing:.09em;font-weight:700;z-index:2;transition:transform .24s,background .24s}.object-hotspot:hover,.object-hotspot.selected{transform:translate(-50%,-56%) rotate(2deg);background:#f6eee0}.object-hotspot span{color:var(--rust)}.object-hotspot b{font-size:18px;line-height:0}.case-card,.stop-card{background:#e8ddcc;box-shadow:11px 12px 0 rgba(56,46,43,.32);border:1px solid #43382f;padding:clamp(24px,2.4vw,38px);min-height:370px;display:flex;flex-direction:column;position:relative;transform:rotate(1deg)}.case-card:before,.stop-card:before{content:'';position:absolute;inset:7px;border:1px solid rgba(60,53,48,.3);pointer-events:none}.case-top,.stop-top,.case-bottom,.stop-bottom{display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:10px;letter-spacing:.15em;font-weight:700}.case-seal{border:1px solid var(--rust);color:var(--rust);padding:6px;transform:rotate(4deg)}.case-symbol,.stop-glyph{font:65px/1 'Playfair Display',Georgia,serif;color:var(--rust);margin:28px 0 5px}.case-card h3,.stop-card h3{font:700 clamp(29px,2.8vw,45px)/1.06 'Playfair Display',Georgia,serif;letter-spacing:-.035em;margin:0 0 14px}.case-card p,.stop-card p{font-size:16px;line-height:1.6;margin:0 0 28px;max-width:520px}.case-bottom,.stop-bottom{margin-top:auto;border-top:1px solid var(--line);padding-top:17px}.case-bottom button,.stop-bottom button{border:0;background:none;border-bottom:1px solid var(--ink);padding:4px 0;font-size:10px;letter-spacing:.13em;font-weight:700}.archive-route-link{align-self:flex-end;background:none;border:0;border-bottom:1px solid var(--ink);padding:12px 0;font-size:11px;font-weight:700;letter-spacing:.14em;margin:10px 0 0}.archive-route-link span{font-size:17px}.scene-route{display:flex;flex-direction:column}.route-heading{text-align:center}.route-heading .eyebrow{justify-content:center}.route-layout{display:grid;grid-template-columns:minmax(400px,1.1fr) minmax(350px,.9fr);gap:6vw;align-items:center;flex:1;margin:12px auto 0;max-width:1250px;width:100%}.orbit-map{position:relative;width:min(46vw,540px);height:min(46vw,540px);min-width:390px;min-height:390px;margin:auto}.map-ring{position:absolute;inset:11%;border:2px dashed rgba(244,236,218,.9);border-radius:50%;animation:slowSpin 90s linear infinite}.ring-two{inset:25%;border:1px solid rgba(51,49,49,.32);animation-direction:reverse}.map-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-8deg);width:125px;height:125px;border-radius:50%;background:#3b302d;color:var(--cream);display:flex;align-items:center;justify-content:center;flex-direction:column;box-shadow:6px 9px 0 rgba(30,40,45,.18)}.map-core span{font:italic 55px/.9 'Playfair Display',Georgia,serif}.map-core small{font-size:9px;text-align:center;letter-spacing:.16em;margin-top:8px}.station{position:absolute;left:var(--sx);top:var(--sy);transform:translate(-50%,-50%);border:0;background:transparent;color:var(--ink);min-width:130px;display:flex;flex-direction:column;align-items:center;padding:0;z-index:2;font-weight:700;transition:transform .2s}.station:hover,.station.active{transform:translate(-50%,-50%) scale(1.12)}.station-dot{width:20px;height:20px;border-radius:50%;border:3px solid var(--hair);background:var(--cream);box-shadow:0 0 0 7px rgba(244,236,218,.3);margin-bottom:5px}.station.active .station-dot{background:var(--rust);box-shadow:0 0 0 8px rgba(244,236,218,.65),0 0 25px var(--cream)}.station b{font:700 20px 'Playfair Display',Georgia,serif}.station small{font-size:10px;letter-spacing:.13em;white-space:nowrap}.map-decoration{position:absolute;font-size:31px;color:var(--cream);opacity:.8}.d1{left:16%;top:15%}.d2{right:17%;top:21%}.d3{left:22%;bottom:13%}.stop-card{min-height:385px;transform:rotate(-1deg)}.stop-glyph{margin:23px 0 8px}.route-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:10px;font-weight:700;letter-spacing:.14em;margin-top:10px}.route-footer button{border:none;background:transparent;font-size:10px;font-weight:700;letter-spacing:.14em;padding:10px 0;border-bottom:1px solid var(--ink)}
@media(max-width:1100px){.primary-nav{gap:16px}.scene{padding-left:4vw;padding-right:4vw}.hero-copy{padding-left:0}.hero-copy h1{font-size:clamp(83px,10vw,140px)}.portrait-card{width:38vw}.portrait-area{min-height:550px}.hand-note{font-size:18px;right:0}.archive-layout,.route-layout{gap:3vw}.object-hotspot{min-width:130px;font-size:10px;padding:10px}}
@media(max-width:800px){.topbar{height:auto;min-height:76px;flex-wrap:wrap;padding:13px 20px;gap:12px}.primary-nav{order:3;width:100%;justify-content:space-between;border-top:1px solid var(--line);padding-top:6px}.nav-link{font-size:10px}.social-link span{display:none}.top-actions{margin-left:auto}.scene{min-height:calc(100svh - 172px);padding:34px 20px 50px}.scene-portrait{grid-template-columns:1fr;gap:12px}.hero-copy{padding:0}.hero-copy h1{font-size:clamp(82px,15vw,138px);margin-bottom:26px}.hero-lead{margin-bottom:22px}.tiny-note{margin-top:24px}.portrait-area{min-height:460px}.portrait-card{width:min(70vw,420px)}.portrait-halo{width:70vw;height:70vw}.hand-note{right:3%;bottom:5%;font-size:19px}.memory-caption{left:2%;bottom:2%;max-width:140px}.vertical-index{display:none}.archive-layout,.route-layout{grid-template-columns:1fr}.object-board{height:420px;min-height:420px}.case-card,.stop-card{min-height:330px}.orbit-map{width:min(90vw,500px);height:min(90vw,500px);min-width:330px;min-height:330px}.route-heading h2,.archive-head h2{font-size:clamp(58px,9vw,82px)}.route-footer{margin-top:30px}.footer-tip{display:none}}
@media(max-width:520px){.brand{font-size:12px}.brand-mark{width:37px;height:37px;font-size:27px}.social-link,.buy-link{height:37px;padding:0 12px}.buy-link{min-width:70px}.scene{padding:30px 20px 45px}.eyebrow{font-size:9px;white-space:normal}.hero-copy h1{font-size:clamp(78px,17vw,104px)}.hero-copy h1 em{margin-left:20px}.hero-lead{font-size:16px}.portrait-area{min-height:360px}.portrait-card{width:min(76vw,350px);border-width:7px;box-shadow:9px 11px 0 rgba(48,49,46,.31)}.hand-note{font-size:14px;bottom:-6px}.memory-caption{font-size:9px;bottom:-12px}.archive-head h2,.route-heading h2{font-size:56px}.archive-head>p:last-child,.route-heading>p:last-child{font-size:15px}.object-board{min-height:350px;height:350px;margin:15px 0}.object-hotspot{min-width:116px;padding:8px;font-size:9px}.object-hotspot b{font-size:15px}.board-center{font-size:19px}.case-card,.stop-card{padding:25px;min-height:350px}.route-layout{margin-top:28px}.orbit-map{min-width:300px;min-height:300px;width:84vw;height:84vw}.station{min-width:100px}.station small{font-size:8px}.station b{font-size:16px}.map-core{width:95px;height:95px}.map-core span{font-size:45px}.route-footer span{display:none}.footer-bar{padding:0 20px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
.hero-copy,.archive-head{isolation:isolate;position:relative}.hero-copy:before,.archive-head:before{content:'';position:absolute;z-index:-1;inset:-35px -30px;background:radial-gradient(ellipse at 42% 48%,rgba(133,157,179,.96) 0%,rgba(133,157,179,.85) 43%,rgba(133,157,179,.45) 67%,transparent 80%);pointer-events:none}.archive-head:before{inset:-24px -18px;max-width:880px}
@media(max-width:800px){.backdrop{background-size:100% auto;background-repeat:repeat-y;background-position:center top}.hero-copy:before,.archive-head:before{background:radial-gradient(ellipse at 45% 45%,rgba(133,157,179,.92),rgba(133,157,179,.45) 65%,transparent 80%)}}
