@font-face{font-family:"Inter";src:url("/fonts/inter-variable.woff2") format("woff2");font-style:normal;font-weight:100 900;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url("/fonts/cormorant-garamond-variable.woff2") format("woff2");font-style:normal;font-weight:300 700;font-display:swap}
:root{--ivory:#f7f3eb;--paper:#fffdf8;--charcoal:#292927;--muted:#6e6b65;--line:rgba(41,41,39,.16);--shadow:0 18px 50px rgba(51,43,34,.1);--w-primary:#3f4b40;--w-accent:#a88970;--w-heading:"Cormorant Garamond",Georgia,serif;--w-body:"Inter",Arial,sans-serif;color-scheme:light}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ivory);color:var(--charcoal);font-family:var(--w-body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
body:has(dialog[open]){overflow:hidden}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:4px}
button,input,textarea,select{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--w-primary);outline-offset:3px}
img,video{display:block;max-width:100%}
[hidden]{display:none!important}
.skip-link{position:fixed;z-index:1000;top:10px;left:10px;padding:.7rem 1rem;background:var(--charcoal);color:white;transform:translateY(-150%)}
.skip-link:focus{transform:none}
.guest-header{position:sticky;z-index:20;top:0;display:flex;align-items:center;justify-content:space-between;min-height:88px;padding:0 clamp(1.2rem,4vw,4.5rem);background:color-mix(in srgb,var(--ivory) 93%,transparent);border-bottom:1px solid var(--line);backdrop-filter:blur(16px)}
.wordmark,.slideshow-wordmark{font-family:var(--w-heading);font-size:clamp(1.65rem,3vw,2.1rem);font-weight:500;letter-spacing:.01em;text-decoration:none}
.guest-header .wordmark{display:inline-flex;min-height:44px;align-items:center}
.guest-header nav{display:flex;align-items:center;gap:clamp(1rem,3vw,2.5rem)}
.guest-header nav a{font-size:.78rem;font-weight:650;letter-spacing:.11em;text-decoration:none;text-transform:uppercase}
.guest-header .nav-share{display:inline-flex;min-height:44px;align-items:center;padding:.78rem 1.1rem;border:1px solid var(--w-primary);background:var(--w-primary);color:white}
.section-shell{width:min(1180px,calc(100% - 3rem));margin-inline:auto}
.eyebrow{margin:0 0 .8rem;color:color-mix(in srgb,var(--w-accent) 40%,var(--charcoal));font-size:.72rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase}
h1,h2,h3{margin-block:0 .6em;font-family:var(--w-heading);font-weight:450;line-height:.96;text-wrap:balance}
h1{font-size:clamp(3rem,8vw,7rem)}
h2{font-size:clamp(2.3rem,5vw,4.5rem)}
p{text-wrap:pretty}
.button{display:inline-flex;min-height:52px;align-items:center;justify-content:center;padding:.85rem 1.5rem;border:1px solid transparent;border-radius:2px;font-size:.78rem;font-weight:700;letter-spacing:.11em;text-decoration:none;text-transform:uppercase;transition:background-color .2s,color .2s,transform .2s}
.button:hover{transform:translateY(-1px)}
.button-primary{background:var(--w-primary);color:white}
.button-primary:hover{background:color-mix(in srgb,var(--w-primary) 86%,black)}
.button-quiet{border-color:currentColor;background:rgba(255,255,255,.05);color:inherit}
.text-button{padding:.6rem;border:0;background:transparent;color:var(--w-primary);font-weight:650;text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.cover-hero{position:relative;display:grid;height:calc(100svh - 88px);isolation:isolate;overflow:hidden;background:#4b4842}
.cover-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 42%}
.cover-shade{position:absolute;z-index:1;inset:0;background:linear-gradient(90deg,rgba(18,18,16,.82) 0%,rgba(18,18,16,.65) 35%,rgba(18,18,16,.25) 68%,rgba(18,18,16,.1) 100%),linear-gradient(180deg,rgba(18,18,16,.08),rgba(18,18,16,.35))}
.cover-copy{position:relative;z-index:2;align-self:center;width:min(620px,calc(100% - 3rem));margin-left:clamp(1.5rem,8vw,8rem);padding-block:2.75rem;color:white;text-shadow:0 2px 22px rgba(0,0,0,.38)}
.cover-copy .eyebrow{color:rgba(255,255,255,.92)}
.cover-copy h1{margin-bottom:.12em;font-size:clamp(4rem,7.5vw,7.25rem);letter-spacing:-.035em}
.cover-copy h1 span{font-style:italic;font-weight:300}
.cover-copy .venue{margin:0 0 1.5rem;color:rgba(255,255,255,.94);font-size:.76rem;font-weight:700;letter-spacing:.17em;text-transform:uppercase}
.cover-copy .welcome{max-width:570px;margin-bottom:1.8rem;color:white;font-size:clamp(1rem,1.5vw,1.12rem)}
.cover-actions{display:flex;flex-wrap:wrap;gap:.8rem}
.cover-actions .button{min-height:54px;padding-inline:1.65rem;text-shadow:none}
.cover-actions .button-primary{border-color:#fffdf8;background:#fffdf8;color:#20211f;box-shadow:0 10px 30px rgba(0,0,0,.18)}
.cover-actions .button-primary:hover{background:white}
.cover-actions .button-quiet{border-color:rgba(255,255,255,.88);background:rgba(18,18,16,.48);color:white}
.cover-actions .button-quiet:hover{background:rgba(18,18,16,.68)}
.cover-actions .button:focus-visible{outline-color:white}
.welcome-note{max-width:860px;padding-block:clamp(6rem,12vw,10rem);text-align:center}
.welcome-note>p:last-child{max-width:630px;margin:1.5rem auto 0;color:var(--muted);font-size:1.08rem}
.page-intro{padding-block:clamp(5rem,9vw,8rem) clamp(2.5rem,5vw,4.5rem);text-align:center}
.page-intro h1{font-size:clamp(3.7rem,8vw,7rem)}
.page-intro>p:last-child{max-width:650px;margin-inline:auto;color:var(--muted)}
.masonry{width:min(1500px,calc(100% - 2rem));margin:0 auto 8rem;columns:4 260px;column-gap:1.1rem}
.gallery-item{position:relative;display:inline-block;width:100%;margin:0 0 1.1rem;break-inside:avoid;background:var(--paper);box-shadow:0 8px 22px rgba(47,41,34,.055)}
.gallery-open{position:relative;display:block;width:100%;padding:0;border:0;background:#ded8ce;cursor:zoom-in;overflow:hidden}
.gallery-open img{width:100%;height:auto;transform:rotate(var(--rotation));transition:transform .45s ease,filter .3s ease}
.gallery-open:hover img{transform:rotate(var(--rotation)) scale(1.02);filter:brightness(.94)}
.gallery-item figcaption{display:flex;flex-direction:column;gap:.3rem;padding:1rem 1.05rem 1.1rem;font-family:var(--w-heading);font-size:1.15rem;line-height:1.2}
.gallery-item figcaption small{color:var(--muted);font-family:var(--w-body);font-size:.67rem;font-weight:650;letter-spacing:.11em;text-transform:uppercase}
.video-marker{position:absolute;right:1rem;bottom:1rem;display:grid;width:42px;height:42px;place-items:center;border:1px solid rgba(255,255,255,.7);border-radius:50%;background:rgba(27,26,24,.56);color:white;backdrop-filter:blur(8px)}
.video-marker svg{width:25px;fill:currentColor}
.peeking-cat{position:absolute;right:-6px;bottom:-1px;z-index:-1;width:43px;fill:#171716;stroke:#171716;stroke-linecap:round;stroke-width:2}
.rare-cat{position:fixed;right:1.5rem;bottom:-2rem;z-index:4;width:78px;fill:#050504;stroke:#050504;stroke-linecap:round;stroke-width:2;animation:rare-cat 2.5s ease both}
.empty-gallery,.uploads-closed{display:grid;min-height:55vh;place-items:center;align-content:center;padding-block:6rem;text-align:center}
.empty-gallery p,.uploads-closed p{max-width:520px;color:var(--muted)}
.monogram-ring{display:grid;width:74px;height:74px;margin-bottom:2rem;place-items:center;border:1px solid var(--w-accent);border-radius:50%;color:var(--w-primary);font-family:var(--w-heading);font-size:1.5rem}
.page-standalone{min-height:65vh}
.lightbox{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:rgba(19,19,18,.97);color:white}
.lightbox::backdrop{background:#111}
.lightbox[open]{display:grid;grid-template:1fr auto/80px 1fr 80px}
.lightbox-stage{grid-area:1/2;display:grid;min-width:0;place-items:center;padding:4.5rem 1rem 1rem;overflow:hidden}
.lightbox-stage img,.lightbox-stage video{max-width:100%;max-height:calc(100dvh - 10rem);object-fit:contain}
.lightbox-stage video{width:min(1200px,100%)}
.lightbox-close,.lightbox-previous,.lightbox-next{z-index:2;border:0;background:transparent;color:white;cursor:pointer}
.lightbox-close{position:fixed;top:1.1rem;right:1.1rem;padding:1rem;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase}
.lightbox-previous{grid-area:1/1}.lightbox-next{grid-area:1/3}
.lightbox-caption{grid-area:2/1/3/4;min-height:72px;padding:1rem 5rem 1.5rem;text-align:center}
.lightbox-caption small{display:block;margin-top:.2rem;color:rgba(255,255,255,.66);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}.lightbox-download{display:inline-block;margin-top:.65rem;color:white;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;text-underline-offset:.25em}.lightbox-download[hidden]{display:none}
.upload-intro{padding-bottom:2rem}
.upload-shell{max-width:920px;padding-bottom:8rem}
.guest-name-field{max-width:620px;margin:0 auto 2.5rem}
.guest-name-field label,.queue-caption label{display:block;margin-bottom:.55rem;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.guest-name-field label span{color:var(--muted);font-weight:450;letter-spacing:0;text-transform:none}
.guest-name-field input,.queue-caption input,.host-form input,.host-form textarea,.host-form select{width:100%;min-height:52px;padding:.8rem 1rem;border:1px solid var(--line);border-radius:2px;background:var(--paper);color:var(--charcoal)}
.source-choices{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.source-choice{position:relative;display:grid;min-height:230px;place-items:center;align-content:center;gap:.35rem;padding:2rem;border:1px solid var(--line);background:rgba(255,253,248,.6);text-align:center;cursor:pointer;transition:border-color .2s,background-color .2s,transform .2s}
.source-choice:hover{border-color:var(--w-accent);background:var(--paper);transform:translateY(-2px)}
.source-choice input{position:absolute;width:1px;height:1px;opacity:.01}
.source-choice:focus-within{outline:3px solid var(--w-primary);outline-offset:3px}
.source-choice svg{width:44px;margin-bottom:.8rem;fill:none;stroke:var(--w-primary);stroke-linejoin:round;stroke-width:1.4}
.source-choice strong{font-family:var(--w-heading);font-size:1.65rem;font-weight:500}
.source-choice span{color:var(--muted);font-size:.84rem}
.format-note{max-width:700px;margin:1.3rem auto 3rem;color:var(--muted);font-size:.78rem;text-align:center}
.upload-queue{display:grid;gap:.8rem}
.queue-item{display:grid;grid-template-columns:90px minmax(0,1fr) auto;gap:1rem;align-items:center;padding:.8rem;border:1px solid var(--line);background:var(--paper)}
.queue-preview{width:90px;height:90px;object-fit:cover;background:#ddd5c9}
.queue-details{min-width:0}
.queue-name{display:block;overflow:hidden;margin-bottom:.55rem;font-size:.82rem;font-weight:650;text-overflow:ellipsis;white-space:nowrap}
.queue-caption input{min-height:42px;padding:.55rem .7rem;font-size:.86rem}
.queue-caption label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.queue-status{display:block;margin-top:.5rem;color:var(--muted);font-size:.75rem}
.queue-status[data-state="error"]{color:#9c342d}
.queue-status[data-state="success"]{color:var(--w-primary)}
.progress-track{height:3px;margin-top:.55rem;background:#e3ded5;overflow:hidden}
.progress-track span{display:block;width:var(--progress,0%);height:100%;background:var(--w-accent);transition:width .2s}
.queue-remove{align-self:start;padding:.5rem;border:0;background:transparent;color:var(--muted);cursor:pointer}
.upload-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:1rem;margin-top:1.6rem;padding-top:1.5rem;border-top:1px solid var(--line)}
.upload-actions p{margin-right:auto;color:var(--muted)}
.upload-success{position:relative;max-width:660px;margin:3rem auto;padding:clamp(3rem,7vw,6rem);background:var(--paper);box-shadow:var(--shadow);text-align:center;overflow:hidden}
.success-cat{position:absolute;right:-14px;bottom:-4px;width:124px;fill:#161615;stroke:#161615;stroke-linecap:round;stroke-width:2;transform:translateY(80%);animation:cat-peek 1.7s .5s ease both}
.upload-success h2{font-size:clamp(2.8rem,7vw,4.5rem)}
.upload-success .button,.upload-success .text-button{position:relative;z-index:1;margin:.5rem}
.guest-footer{padding:2rem 1.5rem 3.5rem;color:var(--muted);text-align:center}
.footer-divider{position:relative;width:min(420px,70%);height:36px;margin:0 auto 1.4rem;border-top:1px solid var(--line)}
.cat-tail{position:absolute;top:-16px;left:50%;width:90px;transform:translateX(-50%);fill:none;stroke:#171716;stroke-linecap:round;stroke-width:3}
.footer-monogram{color:var(--charcoal);font-family:var(--w-heading);font-size:1.5rem}
.guest-footer>p{margin:.35rem auto;max-width:600px}
.private-page{display:grid;min-height:100svh;place-items:center;padding:1.5rem;background:linear-gradient(rgba(247,243,235,.84),rgba(247,243,235,.96)),url("/images/wedding/cover-placeholder.webp") center/cover}
.private-card{width:min(580px,100%);padding:clamp(3rem,8vw,6rem);border:1px solid rgba(255,255,255,.75);background:rgba(255,253,248,.88);box-shadow:var(--shadow);text-align:center;backdrop-filter:blur(10px)}
.private-card h1{font-size:clamp(3.4rem,11vw,6rem)}
.private-card h1 span{color:var(--w-accent);font-style:italic}.private-help{color:var(--muted);font-size:.85rem}
.slideshow-page{overflow:hidden;background:#151513;color:white}
.slideshow{position:relative;width:100vw;height:100dvh;background:#151513}
.slideshow-wordmark{position:fixed;top:2.1rem;left:2.5rem;z-index:5;color:white;text-shadow:0 2px 16px rgba(0,0,0,.4)}
.slideshow-wordmark span{color:var(--w-accent);font-style:italic}
.slideshow-stage,.slide,.slide-media{position:absolute;inset:0}
.slide{opacity:0;transition:opacity 1.2s ease}.slide.active{opacity:1}
.slide-media{width:100%;height:100%;object-fit:contain;background:#151513}
.slide::before{position:absolute;z-index:1;inset:0;content:"";background:linear-gradient(180deg,rgba(0,0,0,.3),transparent 25%,transparent 70%,rgba(0,0,0,.5))}
.slide-caption{position:absolute;right:4rem;bottom:4rem;left:4rem;z-index:2;font-family:var(--w-heading);font-size:clamp(1.6rem,3vw,3rem)}
.slide-caption small{display:block;margin-top:.4rem;font-family:var(--w-body);font-size:.7rem;letter-spacing:.13em;text-transform:uppercase}
.slideshow-waiting{position:absolute;inset:0;display:grid;place-items:center;align-content:center;text-align:center}
.slideshow-waiting h1{max-width:800px;font-size:clamp(3rem,8vw,7rem)}
.sleeping-cat{width:150px;margin-bottom:1.5rem;fill:#070706;stroke:#070706;stroke-linejoin:round;stroke-width:2}
.slideshow-progress{position:fixed;right:2.5rem;bottom:1.7rem;left:2.5rem;z-index:5;height:2px;background:rgba(255,255,255,.25)}
.slideshow-progress span{display:block;width:0;height:100%;background:white}
.slideshow-progress span.running{animation:slide-progress 9s linear both}
.slideshow-pause{position:fixed;top:2rem;right:2rem;z-index:5;padding:.7rem 1rem;border:1px solid rgba(255,255,255,.45);background:rgba(0,0,0,.25);color:white;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}
@keyframes cat-peek{0%{transform:translateY(80%)}35%,75%{transform:translateY(8%)}100%{transform:translateY(62%)}}
@keyframes rare-cat{0%,100%{transform:translateY(100%)}30%,72%{transform:translateY(0)}}
@keyframes slide-progress{from{width:0}to{width:100%}}
@media (max-width:760px){
  .guest-header{min-height:70px;padding-inline:1rem}.wordmark{font-size:1.45rem}.guest-header nav>a:first-child{display:none}.guest-header .nav-share{padding:.65rem .8rem;font-size:.65rem}
  .section-shell{width:min(100% - 2rem,1180px)}.cover-hero{height:calc(100svh - 70px)}.cover-hero>img{object-position:center 38%}.cover-shade{background:linear-gradient(0deg,rgba(18,18,16,.9) 0%,rgba(18,18,16,.7) 46%,rgba(18,18,16,.16) 82%,rgba(18,18,16,.08) 100%)}.cover-copy{align-self:end;width:auto;margin:0;padding:2rem 1.25rem 2.3rem}.cover-copy h1{font-size:clamp(3.65rem,16vw,5.25rem)}.cover-copy .venue{margin-bottom:1rem}.cover-copy .welcome{margin-bottom:1.35rem;font-size:.95rem;line-height:1.48}.cover-actions{display:grid;gap:.65rem}.cover-actions .button{width:100%}
  .page-intro{padding-top:4rem}.masonry{columns:2 145px;column-gap:.6rem}.gallery-item{margin-bottom:.6rem}.gallery-item figcaption{padding:.7rem;font-size:1rem}.peeking-cat{right:-4px;width:34px}
  .lightbox[open]{grid-template:1fr auto/48px 1fr 48px}.lightbox-stage{padding:4rem .25rem .5rem}.lightbox-caption{padding:1rem 3rem 1.3rem;font-size:.88rem}.lightbox-stage img,.lightbox-stage video{max-height:calc(100dvh - 9rem)}.cover-form,.unrecognized-list article{grid-template-columns:1fr}.cover-form img{width:100%}
  .source-choices{grid-template-columns:1fr}.source-choice{min-height:170px}.queue-item{grid-template-columns:72px minmax(0,1fr) auto;gap:.65rem}.queue-preview{width:72px;height:72px}.upload-actions{justify-content:stretch}.upload-actions p{width:100%}.upload-actions .button{width:100%}
  .slideshow-wordmark{top:1.2rem;left:1.2rem}.slideshow-pause{top:1rem;right:1rem}.slide-caption{right:1.4rem;bottom:2.7rem;left:1.4rem}.slideshow-progress{right:1.2rem;bottom:1rem;left:1.2rem}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.success-cat{transform:translateY(40%)}.slide{transition:none}}

.host-login-page{display:grid;min-height:100svh;place-items:center;padding:1.5rem;background:linear-gradient(rgba(247,243,235,.68),rgba(247,243,235,.91)),url("/images/wedding/cover-placeholder.webp") center/cover}
.host-login-card{width:min(540px,100%);padding:clamp(2.5rem,7vw,5rem);background:rgba(255,253,248,.94);box-shadow:var(--shadow)}
.host-login-card h1{font-size:clamp(3.4rem,10vw,5.7rem)}.host-login-card h1 span{color:var(--w-accent);font-style:italic}.host-login-card>p{color:var(--muted)}
.optional-label{color:var(--muted);font-weight:400;letter-spacing:0;text-transform:none}.totp-setup-card{width:min(620px,100%)}.totp-setup-card h1{font-size:clamp(2.8rem,8vw,5rem)}.totp-qr{width:min(280px,80%);margin:1.5rem auto;background:white}.totp-secret{display:block;margin:1rem 0;padding:1rem;background:#eee9df;overflow-wrap:anywhere}.totp-controls{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--line)}.totp-controls h3{font-size:1.8rem}.disable-totp-form{grid-template-columns:minmax(0,280px) auto;align-items:end;margin-top:1rem}.disable-totp-form .text-button{align-self:end}
.host-form{display:grid;gap:.7rem}.host-form label{font-size:.7rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.host-form .button{margin-top:1rem}.host-back{display:block;margin-top:2rem;color:var(--muted);font-size:.8rem;text-align:center}.validation-summary{color:#9c342d}.validation-summary ul{padding-left:1.2rem}
.host-page{background:#f2eee6}.host-header{position:sticky;top:0;z-index:30;display:flex;min-height:82px;align-items:center;justify-content:space-between;padding:.8rem clamp(1rem,3vw,3.5rem);border-bottom:1px solid var(--line);background:rgba(255,253,248,.94);backdrop-filter:blur(16px)}
.host-header>div{display:flex;flex-direction:column}.host-kicker{color:color-mix(in srgb,var(--w-accent) 40%,var(--charcoal));font-size:.6rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase}.host-header>div a{font-family:var(--w-heading);font-size:1.8rem;text-decoration:none}.host-header nav{display:flex;align-items:center;gap:1.5rem}.host-header nav a,.host-header nav button{border:0;background:transparent;color:var(--muted);font-size:.7rem;font-weight:700;letter-spacing:.08em;text-decoration:none;text-transform:uppercase;cursor:pointer}
.host-main{width:min(1480px,calc(100% - 3rem));margin:0 auto;padding-block:4rem 7rem}.host-overview{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:2.5rem}.host-overview h1{font-size:clamp(3.5rem,7vw,6.3rem)}
.host-stats{display:flex;border:1px solid var(--line);background:var(--paper)}.host-stats div{display:flex;min-width:110px;flex-direction:column;padding:1.2rem;border-right:1px solid var(--line)}.host-stats div:last-child{border:0}.host-stats strong{font-family:var(--w-heading);font-size:2rem;font-weight:500}.host-stats span{color:var(--muted);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase}
.host-message{margin-bottom:1.5rem;padding:1rem 1.2rem;border-left:3px solid var(--w-accent);background:var(--paper)}
.operations-strip{display:flex;align-items:stretch;gap:1px;margin-bottom:4rem;background:var(--line)}.operations-strip>div{display:flex;min-width:135px;flex-direction:column;justify-content:center;padding:1rem 1.2rem;background:var(--paper)}.operations-strip span{color:var(--muted);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase}.operations-strip strong{font-family:var(--w-heading);font-size:1.35rem;font-weight:500}.operations-strip .button{border-radius:0}
.host-section{margin:0 0 6rem;scroll-margin-top:110px}.host-section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:1.4rem}.host-section h2{font-size:clamp(2.5rem,4vw,4rem)}.host-empty{padding:3rem;border:1px solid var(--line);background:rgba(255,253,248,.45);color:var(--muted);text-align:center}
.bulk-toolbar{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.bulk-toolbar label{margin-right:auto;font-size:.78rem}.bulk-toolbar select{min-height:42px;padding:.5rem .8rem;border:1px solid var(--line);background:var(--paper)}.button-small{min-height:42px;padding:.55rem 1rem;border-color:var(--w-primary);background:var(--paper);color:var(--w-primary)}
.host-media-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.host-media-card{position:relative;min-width:0;border:1px solid var(--line);background:var(--paper)}.media-select{position:absolute;top:.7rem;left:.7rem;z-index:3;display:flex;align-items:center;gap:.35rem;padding:.35rem .5rem;background:rgba(255,255,255,.9);font-size:.65rem}.host-media-preview{position:relative;aspect-ratio:4/3;background:#ddd6ca;overflow:hidden}.host-media-preview img{width:100%;height:100%;object-fit:cover;transform:rotate(var(--rotation))}.processing-placeholder{display:grid;height:100%;place-items:center;color:var(--charcoal);font-size:.72rem;font-weight:650;letter-spacing:.1em;text-transform:uppercase}.host-video-label{position:absolute;right:.7rem;bottom:.7rem;padding:.3rem .5rem;background:rgba(0,0,0,.65);color:white;font-size:.6rem;letter-spacing:.08em;text-transform:uppercase}.host-media-body{padding:1rem}.status-row{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:1rem}.status-pill{padding:.25rem .5rem;border:1px solid var(--line);border-radius:100px;color:var(--muted);font-size:.58rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.status-ready{border-color:#8ba18f;color:#3f6547}.status-failed{border-color:#c38b84;color:#94372e}
.cover-form{display:grid;grid-template-columns:180px 1fr auto;align-items:center;gap:1rem;margin:1.5rem 0 2rem;padding:1rem;border:1px solid var(--line)}.cover-form img{width:180px;aspect-ratio:4/3;object-fit:cover}.cover-form small{display:block;margin-top:.4rem;color:var(--muted)}
.unrecognized-list{display:grid;gap:.6rem;margin-top:1rem}.unrecognized-list article{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:1rem;padding:1rem;border:1px solid var(--line);background:var(--paper)}.unrecognized-list article div{display:grid;gap:.2rem}.unrecognized-list article span,.unrecognized-list article small{color:var(--muted);font-size:.72rem}
.compact-form{gap:.35rem}.compact-form textarea{resize:vertical}.compact-form .text-button{justify-self:start;padding:.35rem 0}.media-metadata{display:flex;flex-wrap:wrap;gap:.6rem;margin:1rem 0;color:var(--muted);font-size:.62rem}.processing-error{padding:.65rem;background:#fff3e5;color:#78461f;font-size:.72rem}.media-actions{display:flex;flex-wrap:wrap;gap:.35rem;padding-top:.8rem;border-top:1px solid var(--line)}.media-actions button,.media-actions a{padding:.35rem .5rem;border:1px solid var(--line);background:transparent;color:var(--charcoal);font-size:.62rem;text-decoration:none;cursor:pointer}.media-actions .danger-action{color:#9c342d}
.settings-section{padding:clamp(2rem,4vw,4rem);background:var(--paper)}.settings-section>p{max-width:700px;color:var(--muted)}.settings-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem}.settings-form>div{display:grid;gap:.45rem}.form-wide{grid-column:1/-1}.toggle-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;padding:1.2rem;border:1px solid var(--line)}.toggle-grid legend{padding:0 .5rem;font-family:var(--w-heading);font-size:1.3rem}.toggle-grid label{font-size:.75rem;letter-spacing:0;text-transform:none}.settings-form>.button{justify-self:start}.password-form{max-width:700px;grid-template-columns:repeat(2,minmax(0,1fr))}.password-form>div{display:grid;gap:.45rem}.password-form .button{align-self:end}.host-footer{padding:2rem;border-top:1px solid var(--line);color:var(--muted);font-size:.7rem;text-align:center}
@media(max-width:1100px){.host-media-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.operations-strip{flex-wrap:wrap}.operations-strip>*{flex:1 1 180px}.host-header nav>a{display:none}}
@media(max-width:760px){.host-main{width:min(100% - 1.4rem,1480px);padding-top:2rem}.host-header{min-height:70px}.host-header>div a{font-size:1.45rem}.host-overview{display:block}.host-stats{margin-top:1.5rem}.host-stats div{min-width:0;flex:1;padding:.8rem}.host-media-grid{grid-template-columns:1fr}.bulk-toolbar{align-items:stretch;flex-direction:column}.bulk-toolbar label{margin:0}.operations-strip{display:grid;grid-template-columns:1fr 1fr}.settings-form,.password-form{grid-template-columns:1fr}.form-wide{grid-column:auto}.toggle-grid{grid-template-columns:1fr}.settings-section{padding:1.3rem}.host-login-card{padding:2.2rem 1.5rem}}
