@font-face{font-family:Hanken;src:url('/assets/hanken-400.ttf') format('truetype');font-weight:400;font-display:swap}@font-face{font-family:Hanken;src:url('/assets/hanken-500.ttf') format('truetype');font-weight:500;font-display:swap}
:root{color-scheme:dark;--bg:#252422;--text:#eee8da;--muted:#a39d92;--red:#dc6b43}*{box-sizing:border-box}html{min-width:280px}body{margin:0;background:var(--bg);color:var(--text);font:400 15px/1.5 Hanken,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible{outline:1px solid var(--red);outline-offset:7px}a:hover{color:#fff8e9}img{display:block;width:100%;height:auto}h1,h2,h3,p{margin:0;font-weight:400}#paper-field{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}.page{position:relative;z-index:1;min-height:100svh;display:flex;flex-direction:column;padding:35px clamp(24px,4.5vw,80px) 26px;max-width:1740px;margin:auto}header{display:flex;align-items:center;justify-content:space-between;min-height:80px}.identity{display:flex;gap:14px;align-items:center}.identity img{width:79px;height:79px;object-fit:cover;mask-image:radial-gradient(ellipse,black 45%,transparent 72%);-webkit-mask-image:radial-gradient(ellipse,black 45%,transparent 72%)}.identity h1{font-size:27px;letter-spacing:.075em;line-height:1;font-weight:400}nav{display:flex;align-items:center;gap:43px;font-size:12px}.contact-link span{color:var(--muted);margin-left:7px}.languages{display:flex;gap:9px;align-items:center;font-size:10px;letter-spacing:.07em}.languages>a{padding:8px 0;color:var(--muted)}.languages>a[aria-current]{color:var(--text)}.languages>span{color:#605d57;font-size:9px}main#projects{margin:auto 0;padding:clamp(65px,12vh,150px) 0 clamp(70px,14vh,150px)}.gallery-heading{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:22px;font-size:12px;color:var(--muted)}.gallery-heading h2{font-size:12px;color:var(--text)}.gallery-heading p{font-size:11px;letter-spacing:.015em}.gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}.project-link{display:block}.cover{position:relative;aspect-ratio:1;background:#30302c;overflow:hidden;isolation:isolate}.frame{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .5s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1);will-change:opacity}.frame-1{opacity:0}.cover[data-frame="1"] .frame-1{opacity:1}.project-link:hover .frame,.project-link:focus-visible .frame{transform:scale(1.018)}.cover::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,14,14,.06),transparent 24%,rgba(9,12,12,.12) 42%,rgba(9,12,12,.85));opacity:0;transition:opacity .35s ease;z-index:1}.project-details{position:absolute;left:24px;right:25px;bottom:30px;z-index:2;opacity:0;transform:translateY(5px);transition:opacity .3s ease,transform .4s cubic-bezier(.22,1,.36,1);color:#f4eddf}.category{font-size:10px;color:#c6c4b8;display:block;margin-bottom:9px}.project-details p{font-size:17px;line-height:1.3;max-width:240px}.open-arrow{position:absolute;top:15px;right:19px;z-index:2;font:24px/1 Hanken,Arial;opacity:0;transition:opacity .3s;color:#f4eddf}.frame-index{position:absolute;left:24px;bottom:16px;display:flex;gap:4px;z-index:2;opacity:0;transition:opacity .3s}.frame-index i{display:block;width:17px;height:1px;background:#8c8d84}.frame-index i:first-child{background:#f0e7d6}.cover[data-frame="1"] .frame-index i:first-child{background:#8c8d84}.cover[data-frame="1"] .frame-index i:last-child{background:#f0e7d6}.project-link:hover .cover::after,.project-link:focus-visible .cover::after,.project-link:hover .open-arrow,.project-link:focus-visible .open-arrow,.project-link:hover .project-details,.project-link:focus-visible .project-details,.project-link:hover .frame-index,.project-link:focus-visible .frame-index{opacity:1;transform:none}.caption{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:16px}.caption h3{font-size:14px;line-height:1.2;letter-spacing:.012em}.caption>span{font-size:15px;color:#8a867c;transition:color .2s}.project-link:hover .caption>span{color:var(--red)}.touch-description{display:none}footer{display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:10px;color:var(--muted);min-height:40px;letter-spacing:.015em}.studio-signature{display:flex;align-items:center;gap:10px}.signature-mark{width:4px;height:4px;background:var(--red);border-radius:50%}.byline{color:#a39d92;margin-left:5px}.footer-links{display:flex;gap:25px;align-items:center}.footer-links span{font-size:12px;margin-left:6px;color:#807b70}.legal-link{font-size:9px;color:#a39d92}.skip{position:absolute;top:-90px;left:30px;background:var(--bg);color:var(--text);padding:12px 20px;z-index:10}.skip:focus{top:16px}.legal{max-width:700px;margin:8vh auto;padding:24px;position:relative;z-index:1}.legal h1{font-size:32px;margin:55px 0 30px;letter-spacing:.02em}.legal p{margin:20px 0;color:#bfb8aa}.legal .art-credit{font-size:12px;color:var(--muted);margin-top:45px}.back-link{font-size:13px}
@media(min-width:1600px){.gallery{gap:28px}.identity img{width:87px;height:87px}.identity h1{font-size:29px}}
@media(max-width:1000px){.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 22px}main#projects{padding-top:70px;padding-bottom:90px}.project-details p{font-size:20px}.byline{display:none}.page{padding-top:24px}}
@media(max-width:560px){.page{padding:22px 22px 20px}header{min-height:62px;align-items:center}.identity{gap:6px;margin-left:-10px}.identity img{width:58px;height:58px}.identity h1{font-size:20px;letter-spacing:.035em}nav{gap:14px}.contact-link{display:none}.languages{font-size:9px;gap:6px}main#projects{margin:0;padding:64px 0 57px}.gallery-heading{margin-bottom:18px;font-size:11px}.gallery-heading h2{font-size:11px}.gallery-heading p{font-size:9px;max-width:150px;line-height:1.4;text-align:right}.gallery{gap:29px 14px}.caption{padding-top:11px;gap:4px;align-items:baseline}.caption h3{font-size:12px;letter-spacing:0;line-height:1.3}.caption>span{font-size:12px}.project-details{left:15px;right:15px;bottom:26px}.project-details p{font-size:14px}.category{font-size:8px;margin-bottom:7px}.open-arrow{top:10px;right:12px;font-size:19px}.frame-index{left:15px;bottom:13px}.frame-index i{width:12px}footer{align-items:flex-start;font-size:9px;gap:20px;margin-top:auto;flex-wrap:wrap}.footer-links{gap:17px}.footer-links span{margin-left:3px;font-size:10px}.byline{display:none}.touch-description{display:block;font-size:11px;line-height:1.45;color:var(--muted);margin-top:7px;max-width:150px}.studio-signature{min-height:19px;gap:7px}.footer-links{min-height:19px}.legal h1{font-size:27px}}
@media(hover:none){.project-link:hover .cover::after,.project-link:hover .project-details,.project-link:hover .open-arrow,.project-link:hover .frame-index{opacity:0}.project-link:hover .frame{transform:none}.touch-description{display:block;font-size:11px;line-height:1.4;color:var(--muted);margin-top:8px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}.frame{will-change:auto}.project-link:hover .frame,.project-link:focus-visible .frame{transform:none}}


/* Extended selection; the first four product covers retain their original scale. */
main#projects{margin:0;padding-top:82px;padding-bottom:95px}.gallery{row-gap:43px}.project-credit{font-size:10px;line-height:1.5;color:var(--muted);margin-top:8px}.project-credit+.touch-description{margin-top:5px}@media(max-width:1000px){main#projects{padding-top:66px;padding-bottom:80px}.gallery{row-gap:35px}}@media(max-width:560px){main#projects{padding-top:60px;padding-bottom:65px}.gallery{row-gap:31px}.project-credit{font-size:9px;line-height:1.4;margin-top:7px}}
/* Background: one cached bitmap, animated by transform rather than repainted. */
#paper-field{inset:-40px;width:calc(100% + 80px);height:calc(100% + 80px);will-change:transform;animation:engraving-drift 14s ease-in-out infinite alternate;transition:translate 1.2s cubic-bezier(.22,1,.36,1)}
@keyframes engraving-drift{from{transform:translate(-8px,-5px) rotate(-.45deg);opacity:.62}to{transform:translate(9px,6px) rotate(.45deg);opacity:1}}
@media(prefers-reduced-motion:reduce){#paper-field{animation:none;transform:none;translate:none!important;transition:none;will-change:auto}}
@media(hover:none),(pointer:coarse){#paper-field{animation:none;transform:none;translate:none!important;will-change:auto}}
/* Promote project artwork only while its transition actually runs. */
.frame{will-change:auto}
