@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap";.stroke-text{display:block;width:100%;line-height:0}.stroke-text--hover{cursor:pointer}.stroke-text__svg{display:block;width:100%;max-width:var(--stroke-text-width, 600px);height:auto;margin:0 auto;overflow:visible}.stroke-text__stroke,.stroke-text__fill{-webkit-user-select:none;user-select:none}:root{font-family:DM Sans,Helvetica Neue,sans-serif;color:#eaeaea;background:#101010;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}button:focus-visible,[role=button]:focus-visible{outline:1px solid #fff;outline-offset:7px}main{height:100svh;min-height:740px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 25% 53%,#1a1a1a 0,transparent 57%)}main:after,.intro:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.035;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='.92' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.8' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}header{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;padding:32px 4%;z-index:3}.wordmark{font-weight:700;font-size:30px;letter-spacing:-3px;padding:0}.wordmark span{font-size:10px;vertical-align:top;letter-spacing:0;margin-left:6px}.header-title{font:10px/1.8 IBM Plex Mono,monospace;letter-spacing:1.2px;margin-left:29px}.header-title span{color:#777;font-size:9px}.about-link{margin-left:auto;font:10px IBM Plex Mono,monospace;letter-spacing:1.5px}.about-link span{margin-left:24px;font-size:18px}.side-label{position:absolute;left:35px;top:43%;writing-mode:vertical-rl;transform:rotate(180deg);font:9px IBM Plex Mono,monospace;letter-spacing:2px;color:#7d7d7d;z-index:2}.wheel-space{position:absolute;left:0;top:50%;width:47vw;height:78vh;transform:translateY(-47%)}.wheel{position:absolute;height:110%;width:auto;right:17%;top:-4%;overflow:visible;color:#d3d3d3;fill:none;stroke:currentColor;stroke-width:1.2}.rotor{transition:transform 1.8s cubic-bezier(.22,.7,.15,1)}.fine{stroke-width:.65;opacity:.48}.ghost{opacity:.14;stroke-width:.7}.stand{stroke-width:2;opacity:.5}.cabin{transition:transform 1.8s cubic-bezier(.22,.7,.15,1);stroke-width:1.2;fill:#111}.wheel-node{cursor:pointer;fill:#161616;stroke:#727272}.wheel-node:hover{stroke:#fff}.wheel-node text{stroke:none;fill:#e7e7e7;font:11px IBM Plex Mono,monospace;transition:transform 1.8s cubic-bezier(.22,.7,.15,1)}.wheel-caption{position:absolute;left:19%;bottom:-5%;font:8px IBM Plex Mono,monospace;letter-spacing:1.5px;color:#828282;display:flex;gap:10px;align-items:center}.live-dot,.paused-dot{display:inline-block;width:5px;height:5px;background:#d8d8d8;border-radius:50%;box-shadow:0 0 8px #ffffff40}.paused-dot{background:#636363;box-shadow:none}.connector{position:absolute;left:39%;width:11%;top:46%;display:flex;align-items:center}.connector span{width:100%;height:1px;background:linear-gradient(90deg,#727272,#343434)}.connector i{width:5px;height:5px;border:1px solid #969696;flex-shrink:0;border-radius:50%}.story{position:absolute;left:53%;right:8%;top:29%;animation:reveal .8s both}.eyebrow{font:9px IBM Plex Mono,monospace;letter-spacing:1.4px;display:flex;justify-content:space-between;gap:20px}.year{color:#8e8e8e}h1{font-size:clamp(40px,4.6vw,79px);font-weight:450;line-height:1.08;letter-spacing:-3.5px;margin:36px 0 30px}h1 em{font-style:normal;color:#8e8e8e}.description{max-width:400px}.description h2{font-size:13px;font-weight:500;letter-spacing:.1px;margin-bottom:15px}.description p{font-size:12px;color:#919191;line-height:2.1;letter-spacing:1px}.tags{display:flex;gap:18px;margin-top:27px;font:8px IBM Plex Mono,monospace;letter-spacing:1px;color:#afafaf}.tags span:before{content:"+";margin-right:6px;color:#626262}.story-bottom{border-top:1px solid #333333;margin-top:37px;padding-top:16px;display:flex;justify-content:space-between}.placeholder{font-size:9px;letter-spacing:1px;color:#656565}.chapter-nav{position:absolute;bottom:16%;left:53%;right:8%;display:flex;align-items:center;gap:10px}.counter{font:21px IBM Plex Mono,monospace}.counter span{font-size:10px;color:#727272}.nav-line{display:flex;gap:5px;flex:1;margin:0 25px}.nav-line button{height:20px;flex:1;position:relative;padding:0}.nav-line button:after{content:"";position:absolute;height:2px;background:#333;left:0;right:0;top:9px}.nav-line button.active:after{background:#dbdbdb}.arrow{border:1px solid #3d3d3d;border-radius:50%;width:36px;height:36px;transition:.2s}.arrow:hover{color:#111;background:#e4e4e4}footer{position:absolute;bottom:0;left:4%;right:4%;height:74px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #323232;font:8px IBM Plex Mono,monospace;letter-spacing:1.2px;color:#858585}.motion{font:inherit;letter-spacing:inherit;display:flex;gap:10px;align-items:center}.scroll-hint b{font-size:17px;font-weight:400;margin-left:30px}.intro{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;background:#101010;display:flex;align-items:center;justify-content:center;transition:opacity .85s,visibility .85s}.intro.dismissed{opacity:0;visibility:hidden;pointer-events:none}.intro-top{position:absolute;top:40px;left:4%;right:4%;display:flex;justify-content:space-between;font:9px IBM Plex Mono,monospace;letter-spacing:1.5px;color:#929292}.intro-center{width:85%;max-width:1160px}.intro-center p{text-align:center;margin-top:35px;font:9px IBM Plex Mono,monospace;letter-spacing:3px;color:gray;animation:reveal 1s 2s both}.enter{position:absolute;bottom:65px;font:10px IBM Plex Mono,monospace;letter-spacing:2px}.enter span{margin-left:30px}.intro-progress{position:absolute;bottom:0;left:0;height:2px;background:#d3d3d3;animation:progress 4.7s linear forwards}@keyframes progress{0%{width:0}to{width:100%}}@keyframes reveal{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@media(min-width:1600px){.story{top:31%}.chapter-nav{bottom:18%}}@media(max-width:760px){main{min-height:900px;height:100svh}header{padding:25px 6%}.header-title{margin-left:20px;font-size:9px}.header-title span{font-size:7px}.about-link{font-size:8px}.about-link span{margin-left:7px}.side-label{left:16px;top:22%;font-size:7px}.wheel-space{top:29%;height:370px;width:100%;transform:translateY(-50%);opacity:.75}.wheel{right:48%;height:100%;top:0}.wheel-caption{left:55%;bottom:22%;max-width:110px;font-size:7px;line-height:1.8}.connector{display:none}.story{left:12%;right:10%;top:47%}.eyebrow{font-size:8px}h1{font-size:44px;letter-spacing:-2px;margin:22px 0}.description h2{font-size:12px}.description p{font-size:11px}.tags{margin-top:20px;font-size:7px;gap:13px}.story-bottom{margin-top:22px}.chapter-nav{left:12%;right:10%;bottom:12%}.nav-line{margin:0 12px}footer{left:6%;right:6%;height:65px;font-size:7px}.scroll-hint{display:none}.intro-top{font-size:7px}.intro-center p{font-size:7px;letter-spacing:1.5px}.intro-center{width:94%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.story{top:23%;right:7%}.story h1{font-size:clamp(37px,4.1vw,70px);margin:27px 0 24px;letter-spacing:-2.5px}.description{max-width:490px}.description h2{font-size:12px;line-height:1.8}.description p{font-size:12px;line-height:2;letter-spacing:.5px}.tags{gap:13px;font-size:7px;flex-wrap:wrap}.story-bottom{margin-top:25px;min-height:49px}.chapter-note{font-size:10px;letter-spacing:1px;color:#999}.project-entry{display:flex;gap:19px;align-items:center;width:100%}.project-link{display:inline-flex;align-items:center;gap:26px;padding:12px 17px;border:1px solid #aaa;color:#efefef;text-decoration:none;font-size:11px;letter-spacing:1px;white-space:nowrap;transition:background .2s,color .2s}.project-link:hover{background:#efefef;color:#111}.project-link:focus-visible{outline:2px solid #fff;outline-offset:4px}.project-link span{font-size:16px}.project-hint{font-size:10px;color:#aaa;line-height:1.6}.project-hint small{display:block;color:#737373;font:8px/2 IBM Plex Mono,monospace;letter-spacing:.3px}.wheel-node.selected{stroke:#fff;fill:#ddd}.wheel-node.selected text{fill:#111}.chapter-nav{bottom:13%}.nav-line{gap:4px;margin:0 16px}@media(max-width:1000px)and (min-width:761px){.story{top:22%;left:50%;right:6%}.story h1{font-size:35px}.description p{font-size:11px;line-height:1.85}.eyebrow{font-size:8px;letter-spacing:.5px}.project-hint{font-size:9px}.project-entry{gap:12px}.tags{font-size:6px;gap:9px}.chapter-nav{left:50%;right:6%;bottom:12%}}@media(max-width:760px){main{min-height:1080px}.story{top:40%;left:10%;right:10%}.story h1{font-size:42px;margin:22px 0}.wheel-space{top:24%}.description p{font-size:12px;line-height:2}.description h2{font-size:12px}.chapter-nav{left:10%;right:10%;bottom:12%}.project-entry{gap:14px}.project-hint,.chapter-note{font-size:9px}.tags{font-size:7px}.eyebrow{font-size:7px;letter-spacing:.6px}.wheel-caption{bottom:28%}}@media(min-width:761px)and (max-height:800px){main{min-height:830px}}.description p{font-size:14px;line-height:1.95}.description h2{font-size:14px}@media(max-width:1000px)and (min-width:761px){.description p{font-size:13px;line-height:1.9}.description h2{font-size:13px}.story{top:20%}}@media(max-width:760px){.description p{font-size:14px;line-height:1.95}.description h2{font-size:14px}main{min-height:1150px}.story{top:38%}}.hanging-badge{position:absolute;left:39%;top:0;width:139px;z-index:4;transform-origin:50% 0;animation:badge-settle 2.4s cubic-bezier(.2,.7,.2,1) both;transition:filter .3s}.badge-cord{width:1px;height:115px;margin:auto;background:linear-gradient(#666,#c6c6c6)}.badge-clip{position:relative;margin:-1px auto -9px;width:10px;height:23px;border:1px solid #9b9b9b;border-radius:4px;background:#272727;z-index:2;box-shadow:inset 0 0 0 2px #161616}.id-badge{position:relative;background:#e6e5df;color:#222;border:1px solid #b4b4ae;border-radius:6px;padding:14px 11px 10px;box-shadow:0 14px 24px #0006;transform:rotate(-4deg);transform-origin:50% 0;transition:transform .6s}.hanging-badge:hover .id-badge{transform:rotate(3deg)}.badge-slot{width:25px;height:4px;margin:-8px auto 12px;border-radius:4px;background:#191919;box-shadow:0 1px #fff}.badge-topline{display:flex;justify-content:space-between;gap:4px;font:5px IBM Plex Mono,monospace;letter-spacing:.5px;margin-bottom:9px;color:#575754}.badge-photo{height:119px;overflow:hidden;background:#bcbcb8;border:1px solid #b7b7b1}.badge-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 27%;filter:none}.hanging-badge:hover .badge-photo img{filter:none}.badge-name{font-size:13px;font-weight:600;letter-spacing:-.3px;margin-top:9px;line-height:1.4}.badge-name span{display:block;font-size:9px;font-weight:400;letter-spacing:2px;margin-top:3px}.badge-bottomline{border-top:1px solid #bcbcb5;padding-top:8px;margin-top:10px;display:flex;align-items:center;justify-content:space-between;gap:5px}.badge-bottomline>span{font:4px IBM Plex Mono,monospace;letter-spacing:.5px}.badge-barcode{width:36px;height:12px;background:repeating-linear-gradient(90deg,#333 0 1px,transparent 1px 3px,#333 3px 5px,transparent 5px 6px,#333 6px 7px,transparent 7px 10px)}@keyframes badge-settle{0%{transform:translateY(-310px) rotate(-10deg);opacity:0}35%{opacity:1}60%{transform:translateY(0) rotate(4deg)}80%{transform:rotate(-2deg)}to{transform:rotate(0)}}@media(min-width:1500px){.hanging-badge{left:42%;width:151px}.badge-cord{height:135px}.badge-photo{height:132px}}@media(max-width:1000px)and (min-width:761px){.hanging-badge{left:31%;width:115px}.badge-cord{height:110px}.badge-photo{height:95px}.badge-name{font-size:11px}.badge-topline{font-size:4px}.badge-bottomline>span{font-size:3px}}@media(max-width:760px){.hanging-badge{left:auto;right:14%;width:113px}.badge-cord{height:106px}.badge-photo{height:96px}.badge-name{font-size:11px}.badge-topline{font-size:4px}.badge-bottomline>span{font-size:3px}.id-badge{padding:14px 9px 9px}.badge-name span{font-size:8px}.badge-barcode{width:27px}}@media(prefers-reduced-motion:reduce){.hanging-badge{animation:none}.id-badge,.badge-photo img{transition:none}}.badge-cords{position:relative;height:91px;display:flex;justify-content:center;gap:17px}.badge-cords span{display:block;width:1px;height:100%;background:linear-gradient(#666,#c6c6c6)}.badge-clip{width:28px;height:18px;margin-top:-1px;margin-bottom:-9px;border-radius:3px}.badge-slot{width:32px}@media(min-width:1500px){.badge-cords{height:111px}}@media(max-width:1000px)and (min-width:761px){.badge-cords{height:86px}}@media(max-width:760px){.badge-cords{height:82px}}button.id-badge{display:block;width:100%;text-align:left;cursor:pointer;color:#222}.seaside-badge .id-badge{padding:15px 10px 18px;background:#f0ede5}.seaside-badge .badge-slot{margin-bottom:14px}.seaside-badge .badge-photo{height:auto;aspect-ratio:1 / 1}.seaside-badge .badge-photo img{object-position:50% 30%;filter:none}.seaside-caption{font-family:Songti SC,"Noto Serif SC",serif;font-size:11px;letter-spacing:1px;margin-top:13px;line-height:1.8;text-align:center}.id-badge:focus-visible{outline:2px solid #fff;outline-offset:5px}.seaside-caption{font-size:9px;letter-spacing:.6px;margin-top:11px}.seaside-caption span{display:block;margin-top:3px;font-family:DM Sans,sans-serif;font-size:7px;letter-spacing:.5px;color:#888}.seaside-caption{text-align:left}.seaside-caption{font-size:11px}.seaside-caption span{font-size:9px}@media(min-width:761px){main{height:100svh;height:100dvh;min-height:640px}.story{top:21%;left:53%;right:7%}.story h1{font-size:clamp(34px,min(4.1vw,7.1vh),66px);margin:22px 0 20px}.description h2{margin:0 0 12px}.description p{margin:0;line-height:1.9}.tags{margin-top:20px}.story-bottom{margin-top:20px;padding-top:13px}.chapter-nav{bottom:11%;left:53%;right:7%}footer{height:56px}.wheel-space{height:76%;top:51%;transform:translateY(-47%)}.hanging-badge{left:39%;width:clamp(112px,10vw,139px)}.badge-cords{height:clamp(68px,10vh,100px)}.badge-photo{height:auto;aspect-ratio:1 / 1.06}}@media(min-width:761px)and (max-height:740px){.story{top:20%}.story h1{font-size:clamp(32px,3.7vw,48px);margin:15px 0 16px}.description p{font-size:14px;line-height:1.8}.description h2{font-size:13px;margin-bottom:10px}.tags{margin-top:14px}.story-bottom{margin-top:15px;padding-top:10px;min-height:40px}.project-link{padding:9px 14px}.chapter-nav{bottom:10%}footer{height:45px}header{padding-top:24px;padding-bottom:24px}.hanging-badge{width:114px}.badge-cords{height:65px}.badge-name{font-size:11px}}@media(min-width:761px)and (max-width:1000px){.story,.chapter-nav{left:50%;right:6%}.hanging-badge{left:32%;width:110px}.story h1{font-size:34px}.description p{font-size:13px;line-height:1.85}}.contact-panel{position:absolute;right:4%;top:85px;width:320px;padding:20px 23px;background:#191919;border:1px solid #555;box-shadow:0 16px 45px #0008;z-index:6;animation:reveal .25s both}.contact-heading{display:flex;align-items:center;justify-content:space-between;font:9px IBM Plex Mono,monospace;letter-spacing:1.5px;color:#aaa}.contact-heading button{font-size:22px;color:#ddd;padding:0 0 0 15px}.contact-panel>a{position:relative;display:block;border-top:1px solid #393939;margin-top:16px;padding-top:16px;padding-right:20px;color:#eee;text-decoration:none}.contact-panel>a>span{display:block;font-size:9px;letter-spacing:1px;color:#999;margin-bottom:8px}.contact-panel strong{font-size:16px;font-weight:400;letter-spacing:.3px}.contact-panel i{position:absolute;right:0;bottom:1px;font-style:normal;color:#999}.contact-panel a:hover strong{color:#fff;text-decoration:underline;text-underline-offset:4px}@media(max-width:760px){.contact-panel{right:6%;width:min(320px,88vw);top:78px}.about-link{letter-spacing:1px}}.description .body-paragraphs p+p{margin-top:12px}.id-badge{padding-bottom:12px}.badge-name{margin-bottom:0}
