:root{--poster-paper:#f2f0e9;--poster-ink:#09090d;--poster-blue:#3858da}
.poster-page{margin:0;color:var(--poster-ink);background:var(--poster-paper);font-family:"Noto Sans SC",sans-serif}.poster-nav{height:62px;padding:0 var(--side);position:sticky;top:0;z-index:50;display:grid;grid-template-columns:1fr 1fr auto;align-items:center;color:#fff;background:rgba(9,9,13,.94);backdrop-filter:blur(12px);font-size:10px}.poster-nav a{text-decoration:none}.poster-nav>span{text-align:center}.poster-hero{height:calc(100vh - 62px);min-height:650px;padding:30px var(--side);display:grid;grid-template-rows:auto 1fr auto;overflow:hidden;color:#fff;background:#0b0a10;position:relative}.poster-hero:before{content:"";position:absolute;inset:-15%;background:radial-gradient(ellipse at 76% 26%,rgba(56,88,218,.78),transparent 40%),radial-gradient(ellipse at 18% 84%,rgba(131,54,167,.52),transparent 36%);filter:blur(28px);animation:poster-flow 14s ease-in-out infinite alternate}.poster-hero>*{position:relative;z-index:1}.poster-hero>span{font-size:10px}.poster-hero h1{align-self:end;margin:0;font:800 clamp(105px,16vw,245px)/.66 "Barlow Condensed",sans-serif;text-transform:uppercase}.poster-hero h1 em{display:block;margin-left:18%;color:#91a5ff;font-style:normal}.poster-hero>div{width:min(620px,48vw);margin-left:auto;padding-top:12px;border-top:1px solid rgba(255,255,255,.6);display:flex;justify-content:space-between;gap:30px;align-items:end}.poster-hero p{margin:0;font-size:12px;line-height:1.8}.poster-hero a{font-size:10px;white-space:nowrap}.poster-archive{padding:100px var(--side) 120px;color:#f2f0e9;background:#0b0a10}.poster-archive>header{display:grid;grid-template-columns:3fr 6fr 3fr;gap:20px;align-items:end;margin-bottom:55px}.poster-archive header>span,.poster-archive header>p{font-size:10px;line-height:1.7}.poster-archive h2{margin:0;font:700 clamp(46px,6vw,88px)/.9 "Noto Serif SC",serif}.poster-archive header>p{margin:0;padding-top:9px;border-top:1px solid rgba(255,255,255,.35)}.masonry-grid{columns:4 230px;column-gap:16px}.poster-tile{width:100%;margin:0 0 28px;padding:0;display:inline-block;break-inside:avoid;border:0;color:#fff;background:transparent;text-align:left;cursor:zoom-in}.poster-tile img{width:100%;height:auto;display:block;border:1px solid rgba(255,255,255,.24);filter:saturate(.9);transition:transform .45s ease,filter .3s ease,border-color .3s ease}.poster-tile span{display:block;padding:9px 0 0;font-size:10px}.poster-tile:hover img{transform:translateY(-5px);filter:saturate(1.08);border-color:#91a5ff}.poster-lightbox{width:min(94vw,1100px);height:94vh;padding:0;border:1px solid #91a5ff;color:#fff;background:#08090b}.poster-lightbox::backdrop{background:rgba(0,0,0,.9);backdrop-filter:blur(8px)}.poster-lightbox>button{position:absolute;right:12px;top:12px;z-index:2;border:0;padding:9px 12px;background:#91a5ff;cursor:pointer}.poster-lightbox figure{height:100%;margin:0;padding:44px 18px 16px;display:grid;grid-template-rows:1fr auto;place-items:center}.poster-lightbox img{max-width:100%;max-height:calc(94vh - 84px);object-fit:contain}.poster-lightbox figcaption{width:100%;padding-top:10px;border-top:1px solid rgba(255,255,255,.3);text-align:center;font-size:11px}@keyframes poster-flow{to{transform:translate3d(3%,-2%,0) scale(1.08)}}
.skill-link h3 a{display:inline-flex;align-items:baseline;gap:10px;text-decoration:none}.skill-link h3 a span{color:#3858da;font:500 16px sans-serif;transition:transform .25s ease}.skill-link:hover h3 a{color:#3858da}.skill-link:hover h3 a span{transform:translate(4px,-4px)}
@media(max-width:900px){.masonry-grid{columns:3 190px}}@media(max-width:700px){.poster-nav{grid-template-columns:1fr auto}.poster-nav>span{display:none}.poster-hero{min-height:600px}.poster-hero h1{font-size:clamp(86px,28vw,132px)}.poster-hero h1 em{margin-left:5%}.poster-hero>div{width:80%;display:block}.poster-hero>div a{display:block;margin-top:18px}.poster-archive{padding:76px var(--side) 90px}.poster-archive>header{grid-template-columns:1fr;gap:16px}.poster-archive header>p{width:65%;margin-left:35%}.masonry-grid{columns:2 130px;column-gap:10px}.poster-tile{margin-bottom:20px}}
