:root{--paper:#f7f7f2;--ink:#232725;--accent:#476e68;--muted:#747873;color:var(--ink);background:var(--paper);font-family:Arial,Helvetica,sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit}button,a{touch-action:manipulation}::selection{background:var(--accent);color:var(--paper)}
.poster{position:relative;min-height:800px;height:100svh;overflow:hidden;padding:32px 40px}header{display:flex;justify-content:space-between;font-size:12px;letter-spacing:.035em}.home-label{border-bottom:1px solid currentColor;padding-bottom:4px}.edition{letter-spacing:.12em}
h1{margin:0;font-family:Arial,Helvetica,sans-serif;font-weight:400;font-size:clamp(80px,13.3vw,240px);line-height:.87;letter-spacing:-.075em;position:absolute;top:19%;left:5.4%;right:5.4%}h1>span{display:block;width:max-content}.last{margin-left:17.8%;margin-top:1.5%}.period{color:var(--accent);margin-left:.035em}
nav{position:absolute;right:8.4%;top:66%;width:28%;max-width:430px}nav a{display:flex;align-items:baseline;gap:21px;padding:9px 0;color:inherit;text-decoration:none;position:relative}.index{font-size:12px;font-variant-numeric:tabular-nums;color:var(--muted)}.nav-word{font-size:clamp(22px,2.35vw,38px);letter-spacing:-.035em;transition:transform 300ms cubic-bezier(.2,.7,.2,1)}.nav-arrow{margin-left:auto;font-size:24px;opacity:0;transform:translate(-7px,7px);transition:opacity .2s,transform .3s}nav a:hover .nav-word,nav a:focus-visible .nav-word{transform:translateX(8px)}nav a:hover .nav-arrow,nav a:focus-visible .nav-arrow{opacity:1;transform:translate(0,0)}a:focus-visible,button:focus-visible{outline:1px solid var(--accent);outline-offset:6px}
footer{position:absolute;bottom:27px;left:40px;right:40px;display:flex;justify-content:space-between;align-items:center;font-size:12px;letter-spacing:.02em}.motion{border:0;background:none;padding:10px;cursor:pointer;font-size:11px;color:var(--muted)}.inhabitant{position:absolute;left:27%;top:73%;width:74px;height:45px;will-change:transform;pointer-events:none}.inhabitant img{width:100%;height:100%;object-fit:contain}.inhabitant[hidden]{display:none}
dialog{position:fixed;inset:0;margin:auto;background:var(--paper);color:var(--ink);border:0;padding:80px;max-width:760px;width:calc(100% - 40px);min-height:410px}dialog::backdrop{background:#23272566}.close{position:absolute;right:28px;top:25px;background:none;border:0;font-size:12px;cursor:pointer;display:flex;align-items:center;gap:20px}.close span{font-size:27px;font-weight:300}.dialog-index{font-size:12px;color:var(--muted)}h2{font-weight:400;letter-spacing:-.06em;font-size:clamp(40px,7vw,75px);margin:25px 0}.coming{font-size:14px;letter-spacing:.1em;color:var(--muted)}.return{margin-top:40px;border:0;border-bottom:1px solid var(--ink);padding:0 0 6px;background:none;font-size:12px;cursor:pointer}
@media(min-width:1800px){h1{left:8%;top:19%}}
@media(max-width:700px){.poster{height:100svh;min-height:650px;padding:24px}header{font-size:12px}h1{left:6%;right:6%;top:23%;font-size:16.1vw;letter-spacing:-.075em;line-height:.92}.last{margin-left:19%;margin-top:5%}nav{right:9%;top:62%;width:52%;max-width:260px}nav a{padding:10px 0;gap:16px}.nav-word{font-size:25px}.nav-arrow{font-size:19px;opacity:.7;transform:none}footer{bottom:24px;left:24px;right:24px;font-size:10px}.inhabitant{left:15%;top:57%;width:53px;height:33px}.motion{font-size:10px;padding:10px 0}.year{display:none}dialog{padding:70px 30px;min-height:370px}}
@media(max-height:650px) and (min-width:701px){.poster{min-height:620px}h1{top:17%;font-size:11.8vw}nav{top:62%;width:30%}.nav-word{font-size:24px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important}.inhabitant{will-change:auto}}
html{scroll-behavior:smooth}a{color:inherit;text-decoration:none}p{line-height:1.9}figure{margin:0}.scroll-cue{font-size:10px;letter-spacing:.08em}.scroll-cue span{display:inline-block;margin-left:18px}.content-width{width:86%;max-width:1500px;margin-inline:auto}.selection{padding-top:130px;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:28px;align-items:start}.section-heading{grid-column:1/-1;display:flex;align-items:baseline;justify-content:space-between;border-top:1px solid #b9bdb7;padding-top:20px;margin-bottom:70px}.section-heading h2{font-size:18px;letter-spacing:-.03em;margin:0}.section-heading>span{font-size:11px;color:var(--muted)}.project-main{grid-column:1/10}.project-art{display:block;overflow:hidden}.pengram-art{background:#e4e7e4;padding:35px 8% 0}.art-word{font-size:clamp(34px,5.2vw,75px);letter-spacing:-.065em;display:flex;justify-content:space-between;line-height:1;margin-bottom:35px}.art-word>span{font-size:.65em;line-height:1.5}.screen-pair{display:flex;gap:7%;align-items:flex-start;padding:0 5%;max-height:530px;overflow:hidden}.screen-pair img{width:46.5%;height:auto;display:block;transition:transform .65s cubic-bezier(.2,.7,.2,1)}.screen-pair img:nth-child(2){margin-top:60px}.pengram-art:hover img:first-child{transform:translateY(-8px)}.pengram-art:hover img:nth-child(2){transform:translateY(-18px)}.project-caption{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:19px 0 0}.project-caption h3{margin:0;font-size:24px;font-weight:400;letter-spacing:-.045em}.project-caption>span{font-size:10px;color:var(--muted);white-space:nowrap}.project-description{max-width:420px;font-size:13px;line-height:1.95;margin:15px 0 0;color:#555b56}.project-paper{grid-column:8/13;margin-top:110px}.paper-art img{width:100%;height:auto;display:block;transition:transform .65s}.paper-art:hover img{transform:scale(1.025)}.project-paper h3{font-size:18px;letter-spacing:.04em}.text-link{display:inline-flex;gap:40px;align-items:center;font-size:12px;border-bottom:1px solid #969c94;padding-bottom:10px}.all-works{grid-column:1/4;grid-row:3;justify-self:start;align-self:center;margin-top:100px}.between{position:relative;height:580px;margin-top:130px}.fragment-sea{position:absolute;left:5%;top:50px;width:170px}.fragment-table{position:absolute;right:7%;bottom:55px;width:135px}.between img{display:block;width:100%;height:auto}.fragment-note{position:absolute;bottom:50px;left:30%;font-size:12px;color:var(--muted);letter-spacing:.04em}.shoal-field{position:absolute;width:46%;height:300px;left:32%;top:15%;}.home-index{margin-top:10px;margin-bottom:150px}.home-index>a{display:grid;grid-template-columns:60px 1fr auto 50px;align-items:center;gap:25px;border-top:1px solid #b9bdb7;padding:35px 0}.home-index>a:last-child{border-bottom:1px solid #b9bdb7}.home-index h2{font-size:clamp(36px,5.5vw,85px);line-height:1;letter-spacing:-.065em;margin:0}.small-number{font-size:12px;color:var(--muted)}.index-detail{font-size:12px;color:#60655f}.big-arrow{font-size:35px;transition:transform .3s}.home-index>a:hover .big-arrow{transform:translate(5px,-5px)}.site-footer{position:static;display:flex;flex-wrap:wrap;gap:25px;justify-content:space-between;padding:35px 7%;border-top:1px solid #b9bdb7;font-size:11px}.site-footer>a:nth-child(2){color:var(--accent)}.page-header{position:static;padding:30px 5%;display:flex;align-items:center;justify-content:space-between}.page-header>a{font-size:15px;letter-spacing:.07em}.page-nav{position:static;width:auto;max-width:none;display:flex;gap:35px}.page-nav a{padding:5px 0;font-size:11px;display:block}.page-nav a[aria-current]{border-bottom:1px solid currentColor}.inner{padding-top:100px}.page-title{display:flex;align-items:baseline;gap:30px;margin-bottom:110px}.page-title>span{font-size:12px;color:var(--muted)}.page-title h1{position:static;font-size:clamp(64px,11vw,160px);font-weight:400;line-height:1;letter-spacing:-.075em;margin:0}.works-selection{padding-top:0;width:100%}.paper-detail{grid-column:8/13;font-size:13px;margin-top:20px;max-width:400px}.next-page{display:flex;gap:40px;align-items:baseline;font-size:clamp(35px,6vw,85px);letter-spacing:-.065em;border-top:1px solid #b9bdb7;padding:35px 0;margin:140px 0 80px}.next-page>span{font-size:11px;letter-spacing:0;color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:.08em;color:var(--muted)}.research-intro h2{font-size:clamp(30px,4vw,56px);line-height:1.55;letter-spacing:.01em;margin:30px 0 55px}.research-copy{margin-left:39%;max-width:640px;font-size:15px}.research-copy p{margin:0 0 25px}.research-copy .affiliation{margin-top:55px;font-size:12px;color:var(--muted)}.record-section{display:grid;grid-template-columns:1fr 2fr;gap:60px;margin:110px 0}.record-section>h2{font-size:20px;letter-spacing:-.045em;line-height:1.4;margin:0;font-weight:400}.records{border-top:1px solid #b9bdb7}.records article{display:grid;grid-template-columns:90px 1fr;gap:24px;border-bottom:1px solid #d6d9d3;padding:26px 0}.records article>span,.records time{font-size:10px;color:var(--muted);line-height:2.2}.records h3{font-size:15px;font-weight:400;line-height:1.75;margin:0}.records p{font-size:12px;color:#747873;margin:10px 0 0;line-height:1.85}.records .text-link{margin-top:22px}.profile{display:grid;grid-template-columns:1fr 1.5fr;gap:12%}.profile h2{font-size:30px;letter-spacing:.09em;margin:0;font-weight:400}.profile h2 span{display:block;font-size:10px;letter-spacing:.07em;margin-top:18px}.profile p{font-size:15px;margin:0 0 25px}.about-fragments{display:flex;align-items:center;justify-content:space-between;max-width:550px;margin:100px auto 130px;gap:70px}.about-fragments img{width:38%;height:auto}.about-fragments img:last-child{margin-top:110px;width:29%}.contact-section{padding:55px 0 90px;border-top:1px solid #b9bdb7;margin-top:120px}.contact-section h2{font-size:16px;letter-spacing:0;margin:0 0 35px}.contact-section>a{display:flex;justify-content:space-between;gap:20px;font-size:clamp(17px,3.5vw,50px);letter-spacing:-.045em}.contact-section>a span{color:var(--accent)}
@media(min-width:1800px){.screen-pair{max-height:620px}}
@media(max-width:700px){.content-width{width:88%}.selection{padding-top:80px;gap:0;display:block}.section-heading{margin-bottom:40px}.section-heading h2{font-size:16px}.project-main{width:100%}.pengram-art{padding:25px 6% 0}.art-word{font-size:39px;margin-bottom:26px}.screen-pair{padding:0 2%;gap:6%;max-height:320px}.screen-pair img{width:47%}.screen-pair img:nth-child(2){margin-top:30px}.project-caption h3{font-size:21px}.project-caption>span{font-size:9px}.project-description{font-size:12px;max-width:290px}.project-paper{width:72%;margin:70px 0 0 auto}.project-paper h3{font-size:16px}.all-works{margin-top:50px}.between{height:440px;margin-top:60px}.fragment-sea{left:0;top:35px;width:95px}.fragment-table{right:0;bottom:40px;width:80px}.fragment-note{left:12%;bottom:35px;font-size:10px}.shoal-field{left:23%;top:22%;width:75%;height:230px}.home-index{margin-bottom:90px}.home-index>a{grid-template-columns:20px 1fr 25px;gap:14px;padding:28px 0}.home-index h2{font-size:37px}.index-detail{display:none}.big-arrow{font-size:24px}.site-footer{padding:27px 6%;font-size:10px;gap:25px 20px}.site-footer>a:first-child{width:55%}.site-footer>a:nth-child(2){margin-left:auto}.site-footer>a:last-child{margin-left:auto}.page-header{padding:24px 6%}.page-nav{gap:18px}.page-nav a{font-size:10px}.inner{padding-top:60px}.page-title{margin-bottom:65px;gap:20px}.page-title h1{font-size:15.2vw}.works-selection{padding-top:0}.paper-detail{width:72%;margin-left:auto;font-size:12px}.next-page{margin:85px 0 60px;gap:22px;font-size:44px}.research-intro h2{font-size:29px;margin-bottom:35px}.research-copy{margin-left:8%;font-size:14px}.research-copy .affiliation{margin-top:35px}.record-section{display:block;margin:75px 0}.record-section>h2{margin-bottom:28px;font-size:20px}.records article{grid-template-columns:65px 1fr;gap:17px;padding:22px 0}.records h3{font-size:13px}.records p{font-size:11px}.profile{display:block}.profile h2{font-size:27px;margin-bottom:40px}.profile p{font-size:14px}.about-fragments{margin:55px 0 75px;gap:40px;padding:0 7%}.about-fragments img{width:40%}.about-fragments img:last-child{width:32%;margin-top:60px}.contact-section{margin-top:70px;padding:35px 0 65px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.shoal-toggle{position:absolute;bottom:50px;left:30%;font-size:10px;letter-spacing:.04em;color:var(--muted);border:0;background:none;cursor:pointer;padding:12px 0}.shoal-field{touch-action:pan-y}@media(max-width:700px){.shoal-toggle{left:12%;bottom:30px}}

/* The shoal bridges the poster and the work, with no literal fish competing with it. */
.shoal-stage{position:relative;height:clamp(480px,48vw,680px);overflow:hidden;border-top:1px solid #e0e2dc;border-bottom:1px solid #e0e2dc}
.shoal-stage .shoal-field{position:absolute;inset:0;width:100%;height:100%;touch-action:pan-y}
.shoal-stage .shoal-toggle{left:7%;bottom:28px;padding:12px 0;font-size:11px;letter-spacing:.06em}
.shoal-stage+.selection{padding-top:120px}
@media(max-width:700px){.shoal-stage{height:440px}.shoal-stage .shoal-toggle{left:6%;bottom:18px}.shoal-stage+.selection{padding-top:80px}}

/* v0.3 — the shoal is an active navigation field, not an ornament. */
.shoal-stage{height:min(86vh,840px);min-height:650px;background:#102524;color:#eef1e8;border:0;isolation:isolate;cursor:none}
.shoal-stage::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 46% 45%,rgba(79,124,113,.15),transparent 42%),linear-gradient(115deg,rgba(255,255,255,.025),transparent 45%);z-index:0;pointer-events:none}
.shoal-intro{position:absolute;z-index:3;top:28px;left:4%;right:4%;display:flex;justify-content:space-between;font-size:9px;letter-spacing:.16em;color:#9eb0a9;pointer-events:none}
.shoal-nav{position:absolute;inset:72px 4% 72px;z-index:1}
.shoal-nav a{position:absolute;display:grid;grid-template-columns:34px auto;grid-template-rows:auto auto;align-items:baseline;column-gap:18px;color:#dfe7df;opacity:.28;transition:opacity .25s ease,transform .45s cubic-bezier(.2,.8,.2,1);cursor:pointer}
.shoal-nav a:nth-child(1){left:1%;top:4%}.shoal-nav a:nth-child(2){right:0;top:38%;text-align:right;grid-template-columns:auto 34px}.shoal-nav a:nth-child(2)>span{grid-column:2;grid-row:1}.shoal-nav a:nth-child(2)>strong{grid-column:1;grid-row:1}.shoal-nav a:nth-child(2)>small{grid-column:1;grid-row:2}.shoal-nav a:nth-child(3){left:17%;bottom:2%}
.shoal-nav a>span{font-size:10px;color:#91aaa1}.shoal-nav strong{font-size:clamp(68px,11.5vw,178px);font-weight:400;line-height:.82;letter-spacing:-.075em}.shoal-nav small{grid-column:2;font-size:9px;letter-spacing:.16em;margin-top:12px;color:#8da098}
.shoal-nav a:hover,.shoal-nav a.is-near,.shoal-nav a:focus-visible{opacity:.94;transform:translateY(-3px)}
.shoal-stage .shoal-field{z-index:2;pointer-events:none}
.shoal-hint{position:absolute;left:4%;bottom:25px;z-index:3;margin:0;font-size:10px;letter-spacing:.08em;color:#9eb0a9;pointer-events:none}
.shoal-stage .shoal-toggle{z-index:4;left:auto;right:4%;bottom:17px;color:#9eb0a9;cursor:pointer}

.pengram-concept{position:relative;height:clamp(430px,43vw,650px);background:#dce4db;color:#152523;overflow:hidden}
.pengram-concept::before{content:"";position:absolute;width:66%;aspect-ratio:1;border:1px solid rgba(21,37,35,.22);border-radius:50%;right:-13%;top:-35%;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.concept-title{position:absolute;left:4.5%;top:6%;font-size:clamp(55px,9vw,132px);line-height:.82;letter-spacing:-.075em}
.concept-sequence{position:absolute;left:6%;bottom:8%;font-size:11px;letter-spacing:.22em;color:#4e6860}
.concept-track{position:absolute;left:18%;right:18%;top:53%;height:1px;background:rgba(21,37,35,.35);display:flex;justify-content:space-between;align-items:center;transform:rotate(-7deg)}
.concept-track i{display:block;width:10px;height:10px;border:1px solid #152523;background:#dce4db;border-radius:50%;transition:transform .55s cubic-bezier(.2,.8,.2,1)}
.concept-track i:nth-child(2){width:19px;height:19px}.concept-track i:nth-child(3){width:29px;height:29px;background:#d56f56;border-color:#d56f56}.concept-track i:nth-child(4){width:44px;height:44px}
.concept-choice{position:absolute;right:6%;bottom:7%;font-size:clamp(22px,3.2vw,44px);letter-spacing:.08em}.concept-arrow{position:absolute;right:4%;top:5%;font-size:30px}
.pengram-concept:hover::before{transform:scale(1.08) translate(-2%,4%)}.pengram-concept:hover .concept-track i:nth-child(2){transform:translateY(-15px)}.pengram-concept:hover .concept-track i:nth-child(3){transform:translateY(12px)}

.pengram-gallery{background:#102524;color:#eef1e8;padding:34px 6% 0}.pengram-gallery .screen-pair{position:relative;max-height:560px;gap:0;padding:0 9%;justify-content:center}.pengram-gallery .screen-pair::before{content:"";position:absolute;inset:9% 2% 0;border:1px solid rgba(238,241,232,.22)}
.pengram-gallery .screen-pair img{width:42%;position:relative;filter:grayscale(.82) contrast(.94);box-shadow:0 28px 65px rgba(0,0,0,.25)}.pengram-gallery .screen-pair img:first-child{transform:rotate(-3deg);z-index:2}.pengram-gallery .screen-pair img:nth-child(2){margin:54px 0 0 -5%;transform:rotate(4deg);z-index:1}.pengram-gallery:hover .screen-pair img{filter:grayscale(.35)}.pengram-gallery:hover .screen-pair img:first-child{transform:rotate(-3deg) translateY(-8px)}.pengram-gallery:hover .screen-pair img:nth-child(2){transform:rotate(4deg) translateY(-14px)}

@media(max-width:700px){
  .shoal-stage{height:620px;min-height:620px;cursor:auto}.shoal-intro{top:20px;left:6%;right:6%}.shoal-intro span:last-child{display:none}.shoal-nav{inset:68px 6% 74px}.shoal-nav a{opacity:.36}.shoal-nav a:nth-child(1){top:6%}.shoal-nav a:nth-child(2){top:40%}.shoal-nav a:nth-child(2) strong{font-size:9.6vw}.shoal-nav a:nth-child(3){left:7%;bottom:4%}.shoal-nav strong{font-size:clamp(55px,19vw,86px)}.shoal-nav small{margin-top:8px}.shoal-hint{left:6%;bottom:20px;font-size:9px}.shoal-stage .shoal-toggle{right:6%;bottom:10px}
  .pengram-concept{height:410px}.concept-title{top:7%;font-size:16vw}.concept-track{left:10%;right:10%;top:57%}.concept-choice{font-size:23px}.concept-sequence{font-size:9px}
  .pengram-gallery{padding:24px 5% 0}.pengram-gallery .screen-pair{padding:0 3%;max-height:390px}.pengram-gallery .screen-pair img{width:48%}.pengram-gallery .screen-pair img:nth-child(2){margin-top:34px;margin-left:-7%}
}

/* v0.4 — the poster and shoal now read as one opening composition. */
.poster{height:clamp(500px,38vw,620px);min-height:500px;max-width:1800px;margin-inline:auto}
.poster h1{top:18%}.poster footer{bottom:24px}
.shoal-stage{width:89%;max-width:1700px;height:min(76vh,760px);min-height:620px;margin:0 auto 0}
.shoal-stage+.selection{padding-top:145px}
.shoal-nav a{cursor:none}
.shoal-nav a.is-covered{opacity:.7}.shoal-nav a.is-covered strong{color:#f4f6ee;text-shadow:0 0 24px rgba(226,235,227,.16)}
.shoal-nav a.is-near strong{color:#e97a5e}.shoal-nav a.is-near>span,.shoal-nav a.is-near small{color:#e97a5e}

.project-paper .paper-art{height:clamp(300px,31vw,470px);background:#e8e5de}
.project-paper .paper-art img{width:100%;height:100%;object-fit:cover;object-position:18% 68%;transform:scale(1.22);transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.project-paper .paper-art:hover img{transform:scale(1.31)}

.project-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:55px;border-top:1px solid #b9bdb7}
.project-facts>div{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding-top:14px}
.project-facts strong{font-size:clamp(28px,4vw,58px);font-weight:400;letter-spacing:-.055em}.project-facts span{font-size:9px;letter-spacing:.08em;color:var(--muted)}
.kirie-project{grid-column:1/-1;margin-top:170px}.kirie-heading{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:end;margin-bottom:34px;border-top:1px solid #b9bdb7;padding-top:18px}
.kirie-heading .project-caption{padding:0}.kirie-heading .project-caption h3{font-size:26px}.kirie-heading>p{max-width:430px;margin:0;font-size:12px;color:var(--muted)}
.kirie-strip{display:flex;gap:9px;height:clamp(330px,34vw,520px);overflow:hidden;background:#dedfd9}
.kirie-strip button{position:relative;flex:1;min-width:0;border:0;padding:0;background:#d9dbd4;overflow:hidden;cursor:zoom-in;transition:flex .7s cubic-bezier(.2,.8,.2,1),opacity .45s ease}
.kirie-strip img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1),filter .45s ease;filter:saturate(.82) contrast(1.03)}
.kirie-strip button:nth-child(1) img{object-position:24% 58%;transform:scale(1.22)}.kirie-strip button:nth-child(2) img{object-position:50% 43%}.kirie-strip button:nth-child(3) img{object-position:50% 43%}
.kirie-strip button>span{position:absolute;left:13px;bottom:11px;font-size:9px;color:#f7f7f2;mix-blend-mode:difference;letter-spacing:.08em}
.kirie-strip:hover button:not(:hover),.kirie-strip:has(.is-expanded) button:not(.is-expanded){flex:.58;opacity:.55}.kirie-strip button:hover,.kirie-strip button.is-expanded{flex:2.55;opacity:1;cursor:zoom-out}.kirie-strip button:hover img,.kirie-strip button.is-expanded img{transform:scale(1.02);filter:saturate(.98) contrast(1.02)}

@media(max-width:700px){
  .poster{height:500px;min-height:500px}.poster h1{top:25%}.poster footer{bottom:20px}
  .shoal-stage{width:100%;height:570px;min-height:570px;margin:0}.shoal-nav{inset:68px 5% 74px}.shoal-stage+.selection{padding-top:90px}
  .project-paper .paper-art{height:320px}.project-paper .paper-art img{object-position:17% 62%;transform:scale(1.28)}
  .project-facts{grid-template-columns:1fr;margin-top:38px;gap:0}.project-facts>div{border-bottom:1px solid #d5d7d1;padding:12px 0}.project-facts strong{font-size:36px}
  .kirie-project{margin-top:105px}.kirie-heading{display:block;margin-bottom:24px}.kirie-heading>p{margin-top:22px;font-size:11px}.kirie-strip{height:360px;gap:5px}.kirie-strip button{flex:1}.kirie-strip:hover button:not(:hover){flex:1;opacity:1}.kirie-strip:has(.is-expanded) button:not(.is-expanded){flex:.45;opacity:.5}.kirie-strip button:hover{flex:1}.kirie-strip button.is-expanded{flex:3.2}
}

/* v0.5 — quieter link language and factual captions. */
.next-page{position:relative;align-items:center;padding-right:76px}
.next-page::after{content:"";position:absolute;right:0;width:52px;border-top:1px solid currentColor;transform-origin:right center;transition:width .35s cubic-bezier(.2,.8,.2,1)}
.next-page:hover::after,.next-page:focus-visible::after{width:68px}
.project-launch{max-width:520px;margin:24px 0 0;font-size:12px;color:var(--muted)}
.project-launch strong{font-size:16px;font-weight:400;color:var(--ink);letter-spacing:-.025em}
.project-facts{grid-template-columns:repeat(3,minmax(0,1fr))}
.project-facts>div{display:block}
.project-facts span{display:block;margin-top:8px;line-height:1.45}
.kirie-strip button>span.kirie-meta{left:0;right:0;bottom:0;padding:42px 14px 13px;display:flex;align-items:flex-end;justify-content:space-between;gap:12px;background:linear-gradient(transparent,rgba(8,14,12,.48));mix-blend-mode:normal;color:#f7f7f2;text-align:left}
.kirie-meta b{font-size:11px;font-weight:400;letter-spacing:.08em}.kirie-meta em{font-size:8px;font-style:normal;line-height:1.45;letter-spacing:.08em;text-align:right;max-width:150px}
.profile-meta{font-size:10px!important;letter-spacing:.08em;color:var(--muted);text-transform:uppercase;margin-bottom:26px!important}
.interests{display:grid;grid-template-columns:1fr 2fr;gap:60px;align-items:baseline;margin:95px 0 120px;padding-top:18px;border-top:1px solid #b9bdb7}
.interests>span{font-size:10px;letter-spacing:.08em;color:var(--muted)}.interests p{margin:0;font-size:clamp(19px,2.5vw,35px);letter-spacing:.02em;word-spacing:.42em}
@media(max-width:700px){
  .next-page{padding-right:48px}.next-page::after{width:30px}.next-page:hover::after,.next-page:focus-visible::after{width:38px}
  .project-facts{grid-template-columns:1fr}.project-launch{font-size:11px}
  .kirie-strip button>span.kirie-meta{padding:36px 9px 10px;display:block}.kirie-meta em{display:block;margin-top:5px;text-align:left;white-space:normal}
  .profile-meta{margin-bottom:20px!important}.interests{display:block;margin:65px 0 80px}.interests p{margin-top:20px;font-size:21px;line-height:1.8;word-spacing:.2em}
}

/* v0.5.1 — concrete traces inside abstract crops. */
.concept-device{position:absolute;right:8%;top:23%;width:23%;height:72%;overflow:hidden;transform:rotate(4deg);box-shadow:0 24px 55px rgba(21,37,35,.18);transition:transform .8s cubic-bezier(.2,.8,.2,1),filter .5s ease;filter:grayscale(.92) contrast(.9);background:#eef0e9}
.concept-device img{width:100%;height:auto;display:block;transform:translateY(-4%)}
.pengram-concept:hover .concept-device{transform:rotate(2deg) translateY(-9px);filter:grayscale(.35) contrast(.96)}
.project-paper .paper-art{clip-path:polygon(5% 0,100% 7%,95% 100%,0 91%);transform:rotate(-1.8deg);transform-origin:center;box-shadow:0 24px 45px rgba(20,27,24,.08)}
.project-paper .paper-art img{object-position:16% 69%;transform:scale(1.72) rotate(.8deg)}
.project-paper .paper-art:hover img{transform:scale(1.83) rotate(.2deg)}
.research-page .page-title{min-width:0;overflow:visible}.research-page .page-title h1{min-width:0;font-size:clamp(54px,10.1vw,150px);white-space:nowrap}
.research-intro,.research-intro h2{overflow:visible}
.about-page .contact-section+.next-page{margin-top:40px}

@media(max-width:700px){
  .shoal-nav a:nth-child(2) strong{font-size:clamp(55px,19vw,86px)}
  .shoal-nav a:nth-child(3) strong{font-size:9.6vw}
  .concept-device{right:-3%;top:28%;width:40%;height:67%;transform:rotate(4deg)}
  .concept-track{right:24%}
  .project-paper{width:79%;margin-right:2%}
  .project-paper .paper-art{height:345px;clip-path:polygon(7% 0,100% 8%,93% 100%,0 90%);transform:rotate(-2.2deg)}
  .project-paper .paper-art img{object-position:15% 66%;transform:scale(1.86) rotate(.8deg)}
  .research-page .page-title{gap:15px;margin-left:-2px}
  .research-page .page-title h1{font-size:12.25vw;letter-spacing:-.065em}
  .research-page .page-title>span{font-size:10px}
  .research-intro h2{font-size:27px;line-height:1.5}
}

/* The navigation owns the whole canvas, independent of the legacy nav rule. */
.shoal-nav{width:auto;max-width:none;inset:60px 5%;}
.shoal-nav a{max-width:100%;}
.shoal-nav a:nth-child(3){left:10%;}
.shoal-nav a:nth-child(3) strong{font-size:clamp(54px,8.7vw,132px);}
.project-paper .paper-art{position:relative;perspective:850px;overflow:hidden;clip-path:none;transform:none;background:#e7e6e0;box-shadow:none;}
.paper-plane{position:absolute;left:2%;top:9%;width:94%;height:84%;overflow:hidden;transform:rotateX(38deg) rotateY(-19deg) scale(1.07);transform-origin:50% 55%;box-shadow:18px 25px 22px rgba(18,25,21,.18);transition:transform .8s;}
.project-paper .paper-art img{width:100%;height:100%;object-fit:cover;object-position:50% 65%;transform:scale(1.62);}
.project-paper .paper-art:hover .paper-plane{transform:rotateX(35deg) rotateY(-17deg) scale(1.1);}
.project-paper .paper-art:hover img{transform:scale(1.65);}
.profile .profile-statement{font-size:clamp(16px,1.7vw,23px);line-height:1.9;letter-spacing:0;margin-bottom:30px;}
.interests p{font-size:clamp(16px,1.8vw,25px);word-spacing:0;line-height:1.9;}
.media-section .records time{display:block;margin-bottom:8px;}
.traffic-facts{grid-template-columns:1fr 1fr;}.traffic-facts strong{font-size:clamp(29px,4vw,55px);}.traffic-period{font-size:10px;color:var(--muted);line-height:1.8;margin-top:20px;}
.research-intro .research-copy{margin-top:55px;}
.page-title{min-width:0;}.page-title h1{min-width:0;}
@media(max-width:700px){
 .shoal-nav{inset:48px 6%;width:auto;max-width:none;}
 .shoal-nav a{column-gap:12px;grid-template-columns:20px auto;}
 .shoal-nav a:nth-child(1){left:0;top:5%;}
 .shoal-nav a:nth-child(2){right:0;top:40%;grid-template-columns:auto 20px;}
 .shoal-nav a:nth-child(3){left:0;bottom:6%;}
 .shoal-nav strong,.shoal-nav a:nth-child(2) strong{font-size:17vw;}
 .shoal-nav a:nth-child(3) strong{font-size:13.2vw;}
 .project-paper .paper-art img{object-position:48% 65%;transform:scale(1.62);}
 .profile .profile-statement{font-size:clamp(12.5px,3.6vw,16px);line-height:1.95;}
 .research-intro .research-copy{margin-top:30px;}
 .page-title{gap:15px;}.page-title h1{font-size:14vw;}
}

/* Home: a device-only crop, and an actual macro photograph. */
.concept-device{width:23%;height:auto;aspect-ratio:627 / 1336;top:23%;right:8%;border-radius:9.2% / 4.4%;background:transparent;}
.concept-device img{position:absolute;width:127.59%;max-width:none;height:auto;left:-13.88%;top:-19.01%;transform:none;}
.project-paper .paper-art{perspective:none;}
.paper-plane{position:absolute;inset:0;width:100%;height:100%;transform:none;box-shadow:none;}
.project-paper .paper-art img{width:100%;height:100%;object-fit:cover;object-position:50% 65%;transform:none;}
.project-paper .paper-art:hover .paper-plane{transform:none;}
.project-paper .paper-art:hover img{transform:scale(1.025);}
.page-header>a{font-size:12px;letter-spacing:.015em;white-space:nowrap;}
@media(max-width:700px){
 .concept-device{width:40%;height:auto;top:26%;right:6%;}
 .page-header{gap:15px;flex-wrap:wrap;}
 .page-header>a{font-size:11px;}
 .page-nav{gap:14px;}
 .page-nav a{font-size:9px;}
 .edition{font-size:10px;letter-spacing:.015em;}
}
/* Real artwork only: grazing perspective inside a borderless crop. */
.project-paper .paper-art{isolation:isolate;}
.project-paper .paper-plane,.project-paper .paper-art:hover .paper-plane{inset:0;width:100%;height:100%;overflow:visible;transform:perspective(900px) rotateX(56deg) rotateZ(-8deg) scale(2.7);transform-origin:50% 55%;box-shadow:none;}
.project-paper .paper-art img,.project-paper .paper-art:hover img{width:100%;height:100%;object-fit:cover;object-position:50% 70%;transform:scale(1.4);}
.project-paper .paper-art::after{content:"";position:absolute;inset:-10px;pointer-events:none;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);mask-image:linear-gradient(to bottom,#000 0%,rgba(0,0,0,.85) 22%,transparent 67%);-webkit-mask-image:linear-gradient(to bottom,#000 0%,rgba(0,0,0,.85) 22%,transparent 67%);}
.project-paper .paper-art img,.project-paper .paper-art:hover img{transform:scale(2);transform-origin:50% 90%;}

.pengram-gallery .screen-pair{max-height:none;padding:0 7% 45px;gap:8%;overflow:visible;align-items:flex-start;}
.pengram-gallery .screen-pair::before{display:none;}
.works-device{position:relative;display:block;flex:0 0 46%;aspect-ratio:627/1336;overflow:hidden;border-radius:9.2% / 4.4%;box-shadow:0 20px 35px #0003;}
.works-device:nth-child(2){margin-top:45px;}
.pengram-gallery .screen-pair .works-device img,.pengram-gallery:hover .screen-pair .works-device img{position:absolute;width:127.59%;max-width:none;height:auto;left:-13.88%;top:-19.01%;margin:0;transform:none;filter:none;box-shadow:none;}
.traffic-facts span{font-size:clamp(17px,1.8vw,24px);color:var(--ink,#202622);letter-spacing:0;}
.media-section .records p{font-size:14px;}
.media-result strong{display:block;font-size:30px;font-weight:500;color:var(--ink,#202622);line-height:1.5;}
.media-result span{display:block;font-size:13px;margin-top:5px;}
@media(max-width:700px){.pengram-gallery .screen-pair{padding:0 0 25px;gap:7%;}.works-device{flex-basis:46.5%;}.works-device:nth-child(2){margin-top:25px;}.media-result strong{font-size:27px;}}
.media-result strong{font-size:15px;font-weight:400;line-height:1.75;}
@media(max-width:700px){.media-result strong{font-size:13px;}}
.media-section .records p,.media-result span{font-size:12px;}
@media(max-width:700px){.media-section .records p,.media-result span{font-size:11px;}}
@media(hover:none) and (pointer:coarse){
 .shoal-nav a{pointer-events:none;}
 .shoal-nav a>strong{pointer-events:auto;padding:6px;margin:-6px;min-height:44px;}
}
.shoal-nav a{transition:opacity .1s ease,transform .45s cubic-bezier(.2,.8,.2,1);}
.visitor-fish{position:fixed;left:-12px;top:-6px;width:24px;height:12px;z-index:5;pointer-events:none;will-change:transform;}
.visitor-fish svg{display:block;width:100%;height:100%;fill:#17231e;animation:visitor-breathe 2.6s ease-in-out infinite;}
.visitor-fish.joining svg{stroke:#b3c9bb;stroke-width:.65;animation:none;}
@keyframes visitor-breathe{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-4px) rotate(4deg)}}
@media(prefers-reduced-motion:reduce){.visitor-fish svg{animation:none;}}

.visitor-fish svg{animation:none;}
.visitor-fish.over-water svg{fill:#e1ebe3;}

.fish-letter{display:inline-block;position:relative;width:.667em;height:1em;vertical-align:-.13em;margin-right:-.075em;}
.fish-letter svg{display:block;width:100%;height:100%;fill:currentColor;}
.fish-origin{position:absolute;left:25.4%;top:57%;width:50.7%;height:9%;}

.intro-tuna{position:fixed;z-index:5;pointer-events:none;background:#17231e;mask:url('assets/predator-tuna.svg') center/contain no-repeat;-webkit-mask:url('assets/predator-tuna.svg') center/contain no-repeat;}
.intro-tuna::before{content:none;}
.intro-tuna{scale:-1 1;transform-origin:0 50%;}
.intro-tuna.over-water{background:#e1ebe3;}
.intro-tuna{scale:none;background:none;mask:none;-webkit-mask:none;}
.intro-tuna::before{content:"";position:absolute;inset:0;background:#17231e;mask:url('assets/predator-tuna.svg') center/contain no-repeat;-webkit-mask:url('assets/predator-tuna.svg') center/contain no-repeat;transform:scaleX(-1);}
.intro-tuna.over-water{background:none;}.intro-tuna.over-water::before{background:#e1ebe3;}

.shoal-stage{overflow:visible;}
.shoal-stage .shoal-field{top:-180px;bottom:auto;height:calc(100% + 180px);}
.intro-tuna::before{display:none;}.intro-tuna svg{display:block;width:100%;height:100%;transform:scaleX(-1);fill:currentColor;}
.intro-tuna{color:#17231e;}.intro-tuna.over-water{color:#e1ebe3;}.intro-tuna.over-water svg{filter:brightness(0) invert(.94);}
.fish-origin .at-letter{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);}
.fish-origin .intro-tuna.at-letter{width:140%;min-width:26px;max-width:78px;height:auto;aspect-ratio:1536/704;margin-left:-5px;}
.fish-origin .visitor-fish.at-letter{width:11.66px;height:5.83px;}
@media(max-width:699px){.fish-origin .visitor-fish.at-letter{width:9.24px;height:4.62px;}}
.intro-tuna svg{filter:brightness(0);}.intro-tuna.over-water svg{filter:brightness(0) invert(.94);}

.shoal-stage .shoal-field{top:-260px;height:calc(100% + 260px);}
@media(min-width:701px){.shoal-stage{margin-top:65px;}}
/* Mobile: leave a scroll-length pause between the name and the school. */
@media(max-width:700px){
 .poster{height:calc(100svh + 150px);min-height:700px;}
 .poster h1{top:125px;}
 .poster footer{top:calc(100svh - 45px);bottom:auto;}
}
/* Tune the discovery interval independently for phones and tall desktop windows. */
@media(max-width:700px){
 .poster{height:calc(66.667svh + 230px);min-height:600px;}
}
@media(min-width:1000px) and (min-height:800px){
 .shoal-stage{margin-top:calc(65px + clamp(0px,20svh - 160px,100px));}
}

.contact-section>a+a{margin-top:24px;font-size:clamp(17px,2.2vw,30px);letter-spacing:-.02em;justify-content:flex-start;gap:20px}
