:root{font-family:'DM Sans',Arial,'Microsoft YaHei',sans-serif;color:#080808;background:#fff;font-synthesis:none;--ease:cubic-bezier(.76,0,.24,1);--nav-height:70px}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button,a,select{touch-action:manipulation}button{background:none;border:0;padding:0}a{color:inherit}button:focus-visible,a:focus-visible,select:focus-visible{outline:2px solid #6187a5;outline-offset:5px}svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;flex-shrink:0}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.skip{position:fixed;top:-50px;left:20px;z-index:100}.skip:focus{top:10px;background:white;padding:10px}#webgl{position:fixed;inset:0;pointer-events:none;z-index:2}#webgl canvas{width:100%;height:100%;display:block}.site-header{position:fixed;top:35px;left:0;width:100%;text-align:center;z-index:10;transition:opacity .45s}.site-header h1{font-size:16px;line-height:20px;font-weight:400;margin:0;letter-spacing:-.55px}.site-header a{text-underline-offset:3px}.site-header a:hover{opacity:.6}#loading{position:fixed;inset:0;background:white;display:flex;align-items:center;justify-content:center;flex-direction:column;font:clamp(64px,12vw,180px)/1 'Instrument Serif',serif;z-index:100;transition:opacity .8s}#loading span{font:10px/1.5 'DM Sans',sans-serif;letter-spacing:.2em;margin-top:25px}#loading.done{opacity:0;pointer-events:none}body[data-view=home]{overflow:hidden}#home{height:100svh;position:relative}.home-title{position:absolute;left:1.7%;width:96.6%;top:calc(50svh - 22.61vw);font:18.1184vw/.9 'Instrument Serif',serif;text-align:center;margin:0;letter-spacing:-.045em;transform:scaleX(1.14);transform-origin:center;pointer-events:none}.gl-ready .home-title{opacity:0}#home-hit{position:absolute;inset:0;touch-action:none}#open-cover{position:absolute;width:65vw;height:26vw;left:17.5vw;top:calc(50% - 13vw);cursor:inherit}#fallback-cover{position:absolute;pointer-events:none;inset:calc(50% - 13vw) 17.5vw auto;height:26vw}#fallback-cover img{width:100%;height:100%;object-fit:cover}#fallback-cover span{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font:7.4vw 'Instrument Serif',serif}.gl-ready #fallback-cover{visibility:hidden}.dock{position:fixed;z-index:30;bottom:30px;left:50%;display:flex;align-items:center;gap:5px;transform:translateX(-50%);color:white;user-select:none;white-space:nowrap}.dock-main,.large-control,#profile-menu,#photo-details,#cursor{background:rgba(82,83,78,.38);backdrop-filter:blur(20px) saturate(1.15);-webkit-backdrop-filter:blur(20px) saturate(1.15);box-shadow:inset 0 0 1px 1px #ffffff26,0 4px 10px #0002}.dock-main{border-radius:6px;padding:10px;display:flex;height:70px;align-items:center;gap:10px;transition:width .65s var(--ease),background .4s;width:257px;overflow:hidden}#dock-open{display:flex;gap:20px;align-items:center;color:white;height:50px;text-transform:uppercase;flex:1;min-width:0}#dock-image{width:50px;height:50px;object-fit:cover;border-radius:50%;flex-shrink:0}.dock-copy{min-width:66px;display:flex;flex-direction:column;align-items:center;gap:2px;flex:1}.dock-copy small{font-size:10px;line-height:12px;font-weight:400;text-transform:none;opacity:.78;max-height:12px}.dock-copy small:empty{display:none}.dock-copy strong{font-size:15px;line-height:18px;font-weight:600;white-space:nowrap}.dock-actions{display:flex;gap:5px;transition:opacity .4s,width .65s var(--ease);width:77px;flex-shrink:0}.dock-actions button{border:1px solid #ffffff5c;border-radius:16px;width:36px;height:24px;display:grid;place-items:center;transition:background .2s}.dock-actions button:hover{background:#ffffff35}.dock-actions svg{width:16px;height:16px}.large-control{height:70px;min-width:70px;border-radius:50px;color:white;display:flex;align-items:center;justify-content:center;padding:0 23px;transition:all .45s var(--ease)}.large-control span{font-size:15px;max-width:0;opacity:0;overflow:hidden;margin-left:0;transition:all .45s var(--ease)}.large-control:hover{border-radius:6px}.large-control:hover span{max-width:70px;opacity:1;margin-left:10px}body[data-view=home] #back{display:none}.dock.compact .dock-main{width:180px}.dock.compact .dock-actions{opacity:0;width:0;pointer-events:none}.dock.compact .dock-main{gap:0}.dock.compact #dock-open{gap:12px}#cursor{position:fixed;top:0;left:0;padding:9px 14px;border-radius:6px;color:white;font-size:12px;font-weight:600;pointer-events:none;z-index:50;opacity:0;transition:opacity .2s;will-change:transform}#cursor.show{opacity:1}#collection{position:relative}#collection-title{font:15vw/1 'Instrument Serif',serif;text-align:center;margin:0;position:absolute;top:190px;left:0;width:100%;letter-spacing:-.035em;pointer-events:none;z-index:1}#photo-hits{position:absolute;inset:0;z-index:5;pointer-events:none}.photo-hit{position:absolute;pointer-events:auto;overflow:hidden;will-change:transform,width,height;touch-action:pan-y}.photo-hit img{width:100%;height:100%;object-fit:cover}.gl-ready .photo-hit img{opacity:0}.list-mode .photo-hit{touch-action:none}#next-collection{position:absolute;left:25%;width:50%;text-align:center;display:flex;flex-direction:column;align-items:center;padding:140px 0 200px}#next-collection span{font-size:15px}#next-collection strong{font:10vw/1.1 'Instrument Serif',serif;font-weight:400;margin-top:20px}#next-collection i{font-size:30px;font-style:normal}.list-mode #collection-title,.list-mode #next-collection{opacity:0;pointer-events:none}body.list-mode{overflow:hidden}#about{padding-top:100px}.about-heading{text-align:center}.about-heading h2{font:21vw/.82 'Instrument Serif',serif;font-weight:400;letter-spacing:-.045em;margin:0}.about-heading h2 span{display:block}.about-heading p{font-size:3.2vw;margin:35px 0 55px;letter-spacing:-.07em}#about-image{width:29.3vw;height:44vw;margin:0 auto;position:relative;z-index:3}#about-image img{width:100%;height:100%;object-fit:cover}.gl-ready #about-image img{opacity:0}.profile{max-width:610px;margin:100px auto 160px;font-size:17px;line-height:1.95}.profile p{margin:0 0 30px}.profile-lead{font-size:28px!important;line-height:1.65!important}.profile .english{font-size:20px;line-height:1.5;letter-spacing:-.03em}.profile a,.profile button{display:block;font-size:15px;margin:24px 0;text-underline-offset:5px;text-decoration:underline}footer{padding:35px 40px 130px;display:flex;justify-content:space-between;font-size:12px}#profile-menu{position:fixed;bottom:110px;left:50%;width:250px;transform:translateX(-50%);z-index:40;border-radius:6px;padding:12px;color:white}#profile-menu a,#profile-menu button{padding:14px;display:flex;justify-content:space-between;width:100%;font-size:14px;text-decoration:none;border-radius:4px}#profile-menu a:hover,#profile-menu button:hover{background:#ffffff20}#archive{padding:140px 40px 150px}#archive h2{font:13vw/1 'Instrument Serif',serif;margin:0 0 25px;letter-spacing:-.04em}.archive-filters{display:flex;align-items:center;gap:25px;margin:45px 0 35px;border-top:1px solid #ddd;padding-top:20px;font-size:13px}.archive-filters select{font:inherit;background:none;border:0;margin-left:8px;max-width:160px}.archive-filters>span{margin-left:auto}#archive-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:35px 25px}#archive-grid figure{margin:0}#archive-grid button{width:100%}#archive-grid img{display:block;width:100%;aspect-ratio:1.4;object-fit:cover}#archive-grid figcaption{display:flex;justify-content:space-between;font-size:11px;margin-top:10px;gap:10px;color:#666}#load-more{margin:65px auto;display:block;border-bottom:1px solid;padding:10px}#viewer{position:fixed;inset:0;z-index:20;background:transparent;pointer-events:none}body.viewing .site-header{opacity:0;pointer-events:none}body.viewing #main{pointer-events:none}body.viewing .dock{z-index:40}body.viewing #back{display:none}#viewer-fallback{position:absolute;inset:8.3%;width:83.4%;height:83.4%;object-fit:contain}.gl-ready #viewer-fallback{display:none}#photo-details{position:fixed;bottom:110px;left:50%;transform:translateX(-50%);padding:16px 20px;border-radius:6px;z-index:45;color:white;font-size:13px;line-height:1.8;min-width:250px;text-align:center}.transitioning #home-hit,.transitioning .photo-hit{pointer-events:none}.no-gl #viewer{background:#000;pointer-events:auto}.no-gl #viewer-fallback{display:block}
@media(min-width:641px) and (max-width:1024px){#open-cover{width:80vw;height:32vw;left:10vw;top:calc(50% - 16vw)}#fallback-cover{inset:calc(50% - 16vw) 10vw auto;height:32vw}.home-title{top:calc(50svh - 27.83vw)}}
@media(max-width:640px){.site-header{top:25px;padding:0 15px}.site-header h1{font-size:12px;letter-spacing:-.35px}.site-header span{display:inline}.home-title{font-size:18.12vw;top:calc(50svh - 34.78vw)}#open-cover{width:100%;height:40vw;left:0;top:calc(50% - 20vw)}#fallback-cover{inset:calc(50% - 20vw) 0 auto;height:40vw}#fallback-cover span{font-size:12vw}.dock{bottom:max(20px,env(safe-area-inset-bottom));gap:5px}.dock-main{width:240px;height:60px;padding:10px;gap:8px}#dock-open{height:40px;gap:10px}#dock-image{width:40px;height:40px}.dock-copy strong{font-size:13px}.dock-actions{gap:4px;width:64px}.dock-actions button{width:30px;height:22px}.dock.compact .dock-main{width:168px}.large-control{min-width:60px;height:60px;padding:0 18px}.large-control:hover{border-radius:50px}.large-control:hover span{max-width:0;margin:0;opacity:0}#collection-title{top:150px;font-size:18vw}#next-collection{left:5%;width:90%;padding:100px 0 140px}#next-collection strong{font-size:18vw}#about{padding-top:120px}.about-heading h2{font-size:35vw}.about-heading p{font-size:5.5vw;margin:30px 0 50px}#about-image{width:64vw;height:96vw}.profile{margin:70px 25px 90px;font-size:15px;line-height:1.85}.profile-lead{font-size:24px!important}.profile .english{font-size:18px}footer{padding:25px 25px 130px;gap:20px;line-height:1.5}#archive{padding:120px 15px}#archive h2{font-size:25vw}.archive-filters{gap:12px;flex-wrap:wrap}.archive-filters select{max-width:105px;font-size:12px}.archive-filters>span{width:100%;margin:10px 0 0}#archive-grid{grid-template-columns:repeat(2,1fr);gap:25px 12px}#archive-grid figcaption{font-size:10px;display:block;overflow-wrap:anywhere}#archive-grid figcaption span{display:block;margin-top:4px}#cursor{display:none}#profile-menu,#photo-details{bottom:95px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}#cursor{display:none}}

html{scrollbar-width:none}html::-webkit-scrollbar,body::-webkit-scrollbar{display:none}
@media(max-width:640px){.dock-main{width:207px;height:50px;padding:10px;gap:5px}#dock-open{height:30px;gap:10px}#dock-image{width:30px;height:30px}.dock-copy{min-width:66px}.dock-copy strong{font-size:12px}.dock.compact .dock-main{width:146px}.dock-actions{width:61px;gap:5px}.dock-actions button{width:28px;height:22px}.large-control{height:50px;min-width:50px;padding:0 13px}}

.dock.photo-hover .dock-main{width:216px}.dock.photo-hover .dock-actions{width:36px}.dock.photo-hover #previous{display:none}@media(max-width:640px){.dock.photo-hover .dock-main{width:174px}.dock.photo-hover .dock-actions{width:28px}}

#home{overflow:hidden}.dock{transition:opacity .4s,translate .4s}.viewer-idle .dock{opacity:0;translate:0 10px;pointer-events:none}.viewer-idle #cursor{opacity:0}

@media(max-width:640px){.dock{bottom:max(10px,env(safe-area-inset-bottom))}.home-title{top:calc(50svh - 33.333vw)}}

.dock.mode-hover #back{display:none}

#next-collection.has-preview strong,#next-collection.has-preview i{visibility:hidden}#next-collection.has-preview{height:100svh;padding-top:60px}

.dock.about-mode .dock-main{width:216px}.dock.about-mode #previous{display:none}.dock.about-mode .dock-actions{width:36px}.about-heading h2{line-height:.78}.about-heading p{margin-top:30px;margin-bottom:45px}@media(max-width:640px){.dock.about-mode .dock-main{width:174px}.dock.about-mode .dock-actions{width:28px}}

@media(max-width:640px){.site-header{top:22px}.site-header h1{font-size:14px;line-height:16px;letter-spacing:-.55px}}

/* The first reveal shares one clock with the WebGL stage. */
#loading{transition:opacity .22s ease,visibility .22s;}
#loading.done{visibility:hidden;}
.booting .site-header,.entering .site-header{opacity:var(--entry-header,0);translate:0 calc((1 - var(--entry-header,0)) * -8px);transition:none;}
.booting .dock,.entering .dock{opacity:var(--entry-dock,0);translate:0 var(--entry-dock-y,18px);transition:none;pointer-events:none;}
.entering #home-hit{pointer-events:none;}
#cursor{padding:8px 11px;border-radius:20px;font-size:10px;line-height:14px;letter-spacing:.08em;font-weight:500;background:rgba(70,76,78,.25);border:1px solid #ffffff3d;box-shadow:inset 0 1px 0 #ffffff35,0 3px 14px #00000012;backdrop-filter:blur(12px) saturate(1.1);-webkit-backdrop-filter:blur(12px) saturate(1.1);transition:opacity .18s;}
@media(pointer:coarse){#cursor{display:none;}}
@media(prefers-reduced-motion:reduce){.booting .site-header,.entering .site-header,.booting .dock,.entering .dock{opacity:1;translate:none;}}

/* About keeps a measured rhythm around the M101 photograph. */
#about{--about-margin:60px;--about-gap:30px;position:relative;padding-top:clamp(85px,6.944444vw,120px);overflow:hidden;background:#fff;}
#about .about-heading{position:relative;text-align:center;}
#about .about-heading h2{margin:0;font-family:'Instrument Serif',serif;font-size:clamp(144px,21.78vw,420px);font-weight:400;line-height:.73333333;letter-spacing:-.025em;transform:none;}
#about .about-name-line{display:block;transform:none;}
#about #about-role{margin:32px 0 65px;font-size:clamp(20px,3.333333vw,64px);line-height:1;font-weight:400;letter-spacing:-.045em;}
#about-image{width:calc((100% - var(--about-margin)*2 - var(--about-gap)*2)/3);height:auto;aspect-ratio:2/3;margin:0 auto;position:relative;z-index:3;}
#about-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%;}
#m101-image-hit{position:absolute;inset:0;z-index:1;width:100%;height:100%;cursor:zoom-in;touch-action:manipulation;}
#about .profile{position:relative;z-index:3;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--about-gap);max-width:none;margin:90px var(--about-margin) 0;font-size:48px;line-height:1.15;}
#about .profile-label{grid-column:1/span 4;margin:0;font:400 48px/1.1 'Instrument Serif',serif;letter-spacing:-.035em;}
#about .profile-content{grid-column:5/span 8;max-width:850px;min-width:0;}
#about .profile-bio{margin:0;font-size:clamp(32px,3.333333vw,56px);line-height:1.15;letter-spacing:-.035em;overflow-wrap:break-word;}
#about .profile .english{max-width:720px;margin:38px 0 0;font-size:24px;line-height:1.4;letter-spacing:-.025em;color:#555;}
#about .profile-links{margin-top:64px;}
#about .profile-row{display:grid;grid-template-columns:150px minmax(0,1fr);column-gap:30px;align-items:start;border-top:1px solid #00000024;padding:20px 0;font-size:20px;line-height:1.3;}
#about .profile-row:last-child{border-bottom:1px solid #00000024;}
#about .profile-row-label{letter-spacing:-.025em;}
#about .profile-row a,#about .profile-row button{display:flex;align-items:baseline;justify-content:space-between;width:100%;gap:20px;margin:0;padding:0;font-size:20px;line-height:1.3;text-align:left;text-decoration:none;text-underline-offset:5px;}
#about .profile-row a:hover,#about .profile-row button:hover{text-decoration:underline;}
#about .profile-row-note{font-size:16px;white-space:nowrap;}
#about .about-background{position:absolute;top:1220px;right:0;bottom:0;left:0;z-index:0;overflow:hidden;pointer-events:none;}
#about .about-background img{position:absolute;width:110%;height:110%;left:-5%;top:-5%;object-fit:cover;object-position:50% 54%;opacity:.23;filter:blur(24px);}
#about .about-background:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#fff 0%,#fffffff5 18%,#ffffffd6 48%,#ffffff9e 78%,#ffffff59 100%);}
#about footer{position:relative;z-index:3;margin-top:150px;padding:36px var(--about-margin) 135px;display:flex;justify-content:space-between;gap:24px;font-size:12px;line-height:1.4;}
@media(min-width:641px) and (max-width:1024px){
  #about{--about-margin:40px;}
  #about-image{width:calc((100% - var(--about-margin)*2 - var(--about-gap))/2);max-width:420px;}
  #about .profile{grid-template-columns:repeat(8,minmax(0,1fr));}
  #about .profile-label{grid-column:1/span 3;font-size:40px;}
  #about .profile-content{grid-column:4/span 5;}
  #about .profile-bio{font-size:32px;}
  #about .profile .english{font-size:20px;}
  #about .profile-row{grid-template-columns:90px minmax(0,1fr);column-gap:20px;}
  #about .profile-row a,#about .profile-row button{font-size:18px;}
  #about .about-background{top:900px;}
}
@media(max-width:640px){
  #about{--about-margin:20px;--about-gap:20px;padding-top:85px;}
  #about .about-heading h2{font-size:23.076923vw;line-height:.66666667;letter-spacing:-.025em;}
  #about #about-role{margin:14px 0 24px;font-size:20px;line-height:1;letter-spacing:-.045em;}
  #about-image{width:calc((100% - 60px)/2);max-width:none;aspect-ratio:2/3;}
  #about .profile{display:block;margin:40px 20px 0;font-size:20px;line-height:1.25;}
  #about .profile-label{margin:0 0 20px;font-size:20px;line-height:1;}
  #about .profile-content{max-width:none;}
  #about .profile-bio{font-size:20px;line-height:1.25;letter-spacing:-.025em;}
  #about .profile .english{margin-top:26px;font-size:16px;line-height:1.45;letter-spacing:-.015em;}
  #about .profile-links{margin-top:36px;}
  #about .profile-row{grid-template-columns:76px minmax(0,1fr);column-gap:14px;padding:17px 0;font-size:15px;line-height:1.3;}
  #about .profile-row a,#about .profile-row button{gap:12px;font-size:15px;line-height:1.3;}
  #about .profile-row-note{font-size:13px;}
  #about .about-background{top:490px;}
  #about .about-background img{opacity:.18;filter:blur(18px);}
  #about footer{margin-top:76px;padding:25px 20px 105px;gap:20px;font-size:11px;}
}
/* Profile lines arrive only when they enter the viewport. */
#about .reveal{opacity:0;transform:translateY(24px);clip-path:inset(0 0 8%);transition:opacity .95s,transform 1.2s cubic-bezier(.16,1,.3,1),clip-path 1.2s;}
#about .reveal.revealed{opacity:1;transform:none;clip-path:inset(0);}
#about .profile-row .reveal:nth-child(2){transition-delay:.07s;}
body.transitioning .dock,body.transitioning #about-image,body.transitioning .profile{pointer-events:none;}
body[data-view=about].transitioning{overflow:hidden;}
@media(prefers-reduced-motion:reduce){#about .reveal{opacity:1;transform:none;clip-path:none;}}
body[data-view=about] .site-header{opacity:0;pointer-events:none;}
body.viewing #about .profile,body.viewing #about .about-heading,body.viewing #about .about-background,body.viewing #about footer{visibility:hidden;}
.dock-actions button:disabled{opacity:.35;cursor:default;}
#about .profile,#about .about-background,#about footer{opacity:var(--about-content-alpha,1);}

.draft-preview-banner{position:fixed;right:16px;top:12px;z-index:1000;padding:10px 16px;background:#202120;color:#fff;border-radius:4px;font:12px/1.5 sans-serif;text-decoration:none;box-shadow:0 3px 16px #0002;}
