@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&display=swap');

:root{--ink:#292421;--muted:#746c67;--cream:#f6f1ea;--paper:#fffdf9;--rose:#b98579;--brown:#6e4f43;--line:#e7ded4;--green:#657b69;--danger:#9c433b;--shadow:0 20px 50px rgba(61,43,34,.09);font-family:"DM Sans",sans-serif;color:var(--ink);background:var(--cream);font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:var(--cream)}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}img{display:block;max-width:100%}main{min-height:calc(100vh - 142px)}
.shell{width:min(1120px,calc(100% - 40px));margin-inline:auto}.site-header{height:74px;display:flex;align-items:center;justify-content:space-between;width:min(1180px,calc(100% - 40px));margin:auto}.brand{font-family:"Playfair Display",serif;font-size:21px;font-weight:600;display:flex;gap:9px;align-items:center}.brand-mark{color:var(--rose)}.site-header nav{display:flex;gap:24px;font-size:14px;color:var(--muted)}.site-footer{text-align:center;padding:32px 20px;color:var(--muted);font-size:13px}
h1,h2{font-family:"Newsreader",Georgia,serif;margin:0;line-height:1.05}h1 em,h2 em{color:var(--rose);font-weight:600}p{color:var(--muted);line-height:1.65}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:11px;font-weight:600;color:var(--rose);margin-bottom:12px}.button{border:0;border-radius:100px;padding:13px 21px;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;font-weight:600;font-size:14px;transition:.2s ease}.button:hover{transform:translateY(-1px)}.button-primary{background:var(--brown);color:#fff;box-shadow:0 10px 24px rgba(110,79,67,.2)}.button-ghost{border:1px solid var(--line);background:rgba(255,255,255,.52)}.button-full{width:100%}.card{background:var(--paper);border:1px solid rgba(110,79,67,.09);border-radius:24px;box-shadow:var(--shadow)}
.flash{position:fixed;z-index:20;top:82px;left:50%;transform:translateX(-50%);width:min(560px,calc(100% - 30px));padding:13px 18px;border-radius:12px;color:#fff;text-align:center;box-shadow:var(--shadow);animation:flash-in .3s ease}.flash-success{background:var(--green)}.flash-error{background:var(--danger)}@keyframes flash-in{from{opacity:0;transform:translate(-50%,-10px)}}
.hero{padding:80px 0 110px;position:relative;overflow:hidden}.hero h1{font-size:clamp(48px,7vw,88px);max-width:800px;letter-spacing:-.04em}.hero>p{font-size:18px;max-width:590px;margin:28px 0}.hero-actions{display:flex;align-items:center;gap:20px}.microcopy{font-size:13px;color:var(--muted)}.phone-preview{position:absolute;right:0;top:42px;width:335px;height:450px;pointer-events:none}.preview-card{position:absolute;width:190px;height:260px;border:8px solid #fff;background:linear-gradient(145deg,#ddc2b4,#81685b);box-shadow:var(--shadow);border-radius:6px;display:grid;place-items:center;color:#fff;font-size:34px}.preview-a{right:96px;top:54px;transform:rotate(-9deg)}.preview-b{right:0;top:5px;transform:rotate(9deg);background:linear-gradient(145deg,#acb5a6,#5f695b)}.preview-c{right:20px;top:192px;transform:rotate(4deg);background:linear-gradient(145deg,#d9b597,#8c6953)}.how{border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);padding:40px 0 60px;gap:40px}.how>div{display:grid;grid-template-columns:38px 1fr}.how strong{color:var(--rose);font-size:12px}.how h2{font-size:24px}.how p{grid-column:2;margin:8px 0;font-size:14px}
.auth-page main{display:grid;place-items:center;padding:50px 20px}.auth-card{width:min(440px,100%);padding:40px}.auth-card h1{font-size:39px}.auth-card>p{margin-bottom:26px}.stack-form{display:grid;gap:18px}.stack-form label{display:grid;gap:8px;font-size:13px;font-weight:600}.stack-form input,.stack-form textarea,.copy-field{border:1px solid var(--line);border-radius:12px;background:#fff;padding:13px 14px;outline:none;width:100%;color:var(--ink)}.stack-form input:focus,.stack-form textarea:focus{border-color:var(--rose);box-shadow:0 0 0 3px rgba(185,133,121,.12)}.stack-form small{font-weight:400;color:var(--muted)}.form-error{background:#f8e6e3;color:var(--danger);padding:12px 14px;border-radius:12px;font-size:13px;margin-bottom:16px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.stack-form hr{border:0;border-top:1px solid var(--line);width:100%}.stack-form h2{font-size:23px}
.page-head,.album-head{display:flex;justify-content:space-between;align-items:end;padding:54px 0 28px}.page-head h1,.album-head h1{font-size:clamp(38px,6vw,62px)}.event-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding-bottom:50px}.event-card{padding:22px;min-height:340px;display:flex;flex-direction:column}.event-card-top{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted)}.status{border-radius:99px;background:#eee7df;padding:6px 9px}.status-open{background:#e5eee6;color:#466049}.event-monogram{width:92px;height:92px;margin:36px auto 24px;border-radius:50%;display:grid;place-items:center;background:#eee3da;color:var(--brown);font-family:"Playfair Display",serif;font-size:30px}.event-card h2{text-align:center;font-size:27px}.event-card>p,.event-card>small{text-align:center}.event-card>small{color:var(--muted);margin-top:-6px}.card-actions{display:flex;gap:9px;margin-top:auto}.event-card .card-actions .button{flex:1}.empty-state{grid-column:1/-1;text-align:center;padding:60px 30px}.empty-state>span{font-size:34px;color:var(--rose)}.narrow{width:min(660px,calc(100% - 40px));margin:0 auto 50px}.form-card{padding:30px}
.settings-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:24px;padding-bottom:60px}.qr-card,.settings-grid>.form-card{padding:30px}.qr-card h2{font-size:31px}.qr-code{width:230px;height:230px;margin:24px auto;padding:13px;border-radius:16px;background:#fff;border:1px solid var(--line)}.qr-code canvas{width:100%!important;height:100%!important}.copy-field{font-size:12px;background:#f7f3ed}.privacy-note{font-size:12px;margin:16px 0 0}.switch-row{display:flex!important;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:14px;padding:14px}.switch-row span{display:grid;gap:4px}.switch-row input{width:22px;height:22px}.danger-zone{border-top:1px solid var(--line);margin-top:24px;padding-top:20px}.text-button{border:0;background:none;padding:0;color:var(--rose);cursor:pointer;font-weight:600;font-size:13px}
.guest-page{background:#f4eee8}.guest-page .site-header{height:58px}.guest-page .site-header nav{display:none}.guest-hero{text-align:center;padding:42px 20px 38px;background:linear-gradient(160deg,#e9ddd2,#f8f4ee)}.guest-hero h1{font-size:clamp(42px,12vw,67px);letter-spacing:-.04em}.guest-hero p{max-width:510px;margin:18px auto 0}.guest-date{font-size:11px;text-transform:uppercase;letter-spacing:.18em;color:var(--brown);margin-bottom:13px}.guest-join{width:min(430px,calc(100% - 30px));margin:28px auto;padding:28px}.guest-join h2{font-size:31px}.guest-actions,.guest-gallery{width:min(850px,calc(100% - 30px));margin:28px auto}.guest-actions>div{text-align:center}.guest-actions h2{font-size:31px;margin-top:8px}.guest-actions>div>span{font-size:12px;color:var(--rose);font-weight:600}.upload-buttons{display:grid;grid-template-columns:1fr 1fr;gap:12px}.button-camera,.button-gallery{min-height:86px;border-radius:18px;font-size:25px}.button-camera{background:var(--brown);color:#fff}.button-gallery{background:var(--paper);border:1px solid var(--line)}.button-camera span,.button-gallery span{font-size:14px}.upload-queue{margin-top:14px;background:var(--paper);padding:16px;border-radius:18px}.upload-summary{display:flex;justify-content:space-between;margin-bottom:12px;font-size:13px}.upload-previews{display:flex;gap:8px;overflow:auto;margin-bottom:14px}.upload-previews img{width:72px;height:72px;object-fit:cover;border-radius:10px}.progress{height:5px;background:var(--line);border-radius:10px;margin-top:12px;overflow:hidden}.progress span{display:block;width:35%;height:100%;background:var(--rose);animation:progress 1.2s infinite ease-in-out}@keyframes progress{from{transform:translateX(-110%)}to{transform:translateX(330%)}}.closed-message{padding:18px;text-align:center;background:#ede4dc;border-radius:14px;color:var(--muted)}.section-title{display:flex;justify-content:space-between;align-items:end;padding:30px 0 16px}.section-title h2{font-size:31px}.section-title>span{font-size:12px;color:var(--muted)}.masonry{columns:3 190px;column-gap:10px}.masonry figure{break-inside:avoid;margin:0 0 10px;position:relative;overflow:hidden;border-radius:12px;background:#e8dfd7}.masonry img{width:100%;min-height:100px}.guest-gallery figure figcaption{position:absolute;left:8px;bottom:8px;background:rgba(30,25,22,.65);backdrop-filter:blur(8px);color:#fff;padding:5px 8px;border-radius:99px;font-size:10px}
.album-head{align-items:center}.album-head p{margin-bottom:0}.album-actions{display:flex;gap:10px}.album-tabs{display:flex;gap:20px;border-bottom:1px solid var(--line);margin-bottom:20px}.album-tabs a{padding:11px 3px;font-size:13px;color:var(--muted)}.album-tabs a.active{color:var(--ink);border-bottom:2px solid var(--brown)}.owner-gallery{padding-bottom:50px}.owner-photo{border-radius:14px!important;background:var(--paper)!important;box-shadow:0 6px 18px rgba(61,43,34,.08)}.owner-photo>a img{border-radius:14px 14px 0 0}.owner-photo figcaption{display:flex;align-items:center;justify-content:space-between;padding:10px 12px}.owner-photo figcaption div{display:grid}.owner-photo figcaption strong{font-size:11px}.owner-photo figcaption small{font-size:9px;color:var(--muted)}.icon-button{border:0;background:#f0e9e2;border-radius:50%;width:30px;height:30px;cursor:pointer}.owner-masonry{columns:4 220px}
@media(max-width:820px){.hero{padding-top:50px}.hero h1{font-size:58px;max-width:620px}.phone-preview{opacity:.23;right:-80px}.hero>p,.hero-actions{position:relative;z-index:1}.event-grid{grid-template-columns:1fr 1fr}.settings-grid{grid-template-columns:1fr}.owner-masonry{columns:3 180px}}
@media(max-width:600px){.shell{width:calc(100% - 30px)}.site-header{width:calc(100% - 30px)}.site-header nav a:first-child{display:none}.hero{padding:48px 0 70px}.hero h1{font-size:47px}.hero>p{font-size:16px}.hero-actions{align-items:flex-start;flex-direction:column}.phone-preview{display:none}.how{grid-template-columns:1fr;gap:24px}.event-grid{grid-template-columns:1fr}.page-head,.album-head{padding-top:35px;align-items:flex-start;gap:18px;flex-direction:column}.page-head .button{width:100%}.form-row{grid-template-columns:1fr}.form-card,.qr-card{padding:22px}.album-actions{display:grid;width:100%;grid-template-columns:1fr 1fr}.upload-buttons{grid-template-columns:1fr 1fr}.button-camera,.button-gallery{padding:15px 8px;flex-direction:column}.masonry{columns:2 130px}.owner-masonry{columns:2 140px}.auth-card{padding:28px 22px}.guest-hero{padding-top:32px}}

/* Privacidad individual de fotografías */
.upload-summary{margin-bottom:4px}.privacy-help{font-size:12px;margin:6px 0 14px}.upload-previews{display:grid;gap:10px;overflow:visible}.upload-preview-card{display:grid;grid-template-columns:82px 1fr;gap:12px;align-items:center;padding:9px;background:#f7f2ec;border:1px solid var(--line);border-radius:14px}.upload-preview-card img{width:82px;height:82px;object-fit:cover;border-radius:10px}.visibility-options{display:grid;gap:6px}.visibility-option{border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--muted);padding:9px 10px;text-align:left;font-size:11px;font-weight:600;cursor:pointer}.visibility-option.active{border-color:var(--brown);background:var(--brown);color:#fff}.album-tabs{overflow:auto}.album-tabs a{white-space:nowrap}.tab-count{display:inline-grid;place-items:center;min-width:19px;height:19px;margin-left:5px;padding:0 5px;border-radius:99px;background:#e9dfd6;font-size:10px}.owner-photo>a{position:relative;display:block}.privacy-badge{position:absolute;top:8px;right:8px;padding:5px 8px;border-radius:99px;background:rgba(41,36,33,.72);color:#fff;font-size:9px;backdrop-filter:blur(7px)}.privacy-badge.private{background:rgba(110,79,67,.9)}

/* Desafíos, recompensas y likes */
.module-switches{display:grid;gap:9px}.settings-wide{grid-column:1/-1}.settings-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.settings-section-head p{margin:7px 0 0}.challenge-editor{display:grid;gap:10px}.challenge-edit-row{display:grid;grid-template-columns:24px 1fr 92px;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:14px}.challenge-edit-row>input{width:20px;height:20px}.challenge-edit-row>div{display:grid;gap:6px}.challenge-edit-row input,.new-challenge-form input,.challenge-select{width:100%;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);padding:10px}.challenge-edit-row>label{display:grid;gap:3px;text-align:center;color:var(--muted);font-size:10px}.new-challenge-form{display:grid;gap:10px;margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}.new-challenge-form h3{margin:0}.upload-preview-controls{display:grid;gap:7px}.challenge-select{font-size:11px}.game-summary{padding:18px;margin:16px 0}.game-summary-top,.level-row{display:flex;align-items:center;justify-content:space-between;gap:15px}.game-summary h3{font-family:"Playfair Display",serif;margin:0;font-size:23px}.points-pill{min-width:72px;background:var(--brown);color:#fff;border-radius:15px;padding:9px;text-align:center;display:grid}.points-pill strong{font-size:22px}.points-pill span{font-size:9px;text-transform:uppercase;letter-spacing:.1em}.level-row{margin-top:16px;font-size:12px}.level-row small{color:var(--muted)}.level-progress{height:6px;background:var(--line);border-radius:99px;overflow:hidden;margin:7px 0 16px}.level-progress span{display:block;height:100%;background:var(--rose);border-radius:inherit}.challenge-list{display:grid;grid-template-columns:1fr 1fr;gap:7px}.challenge-chip{display:flex;gap:8px;align-items:center;padding:10px;background:#f7f2ec;border-radius:11px;color:var(--muted)}.challenge-chip>span{font-weight:700}.challenge-chip>div{display:grid}.challenge-chip strong{font-size:10px}.challenge-chip small{font-size:9px}.challenge-chip.completed{background:#e4ede5;color:#476049}.raffle-note{text-align:center;margin:14px 0 0;font-size:11px}.photo-like{position:absolute;right:8px;bottom:8px}.photo-like button{border:0;border-radius:99px;padding:6px 9px;background:rgba(255,255,255,.86);color:#7f7771;box-shadow:0 4px 12px rgba(0,0,0,.12);cursor:pointer}.photo-like button.liked{background:#aa635f;color:#fff}.favorite-badge{position:absolute;left:8px;top:8px;padding:5px 8px;border-radius:99px;background:#fff4c9;color:#745b14;font-size:9px}.owner-photo-actions{display:flex;gap:5px}.icon-button.active{background:#f4d978;color:#654e0a}.game-admin-grid{display:grid;grid-template-columns:1.5fr .7fr;gap:20px;padding-bottom:55px}.leaderboard-card,.raffle-card{padding:25px}.leaderboard{list-style:none;margin:0;padding:0}.leaderboard li{display:grid;grid-template-columns:35px 1fr auto;gap:10px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.leaderboard .rank{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#eee6de;font-size:11px}.leaderboard li:first-child .rank{background:#e7ce74}.leaderboard li>div{display:grid}.leaderboard small{color:var(--muted);font-size:10px;margin-top:3px}.leaderboard b{font-size:13px}.raffle-card h2{font-size:30px}.draw-history{border-top:1px solid var(--line);margin-top:22px;padding-top:17px}.draw-history>div{display:grid;margin-top:10px}.draw-history small{color:var(--muted)}
.challenge-chip>div{gap:2px}.challenge-chip small{line-height:1.35}.challenge-chip .challenge-points{color:var(--rose);font-weight:600;margin-top:2px}.all-challenges-badge{margin-top:12px;padding:11px 14px;border:1px solid #dfc15c;border-radius:12px;background:#fff7d8;color:#715915;text-align:center;font-size:12px;font-weight:600}
@media(max-width:700px){.challenge-list{grid-template-columns:1fr}.challenge-edit-row{grid-template-columns:22px 1fr}.challenge-edit-row>label{grid-column:2;grid-template-columns:80px auto;align-items:center;text-align:left}.settings-section-head{flex-direction:column}.game-admin-grid{grid-template-columns:1fr}.game-summary{padding:15px}.level-row{align-items:flex-start;flex-direction:column;gap:2px}.album-actions{grid-template-columns:1fr}}
