/* Fixed palettes. No pointer-driven background or live backdrop filters. */
.atmosphere{--scene-bg:#1d2525;--scene-ink:#eee5d2;--scene-muted:#c1b9a7;--scene-line:#d8c7a32b;--scene-gold:#d8b77c;--paper:#e9dec9;--paper-ink:#55483a}
.atmosphere.folio-life{background:var(--scene-bg);color:var(--scene-ink)}
.atmosphere .site-header{background:#293130f5;border-color:#e7d7b030;color:var(--scene-ink);box-shadow:none}
.atmosphere .site-header .brand-name,.atmosphere .site-header nav a,.atmosphere .site-header .brand-name small{color:inherit}
.atmosphere .site-header .brand-mark{color:var(--scene-gold)}
.atmosphere .site-header nav a[aria-current],.atmosphere .site-header nav a:hover{background:#d9c7a519;color:var(--scene-ink);box-shadow:none}
.atmosphere.folio-work .site-header{position:absolute;top:0;left:50%;transform:translateX(-50%);width:calc(100% - 48px);margin-left:0;margin-right:0;z-index:15}
.paged-home{scroll-padding-top:0;scroll-snap-type:y mandatory}
.page-panel{scroll-snap-align:start;scroll-margin:0;scroll-snap-stop:always}
.folio-work>footer{scroll-snap-align:end}
.atmosphere .wildcard-intro{height:100svh;min-height:0;margin:0 calc(50% - 50vw);padding:105px max(36px,calc((100vw - 1120px)/2)) 65px;display:flex;align-items:center;text-align:left;background:var(--scene-bg);color:var(--scene-ink)}
.ambient-portrait{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse at 77% 42%,#68543b60,transparent 60%)}
/* Contain the whole portrait: the desktop composition includes the torso. */
.portrait-layer{position:absolute;right:5%;bottom:0;height:100%;width:auto;max-width:56%;object-fit:contain;object-position:right bottom;filter:blur(1px) saturate(.8);opacity:.8;mask-image:linear-gradient(90deg,transparent,#000 24%,#000 86%,transparent)}
.portrait-wash{position:absolute;inset:0;background:linear-gradient(90deg,#1d2525 5%,#1d2525ed 30%,#1d252570 52%,transparent 72%),linear-gradient(0deg,#1d2525b3,transparent 20%)}
.glass-ribbon{position:absolute;top:0;height:100%;border-left:1px solid #ecddb71c;border-right:1px solid #e6d3b20b;background:linear-gradient(110deg,#ddd4ba0b,#9dac9e05);transform:skewX(-8deg)}
.glass-ribbon-one{left:51%;width:8%}.glass-ribbon-two{right:3%;width:4%;opacity:.6}
.atmosphere .hero-copy{z-index:3;width:57%;max-width:620px;margin:0;padding:0}
.atmosphere .hero-copy:before{content:'';position:absolute;z-index:-1;inset:-28px -25px -28px -28px;border:1px solid #e1d3b50b;background:linear-gradient(110deg,#e9e0c407,transparent);pointer-events:none}
.atmosphere .hero-copy h1{font-size:clamp(44px,5.4vw,78px);font-weight:500;letter-spacing:.04em;line-height:1.25;color:var(--scene-ink);white-space:nowrap;margin:0}
.atmosphere .hero-copy .hero-kicker{color:var(--scene-muted);font-size:9px;letter-spacing:2.6px;margin:0 0 22px}
.atmosphere .english-name{font-size:42px;font-weight:400;color:var(--scene-gold);margin:10px 0 27px;letter-spacing:-1px}
.atmosphere .hero-disciplines{color:var(--scene-ink);font-size:12px;letter-spacing:1.2px}
.atmosphere .wildcard-intro .intro-line{margin:18px 0 0;color:var(--scene-muted);font-size:12px;line-height:2;letter-spacing:.3px}
.atmosphere .work-jump{color:var(--scene-ink);border-color:var(--scene-line);margin-top:23px;font-size:11px;padding-bottom:10px}
.atmosphere .hero-bottom{color:var(--scene-muted);bottom:27px;font-size:9px;letter-spacing:1.5px;justify-content:space-between}
.hero-bottom>span:last-child{font-size:24px}
.work-page{min-height:100svh;padding:48px 0 52px;position:relative;display:flex;flex-direction:column;justify-content:center}
.work-page .work-heading{padding:0 0 25px;align-items:center}
.work-page .work-heading .overline{margin-bottom:8px}
.work-page .work-heading h2{font-size:32px}
.work-page .work-heading>a,.work-page .work-heading>span{font-size:11px;color:var(--muted)}
.work-page .project-grid{gap:45px;counter-reset:projects}
.more-work .project-grid{counter-reset:projects 2}
.work-page .project-card:nth-child(even){margin-top:0}
.work-page .project-card{padding-top:30px}
.work-page .project-card .cover{height:clamp(190px,32svh,350px)}
.work-page .project-card h2{font-size:27px;margin-top:8px}
.work-page .card-meta{margin:14px 0 6px}
.work-page .project-card>p{font-size:12px;line-height:1.9;margin-top:7px;max-width:100%}
.work-page .card-result{margin-top:12px}
.next-panel{position:absolute;bottom:14px;left:50%;font-size:23px;color:#a18d6e}
.page-index{position:fixed;right:22px;top:50%;transform:translateY(-50%);z-index:10;display:flex;flex-direction:column;gap:8px}
.page-index a{padding:6px 4px;color:#857d70;font:9px var(--mono);border-radius:0;box-shadow:none!important;background:none!important;display:flex;align-items:center;justify-content:flex-end;gap:6px}
.page-index a:after{content:'';width:5px;height:5px;border-radius:50%;background:currentColor;position:static;display:block}
.page-index a span{opacity:0;transition:opacity .2s}.page-index a[aria-current] span,.page-index a:hover span,.page-index a:focus-visible span{opacity:1}
.page-index a[aria-current]{color:#9b713c}.on-intro .page-index a{color:#c4b392}
.atmosphere .life-preview{min-height:100svh;margin:0;padding:60px 0;display:flex;flex-direction:column;justify-content:center;border-top:1px solid var(--line)}
.life-preview .life-preview-heading{margin-bottom:40px}
.life-preview .life-preview-heading h2{font-size:38px}
.album-entry-layout{display:grid;grid-template-columns:180px minmax(0,1fr);align-items:center;gap:55px}
.album-gift{padding:9px 9px 10px;background:#ede1c9;box-shadow:0 8px 20px #5f4d3022;transform:rotate(-6deg);transition:transform .25s;position:relative}
.album-gift:before{content:'';position:absolute;top:-8px;left:40%;width:50px;height:20px;background:#c6b58077;transform:rotate(9deg)}
.album-gift:hover,.album-gift:focus-within{transform:rotate(0) translateY(-5px)}
.album-gift img{width:100%;height:auto;display:block}
.gallery-door{display:block;color:#594a35}.door-label{display:block;font:11px/1.8 var(--font);text-align:center;padding-top:10px;letter-spacing:1px}
.life-preview .life-preview-link{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:16px;align-items:center}
.life-preview .life-preview-link figure{margin:0;transform:none;padding:0;background:none;box-shadow:none}
.life-preview .life-preview-link img{width:100%;height:290px;object-fit:cover;border-radius:2px}
.life-preview .life-preview-link figure:first-child img{height:220px;object-position:65% 50%}
.life-preview .life-preview-link figure:nth-child(2){margin-top:-35px}.life-preview .life-preview-link figure:nth-child(3){margin-top:45px}
/* The photo table has static lighting. Dragging only changes one transform. */
.memory-main{position:relative;isolation:isolate;max-width:1272px;padding:0 46px}
.journal-atmosphere{position:absolute;inset:-110px calc(50% - 50vw) -160px;pointer-events:none;z-index:-1;background:radial-gradient(ellipse at 20% 5%,#49626238,transparent 65%),radial-gradient(ellipse at 82% 75%,#bb87552b,transparent 55%)}
.journal-heading{display:flex;align-items:end;justify-content:space-between;gap:40px;padding:60px 16px 22px}
.journal-heading .overline{font-size:9px;letter-spacing:2.6px;color:var(--scene-muted)}
.journal-heading h1{font:500 clamp(36px,4.5vw,58px)/1.35 var(--serif);letter-spacing:3px;margin:18px 0 0;color:var(--scene-ink)}
.journal-intro{padding-bottom:6px;max-width:260px}
.journal-intro .journal-instruction{font:11px/1.9 var(--font);color:var(--scene-muted);margin-bottom:12px}
.reset-memories{font:11px var(--font);border:0;border-bottom:1px solid var(--scene-line);background:none;color:var(--scene-ink);padding:7px 0;min-height:36px;letter-spacing:1px}
.reset-memories:focus-visible{outline:2px solid var(--scene-gold);outline-offset:5px}
.memory-board{position:relative;height:830px;isolation:isolate}
.board-illustration{position:absolute;inset:0;pointer-events:none;color:var(--scene-gold)}
.memory-thread{position:absolute;inset:0;width:100%;height:100%;stroke:currentColor;stroke-width:1;stroke-dasharray:3 8;opacity:.3}
.memory-thread circle,.memory-thread .thread-arrow{stroke-dasharray:none}
.memory-card{--mx:0px;--my:0px;position:absolute;left:var(--left);top:var(--top);width:var(--width);padding:9px 9px 0;background:var(--paper);box-shadow:0 12px 24px #060f0e50,0 2px 5px #01090833;margin:0;transform:translate(var(--mx),var(--my)) rotate(var(--angle));transform-origin:50% 50%;z-index:2;user-select:none;-webkit-user-select:none}
.memory-card:before{content:'';position:absolute;width:56px;height:20px;left:calc(50% - 28px);top:-10px;background:#d9c89e80;transform:rotate(-4deg);z-index:3;pointer-events:none}
.memory-sunshine:before,.memory-together:before{left:14px;top:-5px;width:21px;height:41px;transform:rotate(-28deg);background:#94afa281}
.memory-window:before,.memory-night:before{display:none}
.memory-card.is-dragging{z-index:20!important;will-change:transform;transform:translate(var(--mx),var(--my)) rotate(calc(var(--angle) * .3)) scale(1.02)}
.memory-card .photo-open{outline-offset:3px;touch-action:pan-y}
.memory-card .photo-open:after{display:none}
.memory-card .photo-open:focus-visible{outline:2px solid #77754a}
.memory-card img{width:100%;height:auto;display:block;pointer-events:none;transform:none!important}
.memory-card figcaption{display:flex;gap:12px;align-items:center;min-height:38px;color:var(--paper-ink);padding:0 3px}
.memory-card figcaption>span{font:9px var(--mono);opacity:.65;letter-spacing:1px}
.photo-handle{margin-left:auto;min-width:38px;min-height:38px;display:grid;place-items:center;border:0;background:none;color:var(--paper-ink);font-size:18px;opacity:.7;touch-action:none}
.photo-handle:focus-visible{outline:2px solid #7e7550;outline-offset:1px}
.memory-card .photo-open,.photo-handle{cursor:url('assets/personal/lion-paw.svg') 24 20,grab}
.memory-card.is-dragging,.is-dragging .photo-open,.is-dragging .photo-handle{cursor:url('assets/personal/lion-paw-grab.svg') 24 20,grabbing}
.little-guide{position:absolute;left:3%;bottom:8%;width:105px;display:block;text-align:center;z-index:1;transform:rotate(-4deg);color:var(--scene-muted);transition:transform .3s}
.little-guide:hover{transform:rotate(2deg) translateY(-4px)}
.little-guide img{display:block;width:100%;height:auto}.little-guide span{font:9px var(--font);letter-spacing:1px}
.journal-colophon{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:30px 15px 35px;border-top:1px solid var(--scene-line);font:10px var(--font);color:var(--scene-muted)}
.folio-life.atmosphere .cosine-footer{margin-top:15px;color:var(--scene-muted);opacity:.65}.folio-life.atmosphere .cosine-footer:after{display:none}
.folio-life.atmosphere footer{color:var(--scene-muted);padding-bottom:35px}
.atmosphere #image-viewer.is-gallery{background:var(--scene-bg);color:var(--scene-ink);border:1px solid var(--scene-line)}
.atmosphere #image-viewer::backdrop{background:#071211ed}
.atmosphere #image-viewer.is-gallery p,.atmosphere #image-viewer.is-gallery button,.atmosphere #image-viewer.is-gallery .viewer-controls span{color:var(--scene-ink);border-color:var(--scene-line)}
.atmosphere #image-viewer.is-gallery .viewer-controls button:hover{background:#9aa89422}
@media(max-width:1200px){.page-index{right:6px}.album-entry-layout{grid-template-columns:145px 1fr;gap:35px}.life-preview .life-preview-link img{height:250px}}
@media(max-width:900px){
 .atmosphere .hero-copy{width:65%}.atmosphere .hero-copy h1{font-size:clamp(40px,6vw,60px)}
 .memory-board{height:720px}.memory-main{padding:0 28px}.memory-card{padding:7px 7px 0}.little-guide{width:85px;bottom:10%}
 .work-page .project-grid{gap:25px}.work-page .project-card h2{font-size:24px}.life-preview .life-preview-link img{height:200px}
 .life-preview .life-preview-link figure:first-child img{height:160px}
}
@media(max-width:700px),(max-height:650px){.paged-home{scroll-snap-type:none}.page-index{display:none}.work-page{min-height:auto;padding:55px 0 65px}}
@media(max-width:600px){
 .atmosphere.folio-work .site-header{width:calc(100% - 28px)}
 .atmosphere .wildcard-intro{height:100svh;min-height:580px;padding:125px 28px 75px;align-items:flex-start}
 .portrait-layer{height:83%;max-width:none;right:-19%;bottom:0;opacity:.58}
 .portrait-wash{background:linear-gradient(180deg,#1d2525 5%,#1d2525d6 24%,#1d25256b 53%,transparent 80%),linear-gradient(90deg,#1d2525ad,transparent 95%)}
 .glass-ribbon-one{left:70%;width:13%;opacity:.4}.glass-ribbon-two{display:none}
 .atmosphere .hero-copy{width:100%;padding:0}.atmosphere .hero-copy:before{display:none}
 .atmosphere .hero-copy h1{font-size:clamp(40px,11vw,62px);letter-spacing:.03em}
 .atmosphere .hero-copy .hero-kicker{font-size:8px;letter-spacing:1.6px;margin-bottom:23px}
 .atmosphere .english-name{font-size:35px;margin-bottom:22px}
 .atmosphere .hero-disciplines{font-size:10px;letter-spacing:.3px}.hero-disciplines span{padding:0 8px}
 .atmosphere .wildcard-intro .intro-line{font-size:11px;letter-spacing:0;line-height:2}
 .atmosphere .work-jump{margin-top:20px;font-size:10px}.atmosphere .hero-bottom{left:28px;right:28px;bottom:24px;flex-direction:row;font-size:8px}
 .work-page .work-heading{padding-bottom:30px}.work-page .work-heading h2{font-size:32px}
 .work-page .project-grid{grid-template-columns:1fr;gap:40px}.work-page .project-card .cover{height:260px}
 .work-page .project-card h2{font-size:27px}.work-page .project-card>p{font-size:13px}
 .atmosphere .life-preview{min-height:auto;padding:55px 0 70px}.life-preview .life-preview-heading{margin-bottom:36px}
 .album-entry-layout{grid-template-columns:1fr;gap:40px}.album-gift{width:140px;justify-self:center}
 .life-preview .life-preview-link{gap:12px;grid-template-columns:1.3fr 1fr 1fr}.life-preview .life-preview-link img{height:160px}.life-preview .life-preview-link figure:first-child img{height:135px}
 .life-preview .life-preview-link figure:nth-child(2){margin-top:0}.life-preview .life-preview-link figure:nth-child(3){margin-top:25px}
 .memory-main{padding:0 22px}.journal-heading{display:block;padding:40px 2px 0}.journal-heading .overline{font-size:8px;letter-spacing:2px}
 .journal-heading h1{font-size:38px;margin-top:17px}.journal-intro{margin:22px 0 0;max-width:none;position:relative;padding-right:100px;min-height:44px}
 .journal-intro .journal-instruction{font-size:10px;margin:0}.reset-memories{position:absolute;right:1px;top:-10px;font-size:10px;min-height:44px}
 .memory-board{height:1070px;margin-top:22px}.memory-card{padding:6px 6px 0}
 .photo-handle{min-width:38px;min-height:38px;font-size:17px}
 .memory-campus{--left:5%!important;--top:3%!important;--width:72%!important;--angle:-6deg!important}
 .memory-sunshine{--left:52%!important;--top:24%!important;--width:42%!important;--angle:7deg!important}
 .memory-window{--left:5%!important;--top:34%!important;--width:41%!important;--angle:-6deg!important}
 .memory-together{--left:5%!important;--top:57%!important;--width:74%!important;--angle:5deg!important}
 .memory-night{--left:48%!important;--top:75%!important;--width:43%!important;--angle:-7deg!important}
 .memory-thread{height:90%;opacity:.25}.little-guide{bottom:2%;left:3%;width:82px}
 .journal-colophon{padding:20px 0 25px;gap:12px;font-size:10px}
}
@media(max-width:350px){.memory-board{height:960px}.journal-heading h1{font-size:34px}.journal-intro{padding-right:83px}.atmosphere .wildcard-intro{padding-left:23px;padding-right:23px}.hero-kicker span{margin-left:14px}}
@media(prefers-reduced-motion:reduce){.paged-home{scroll-snap-type:none;scroll-behavior:auto}.atmosphere *{animation:none!important;transition:none!important}}
