:root{--paper:#f4f0e7;--ink:#222;--red:#8f373a;--line:#c9c2b6;--muted:#686258}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,'PingFang SC','Microsoft YaHei',sans-serif;font-size:15px;line-height:1.6}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--red);outline-offset:5px}header{max-width:1440px;margin:auto;padding:25px 5%;display:flex;align-items:center;border-bottom:1px solid var(--line);gap:32px}.brand{display:flex;align-items:center;font:bold 38px Georgia}.brand span{color:var(--red);font-size:25px}.brand small{font:9px/1.3 Arial;letter-spacing:1.5px;margin-left:14px}nav{display:flex;gap:32px;margin-left:auto}nav a{font-size:13px;padding:8px 0;position:relative}nav a.active:after{content:'';position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--red)}#lang{border:1px solid var(--line);background:none;padding:6px 10px;font-size:11px}main{max-width:1440px;margin:auto;padding:0 5%;min-height:65vh;animation:enter .35s ease}h1,h2,h3,p{margin-top:0}h1,h2,.serif{font-family:Georgia,'Songti SC',SimSun,serif;font-weight:400}h1{font-size:clamp(58px,8.3vw,122px);line-height:.98;letter-spacing:-5px;margin-bottom:27px}h2{font-size:42px;line-height:1.1;letter-spacing:-1.5px}h3{font-family:Georgia,'Songti SC',serif;font-size:25px;font-weight:400;line-height:1.2}.eyebrow,.meta,.tag{font:10px/1.5 Arial,sans-serif;letter-spacing:1.7px;text-transform:uppercase}.eyebrow{display:flex;align-items:center;gap:12px}.dot{width:7px;height:7px;background:var(--red);border-radius:50%;display:inline-block}.hero{padding:48px 0 60px;display:grid;grid-template-columns:1.45fr 1fr;gap:30px;align-items:center}.hero h1 em{color:var(--red);font-weight:400}.hero .intro{max-width:390px;color:var(--muted);font-size:15px}.actions{display:flex;gap:28px;align-items:center;margin-top:28px}.textlink{display:inline-block;border-bottom:1px solid var(--ink);padding-bottom:5px;font-size:12px}.textlink:hover{color:var(--red);border-color:var(--red)}.collage{height:390px;position:relative;margin:0 12px}.paper{position:absolute;background:#e6dfcf;box-shadow:0 12px 22px #2222;border:1px solid #2222}.note-paper{top:2%;right:4%;width:73%;height:77%;transform:rotate(7deg);padding:25px;font:11px monospace;background:repeating-linear-gradient(#e6dfcf 0 24px,#c9c2b6 25px)}.record-paper{left:4%;top:14%;width:68%;aspect-ratio:1;transform:rotate(-9deg);background:#8f373a;color:var(--paper);padding:20px;overflow:hidden}.record-paper strong{font:italic 37px Georgia;position:relative;z-index:2}.vinyl{position:absolute;width:82%;aspect-ratio:1;border-radius:50%;left:25%;top:28%;background:repeating-radial-gradient(circle,#252321 0 2px,#37332f 3px 4px);display:grid;place-items:center}.vinyl:before{content:'';width:27%;aspect-ratio:1;background:#bba370;border:10px solid #d6c5a2;border-radius:50%}.label-paper{bottom:0;right:0;transform:rotate(3deg);padding:16px 25px;background:#ece6d8;font:italic 22px Georgia}.stamp{position:absolute;right:-1%;top:2%;width:82px;height:82px;border:1px solid var(--red);border-radius:50%;display:grid;place-items:center;text-align:center;color:var(--red);font:10px/1.4 monospace;transform:rotate(15deg);background:var(--paper)}.section{border-top:1px solid var(--ink);padding:28px 0 55px}.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:28px}.section-head h2{margin:0}.section-head .meta{display:block;margin-bottom:12px}.work-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:35px}.work-grid .project:nth-child(even){padding-top:55px}.art{height:300px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;transition:transform .4s}.project:hover .art,.album:hover .album-art{transform:translateY(-5px)}.art .big{font:64px/.9 Georgia;letter-spacing:-3px}.art .art-label{position:absolute;left:20px;top:15px;font:9px monospace;letter-spacing:2px}.art .art-bottom{position:absolute;bottom:16px;right:20px;font:10px monospace}.campaign{background:#8f373a;color:#eee6d6}.campaign .big{transform:rotate(-6deg);font-style:italic;font-size:80px}.campaign:after{content:'↗';position:absolute;right:30px;bottom:30px;font:85px Georgia;color:#c5ae78}.podcast{background:#c8ba9e;color:#282821}.podcast:before{content:'';position:absolute;width:230px;height:230px;right:-20px;top:60px;border:1px solid #8f373a;border-radius:50%;box-shadow:0 0 0 16px #c8ba9e,0 0 0 17px #8f373a,0 0 0 33px #c8ba9e,0 0 0 34px #8f373a}.podcast .big{z-index:1;font-style:italic;margin-right:50px}.video{background:#424c44;color:#f4f0e7}.video .big{border:1px solid #f4f0e7;padding:25px}.writing{background:#dfd5c1}.writing .big{border-top:3px solid;border-bottom:1px solid;padding:20px 0}.social{background:#bab3a9;color:#8f373a}.project-info{padding-top:16px;display:flex;justify-content:space-between;gap:14px}.project-info h3{margin:6px 0 9px}.project-info p{font-size:13px;color:var(--muted);max-width:400px}.arrow{font-size:25px}.placeholder{font:9px/1.4 Arial;letter-spacing:1px;color:var(--red);text-transform:uppercase}.listening{display:grid;grid-template-columns:1fr 2fr;gap:55px}.listening p{color:var(--muted);font-size:14px;max-width:250px}.albums{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.album-art{aspect-ratio:1;position:relative;overflow:hidden;transition:transform .4s;background:var(--red);color:#f4f0e7;isolation:isolate}.album-art:before{content:'';position:absolute;width:72%;height:130%;border-radius:50%;background:#ce9b7b;transform:rotate(35deg);left:30%;top:-14%;mix-blend-mode:screen}.album-art:after{content:'';position:absolute;width:65%;aspect-ratio:1;border:1px solid currentColor;border-radius:50%;left:17%;top:18%;box-shadow:0 0 0 9px #ffffff12,0 0 0 20px #ffffff12}.album-art strong{position:absolute;font:italic 42px Georgia;bottom:12%;left:10%;z-index:2}.album-art small{position:absolute;top:12px;left:12px;font:8px monospace;letter-spacing:2px;z-index:2}.olive{background:#596047}.olive:before{background:#d3cb9c;width:35%;left:32%;border-radius:0;transform:rotate(-28deg)}.blue{background:#5b6972}.blue:before{background:#b8c4bb;height:50%;top:50%;width:140%;left:-20%;border-radius:45%}.gold{background:#a48748}.rose{background:#a57878}.ink{background:#303333}.album h3{font:19px Georgia;margin:12px 0 4px}.album p{font-size:11px;color:var(--muted)}.page-head{padding:58px 0 35px}.page-head h1{font-size:85px;margin:23px 0;letter-spacing:-3px}.page-head p{max-width:540px;color:var(--muted)}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0;margin-bottom:32px}.chip{border:1px solid var(--line);padding:6px 14px;border-radius:25px;background:none;font-size:12px}.chip[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}input[type=search]{margin-left:auto;background:transparent;border:0;border-bottom:1px solid var(--line);padding:8px;width:190px;border-radius:0}.collection-grid{grid-template-columns:repeat(3,1fr);gap:40px;margin-bottom:60px}.collection-grid .album-art strong{font-size:65px}.empty{padding:60px 0;color:var(--muted);min-height:200px}.detail-top{padding:35px 0}.detail{display:grid;grid-template-columns:1fr 1fr;gap:65px;padding:30px 0 70px}.detail h1{font-size:65px;letter-spacing:-2px;margin-top:18px}.detail .album-art{width:100%;max-width:520px}.detail .art{height:430px}.detail-copy{max-width:680px;margin:auto;padding:20px 0 60px}.detail-copy section{border-top:1px solid var(--line);padding:25px 0}.detail-copy h2{font-size:30px}.detail-copy p{color:var(--muted)}.detail .album-art strong{font-size:85px}.about{display:grid;grid-template-columns:1fr 1.3fr;gap:70px;margin-bottom:60px}.portrait{min-height:420px;background:#ddd5c5;display:grid;place-items:center;position:relative}.portrait:before{content:'M';font:italic 240px Georgia;color:#8f373a66}.portrait span{position:absolute;bottom:20px;font:10px monospace;letter-spacing:1px}.about h2{font-size:35px}.info-row{border-top:1px solid var(--line);padding:20px 0}.info-row p{color:var(--muted)}button:disabled{cursor:not-allowed;opacity:.5}.note-row{padding:24px 0;border-top:1px solid var(--line);display:block}.quiet-note{display:flex;justify-content:space-between;gap:30px;padding:26px 0;color:var(--muted)}footer{max-width:1440px;margin:auto;padding:30px 5%;border-top:1px solid var(--ink);display:flex;justify-content:space-between;gap:25px;font-size:11px;color:var(--muted)}.skip{position:fixed;top:-100px;background:var(--ink);color:white;padding:12px;z-index:10}.skip:focus{top:0}@keyframes enter{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@media(min-width:1500px){header,main,footer{max-width:1400px}}@media(max-width:800px){header{gap:16px;padding:20px 5%}nav{gap:17px}.brand small{display:none}.hero{grid-template-columns:1fr 1fr;gap:10px}h1{font-size:72px;letter-spacing:-3px}.collage{height:300px;margin:0}.record-paper strong{font-size:28px}.label-paper{font-size:18px}.art{height:245px}.listening{gap:25px;grid-template-columns:1fr 1.8fr}.albums{gap:16px}.detail{gap:30px}.detail h1{font-size:46px}.about{gap:35px}}@media(max-width:560px){header{flex-wrap:wrap;gap:12px}.brand{font-size:30px}nav{order:3;width:100%;justify-content:space-between}#lang{margin-left:auto}.hero{display:block;padding-top:28px}.hero h1{font-size:77px}.hero .intro{max-width:300px}.collage{height:320px;max-width:330px;margin:40px auto 0}.hero .eyebrow{font-size:9px}.work-grid{grid-template-columns:1fr;gap:24px}.work-grid .project:nth-child(even){padding-top:0}.section-head h2,h2{font-size:33px}.art{height:270px}.listening{display:block}.listening p{max-width:100%}.listening .albums{margin-top:28px}.album-art strong{font-size:27px}.album h3{font-size:16px}.page-head h1{font-size:65px}.collection-grid{grid-template-columns:repeat(2,1fr);gap:25px 18px}.collection-grid .album-art strong{font-size:42px}.toolbar{gap:8px}input[type=search]{width:100%;margin-top:10px}.detail,.about{grid-template-columns:1fr;gap:30px}.detail h1{font-size:52px}.detail .art{height:310px}.portrait{min-height:300px}.quiet-note{display:block}footer{flex-direction:column;gap:10px}.section{padding-bottom:35px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@font-face{font-family:ArchiveSlab;src:url('assets/slab.ttf') format('truetype');font-weight:900;font-display:swap}h1,h2,h3,.serif{font-family:ArchiveSlab,Rockwell,'Roboto Slab','Courier New','Microsoft YaHei',serif!important;font-weight:900!important;font-style:normal!important;text-transform:uppercase;letter-spacing:-1.5px}h1 em,h2 i{font-style:normal}h1{font-size:clamp(55px,7.5vw,104px);line-height:1.02}h3{font-size:23px;letter-spacing:-.6px}.hero{grid-template-columns:1.15fr 1fr;align-items:start;gap:60px}.hero h1{margin-top:32px}.personal-column{min-width:0}.photo-frame{height:420px;background:#ddd5c5;overflow:hidden}.photo-frame img{width:100%;height:100%;object-fit:cover;object-position:center 48%}.cat-caption{display:flex;justify-content:space-between;align-items:center;margin-top:16px}.cat-caption h2{font-size:27px;margin:3px 0}.cat-caption h2 span{font-size:20px}.carousel-controls{display:flex;align-items:center;gap:10px;margin:12px 0 22px}.carousel-controls button{min-width:36px;min-height:36px;border:1px solid var(--line);background:none;font-size:12px}.carousel-controls button[aria-pressed=true]{color:var(--paper);background:var(--red);border-color:var(--red)}.photo-dots{display:flex;gap:6px}#pause-cat{margin-left:auto;padding:0 12px}.character{border-top:1px solid var(--line);padding-top:18px;display:grid;grid-template-columns:105px 1fr;gap:20px;align-items:center}.character img{width:105px;height:135px;object-fit:contain;background:white}.character h3{font-size:19px;margin:7px 0}.character p{font-size:12px;color:var(--muted);margin:0}.work-cover{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;background:#ded7c9;transition:transform .3s}.project:hover .work-cover{transform:translateY(-4px)}.title-cover{aspect-ratio:1;background:#292b26;color:var(--paper);padding:32px;display:flex;flex-direction:column;justify-content:space-between;border:10px double #b8a476}.title-cover strong{font:900 clamp(25px,3.8vw,54px)/1.05 ArchiveSlab,Rockwell,serif;text-transform:uppercase;max-width:90%}.student-label{display:inline-block;font-size:10px;letter-spacing:1.2px;text-transform:uppercase;color:var(--red);border-left:2px solid var(--red);padding-left:8px}.work-grid{grid-template-columns:1fr 1fr;gap:40px}.work-grid .project:nth-child(even){padding-top:0}.home-albums{grid-template-columns:repeat(4,1fr);gap:25px}.album-art{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover}.category-list{margin-bottom:70px}.category-row{display:grid;grid-template-columns:55px 1fr 100px 35px;gap:20px;align-items:center;border-top:1px solid var(--ink);padding:28px 0;transition:color .2s,padding .2s}.category-row:last-child{border-bottom:1px solid var(--ink)}.category-row:hover{color:var(--red);padding-left:12px}.category-row h2{margin:0;font-size:clamp(28px,4vw,52px)}.category-projects{margin-bottom:70px}.detail h1{font-size:clamp(35px,4.3vw,62px);overflow-wrap:anywhere}.detail>.work-cover,.detail>.title-cover{max-width:540px}.detail .album-art{max-width:520px}.detail-copy h2{font-size:29px}.page-head h1{font-size:clamp(44px,7vw,85px)}.album h3{font-size:20px}.about h2{font-size:30px}.about h3{font-size:22px}.brand{font-family:ArchiveSlab,Rockwell,serif}main{animation:none}@media(max-width:800px){.hero{gap:28px}.hero h1{font-size:65px}.photo-frame{height:350px}.cat-caption h2{font-size:23px}.character{grid-template-columns:80px 1fr;gap:12px}.character img{width:80px;height:120px}.character h3{font-size:15px}.home-albums{grid-template-columns:repeat(2,1fr)}.detail{gap:30px}}@media(max-width:560px){.hero{display:block}.hero h1{font-size:clamp(48px,12.5vw,70px);letter-spacing:-2px}.personal-column{margin-top:35px}.photo-frame{height:430px}.character{grid-template-columns:100px 1fr}.character img{width:100px;height:130px}.character h3{font-size:18px}.work-grid{grid-template-columns:1fr}.category-row{grid-template-columns:24px 1fr 60px 20px;gap:10px;padding:24px 0}.category-row h2{font-size:24px;letter-spacing:-1px}.category-row .meta{font-size:8px;letter-spacing:.5px}.home-albums{gap:25px 16px}.album h3{font-size:18px}.section-head h2{font-size:27px}.detail h1{font-size:38px}.title-cover strong{font-size:42px}.page-head{padding-top:35px}.cat-caption h2{font-size:27px}.hero .eyebrow{letter-spacing:1px}}
h1,h2,h3{overflow-wrap:break-word}.brand span{font-family:Arial,sans-serif}.detail>div{min-width:0}@media(max-width:380px){.page-head h1{font-size:36px}.detail h1{font-size:32px}.photo-frame{height:370px}}
.site-owner{font-size:13px;letter-spacing:2px;margin-top:25px}.cat-note{font-size:13px;color:var(--muted);margin:6px 0 0}.character .character-verse{margin-top:8px;font-size:12px;line-height:1.7}.portrait-photo{width:100%;height:auto;position:sticky;top:25px}.profile-lines{white-space:pre-line;line-height:1.9}.video-frame{width:100%;max-width:420px;justify-self:center}.video-frame video{display:block;width:100%;max-height:720px;background:#111;border:1px solid var(--line)}.video-frame .meta{margin-top:14px}.reading-page{max-width:770px;margin:0 auto 80px;font-size:17px;line-height:1.85}.reading-head{border-top:3px solid var(--red);padding-top:30px;margin-bottom:45px}.reading-head h2{font-size:36px;line-height:1.2;margin:18px 0}.reading-page>h2{font-size:27px;margin:45px 0 20px}.reading-page p{overflow-wrap:anywhere}.reading-page a{color:var(--red);text-decoration:underline;text-underline-offset:3px}.reading-page figure{margin:28px 0 12px}.reading-page figure img{display:block;max-width:100%;max-height:650px;object-fit:contain;margin:auto}.reading-page .figure-caption{font-size:12px;color:var(--muted);text-align:center}.byline{font-size:11px;letter-spacing:1px}.collection-type-cover{aspect-ratio:1;display:flex;flex-direction:column;justify-content:space-between;padding:28px;background:#8f373a;color:var(--paper);transition:transform .3s}.collection-type-cover strong{font:900 clamp(24px,3vw,43px)/1.12 ArchiveSlab,Rockwell,serif;text-transform:uppercase;overflow-wrap:anywhere}.collection-type-cover .cover-number{font:10px monospace;letter-spacing:6px;border-top:1px solid #ffffff66;padding-top:15px}.film-gold{background:#b29862;color:#222;border:12px double #222}.game-gold{background:#252a30;border-top:15px solid #d4a546}.game-cover{object-fit:contain;background:#fff}.detail>.collection-type-cover{width:100%;max-width:520px}.album:hover .collection-type-cover{transform:translateY(-5px)}@media(max-width:560px){.portrait-photo{position:static}.reading-page{font-size:16px}.reading-head h2{font-size:28px}.collection-type-cover{padding:16px}.collection-type-cover strong{font-size:23px}.detail .collection-type-cover strong{font-size:35px}.video-frame video{max-height:70vh}.about h2{font-size:29px}}
/* Plum & pale gold — editorial motion system */
:root{--paper:#E9E5B8;--ink:#300C33;--red:#71375D;--line:#b5a78c;--muted:#665062;--ease:cubic-bezier(.22,1,.36,1)}
body{background:var(--paper)}header{position:relative;z-index:2}.brand{font-size:34px;letter-spacing:-1.5px;flex-shrink:0}.brand small{letter-spacing:1.5px}.brand span{margin-left:4px}.hero h1 em{color:var(--red)}.photo-frame{position:relative;background:#c8bb9b}.photo-frame img{display:block}.photo-frame .photo-outgoing{position:absolute;inset:0;pointer-events:none}.title-cover{background:var(--ink);border-color:#c7b77d}.work-cover,.collection-cover{background:#d4caa5}.collection-cover{object-fit:contain;aspect-ratio:3/4}.collection-cover.square{object-fit:contain}.detail>.collection-cover{max-height:680px;object-fit:contain}.character{background:#ded5ad;padding:20px;margin-top:4px;border-top:2px solid var(--ink)}.character img{background:white}.photo-dots{gap:4px;flex-wrap:wrap}.carousel-controls{gap:6px;flex-wrap:wrap}.carousel-controls button{min-width:30px}.carousel-controls #pause-cat{padding:0 9px}.student-label{color:var(--red)}::selection{color:var(--paper);background:var(--ink)}
a,button{transition:color .25s,background-color .25s,border-color .25s,transform .45s var(--ease)}button:not(:disabled):hover{background:var(--ink);color:var(--paper);transform:translateY(-2px)}nav a:after{content:'';position:absolute;bottom:0;left:0;height:2px;width:100%;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}nav a:hover:after,nav a.active:after{transform:scaleX(1)}.brand:hover{transform:translateY(-2px)}.project .work-cover,.album-art,.title-cover{transition:transform .65s var(--ease),box-shadow .65s var(--ease)}.project:hover .work-cover,.album:hover .album-art,.project:hover .title-cover{transform:translateY(-7px) rotate(-.6deg);box-shadow:8px 14px 0 #300c3315}.category-row{transition:color .35s,padding .5s var(--ease),background .35s}.category-row:hover{background:#300c3308;padding-left:16px}.arrow{transition:transform .4s var(--ease)}a:hover .arrow{transform:translate(5px,-5px)}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease)}.reveal.revealed{opacity:1;transform:none}.category-row.reveal{transition:opacity .65s var(--ease),transform .65s var(--ease),padding .4s var(--ease)}
@keyframes opening{from{opacity:0;transform:translateY(36px)}to{opacity:1;transform:none}}@keyframes photoOpening{from{opacity:0;clip-path:inset(12% 0 12% 0);transform:scale(.96)}to{opacity:1;clip-path:inset(0);transform:scale(1)}}
.arriving header{animation:opening .8s var(--ease) both}.arriving .hero h1,.arriving .page-head{animation:opening 1s .15s var(--ease) both}.arriving .hero .eyebrow,.arriving .site-owner,.arriving .actions{animation:opening .9s .3s var(--ease) both}.arriving .personal-column{animation:photoOpening 1.15s .2s var(--ease) both}
::view-transition-old(root){animation:routeOut .25s ease both}::view-transition-new(root){animation:routeIn .55s var(--ease) both}@keyframes routeOut{to{opacity:0;transform:translateY(-10px)}}@keyframes routeIn{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}#results .album{animation:opening .55s var(--ease) both}#results .album:nth-child(2){animation-delay:.06s}#results .album:nth-child(3){animation-delay:.12s}#results .album:nth-child(4){animation-delay:.18s}
@media(max-width:560px){.brand{font-size:30px}.character{padding:16px}.carousel-controls button{min-height:40px}.photo-dots button{min-width:29px}.photo-dots{gap:3px}#pause-cat{margin-left:0}.hero{padding-top:30px}}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}*,*::before,*::after,::view-transition-old(root),::view-transition-new(root){animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Dark plum edition */
:root{--paper:#300C33;--ink:#E9E5B8;--red:#E9E5B8;--line:#70516e;--muted:#d0c5b2}
body{background:#300C33;color:#E9E5B8}.hero h1 em{color:#E9E5B8}.character{background:#401b43;border-color:var(--line)}.title-cover{background:#401b43;color:var(--ink);border-color:#a39478}.work-cover,.collection-cover,.collection-cover.square,.photo-frame{background:#401b43}.category-row:hover{background:#e9e5b80a}.project:hover .work-cover,.album:hover .album-art,.project:hover .title-cover{box-shadow:8px 14px 0 #e9e5b817}.chip,#lang,input,button{color:inherit}input::placeholder{color:var(--muted)}.image-zoom{display:block;border:0;padding:0;cursor:zoom-in;color:inherit;width:100%;text-align:left}.image-zoom:hover{transform:none!important;background:transparent!important}.image-zoom img{transition:filter .3s,scale .6s var(--ease)}.image-zoom:hover img{filter:brightness(1.06)}.character-zoom{width:105px;background:#fff;overflow:hidden}.character-zoom img{display:block}.photo-frame.image-zoom{height:420px;background:#401b43}.viewing-image{overflow:hidden}
#image-viewer{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;border:0;padding:60px 5vw 24px;background:#220824f5;color:#E9E5B8;overflow:auto}#image-viewer::backdrop{background:#160318e8}#image-viewer[open]{display:grid;place-items:center;animation:viewerIn .3s var(--ease)}#image-viewer figure{margin:0;max-width:100%;pointer-events:none}#viewer-image{display:block;max-width:90vw;max-height:calc(100dvh - 130px);width:auto;height:auto;object-fit:contain;margin:auto}#viewer-caption{text-align:center;font-size:13px;line-height:1.5;padding-top:18px}#image-viewer .viewer-close{position:fixed;top:18px;right:24px;min-height:44px;padding:8px 18px;border:1px solid #E9E5B8;background:#300C33;color:#E9E5B8;z-index:1}#image-viewer .viewer-close:hover{background:#E9E5B8;color:#300C33}@keyframes viewerIn{from{opacity:0;transform:scale(.975)}to{opacity:1;transform:none}}
@media(max-width:800px){.photo-frame.image-zoom{height:350px}.character-zoom{width:80px}}@media(max-width:560px){.photo-frame.image-zoom{height:430px}.character-zoom{width:100px}}@media(max-width:380px){.photo-frame.image-zoom{height:370px}}@media(prefers-reduced-motion:reduce){#image-viewer[open]{animation:none}}
/* Text palette: primary reading, editorial emphasis, interaction accents. */
:root{
  --color-background:#300C33;
  --color-text:#E9E5B8;
  --color-emphasis:#C9A7E0;
  --color-interactive:#F2B27A;
  --paper:var(--color-background);
  --ink:var(--color-text);
  --red:var(--color-emphasis);
  --muted:var(--color-text);
}
body{background:var(--color-background);color:var(--color-text)}
/* Keep the masthead, page titles and personal names in the primary colour. */
.brand,.hero h1,.hero h1 em,.page-head h1,.detail h1,.cat-caption h2,.about>div>h2{color:var(--color-text)}
.section-head h2,.section>h2,.category-row h2,.detail-copy h2,.reading-page h2,.info-row h3,.character h3,.project-info h3,.album h3{color:var(--color-emphasis)}
.student-label,.placeholder{color:var(--color-emphasis);border-color:var(--color-emphasis)}
.textlink,.reading-page a,footer a{color:var(--color-emphasis)}
.textlink{border-color:var(--color-emphasis)}
nav a{color:var(--color-text)}
nav a.active,nav a:hover,nav a:focus-visible,.brand:hover,.brand:focus-visible,.textlink:hover,.textlink:focus-visible,.reading-page a:hover,.reading-page a:focus-visible,footer a:hover,footer a:focus-visible{color:var(--color-interactive)}
nav a:after,nav a.active:after,.dot{background:var(--color-interactive)}
.textlink:hover,.textlink:focus-visible{border-color:var(--color-interactive)}
.brand span,.arrow{color:var(--color-emphasis)}
.brand:hover span,.brand:focus-visible span,a:hover .arrow,a:focus-visible .arrow,.category-row:hover h2,.category-row:focus-visible h2,.project:hover .project-info h3,.project:focus-visible .project-info h3,.album:hover h3,.album:focus-visible h3{color:var(--color-interactive)}
.chip[aria-pressed=true],.carousel-controls button[aria-pressed=true]{background:var(--color-interactive);color:var(--color-background);border-color:var(--color-interactive)}
button:not(:disabled):not(.image-zoom):hover,button:not(:disabled):not(.image-zoom):focus-visible,#image-viewer .viewer-close:hover,#image-viewer .viewer-close:focus-visible{background:var(--color-interactive);color:var(--color-background);border-color:var(--color-interactive)}
a:focus-visible,button:focus-visible,input:focus-visible{outline-color:var(--color-interactive)}
#image-viewer,#image-viewer .viewer-close{color:var(--color-text)}
#image-viewer .viewer-close{background:var(--color-background);border-color:var(--color-emphasis)}
.project-info h3,.album h3,.category-row h2,.brand span,.reading-page a,footer a{transition:color .3s var(--ease)}
/* Existing transform transitions remain untouched. */
.arrow{transition:transform .4s var(--ease),color .3s var(--ease)}
.hero h1 em{color:var(--color-emphasis)}
.landscape-video{max-width:none;align-self:start}.landscape-video video{aspect-ratio:16/9;max-height:none}
.magazine-viewer{margin:0 auto 70px;border-top:1px solid var(--line);padding-top:30px}.magazine-viewer>p{font-size:13px}.magazine-image{background:transparent;display:flex;justify-content:center}.magazine-image img{display:block;max-width:100%;height:70vh;object-fit:contain;margin:auto}.magazine-controls{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:24px 0}.magazine-controls button{border:1px solid var(--line);background:none;padding:10px 18px;min-height:44px}.magazine-controls span{font-size:12px;text-align:center}.track-list{padding-left:20px;line-height:1.9}.reading-page figcaption{margin-top:12px}.reading-page h2{line-height:1.35}@media(max-width:560px){.magazine-image img{height:auto;max-height:65vh}.magazine-controls{gap:10px}.magazine-controls button{padding:8px;font-size:12px}.magazine-controls span{font-size:10px}.has-landscape{display:flex;flex-direction:column}}

.experience-list{display:grid;gap:1.6rem}.experience-list h4{font:inherit;font-weight:700;color:var(--color-emphasis);margin:0 0 .35rem}.experience-list p{margin:0}.landscape-video video{object-fit:contain}

.experience-list h4{text-transform:uppercase}
