:root{--blue:#224f8c;--paper:#f4f1e8;--ink:#111;--white:#fffdfa}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:3px solid #dcab48;outline-offset:5px}.skip-link{position:fixed;top:-70px;background:white;padding:14px;z-index:20}.skip-link:focus{top:8px}.site-header{display:flex;align-items:center;background:var(--blue);color:white;min-height:54px;padding:0 12px;position:relative;z-index:5}.brand{display:flex;flex:0 0 48px}.brand img{width:44px;height:44px;object-fit:contain}.site-header nav{flex:1;display:flex;justify-content:space-around;align-items:center;gap:18px;padding:10px 18px}.site-header nav a{font-family:Georgia,'Times New Roman',serif;font-size:clamp(16px,1.9vw,26px);font-weight:900;letter-spacing:.15em;text-transform:uppercase;text-decoration:none;text-underline-offset:5px}.site-header nav a:hover,.site-header nav a[aria-current]{text-decoration:underline}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;margin:0}h1{font-size:clamp(40px,5.1vw,72px)}.hero{display:block;width:100%;height:auto}.home-intro{text-align:center;padding:10px 20px 34px}.home-intro h1{font-size:clamp(42px,4.6vw,66px);font-weight:600}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:14px;line-height:1.8;margin:14px 0 0}.home-grid{max-width:1170px;margin:0 auto 44px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:0 0}.tile{position:relative;display:block;min-height:270px;overflow:hidden;background:white}.tile img{display:block;width:100%;height:100%;position:absolute;object-fit:cover;transition:transform .3s}.tile:hover img{transform:scale(1.025)}.tile.wide{grid-column:span 2}.tile.brat img{object-fit:contain}.tile-label{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);min-width:200px;max-width:90%;text-align:center;background:#fffef9e8;padding:17px 22px;text-transform:uppercase;letter-spacing:.12em;font-size:14px}.tile-tag{position:absolute;top:8px;left:16px;background:var(--blue);color:white;padding:7px 12px;font:700 16px Georgia,serif;text-transform:uppercase}.page{max-width:1240px;margin:auto;padding:38px 36px 70px}.page-title{text-align:center;text-transform:uppercase;margin-bottom:26px}.characters{display:block;width:100%;height:auto}.edition-section{background:var(--white);padding:44px 36px 70px;text-align:center}.editions{max-width:1260px;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:60px auto 0}.edition{display:block;border:1px solid #777;text-decoration:none;padding:24px 20px 34px;transition:background .2s}.edition:hover{background:var(--paper)}.edition img{height:300px;max-width:100%;object-fit:contain}.edition h2{font-size:26px;margin-top:15px}.archive{max-width:1100px;margin:auto;padding:35px 24px 70px}.archive h1{text-align:center;text-transform:uppercase;letter-spacing:.08em;font-size:clamp(34px,4.2vw,62px);line-height:1.3}.archive-portrait{display:block;height:290px;max-width:75%;object-fit:contain;margin:20px auto 40px}.comic{margin:0 0 24px}.comic button{display:block;width:100%;border:0;background:white;padding:0}.comic img{width:100%;height:auto;display:block}.comic button:hover{box-shadow:0 0 0 3px var(--blue)}.divider{border:0;border-top:1px solid #8d897e;margin:38px -24px}.archive-nav{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;margin-top:45px}.archive-nav a{padding:12px 18px;border:1px solid var(--blue);color:var(--blue);text-decoration:none}.archive-nav a[aria-current]{background:var(--blue);color:white}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.gallery-grid figure{margin:0}.gallery-grid img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.gallery-grid figcaption{font-family:Georgia,serif;font-size:22px;padding:14px 0}.feature-image{display:block;width:100%;max-width:1040px;max-height:700px;object-fit:contain;margin:24px auto}.content-note{max-width:620px;margin:28px auto;text-align:center;font-size:18px;line-height:1.7}.story-image{display:block;width:210px;margin:30px auto}.back-link{display:inline-block;margin-bottom:25px;color:var(--blue);text-underline-offset:4px}dialog{border:0;background:var(--paper);color:var(--ink);width:min(1500px,96vw);max-width:96vw;padding:20px;max-height:94dvh}dialog::backdrop{background:#101927d9}.reader-tools{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px;font-family:Georgia,serif;font-size:22px}.reader-tools button{background:var(--blue);color:white;border:0;padding:10px 16px;flex-shrink:0}.reader-scroll{overflow:auto}.reader-scroll img{display:block;width:100%;min-width:950px}.reader-hint{font-size:14px;color:#555}body:has(dialog[open]){overflow:hidden}@media(min-width:1600px){.hero{max-height:850px;object-fit:cover;object-position:center bottom}}@media(max-width:1250px){.home-grid{margin-left:5%;margin-right:5%}.tile{min-height:240px}.edition img{height:240px}}@media(max-width:700px){.site-header{padding:5px 8px;align-items:center}.brand{flex-basis:38px}.brand img{width:34px;height:34px}.site-header nav{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 18px;padding:9px 14px;text-align:center}.site-header nav a{font-size:14px;letter-spacing:.1em}.hero{width:100%;min-height:260px;object-fit:cover;object-position:center}.home-intro{padding:22px 10px 26px}.eyebrow{font-size:12px;letter-spacing:.11em}.home-grid{grid-template-columns:repeat(2,1fr);gap:12px;margin:0 18px 28px}.tile{min-height:190px}.tile.wide{grid-column:span 1}.tile:last-child{grid-column:span 2}.tile-label{min-width:0;width:85%;padding:13px 8px;font-size:12px}.tile-tag{font-size:11px;left:6px;padding:6px}.page{padding:30px 18px 45px}.page-title{font-size:36px}.editions{grid-template-columns:1fr;margin-top:30px}.edition-section{padding:34px 22px}.edition-section h1{font-size:38px}.edition img{height:240px}.characters{width:100%}.gallery-grid{grid-template-columns:repeat(2,1fr);gap:15px}.gallery-grid figcaption{font-size:18px}.archive{padding:25px 15px 45px}.archive-portrait{height:220px;margin:15px auto 28px}.divider{margin:26px 0}.comic{margin-bottom:18px}.reader-tools{font-size:18px}.content-note{font-size:16px}.feature-image{margin:16px auto}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.brand img,.story-image{border-radius:50%}.edition img,.archive-portrait{mix-blend-mode:multiply}
/* The original Canva artwork is split into independently animated layers. */
.hero-window{overflow:hidden;background:#162735}
.hero-stage{position:relative;width:100%;aspect-ratio:1800/936;container-type:inline-size;isolation:isolate}
.room-backdrop{display:block;width:100%;height:100%;position:absolute;inset:0;object-fit:fill;pointer-events:none}
.scene-photo{position:absolute;display:block;z-index:3;transform-origin:50% 10%;transition:transform .38s cubic-bezier(.2,.8,.25,1),filter .38s;outline-offset:3px}
.scene-photo img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}
.scene-photo:hover,.scene-photo:focus-visible{z-index:6;transform:translateY(-5%) rotate(var(--tilt,-4deg)) scale(1.085);filter:drop-shadow(0 12px 9px #0006)}
.scene-photo.photo-cherry{--tilt:4deg}.scene-photo.photo-autumn{--tilt:-5deg}.scene-photo.frame{transform-origin:50% 95%}
.typewriter{display:block;position:absolute;z-index:4;border:0;padding:0;background:none;color:#231f17;cursor:pointer;container-type:inline-size;transition:filter .25s}
.typewriter>img{width:100%;height:100%;display:block;pointer-events:none;user-select:none}
.typewriter:hover,.typewriter:focus-visible{filter:drop-shadow(0 4px 4px #0003)}
.mug{position:absolute;z-index:4;left:62.2%;top:66.8%;width:13%;padding:0;border:0;background:transparent;cursor:pointer;transform-origin:45% 90%;transition:transform .35s ease,filter .35s ease;filter:drop-shadow(1px 3px 2px #0004)}
.mug img{display:block;width:100%;height:auto;pointer-events:none;user-select:none}
.mug:hover,.mug:focus-visible{transform:translateY(-4%) rotate(-4deg);filter:drop-shadow(4px 8px 5px #0005)}
.mug.is-nudged{animation:mug-nudge .65s ease-in-out}
@keyframes mug-nudge{0%,100%{transform:translateY(0) rotate(0)}30%{transform:translateY(-7%) rotate(-6deg)}65%{transform:translateY(-3%) rotate(3deg)}}
.typing-paper{position:absolute;left:23%;top:5%;width:60.7%;height:22.3%;background:radial-gradient(ellipse at 25% 0%,#f9f3e2,transparent 80%),linear-gradient(100deg,#f0e6ce,#f5ecd7 60%,#ebe0c7);display:flex;align-items:center;justify-content:center;white-space:pre-wrap;text-align:center;font-family:'Courier New',monospace;font-weight:600;font-size:4.05cqw;line-height:1.4;pointer-events:none;transform:rotate(.5deg)}
.typed-words{white-space:pre-wrap;min-height:2.8em}
.typing-cursor{display:none}
.is-typing .typing-cursor{display:block;width:1px;height:1em;background:#514735;margin-left:2px;animation:cursor-blink .55s steps(1) infinite;align-self:flex-end;margin-bottom:9%}
.is-typing>img{animation:typewriter-keys .17s steps(2,end) infinite}
.shelf-books{position:absolute;z-index:1;transform-origin:50% 100%;transition:transform .4s,filter .4s;filter:brightness(.78) drop-shadow(3px 3px 3px #0007)}
.shelf-books img{width:100%;display:block;user-select:none}
.books-left{left:1.1%;bottom:65.4%;width:17.9%}
.books-right{right:1%;bottom:39.3%;width:19.4%}
.shelf-books:hover{transform:translateY(-3%) rotate(-1deg);filter:brightness(.94) drop-shadow(5px 5px 4px #0008)}
@keyframes typewriter-keys{0%,100%{transform:translate(0,0)}50%{transform:translate(.25px,.5px)}}
@keyframes cursor-blink{50%{opacity:0}}
@media(max-width:700px){.hero-stage{width:max(100%,460px);left:50%;transform:translateX(-50%)}.scene-photo:hover,.scene-photo:focus-visible{transform:translateY(-3%) rotate(var(--tilt,-3deg)) scale(1.04)}}
@media(prefers-reduced-motion:reduce){.scene-photo:hover,.scene-photo:focus-visible,.shelf-books:hover,.mug:hover,.mug:focus-visible{transform:none}.is-typing>img,.is-typing .typing-cursor,.mug.is-nudged{animation:none}.typewriter,.scene-photo,.shelf-books,.mug{transition:none}}

/* Team profiles use the paper and ink treatment from the original design. */
.team-page{padding-top:48px}
.team-page .page-title{margin-bottom:38px}
.team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.team-card{display:block;min-width:0;background:var(--white);border:1px solid #bcb6aa;text-decoration:none;transition:transform .2s,box-shadow .2s}
.team-card:hover,.team-card:focus-visible{transform:translateY(-4px);box-shadow:0 10px 22px #192d4422}
.team-photo{aspect-ratio:4/3;display:grid;place-items:center;overflow:hidden;background:#e8e2d7;border-bottom:1px solid #bcb6aa}
.team-photo img{display:block;width:100%;height:100%;object-fit:cover}
.team-photo span{font:700 20px Georgia,'Times New Roman',serif;letter-spacing:.08em;color:#6c675f;text-transform:uppercase}
.team-copy{padding:22px 24px 28px}
.team-number{margin:0 0 14px;color:var(--blue);font:700 14px Georgia,'Times New Roman',serif;letter-spacing:.14em}
.team-copy h2{font-size:clamp(25px,2.3vw,32px);line-height:1.2}
.team-copy>p:not(.team-number){font-size:16px;line-height:1.6;margin:12px 0 0;overflow-wrap:anywhere}
.team-read-more{display:inline-block;color:var(--blue);font-weight:700;font-size:15px;margin-top:18px;text-decoration:underline;text-underline-offset:4px}
.team-detail{max-width:1100px}
.team-detail-header{margin:8px 0 34px}
.team-detail-header h1{font-size:clamp(38px,5vw,66px)}
.team-introduction{font-size:20px;line-height:1.5;margin:12px 0 0;max-width:760px}
.team-detail-layout{display:grid;grid-template-columns:minmax(250px,38%) minmax(0,1fr);align-items:start;gap:clamp(28px,5vw,70px)}
.team-detail .team-photo{aspect-ratio:4/5;border:1px solid #bcb6aa}
.team-biography{background:var(--white);border-top:3px solid var(--blue);padding:26px 32px 34px;min-height:320px}
.team-biography h2{font-size:28px;margin-bottom:16px}
.team-biography p{font-size:18px;line-height:1.75;margin:0 0 1.2em;overflow-wrap:anywhere}
.team-biography p:last-child{margin-bottom:0}
@media(max-width:850px){.team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.team-detail-layout{grid-template-columns:1fr}.team-detail .team-photo{aspect-ratio:5/4}.team-detail-header{margin-bottom:25px}.team-introduction{font-size:17px}.team-biography{padding:22px 24px;min-height:0}.team-biography p{font-size:16px}}
@media(max-width:560px){.team-page{padding-top:34px}.team-page .page-title{margin-bottom:24px}.team-grid{grid-template-columns:1fr;gap:20px}.team-photo{aspect-ratio:5/4}.team-copy{padding:20px}}
@media(prefers-reduced-motion:reduce){.team-card{transition:none}.team-card:hover,.team-card:focus-visible{transform:none}}
.team-custom-biography{display:block;width:100%;height:240px;border:0;background:transparent}
.site-header nav a{position:relative;display:inline-block;text-decoration:none!important;white-space:nowrap}
.site-header nav a[hidden]{display:none}
/* A compact, slightly uneven brush stroke beneath the active navigation label. */
.site-header nav a::after{content:"";position:absolute;left:-.1em;width:calc(100% + .12em);top:calc(100% - .28em - 2px);height:.28em;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 130 12' preserveAspectRatio='none'%3E%3Cpath d='M2 5 Q26 1 62 4.5 Q96 8 128 2 L128 8 Q98 13 62 10 Q28 6.5 2 11 Z' fill='white'/%3E%3C/svg%3E") center/100% 100% no-repeat;transform:scaleX(0);transform-origin:left center;transition:transform .3s ease;pointer-events:none}
.site-header nav a[aria-current]::after,.site-header nav a:hover::after,.site-header nav a:focus-visible::after{transform:scaleX(1)}
.site-header nav a::before{content:"";position:absolute;z-index:2;left:-6%;right:-6%;top:35%;height:42%;background:var(--scribble) center/100% 100% no-repeat;opacity:0;transform:scaleX(.2) rotate(var(--scribble-angle));transform-origin:left center;transition:opacity .18s ease,transform .33s cubic-bezier(.2,.7,.2,1);pointer-events:none}
.site-header nav a:nth-child(1){--scribble:url("assets/scribble-1.svg?v=2");--scribble-angle:-3deg}
.site-header nav a:nth-child(2){--scribble:url("assets/scribble-2.svg?v=2");--scribble-angle:3deg}
.site-header nav a:nth-child(3){--scribble:url("assets/scribble-3.svg?v=2");--scribble-angle:-5deg}
.site-header nav a:nth-child(4){--scribble:url("assets/scribble-4.svg?v=2");--scribble-angle:2deg}
.site-header nav a:nth-child(5){--scribble:url("assets/scribble-5.svg?v=2");--scribble-angle:-2deg}
.site-header nav a:nth-child(6){--scribble:url("assets/scribble-6.svg?v=2");--scribble-angle:4deg}
.site-header nav:has(a:is(:hover,:focus-visible)) a:is(:hover,:focus-visible){z-index:3}
.site-header nav:has(a:is(:hover,:focus-visible)) a:not(:is(:hover,:focus-visible)){color:#a9bad5}
.site-header nav:has(a:is(:hover,:focus-visible)) a:not(:is(:hover,:focus-visible))::before{opacity:1;transform:scaleX(1) rotate(var(--scribble-angle))}
.site-header nav:has(a:is(:hover,:focus-visible)) a:not(:is(:hover,:focus-visible))::after{transform:scaleX(0)}
@media(prefers-reduced-motion:reduce){.site-header nav a::before,.site-header nav a::after{transition:none}}
#admin-book{border:0;padding:0;background:transparent;cursor:pointer}
.team-page{max-width:1220px}.team-page .page-title{font-size:clamp(44px,6vw,76px);line-height:1.08;margin:12px 0 20px;letter-spacing:-.035em}
.team-intro{max-width:780px;margin:8px auto 34px;text-align:center}
.team-eyebrow{font:700 11px/1.5 Arial,sans-serif;letter-spacing:.2em;color:#63756f;margin:0}
.team-status-filters{display:flex;justify-content:center;gap:6px;max-width:570px;margin:0 auto;padding:5px;border:1px solid #cbd2d5;border-radius:10px;background:#e8e9e4}
.team-status-option{flex:1;min-width:0}
.team-status-option button{width:100%}
.team-alumni-thanks{max-width:700px;min-height:24px;margin:15px auto 26px;text-align:center;font:italic 15px/1.6 Georgia,serif;color:#536579;letter-spacing:0}
.team-status-filters button{min-height:48px;border:0;border-radius:6px;background:transparent;color:var(--blue);font:600 18px/1.3 Georgia,serif;letter-spacing:0;transition:background .2s,color .2s}
.team-status-filters button:hover{background:#d9e0e6}.team-status-filters button[aria-pressed=true]{background:var(--blue);color:white;box-shadow:0 2px 5px #19395720}
.team-role-filters{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;max-width:1120px;margin:0 auto 30px;padding:22px 0;border-top:1px solid #d8d7cf;border-bottom:1px solid #d8d7cf}
.team-together{max-width:700px;margin:0 auto;text-align:center;font:17px/1.8 Georgia,serif;color:#536579;text-wrap:pretty}
.team-together strong{display:block;color:#243e5f;font:600 21px/1.5 Georgia,serif;margin-bottom:8px}
.team-role-filters button{border:1px solid #c6cfd8;border-radius:4px;background:transparent;color:var(--blue);padding:9px 14px;font:600 13px/1.3 Arial,sans-serif;transition:background .2s,color .2s}
.team-page button:focus-visible{outline:3px solid #7094b9;outline-offset:3px}
.team-role-filters button:hover,.team-role-filters button[aria-pressed=true]{background:var(--blue);color:white}
.team-order-note{max-width:700px;margin:18px auto 0;padding:0;text-align:center;color:#536579;font:17px/1.8 Georgia,serif;text-wrap:pretty}
.team-grid{max-width:1120px;margin:auto;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.team-card{border:0;background:transparent;box-shadow:none;transition:transform .2s}.team-card.is-inactive .team-photo img,.team-card.is-inactive .team-photo span{opacity:.6}
.team-card:hover,.team-card:focus-within{box-shadow:none;transform:translateY(-4px)}
.team-profile-link{display:block;position:relative;overflow:hidden;border:1px solid #bcb6aa;background:#e8e2d7;text-decoration:none}
.team-card .team-photo{aspect-ratio:4/5;border:0}.team-card .team-photo img,.team-card .team-photo span{transition:opacity .25s ease}.team-card .team-photo span{text-align:center;padding:10px}
.team-card-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:18px;text-align:center;background:#f4f1e82b;opacity:0;transition:opacity .25s ease;pointer-events:none}
.team-card-overlay h2{font-size:clamp(22px,2vw,30px);line-height:1.15;overflow-wrap:anywhere}.team-bio-button{display:inline-block;padding:10px 15px;background:var(--blue);color:white;font-weight:700;font-size:14px}
.team-profile-link:hover .team-photo img,.team-profile-link:hover .team-photo span,.team-profile-link:focus-visible .team-photo img,.team-profile-link:focus-visible .team-photo span{opacity:.6}
.team-profile-link:hover .team-card-overlay,.team-profile-link:focus-visible .team-card-overlay{opacity:1}
.team-job{text-align:center;color:#273a54;font:700 18px/1.35 Georgia,serif;margin:12px 4px 0;overflow-wrap:anywhere}
.team-empty{text-align:center;font:20px Georgia,serif;margin:50px auto;color:#5d5a54}
.team-detail-layout{grid-template-columns:minmax(210px,290px) minmax(0,1fr);gap:clamp(28px,5vw,70px)}
.site-header{min-height:68px}.site-header nav a{font-size:clamp(16px,2.25vw,34px);letter-spacing:.12em;transition:color .2s ease}
@media(max-width:1000px){.team-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.site-header{min-height:54px}.site-header nav a{font-size:14px;letter-spacing:.1em}.team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.team-status-filters button{min-height:56px;font-size:19px}.team-role-filters{gap:7px}.team-role-filters button{padding:8px 10px;font-size:13px}.team-detail-layout{grid-template-columns:1fr}}
@media(max-width:500px){.team-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.team-job{font-size:15px}.team-card-overlay h2{font-size:19px}.team-bio-button{padding:8px;font-size:12px}.team-status-filters{gap:8px}.team-status-filters button{font-size:16px}}
@media(hover:none){.team-card-overlay{justify-content:flex-end;opacity:1;padding:10px;background:linear-gradient(transparent 40%,#f4f1e8db)}.team-card-overlay h2{font-size:18px}.team-bio-button{font-size:12px}.team-card .team-photo img{opacity:.88}}
@media(prefers-reduced-motion:reduce){.team-status-filters button,.team-role-filters button,.team-card,.team-card-overlay,.team-card .team-photo img,.team-card .team-photo span,.site-header nav a{transition:none}}
#admin-book:focus-visible{outline:3px solid #f0c778;outline-offset:4px}
/* A compact masthead leaves more room for the illustrated home page. */
.site-header{min-height:50px;padding:0 8px}
.brand{flex-basis:38px}.brand img{width:36px;height:36px}
.site-header nav{padding:5px 10px;gap:12px}
.site-header nav a{font-size:clamp(15px,1.8vw,25px);letter-spacing:.1em}
.shelf-chest{position:absolute;z-index:2;right:4.5%;top:17.5%;width:13%;border:0;padding:0;background:transparent;cursor:pointer;filter:brightness(.88) drop-shadow(1px 2px 2px #000b);transition:transform .3s ease,filter .3s ease}
.shelf-chest img{display:block;width:100%;height:auto;pointer-events:none}
.shelf-chest:hover,.shelf-chest:focus-visible{transform:translateY(-2%) scale(1.03);filter:brightness(1) drop-shadow(2px 3px 3px #000b)}
.gallery-intro{text-align:center;margin:-8px 0 30px;color:#44546b;font:18px/1.5 Georgia,serif}
.gallery-editions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.gallery-edition{position:relative;display:block;min-height:270px;overflow:hidden;background:#d7d0c3;text-decoration:none;box-shadow:0 5px 15px #1b26301c}
.gallery-edition img{display:block;width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .3s ease}
.gallery-edition:hover img,.gallery-edition:focus-visible img{transform:scale(1.04)}
.gallery-edition span{position:absolute;left:0;right:0;bottom:0;padding:16px 19px;background:#f4f1e8ed;color:#142948;font:700 clamp(21px,2.4vw,32px) Georgia,serif;text-align:center}
.gallery-page .gallery-grid figcaption{font-size:16px;line-height:1.4;padding:10px 0 18px;color:#34465f}
.gallery-empty{text-align:center;font:20px Georgia,serif;margin:60px auto}
#chest-dialog{width:min(470px,90vw);padding:0;border:2px solid #8c6b42;box-shadow:0 24px 70px #06162f88}
.chest-dialog-content{position:relative;min-height:260px;padding:38px 40px;background:linear-gradient(135deg,#f9f0d9,#efe1c2);text-align:center}
.chest-close{position:absolute;top:9px;right:13px;border:0;background:transparent;font-size:30px;line-height:1}
#chest-title{font-size:clamp(26px,4vw,38px);margin:14px 0 12px;color:#5b351e}
#chest-word{font:italic 700 clamp(28px,5vw,45px) Georgia,serif;color:#224f8c;margin:18px 0 25px;overflow-wrap:anywhere}
.chest-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;align-items:center}
.chest-actions a,.chest-actions button{display:inline-block;padding:10px 13px;border:1px solid #72502f;background:#fffaf0;color:#4a2e1c;text-decoration:none;font:700 14px Arial,sans-serif}
.chest-actions button{background:#72502f;color:white}
#next-chest-word[hidden]{display:none}
@media(max-width:700px){.site-header{min-height:48px}.site-header nav{padding:5px 8px;gap:8px 12px}.site-header nav a{font-size:13px;letter-spacing:.08em}.gallery-editions{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.gallery-edition{min-height:180px}}
@media(max-width:500px){.gallery-editions{grid-template-columns:1fr}.gallery-edition{min-height:220px}}
@media(prefers-reduced-motion:reduce){.shelf-chest,.gallery-edition img{transition:none}}
#admin-login{width:min(420px,92vw);padding:0;border:1px solid #bcb6aa;box-shadow:0 24px 70px #06162f88}
.admin-login-form{position:relative;padding:30px 32px 34px;display:grid;gap:14px}
.admin-login-form h2{font-size:34px;margin:0 0 10px}
.admin-login-form label{font-weight:700}
.admin-login-form input{width:100%;padding:12px;font-size:18px;border:1px solid #8a877f;border-radius:0;background:white;color:var(--ink)}
.admin-login-form #admin-login-status{min-height:1.4em;margin:0;color:#8a2929;line-height:1.4}
.admin-login-submit{background:var(--blue);color:white;border:0;padding:14px;font-weight:700}
.admin-login-submit:disabled{opacity:.6;cursor:wait}
.admin-login-close{position:absolute;right:15px;top:10px;border:0;background:transparent;font-size:28px;line-height:1}
.character-hint{text-align:center;margin:-10px 0 18px;color:#544e43;font:18px Georgia,serif}
.character-board{position:relative;max-width:1168px;margin:auto}
.character-board .characters{display:block;width:100%;height:auto}
.character-hotspot{position:absolute;display:block;outline-offset:2px}
.character-profile{max-width:1050px;min-height:65vh}
.character-profile-card{display:grid;grid-template-columns:minmax(190px,32%) 1fr;gap:clamp(28px,5vw,70px);align-items:start;background:#fffdfa;border:1px solid #c8c1b5;padding:clamp(22px,4vw,48px);box-shadow:0 8px 24px #17253b14}
.character-profile-card>img{display:block;width:100%;max-height:440px;object-fit:contain;background:#eee8dc;border:1px solid #ccc4b5}
.character-profile h1{margin:12px 0 18px}.character-profile .eyebrow{margin:0;color:var(--blue);font-weight:700}.character-summary{font:clamp(20px,2.3vw,28px)/1.4 Georgia,serif;margin:0 0 26px}.character-story{font-size:18px;line-height:1.7;white-space:pre-wrap}.character-story p{margin:0 0 1em}
@media(max-width:650px){.character-hint{font-size:15px}.character-profile-card{grid-template-columns:1fr}.character-profile-card>img{max-height:320px}.character-story{font-size:16px}}
.publication-page{max-width:1120px;padding-top:54px;padding-bottom:80px}
.publication-header{background:#fffdfa;border-top:6px solid var(--blue);padding:48px clamp(28px,5vw,62px) 42px}
.publication-kicker{display:flex;align-items:center;gap:14px;color:var(--blue);font:700 13px Arial,sans-serif;letter-spacing:.18em}
.publication-kicker img{width:44px;height:44px;object-fit:contain;border-radius:50%}
.publication-header h1{font-size:clamp(52px,6vw,80px);line-height:1.05;margin:28px 0 19px}
.publication-lede{max-width:790px;color:#32373d;font:clamp(22px,2.5vw,29px)/1.45 Georgia,'Times New Roman',serif;margin:0}
.publication-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;background:#e8ecec;border-top:1px solid #c7d0d0;border-bottom:1px solid #c7d0d0;padding:22px clamp(28px,5vw,62px);gap:20px}
.publication-facts div{padding-left:18px;border-left:2px solid var(--blue)}
.publication-facts dt{font:700 11px Arial,sans-serif;text-transform:uppercase;letter-spacing:.15em;color:#5a6a75;margin-bottom:8px}
.publication-facts dd{font:700 18px Georgia,serif;margin:0;color:#1a2a3f}
.publication-content{background:#fffdfa;padding:0 clamp(28px,5vw,62px) 36px}
.publication-section{padding:50px 0;border-bottom:1px solid #c9c8c2}
.publication-index{font:700 12px Arial,sans-serif;letter-spacing:.19em;color:var(--blue);margin:0 0 20px}
.publication-section-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(250px,.82fr);gap:clamp(28px,5vw,64px);align-items:start}
.publication-section h2,.publication-note h2{font-size:clamp(31px,3.7vw,48px);line-height:1.14;margin:0 0 20px}
.publication-copy p,.publication-name>p:last-child{font:18px/1.72 Georgia,'Times New Roman',serif;color:#303030;margin:0 0 18px}
.publication-copy p:last-child{margin-bottom:0}
.publication-figure{margin:2px 0 0}
.publication-image{aspect-ratio:4/3;border:1px solid #b8b8b0;background:#edece6;overflow:hidden}
.publication-image img{display:block;width:100%;height:100%;object-fit:cover}
.publication-image-placeholder{height:100%;display:grid;place-content:center;text-align:center;gap:8px;background:linear-gradient(135deg,#f3f1e9,#e2e8e8);color:#61758c}
.publication-image-placeholder span{font:700 clamp(21px,2.4vw,29px) Georgia,serif;letter-spacing:.08em;text-transform:uppercase}
.publication-image-placeholder small{font:700 10px Arial,sans-serif;letter-spacing:.15em;text-transform:uppercase;color:#7d817f}
.publication-figure figcaption{font:italic 15px Georgia,serif;color:#5c6060;margin-top:12px}
.publication-note{display:grid;grid-template-columns:minmax(180px,.4fr) minmax(0,1fr);gap:40px;padding:48px 0;border-bottom:1px solid #c9c8c2}
.publication-note h2{font-size:clamp(27px,3vw,38px);margin-bottom:10px}
.publication-attribution{font:14px/1.45 Arial,sans-serif;color:#6a6d6b;margin:0}
.publication-note blockquote{font:italic clamp(19px,2.1vw,23px)/1.65 Georgia,serif;color:#24364b;margin:0;padding-left:25px;border-left:4px solid var(--blue)}
.publication-name{border-bottom:0;padding-bottom:28px}
.publication-name>p:last-child{max-width:760px;margin:0}
.publication-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px clamp(28px,5vw,62px);background:#e8ecec;border-top:1px solid #c7d0d0;color:#39434b;font:italic 16px Georgia,serif}
.publication-footer span{font:700 13px Arial,sans-serif;letter-spacing:.2em;color:var(--blue)}
@media(max-width:760px){.publication-page{padding:26px 16px 50px}.publication-header{padding:32px 24px}.publication-header h1{margin-top:22px}.publication-lede{font-size:21px}.publication-facts{grid-template-columns:1fr;gap:17px;padding:24px}.publication-content{padding:0 24px 20px}.publication-section{padding:38px 0}.publication-section-grid{grid-template-columns:1fr;gap:25px}.publication-image{max-width:480px}.publication-note{grid-template-columns:1fr;gap:15px;padding:38px 0}.publication-copy p,.publication-name>p:last-child{font-size:17px}.publication-note blockquote{font-size:18px}.publication-footer{padding:20px 24px;flex-wrap:wrap}}
