:root{--gallery-blush:#f8e4eb;--gallery-rose:#b36e8d;--gallery-deep:#5c3548;--gallery-paper:#fffafc;--gallery-line:#ead3dd}
.gallery-teaser{background:#faeaf1;padding:90px 0}.gallery-teaser-inner{display:grid;grid-template-columns:1.13fr 1fr;align-items:center;gap:9%}.gallery-teaser-inner h2{font:400 clamp(35px,4vw,57px)/1.2 var(--serif);margin:18px 0 20px;color:#543747}.gallery-teaser-inner h2 em{color:#b46f8e;font-weight:400}.gallery-teaser-inner p{max-width:540px;color:#715462;line-height:1.95}.gallery-teaser-image{height:390px;overflow:hidden;box-shadow:18px 18px #f0cbdc}.gallery-teaser-inner .btn{margin-top:25px}
.gallery-body{background:#fffafc;color:#483543}.gallery-hero{text-align:center;padding:85px 18px 58px;background:linear-gradient(180deg,#fae4ee 0%,#fffafc 97%)}.gallery-hero .overline{color:#9d607c}.gallery-hero h1{font:400 clamp(48px,7vw,90px)/1.12 var(--serif);color:#493342;letter-spacing:-2px;margin:18px 0 18px}.gallery-hero h1 em{font-weight:400;color:#af6b88}.gallery-hero p{max-width:600px;margin:0 auto;color:#745b69;font-size:15px;line-height:1.8}
.gallery-shell{width:min(1170px,calc(100% - 40px));margin:0 auto 95px}.gallery-access{position:relative;margin:10px auto 30px;max-width:620px;background:#fff;border:1px solid #f0d5e2;border-radius:7px;box-shadow:0 20px 65px #8b50741a;padding:38px 44px}.gallery-access h2{font:400 32px var(--serif);color:#583547;margin:0 0 8px}.gallery-access .sub{margin:0 0 26px;color:#7d6572}.gallery-form{display:grid;gap:15px}.gallery-form label,.studio-form label{display:grid;gap:7px;color:#6d4a5c;font-size:12px;text-transform:uppercase;letter-spacing:1.4px;font-weight:700}.gallery-form input,.studio-form input,.studio-form select,.studio-form textarea{border:1px solid #e3cbd7;border-radius:3px;background:#fffdfd;padding:13px 14px;width:100%;color:#382b34;font:14px var(--sans)}.gallery-form input:focus,.studio-form input:focus{outline:2px solid #c487a3;outline-offset:1px}.pink-btn{background:#a55b7b;color:white;border:1px solid #a55b7b;padding:15px 20px;font-size:12px;letter-spacing:1.1px;text-transform:uppercase;font-weight:700;border-radius:3px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}.pink-btn:hover{background:#864561}.pink-btn:disabled{opacity:.55;cursor:not-allowed}.outline-btn{background:transparent;border:1px solid #d4a4ba;color:#854965;padding:12px 16px;font:600 12px var(--sans);letter-spacing:.5px;border-radius:3px;cursor:pointer}.outline-btn:hover{background:#fcecf3}.gallery-demo-link{display:block;text-align:center;text-decoration:underline;text-underline-offset:4px;color:#8e5471;font-size:13px;margin:21px auto 0;cursor:pointer;background:transparent;border:0}.gallery-note{font-size:12px;color:#816875;line-height:1.7}.gallery-error{color:#aa2350;background:#fff0f4;border:1px solid #f2bacd;padding:11px 15px;font-size:13px;border-radius:3px}.gallery-success{color:#4b6d55;background:#eaf5ee;border:1px solid #b9d6c0;padding:11px 15px;font-size:13px}.gallery-hidden,[hidden]{display:none!important}
.gallery-cover{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;margin-top:38px;padding:26px;background:#faeaf1}.gallery-cover-photo{height:310px;overflow:hidden}.gallery-cover-photo img{width:100%;height:100%;object-fit:cover}.gallery-cover h2{font:400 clamp(30px,4vw,48px)/1.24 var(--serif);color:#583547;margin:8px 0}.gallery-cover p{color:#765d6c}.gallery-cover .overline{color:#a26482}.gallery-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin:34px 0 23px}.gallery-toolbar h2{font:400 29px var(--serif);margin:0;color:#5d3f51}.gallery-toolbar-actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center}.gallery-status{color:#946e82;font-size:12px}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.gallery-photo{position:relative;background:#f4e5eb;overflow:hidden;border-radius:2px;aspect-ratio:4/5;cursor:pointer}.gallery-photo:nth-child(5n+2),.gallery-photo:nth-child(5n+4){aspect-ratio:1/1}.gallery-photo img{height:100%;width:100%;object-fit:cover;transition:transform .35s}.gallery-photo:hover img{transform:scale(1.035)}.gallery-photo:focus-within{outline:2px solid #a55b7b}.gallery-photo .photo-click{position:absolute;inset:0;background:transparent;border:0;cursor:zoom-in}.gallery-photo .heart-btn{position:absolute;right:11px;top:11px;background:#fffef8e9;border:1px solid #ffffff;color:#98677e;border-radius:99px;font-size:20px;width:37px;height:37px;cursor:pointer;z-index:1;display:grid;place-items:center}.gallery-photo .heart-btn.liked{color:#c34474}.gallery-photo .image-name{position:absolute;left:0;right:0;bottom:0;padding:28px 15px 10px;background:linear-gradient(transparent,#1b141b6b);color:white;font-size:11px;letter-spacing:.5px;pointer-events:none}.gallery-promise{text-align:center;margin-top:50px;padding:28px;border-top:1px solid #ebd7e1;color:#816674;font-size:13px}.gallery-promise strong{color:#9d607c}
.gallery-modal{position:fixed;z-index:1000;inset:0;background:#241b23ee;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:65px 20px 95px;color:#fff}.gallery-modal .modal-photo{max-height:calc(100vh - 180px);max-width:min(95vw,1200px);width:auto;height:auto;object-fit:contain}.gallery-modal .modal-controls{position:absolute;bottom:22px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center}.gallery-modal .modal-close{position:absolute;top:18px;right:24px;background:transparent;color:white;border:0;font-size:32px;cursor:pointer}.gallery-modal button{background:#ffffff20;color:white;border:1px solid #ffffff6b;border-radius:4px;padding:10px 14px;cursor:pointer}.gallery-modal button:hover{background:#ffffff40}.gallery-modal .modal-caption{font-size:12px;opacity:.8}
.studio-hero{background:#fae5ee;text-align:center;padding:55px 22px}.studio-hero h1{font:400 clamp(42px,5vw,66px) var(--serif);color:#563649;margin:8px 0}.studio-hero p{color:#7d5f6e}.studio-shell{max-width:1080px;margin:34px auto 90px;padding:0 24px}.studio-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:25px}.studio-heading h2{font:400 31px var(--serif);margin:0;color:#58394a}.studio-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.studio-card{background:#fff;border:1px solid #efdae4;border-radius:5px;overflow:hidden;box-shadow:0 14px 28px #73496010}.studio-card img{width:100%;height:170px;object-fit:cover}.studio-card-content{padding:19px}.studio-card-content h3{font:400 22px var(--serif);color:#593c4d;margin:3px 0}.studio-card-content p{color:#8b6d7d;font-size:12px;margin:7px 0 15px}.studio-card-content button{width:100%}.studio-stat{display:inline-block;border:1px solid #e9c9d9;background:#fcf0f5;border-radius:30px;color:#87576c;padding:4px 10px;font-size:11px}.studio-pane{margin-top:28px;background:white;border:1px solid #eed7e2;padding:30px;box-shadow:0 8px 27px #5934470a}.studio-pane h3{font:400 27px var(--serif);margin:0 0 6px}.studio-pane p{color:#7c6571;font-size:13px}.studio-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.studio-form .full{grid-column:1/-1}.studio-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.studio-upload{padding:27px;border:2px dashed #ddb5c7;background:#fff8fb;text-align:center;margin:20px 0}.studio-upload input{max-width:400px;display:block;margin:12px auto}.studio-photo-list{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:20px 0}.studio-photo-list img{aspect-ratio:1;object-fit:cover}.studio-secret{background:#ffeff5;padding:15px;border:1px solid #ebbad0;color:#5f354b;word-break:break-word;margin:15px 0}.studio-login{width:min(460px,100%);margin:30px auto 60px}.preview-flag{padding:9px 15px;background:#5b334d;color:#fff;text-align:center;font:600 12px var(--sans);letter-spacing:.3px}.studio-help{line-height:1.8;color:#7f6372}.studio-help code{background:#f8e9f0;padding:3px 5px}
@media(max-width:850px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.studio-cards{grid-template-columns:repeat(2,1fr)}.gallery-teaser-inner{gap:30px}.gallery-teaser-image{height:320px}}
@media(max-width:620px){.gallery-teaser-inner,.gallery-cover{grid-template-columns:1fr}.gallery-teaser{padding:65px 0}.gallery-teaser-image{height:280px}.gallery-hero{padding:62px 20px 38px}.gallery-hero h1{font-size:50px}.gallery-access{padding:26px 24px}.gallery-shell{width:calc(100% - 24px)}.gallery-grid{gap:9px}.gallery-cover{gap:16px}.gallery-cover-photo{height:225px}.gallery-toolbar{margin-top:23px}.gallery-toolbar-actions{width:100%}.gallery-toolbar-actions button{flex:1}.studio-cards{grid-template-columns:1fr}.studio-form{grid-template-columns:1fr}.studio-form .full{grid-column:1}.studio-pane{padding:20px}.studio-photo-list{grid-template-columns:repeat(3,1fr)}}


/* Never crop a client's face: photo previews keep all original content visible. */
.gallery-teaser-image, .gallery-cover-photo, .gallery-photo, .studio-card,
.studio-photo-list img { background: #f7e4ed; }
.gallery-teaser-image { height: auto; aspect-ratio: 3 / 4; }
.gallery-cover-photo { height: auto; aspect-ratio: 3 / 4; }
.gallery-teaser-image img, .gallery-cover-photo img, .gallery-photo img,
.studio-card img, .studio-photo-list img, .gallery-modal .modal-photo {
  object-fit: contain;
  object-position: center;
  transform: none;
}
.gallery-photo:hover img { transform:none; }
.studio-photo-list img { width:100%;height: auto;aspect-ratio:1/1; }
/* Card covers are complete frames, not cropped banners. */
.studio-card img { height: auto; aspect-ratio: 4 / 5; }

/* Launch edition: friendly and honest gallery staging before storage is connected. */
.gallery-launch-notice{background:#fff5f8;border:1px solid #eccfdb;border-radius:6px;padding:22px 22px;display:flex;flex-direction:column;gap:10px;color:#67495a;margin:22px 0 14px;}
.gallery-launch-notice strong{font:500 22px/1.25 var(--serif);color:#744459;}
.gallery-launch-notice span{font:400 13px/1.7 var(--sans);}
.gallery-contact-btn{display:inline-flex;align-self:flex-start;margin-top:9px;font-size:11px;text-align:center;text-decoration:none;}
.gallery-form[hidden]{display:none !important;}
