/* --- Portfolio real media + story modal --- */
.media-placeholder{background:#111}
.media-placeholder .work-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;filter:saturate(.94) contrast(1.04);transition:transform .7s var(--ease),filter .7s var(--ease)}
.work-card:hover .work-image,.work-card:focus .work-image{transform:scale(1.035);filter:saturate(1.03) contrast(1.04)}
.media-placeholder:before{z-index:1}
.media-placeholder:after{z-index:2}
.media-placeholder span{z-index:3}
.work-open{display:inline-block;margin-top:14px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-light);font-weight:500}
.frame-one{background-image:linear-gradient(145deg,rgba(39,27,21,.36),rgba(25,25,25,.55)),url('../assets/media/casamento.webp');background-size:cover;background-position:center}
.frame-two{background-image:linear-gradient(145deg,rgba(22,32,37,.4),rgba(43,31,24,.55)),url('../assets/media/retrato.webp');background-size:cover;background-position:center}
.frame-three{background-image:linear-gradient(145deg,rgba(53,40,29,.4),rgba(21,21,21,.55)),url('../assets/media/evento.webp');background-size:cover;background-position:center}
.portrait-placeholder{background:#111}
.portrait-placeholder .henrique-photo{width:100%;height:100%;object-fit:cover;opacity:1;filter:none}
.story-modal{width:min(1080px,calc(100vw - 28px));max-height:min(88dvh,820px);padding:0;border:1px solid rgba(255,255,255,.12);border-radius:24px;background:#0c0c0c;color:#fff;box-shadow:0 30px 100px rgba(0,0,0,.65);overflow:hidden}
.story-modal::backdrop{background:rgba(0,0,0,.78);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.story-close{position:absolute;top:16px;right:16px;z-index:3;width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:rgba(0,0,0,.52);color:#fff;font-size:28px;line-height:1;cursor:pointer}
.story-media{min-height:330px;background:#151515;overflow:hidden}
.story-media img{width:100%;height:100%;min-height:330px;object-fit:cover}
.story-content{padding:34px}
.story-content h2{font-family:"Manrope",sans-serif;font-size:clamp(38px,5vw,68px);line-height:1;letter-spacing:-.04em;font-weight:500;margin:8px 0 12px}
.story-subtitle{color:#aaa;margin:0 0 24px}
.story-text{color:#c2beb6;line-height:1.8;max-width:650px}
.story-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:30px}
.admin-link{opacity:.45}
.admin-link:hover{opacity:1}
@media(min-width:780px){.story-modal{grid-template-columns:1.1fr .9fr}.story-modal[open]{display:grid}.story-media,.story-media img{height:100%;min-height:560px}.story-content{display:flex;flex-direction:column;justify-content:center;padding:50px}}
@media(max-width:560px){.story-modal{width:calc(100vw - 18px);max-height:92dvh;border-radius:18px}.story-media,.story-media img{min-height:300px;height:42dvh}.story-content{padding:24px}.story-content h2{font-size:39px}.story-actions .btn{width:100%}.work-open{font-size:10px}}

/* --- Admin de teste --- */
.admin-page{min-height:100dvh;background:radial-gradient(circle at 20% 0,#2b2118 0,transparent 25%),#090909;color:#f7f4ee}
.admin-shell{width:min(1180px,calc(100vw - 32px));margin:0 auto;padding:34px 0 70px}
.admin-login{width:min(520px,100%);margin:8vh auto 0;padding:34px;border:1px solid var(--line);background:rgba(14,14,14,.94);box-shadow:0 30px 100px rgba(0,0,0,.45)}
.admin-brand{display:flex;align-items:center;gap:14px;margin-bottom:34px}
.admin-brand>div{display:grid;gap:5px}.admin-brand strong{font-family:"Manrope",sans-serif;letter-spacing:.12em}.admin-brand span{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#777}
.admin-login h1,.admin-section-title h1{font-family:"Manrope",sans-serif;font-weight:500;letter-spacing:-.04em;font-size:clamp(38px,6vw,64px);line-height:1;margin:8px 0 18px}
.admin-muted,.admin-warning{color:#9a958d;line-height:1.7}
.admin-login-form{display:grid;gap:18px;margin:28px 0}.admin-login-form label,.admin-editor label{display:grid;gap:8px;font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:#aaa}
.admin-login-form input,.admin-editor input,.admin-editor textarea{width:100%;background:#111;border:1px solid rgba(255,255,255,.13);color:#fff;padding:14px 15px;outline:none;border-radius:10px;font-size:15px;text-transform:none;letter-spacing:normal}
.admin-login-form input:focus,.admin-editor input:focus,.admin-editor textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(199,166,107,.08)}
.admin-editor label small{font-size:10px;line-height:1.55;color:#67635d;text-transform:none;letter-spacing:normal}
.admin-error{color:#ff9a9a;min-height:20px;margin:0}
.admin-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 0 28px;border-bottom:1px solid var(--line)}
.admin-header .admin-brand{margin:0}.admin-header-actions{display:flex;gap:10px;flex-wrap:wrap}.admin-header .btn{width:auto}
.admin-dashboard{padding:55px 0 25px}.admin-section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.admin-demo-badge{padding:7px 10px;border:1px solid rgba(199,166,107,.38);border-radius:100px;color:var(--accent-light);font-size:10px;letter-spacing:.12em}
.admin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:28px 0}.admin-stats article{border:1px solid var(--line);background:#101010;padding:20px;min-height:120px;display:flex;flex-direction:column;justify-content:space-between}.admin-stats span{font-size:11px;color:#858078}.admin-stats strong{font-family:"Manrope",sans-serif;font-size:38px;font-weight:500;color:var(--accent-light)}
.admin-warning{border-left:2px solid var(--accent);padding:12px 16px;background:rgba(199,166,107,.04);font-size:12px}
.admin-editor{display:grid;gap:18px}.admin-card{background:#0e0e0e;border:1px solid var(--line);padding:28px;display:grid;gap:20px}.admin-card-head{display:flex;align-items:flex-end;justify-content:space-between;gap:15px;padding-bottom:18px;border-bottom:1px solid var(--line)}.admin-card-head h2{font-family:"Manrope",sans-serif;font-size:30px;font-weight:500;margin:4px 0 0}.admin-card-head>span{font-size:11px;color:#6d6963}
.projects-editor{display:grid;gap:18px}.project-editor{display:grid;grid-template-columns:220px 1fr;gap:24px;padding:20px;background:#111;border:1px solid rgba(255,255,255,.07)}.project-editor-preview{position:relative;min-height:310px;overflow:hidden;background:#1a1a1a}.project-editor-preview img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.project-editor-preview span{position:absolute;top:12px;right:12px;padding:6px 8px;border-radius:100px;background:rgba(0,0,0,.55);font-size:10px}.project-editor-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.project-editor-fields label:nth-child(4),.project-editor-fields label:nth-child(5){grid-column:1/-1}
.admin-savebar{position:sticky;bottom:14px;z-index:10;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px;background:rgba(10,10,10,.9);backdrop-filter:blur(14px);border:1px solid var(--line);box-shadow:0 16px 50px rgba(0,0,0,.38)}.admin-savebar>div{display:flex;gap:10px}.admin-savebar .btn{width:auto}.admin-savebar p{font-size:12px;color:#9dc793;margin:0}
@media(max-width:820px){.admin-stats{grid-template-columns:1fr 1fr}.project-editor{grid-template-columns:1fr}.project-editor-preview{min-height:360px}.project-editor-fields{grid-template-columns:1fr}.project-editor-fields label:nth-child(4),.project-editor-fields label:nth-child(5){grid-column:auto}}
@media(max-width:560px){.admin-shell{width:calc(100vw - 24px);padding-top:16px}.admin-login{padding:24px;margin-top:4vh}.admin-header{align-items:flex-start}.admin-header .admin-brand span{display:none}.admin-header-actions{justify-content:flex-end}.admin-header-actions .btn{padding:11px 14px}.admin-stats{grid-template-columns:1fr 1fr}.admin-card{padding:20px}.project-editor{padding:12px;gap:16px}.project-editor-preview{min-height:330px}.admin-savebar{flex-direction:column;align-items:stretch;bottom:8px}.admin-savebar>div{display:grid;grid-template-columns:1fr 1fr}.admin-savebar .btn{width:100%}}