@import url('https://fonts.googleapis.com/css2?family=Courier+Prime:wght@400;700&family=Montserrat:wght@400;500;600;700;800;900&family=Playfair+Display:ital,wght@1,400;1,600&display=swap');

/* FONTIS 0.4 — identity layer. No photo or download logic is changed. */
:root{color-scheme:dark;--bg:#090a0c;--panel:#151619;--text:#f4f4f5;--muted:#b0b2b8;--line:#34363b;--accent:#e50914;--font:'Montserrat',Arial,sans-serif}
body,body.landing-body{background:#090a0c;color:#f4f4f5;font-family:var(--font);font-size:16px;line-height:1.6}
button,input,select,textarea{font-family:inherit}
h1,h2,h3{font-family:var(--font);font-weight:800;letter-spacing:-.035em;line-height:1.12;overflow-wrap:anywhere}
h1{font-size:clamp(2rem,5vw,4rem)}
p{color:#b0b2b8}
em,.font-editorial,#message{font-family:'Playfair Display',Georgia,serif;font-style:italic}
#message:empty{display:none}
#message{font-size:clamp(1.125rem,2vw,1.5rem);color:#dedee0;max-width:48rem}
.eyebrow,#details,#count,.footnote,.landing-footer,header>span:last-child{font-family:'Courier Prime',monospace;letter-spacing:.025em}
.eyebrow{color:#ff5960;font-size:.8125rem}
header{background:#090a0c;border-bottom:1px solid #34363b;flex-wrap:wrap}
.fontis-wordmark{display:inline-flex;align-items:baseline;gap:.7rem;text-decoration:none!important;white-space:nowrap;letter-spacing:-.055em;font-size:1.6rem;font-weight:900;line-height:1.2;color:#fff}
.fontis-wordmark .word{display:inline}.fontis-wordmark .red{color:#f32632}
.fontis-wordmark small{font-family:'Courier Prime',monospace;font-size:.75rem;font-weight:400;letter-spacing:.12em;color:#b0b2b8}
button,.action-link,.primary-btn,.secondary-btn,.ghost-btn{border-radius:5px;min-height:44px;font-size:.875rem;font-weight:700;line-height:1.4;transition:background .15s,border-color .15s;white-space:normal}
button,.action-link,.primary-btn{background:#e50914;color:#fff;border:1px solid #e50914}
button:hover,.action-link:hover,.primary-btn:hover{background:#b90710;color:#fff;border-color:#b90710}
#filter,#back,#close,#prev,#next,#favorite,#logout,#unpublish,#zip-cancel,#save-file,.secondary-btn,.ghost-btn{background:#1b1d21;color:#f4f4f5;border:1px solid #494c53}
#filter:hover,#back:hover,#close:hover,#prev:hover,#next:hover,#favorite:hover,#logout:hover,#unpublish:hover,#save-file:hover,.secondary-btn:hover,.ghost-btn:hover{background:#2b2e34;border-color:#a1a4ac}
button:disabled{opacity:.5;cursor:not-allowed}
input,select,textarea{border-radius:5px;background:#151619;border-color:#484b52;color:#fff;font-size:1rem}
input[type=checkbox],progress{accent-color:#e50914}
label{color:#d0d2d6}
:focus-visible{outline:3px solid #ff6971;outline-offset:4px}
#notice:not(:empty){background:#1c1e22;border-left-color:#e50914;color:#f4f4f5}
.card,.download-box{background:#151619;border:1px solid #34363b;border-radius:6px}
.card{border-top:3px solid #e50914}
.drop{background:#151619;color:#f4f4f5;border:1px dashed #767b85;border-radius:6px}
#photos .photo{background:#151619;border-radius:4px}
#photos .photo img{filter:none}
#collection #photos .photo img{height:auto;aspect-ratio:auto;object-fit:contain}
#collection #photos .photo{margin-bottom:16px}
#collection #cover{display:block;width:100%;height:auto;max-height:62svh;object-fit:contain;background:#050506;border-radius:4px}
#collection #title{margin:28px 0 12px;padding-left:18px;border-left:4px solid #e50914}
#details{font-size:.875rem;color:#b0b2b8}
#collection>.bar{padding:16px 0;border-top:1px solid #34363b;border-bottom:1px solid #34363b;gap:12px}
.download-box p,#save-help,.footnote{font-size:.875rem}
.footnote{color:#b0b2b8}
#viewer{background:#090a0c;border-color:#494c53;border-radius:6px}
#viewer::backdrop{background:#000e}
#photo-status{color:#eee}
#original-actions{border-color:#34363b}
#gate,#login{max-width:720px;margin:clamp(24px,6vh,64px) auto}
#gate h1,#login h1{border-left:4px solid #e50914;padding-left:20px}
.landing-main{min-height:65vh;grid-template-columns:1fr;padding-top:clamp(40px,8vw,100px);padding-bottom:64px}
.landing-copy{max-width:850px;padding:0}
.landing-copy h1{font-size:clamp(2.5rem,6vw,5.5rem);line-height:1.06;font-weight:800}
.landing-copy h1 em{color:#f4f4f5;font-weight:400}
.landing-copy>p{max-width:620px;color:#b0b2b8}
.landing-copy .cta-row{flex-wrap:wrap;gap:12px}
.landing-footer{border-top:1px solid #34363b;padding-top:24px;font-size:.8125rem;color:#b0b2b8}
.gallery-body .hero-content h1{font-family:'Montserrat',Arial,sans-serif;font-weight:800}
.gallery-body .hero-meta,.gallery-body .hero-kicker{font-family:'Courier Prime',monospace}
@media(max-width:640px){header,main{padding:18px}header{gap:12px}.fontis-wordmark{font-size:1.375rem}.fontis-wordmark small{font-size:.75rem}header>span:last-child{font-size:.75rem}#collection #cover{max-height:48svh}#collection #title{margin-top:24px;padding-left:12px;font-size:clamp(2rem,8vw,3rem)}#collection #photos .photo{margin-bottom:10px}.bar{gap:10px}#viewer .bar>button,#viewer .bar>a{max-width:100%}#viewer .bar{row-gap:10px}.landing-main{padding-top:42px}.landing-copy h1{font-size:clamp(2.4rem,10vw,3.6rem)}.landing-nav{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
