:root{
    --cut-blue:#26529C;
    --cut-green:#0e8a4b;
    --cut-green-dark:#087143;
    --cut-light:#EDF4EF;
    --cut-ink:#111827;
    --cut-muted:#5f6673;
    --cut-line:rgba(38,82,156,.12);
    --white:#ffffff;
    --shadow:0 18px 50px rgba(17,24,39,.10);
    --soft-shadow:0 10px 28px rgba(17,24,39,.07);
    --radius:28px;
    --touch:96px;
}

*{
    box-sizing:border-box;
    -webkit-tap-highlight-color:transparent;
}

html,body{
    width:100%;
    height:100%;
    margin:0;
    overflow:hidden;
    font-family:Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    background:#f6f8fb;
    color:var(--cut-ink);
    user-select:none;
    -webkit-user-select:none;
    touch-action:manipulation;
}

button,input{
    font:inherit;
}

button{
    border:0;
    cursor:pointer;
    touch-action:manipulation;
}

img{
    max-width:100%;
    display:block;
}

.kiosk-app{
    position:relative;
    width:100vw;
    height:100vh;
    overflow:hidden;
    background:
        radial-gradient(circle at 9% 92%, rgba(14,138,75,.10), transparent 24%),
        radial-gradient(circle at 96% 6%, rgba(38,82,156,.12), transparent 24%),
        linear-gradient(135deg, #ffffff 0%, #f5f8fb 100%);
}

.kiosk-app::before,
.kiosk-app::after{
    content:"";
    position:absolute;
    width:330px;
    height:330px;
    border-radius:50%;
    pointer-events:none;
    z-index:0;
}

.kiosk-app::before{
    right:-120px;
    top:-150px;
    background:conic-gradient(from 110deg, var(--cut-blue), var(--cut-green), var(--cut-blue));
    opacity:.16;
}

.kiosk-app::after{
    left:-160px;
    bottom:-150px;
    background:conic-gradient(from 120deg, var(--cut-green), var(--cut-blue), var(--cut-green));
    opacity:.14;
}

.app-header{
    position:absolute;
    z-index:20;
    top:22px;
    left:34px;
    right:34px;
    height:78px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    pointer-events:none;
}

.app-header > *{
    pointer-events:auto;
}

.brand-logo{
    height:74px;
    max-width:260px;
    object-fit:contain;
}

.status-pill{
    min-width:220px;
    padding:16px 22px;
    border-radius:999px;
    background:rgba(255,255,255,.88);
    box-shadow:var(--soft-shadow);
    border:1px solid var(--cut-line);
    color:var(--cut-blue);
    font-weight:900;
    text-align:center;
}

.icon-button{
    height:64px;
    min-width:150px;
    padding:0 22px;
    border-radius:999px;
    background:#fff;
    color:var(--cut-blue);
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    font-weight:900;
    box-shadow:var(--soft-shadow);
    border:1px solid var(--cut-line);
}

.icon-button img{
    width:30px;
    height:30px;
}

.screen{
    position:absolute;
    inset:0;
    z-index:1;
    display:none;
    padding:120px 44px 36px;
}

.screen.active{
    display:block;
    animation:screenIn .32s ease both;
}

@keyframes screenIn{
    from{opacity:0; transform:translateY(18px) scale(.99)}
    to{opacity:1; transform:translateY(0) scale(1)}
}

.home-shell{
    height:100%;
    display:grid;
    grid-template-columns: .88fr 1.12fr;
    gap:34px;
    align-items:stretch;
    max-width:1500px;
    margin:0 auto;
}

.intro-panel,
.challenge-panel,
.info-card,
.certificate-panel,
.lead-panel,
.qr-panel{
    background:rgba(255,255,255,.94);
    border:1px solid var(--cut-line);
    border-radius:var(--radius);
    box-shadow:var(--shadow);
}

.intro-panel{
    padding:42px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    min-height:0;
}

.intro-logo{
    width:min(360px, 78%);
    margin-bottom:24px;
}

.intro-panel h1{
    margin:0;
    font-size:clamp(4rem, 8vw, 7.8rem);
    line-height:.92;
    color:var(--cut-blue);
    letter-spacing:-.06em;
}

.intro-panel h1::first-letter{
    color:var(--cut-green);
}

.intro-panel p{
    margin:28px 0 0;
    font-size:clamp(1.25rem, 1.7vw, 1.75rem);
    line-height:1.45;
    color:#28303d;
    font-weight:650;
}

.photo-strip{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:14px;
    margin-top:34px;
}

.photo-strip img{
    width:100%;
    height:150px;
    object-fit:cover;
    border-radius:20px;
    filter:saturate(.95) contrast(1.02);
}

.challenge-panel{
    padding:38px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:28px;
}

.section-heading{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:18px;
}

.section-heading span{
    width:80px;
    height:3px;
    background:linear-gradient(90deg, transparent, var(--cut-green), transparent);
    border-radius:999px;
}

.section-heading h2{
    margin:0;
    color:var(--cut-ink);
    font-size:clamp(2rem, 3.2vw, 3.4rem);
    font-weight:950;
    letter-spacing:-.04em;
    text-align:center;
}

.challenge-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:18px;
}

.challenge-card{
    min-height:310px;
    padding:28px 22px;
    border-radius:28px;
    background:#fff;
    border:2px solid rgba(38,82,156,.10);
    box-shadow:0 10px 28px rgba(17,24,39,.06);
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    gap:16px;
    transition:.25s ease;
}

.challenge-card:active{
    transform:scale(.97);
}

.challenge-card.selected{
    border-color:var(--cut-green);
    box-shadow:0 16px 34px rgba(14,138,75,.18);
    background:linear-gradient(180deg, #fff, #f4fbf7);
}

.card-icon{
    width:118px;
    height:118px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:var(--cut-light);
    box-shadow:inset 0 0 0 1px rgba(14,138,75,.08);
}

.card-icon img{
    width:72px;
    height:72px;
    object-fit:contain;
}

.challenge-card strong{
    font-size:clamp(1.35rem, 1.55vw, 1.8rem);
    line-height:1.08;
    color:var(--cut-green);
    font-weight:950;
}

.challenge-card:nth-child(2) strong{
    color:var(--cut-blue);
}

.challenge-card small{
    color:#3f4652;
    font-size:1rem;
    font-weight:650;
}

.touch-btn{
    min-height:var(--touch);
    padding:0 34px;
    border-radius:999px;
    font-size:clamp(1.15rem, 1.55vw, 1.6rem);
    font-weight:950;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:14px;
    text-transform:uppercase;
    letter-spacing:.02em;
    box-shadow:0 14px 28px rgba(14,138,75,.20);
}

.touch-btn:active{
    transform:scale(.97);
}

.touch-btn.primary{
    color:#fff;
    background:linear-gradient(135deg, #0fbf68, var(--cut-green));
}

.touch-btn.secondary{
    color:var(--cut-green);
    background:#fff;
    border:2px solid var(--cut-green);
    box-shadow:0 12px 22px rgba(17,24,39,.06);
}

.btn-icon,
.btn-icon img{
    width:34px;
    height:34px;
}

.start-btn{
    width:min(680px, 100%);
    align-self:center;
}

.screen-band{
    height:126px;
    width:min(1280px, 94%);
    margin:0 auto 22px;
    border-radius:36px;
    background:linear-gradient(135deg, var(--cut-green), #07693d);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:24px 38px;
    box-shadow:var(--shadow);
    overflow:hidden;
}

.band-title{
    display:flex;
    align-items:center;
    gap:18px;
    min-width:0;
}

.band-icon{
    flex:0 0 auto;
    width:72px;
    height:72px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:#fff;
    box-shadow:inset 0 0 0 1px rgba(14,138,75,.08);
}

.band-icon.large{
    width:96px;
    height:96px;
}

.band-icon img{
    width:46px;
    height:46px;
}

.band-icon.large img{
    width:60px;
    height:60px;
}

.band-title h2{
    margin:0;
    font-size:clamp(2rem, 3.6vw, 3.8rem);
    line-height:1;
    letter-spacing:-.04em;
}

.band-title p{
    margin:8px 0 0;
    font-size:clamp(1rem, 1.4vw, 1.35rem);
    font-weight:650;
    opacity:.95;
}

.band-logo{
    width:250px;
    max-height:86px;
    object-fit:contain;
    background:rgba(255,255,255,.92);
    border-radius:22px;
    padding:10px 14px;
}

.game-layout{
    width:min(1280px, 94%);
    height:calc(100vh - 302px);
    margin:0 auto;
    display:grid;
    gap:24px;
    min-height:0;
}

.puzzle-layout{
    grid-template-columns:330px 1fr;
}

.info-card{
    padding:28px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:18px;
}

.info-card h3{
    margin:0;
    color:var(--cut-blue);
    font-size:1.75rem;
    line-height:1.1;
    font-weight:950;
}

.info-card p{
    margin:0;
    color:#3c4350;
    font-size:1.2rem;
    line-height:1.5;
    font-weight:620;
}

.puzzle-workspace{
    min-height:0;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:14px;
}

.puzzle-board{
    width:min(870px, 100%);
    aspect-ratio:var(--puzzle-aspect, 2409 / 1000);
    display:grid;
    grid-template-columns:repeat(var(--puzzle-cols, 3), 1fr);
    grid-template-rows:repeat(var(--puzzle-rows, 3), 1fr);
    gap:8px;
    padding:10px;
    border-radius:26px;
    background:#fff;
    border:1px solid var(--cut-line);
    box-shadow:var(--shadow);
}

.puzzle-piece{
    border-radius:16px;
    background-repeat:no-repeat;
    border:3px solid rgba(38,82,156,.10);
    background-color:#f9fbfd;
    box-shadow:0 8px 14px rgba(17,24,39,.06);
    cursor:grab;
    touch-action:none;
    user-select:none;
    -webkit-user-select:none;
    transition:transform .12s ease, border-color .12s ease, box-shadow .12s ease, opacity .12s ease;
}

.puzzle-piece.drag-source{
    cursor:grabbing;
    opacity:.38;
}

.puzzle-drag-ghost{
    position:fixed !important;
    z-index:99999;
    pointer-events:none !important;
    cursor:grabbing;
    opacity:.92;
    box-sizing:border-box;
    box-shadow:0 18px 34px rgba(17,24,39,.22);
    transition:none !important;
    will-change:left, top;
}

.puzzle-piece.drag-over{
    border-color:var(--cut-green);
    box-shadow:0 0 0 6px rgba(14,138,75,.16), 0 12px 24px rgba(14,138,75,.12);
    transform:scale(.97);
}

.puzzle-piece.selected{
    border-color:var(--cut-green);
    box-shadow:0 0 0 6px rgba(14,138,75,.16), 0 12px 24px rgba(14,138,75,.12);
}

.helper-text{
    margin:0;
    font-size:1.05rem;
    color:var(--cut-muted);
    font-weight:650;
}

.memory-layout{
    grid-template-columns:1fr 300px;
}

.memory-board{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:14px;
    min-height:0;
}

.memory-card{
    position:relative;
    min-height:0;
    border-radius:22px;
    background:#fff;
    border:2px solid rgba(38,82,156,.10);
    box-shadow:0 10px 22px rgba(17,24,39,.06);
    overflow:hidden;
    transform-style:preserve-3d;
}

.memory-card:active{
    transform:scale(.97);
}

.memory-face{
    position:absolute;
    inset:0;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:10px;
    backface-visibility:hidden;
    transition:.3s ease;
}

.memory-back{
    background:linear-gradient(180deg,#fff,#f5f9ff);
}

.memory-back img{
    width:64px;
    height:64px;
    object-fit:contain;
}

.memory-back span{
    color:var(--cut-blue);
    font-size:1.2rem;
    font-weight:950;
}

.memory-front{
    transform:rotateY(180deg);
    background:#fff;
}

.memory-card.revealed .memory-back,
.memory-card.matched .memory-back{
    transform:rotateY(180deg);
}

.memory-card.revealed .memory-front,
.memory-card.matched .memory-front{
    transform:rotateY(360deg);
}

.memory-card.matched{
    border-color:var(--cut-green);
    background:var(--cut-light);
}

.memory-icon-wrap{
    width:88px;
    height:88px;
    border-radius:50%;
    background:var(--cut-light);
    display:grid;
    place-items:center;
}

.memory-icon-wrap img{
    width:52px;
    height:52px;
}

.memory-label{
    font-size:1.2rem;
    color:var(--cut-blue);
    font-weight:950;
}

.score-card{
    background:var(--cut-light);
    border-radius:18px;
    padding:20px;
    color:var(--cut-blue);
    font-size:1.1rem;
    font-weight:850;
}

.score-card strong{
    display:block;
    margin-top:4px;
    font-size:2rem;
    color:var(--cut-green);
}

.runner-band{
    background:linear-gradient(135deg, var(--cut-green), #07693d);
}

.runner-score-card{
    min-width:220px;
    background:#fff;
    color:var(--cut-blue);
    border-radius:22px;
    padding:16px 24px;
    text-align:center;
    font-weight:900;
    box-shadow:var(--soft-shadow);
}

.runner-score-card strong{
    display:block;
    font-size:2.3rem;
    color:var(--cut-green);
    line-height:1;
}

.runner-layout{
    width:min(1380px, 96%);
    margin:0 auto;
    height:calc(100vh - 302px);
    display:grid;
    grid-template-rows:1fr 170px;
    gap:18px;
    min-height:0;
}

.runner-area{
    position:relative;
    overflow:hidden;
    background:linear-gradient(180deg, #f8fbff 0%, #ffffff 100%);
    border:1px solid var(--cut-line);
    border-radius:28px;
    box-shadow:var(--shadow);
}

.runner-background{
    position:absolute;
    left:0;
    right:0;
    bottom:86px;
    height:190px;
    opacity:.16;
    background:
        linear-gradient(to top, rgba(14,138,75,.55), transparent 75%),
        repeating-linear-gradient(90deg, transparent 0 42px, rgba(38,82,156,.45) 42px 72px, transparent 72px 120px);
    clip-path:polygon(0 52%, 5% 52%, 5% 34%, 9% 34%, 9% 52%, 14% 52%, 14% 22%, 18% 22%, 18% 52%, 24% 52%, 24% 40%, 28% 40%, 28% 52%, 34% 52%, 34% 28%, 39% 28%, 39% 52%, 45% 52%, 45% 18%, 49% 18%, 49% 52%, 55% 52%, 55% 35%, 60% 35%, 60% 52%, 66% 52%, 66% 27%, 70% 27%, 70% 52%, 78% 52%, 78% 40%, 82% 40%, 82% 52%, 88% 52%, 88% 23%, 93% 23%, 93% 52%, 100% 52%, 100% 100%, 0 100%);
}

.runner-road{
    position:absolute;
    left:0;
    right:0;
    bottom:58px;
    height:8px;
    background:#1f2937;
}

.runner-road::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:-18px;
    height:4px;
    background:repeating-linear-gradient(90deg, rgba(31,41,55,.4) 0 34px, transparent 34px 68px);
}

.runner-car{
    position:absolute;
    left:8%;
    bottom:62px;
    width:180px;
    height:auto;
    z-index:4;
    will-change:transform;
}

.obstacle-layer{
    position:absolute;
    inset:0;
    pointer-events:none;
    z-index:3;
}

.obstacle{
    position:absolute;
    bottom:58px;
    left:0;
    width:85px;
    height:100px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:flex-end;
    gap:4px;
    will-change:transform;
}

.obstacle img{
    width:86px;
    height:86px;
    object-fit:contain;
}

.obstacle span{
    min-width:122px;
    text-align:center;
    color:#333b47;
    font-size:.84rem;
    line-height:1.1;
    font-weight:800;

    position:relative;
    top:-12px;
}

.runner-footer{
    display:grid;
    grid-template-columns:1fr 420px;
    gap:18px;
    min-height:0;
}

.runner-footer .info-card{
    padding:24px 28px;
}

.runner-controls{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
}

.runner-btn{
    width:100%;
    height:100%;
    border-radius:28px;
}

.certificate-panel{
    width:min(1100px, 92%);
    height:calc(100vh - 170px);
    margin:0 auto;
    padding:38px 58px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    gap:16px;
}

.certificate-top{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
}

.achievement-badge{
    display:flex;
    align-items:center;
    gap:12px;
    padding:14px 24px;
    border-radius:999px;
    background:var(--cut-light);
    color:var(--cut-blue);
    font-weight:950;
    box-shadow:var(--soft-shadow);
}

.achievement-badge img{
    width:36px;
    height:36px;
}

.certificate-panel h2{
    margin:0;
    color:#3c4350;
    font-size:clamp(2rem, 3vw, 3.2rem);
}

.scholarship-value{
    display:flex;
    align-items:baseline;
    justify-content:center;
    gap:16px;
    flex-wrap:wrap;
}

.scholarship-value span{
    font-size:clamp(5rem, 9vw, 8rem);
    color:var(--cut-green);
    font-weight:1000;
    letter-spacing:-.07em;
}

.scholarship-value b{
    font-size:clamp(2rem, 3.2vw, 3.6rem);
    color:var(--cut-blue);
    font-weight:1000;
}

.certificate-panel p{
    max-width:780px;
    margin:0;
    color:#343b46;
    font-size:1.35rem;
    line-height:1.45;
    font-weight:650;
}

.certificate-panel strong{
    color:var(--cut-green);
}

.certificate-media{
    width:min(740px, 90%);
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
    margin:8px 0 4px;
}

.certificate-media img{
    width:100%;
    height:150px;
    object-fit:cover;
    border-radius:22px;
}

.reward-layout{
    width:min(1280px, 94%);
    height:calc(100vh - 170px);
    margin:0 auto;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:30px;
}

.lead-panel,
.qr-panel{
    padding:42px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:18px;
}

.section-kicker{
    display:flex;
    align-items:center;
    gap:14px;
    color:var(--cut-green);
    font-weight:950;
    font-size:1.3rem;
}

.section-kicker img{
    width:42px;
    height:42px;
}

.lead-panel h2,
.qr-panel h2{
    margin:0;
    color:var(--cut-blue);
    font-size:clamp(2.2rem, 4vw, 4rem);
    letter-spacing:-.04em;
    line-height:1;
}

.field-row{
    height:82px;
    display:grid;
    grid-template-columns:76px 1fr;
    gap:14px;
    align-items:center;
}

.field-row span{
    height:76px;
    border-radius:18px;
    display:grid;
    place-items:center;
    background:var(--cut-light);
}

.field-row img{
    width:42px;
    height:42px;
}

.field-row input{
    width:100%;
    height:76px;
    border-radius:18px;
    border:2px solid rgba(38,82,156,.12);
    padding:0 22px;
    color:var(--cut-ink);
    font-size:1.2rem;
    font-weight:650;
    outline:none;
    background:#fff;
}

.field-row input:focus{
    border-color:var(--cut-green);
    box-shadow:0 0 0 5px rgba(14,138,75,.10);
}

.qr-panel{
    text-align:center;
    align-items:center;
}

.qr-logo{
    width:220px;
    max-height:100px;
    object-fit:contain;
}

.qr-image{
    width:min(390px, 72%);
    aspect-ratio:1;
    object-fit:contain;
    padding:18px;
    border-radius:28px;
    border:10px solid var(--cut-blue);
    background:#fff;
    box-shadow:var(--soft-shadow);
}

.qr-panel p{
    margin:0;
    color:#343b46;
    font-size:1.25rem;
    line-height:1.4;
    font-weight:700;
    max-width:420px;
}

.modal{
    position:absolute;
    inset:0;
    z-index:90;
    display:none;
    place-items:center;
    padding:40px;
    background:rgba(15,23,42,.42);
    backdrop-filter:blur(8px);
}

.modal.active{
    display:grid;
}

.modal-card{
    width:min(760px, 92vw);
    background:#fff;
    border-radius:34px;
    padding:42px;
    text-align:center;
    box-shadow:0 24px 80px rgba(0,0,0,.22);
    border:1px solid rgba(255,255,255,.5);
}

.modal-icon{
    width:112px;
    height:112px;
    border-radius:50%;
    display:grid;
    place-items:center;
    margin:0 auto 18px;
    background:var(--cut-light);
}

.modal-icon img{
    width:70px;
    height:70px;
}

.modal-card h2{
    margin:0;
    color:var(--cut-blue);
    font-size:3rem;
    letter-spacing:-.04em;
    line-height:1;
}

.modal-card p{
    margin:18px auto 26px;
    max-width:620px;
    color:#343b46;
    font-size:1.35rem;
    line-height:1.45;
    font-weight:650;
}

body[data-kiosk-screen="home"] .header-home{
    visibility:hidden;
}

@media (max-width:1100px){
    .screen{padding:110px 26px 28px;}
    .home-shell{grid-template-columns:1fr; gap:22px;}
    .intro-panel{padding:28px; align-items:center; text-align:center;}
    .photo-strip{display:none;}
    .challenge-card{min-height:235px;}
    .game-layout,.runner-layout,.reward-layout{width:96%;}
    .puzzle-layout,.memory-layout,.runner-footer,.reward-layout{grid-template-columns:1fr;}
    .info-card{padding:22px;}
    .runner-footer{grid-template-rows:auto 110px;}
    .certificate-media{display:none;}
}

@media (orientation:portrait){
    .home-shell{grid-template-columns:1fr;}
    .challenge-grid{grid-template-columns:1fr;}
    .challenge-card{min-height:190px; flex-direction:row; text-align:left; justify-content:flex-start;}
    .card-icon{width:96px;height:96px;}
    .card-icon img{width:58px;height:58px;}
    .screen-band{height:112px;}
    .band-logo{width:190px;}
    .game-layout{height:calc(100vh - 280px);}
    .memory-board{grid-template-columns:repeat(3,1fr);}
    .runner-layout{height:calc(100vh - 280px);}
}

/* =========================================================
   RECOMPENSA + AVISO DE PRIVACIDAD
   ========================================================= */
.privacy-consent{
    width:min(560px, 94%);
    display:flex;
    align-items:center;
    justify-content:center;
    gap:14px;
    padding:14px 18px;
    border:2px solid rgba(38,82,156,.14);
    border-radius:18px;
    background:#f8fbff;
    color:#273244;
    font-size:1rem;
    line-height:1.25;
    font-weight:850;
    cursor:pointer;
}

.privacy-consent input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}

.privacy-check{
    flex:0 0 auto;
    width:28px;
    height:28px;
    border:3px solid var(--cut-blue);
    border-radius:7px;
    background:#fff;
    display:grid;
    place-items:center;
    transition:.2s ease;
}

.privacy-consent input:checked + .privacy-check{
    border-color:var(--cut-green);
    background:var(--cut-green);
}

.privacy-consent input:checked + .privacy-check::after{
    content:"";
    width:7px;
    height:13px;
    border-right:3px solid #fff;
    border-bottom:3px solid #fff;
    transform:rotate(45deg) translate(-1px,-1px);
}

.privacy-consent:focus-within{
    box-shadow:0 0 0 5px rgba(14,138,75,.13);
    border-color:var(--cut-green);
}

.reward-qr-lock{
    position:relative;
    width:min(390px, 72%);
    aspect-ratio:1;
    border-radius:28px;
    overflow:hidden;
    flex:0 0 auto;
}

.reward-qr-lock .qr-image{
    width:100%;
    max-width:none;
    height:100%;
    transition:filter .25s ease, opacity .25s ease, transform .25s ease;
}

.reward-qr-lock.is-locked .qr-image{
    filter:blur(12px) grayscale(1);
    opacity:.16;
    transform:scale(.96);
    pointer-events:none;
}

.qr-lock-overlay{
    position:absolute;
    inset:0;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:12px;
    padding:26px;
    background:linear-gradient(135deg, rgba(255,255,255,.96), rgba(237,244,239,.96));
    color:var(--cut-blue);
    text-align:center;
    font-size:1.05rem;
    line-height:1.3;
    font-weight:950;
    border:3px dashed rgba(38,82,156,.32);
    border-radius:inherit;
    transition:opacity .25s ease, visibility .25s ease;
}

.qr-lock-overlay img{
    width:48px;
    height:48px;
}

.reward-qr-lock.is-unlocked .qr-lock-overlay{
    opacity:0;
    visibility:hidden;
    pointer-events:none;
}

.reward-help{
    margin-top:-6px !important;
}

.privacy-qr-block{
    width:min(340px, 86%);
    display:grid;
    grid-template-columns:86px 1fr;
    align-items:center;
    gap:14px;
    padding:12px 14px;
    border-radius:18px;
    background:var(--cut-light);
    border:1px solid rgba(14,138,75,.13);
}

.privacy-qr-image{
    width:86px;
    height:86px;
    object-fit:contain;
    border-radius:10px;
    background:#fff;
}

.privacy-qr-block small{
    color:#384152;
    font-size:.78rem;
    line-height:1.35;
    font-weight:750;
    text-align:left;
}

/* =========================================================
   DISTRIBUCIÓN PARA MONITORES 2K / ALTA RESOLUCIÓN
   Se incrementan espacios reales, no se escala toda la app.
   ========================================================= */
@media screen and (min-width:1600px) and (min-height:900px){
    :root{
        --radius:34px;
        --touch:104px;
    }

    .screen{
        padding:142px 72px 58px;
    }

    .app-header{
        top:30px;
        left:60px;
        right:60px;
        height:88px;
    }

    .home-shell{
        max-width:2050px;
        grid-template-columns:.9fr 1.1fr;
        gap:72px;
    }

    .intro-panel{
        padding:64px 70px;
    }

    .intro-logo{
        margin-bottom:34px;
    }

    .intro-panel p{
        margin-top:38px;
        max-width:720px;
    }

    .challenge-panel{
        padding:58px 62px;
        gap:42px;
    }

    .section-heading{
        gap:28px;
    }

    .challenge-grid{
        gap:30px;
    }

    .challenge-card{
        min-height:360px;
        padding:38px 28px;
        gap:22px;
    }

    .screen-band{
        width:min(1900px, 92%);
        height:150px;
        margin-bottom:38px;
        padding:28px 48px;
    }

    .game-layout{
        width:min(1900px, 92%);
        height:calc(100vh - 365px);
        gap:44px;
    }

    .puzzle-layout{
        grid-template-columns:420px 1fr;
    }

    .memory-layout{
        grid-template-columns:1fr 390px;
    }

    .info-card{
        padding:42px;
        gap:26px;
    }

    .memory-board{
        gap:24px;
    }

    .runner-layout{
        width:min(1980px, 94%);
        height:calc(100vh - 365px);
        grid-template-rows:1fr 210px;
        gap:30px;
    }

    .runner-footer{
        grid-template-columns:1fr 520px;
        gap:30px;
    }

    .certificate-panel{
        width:min(1450px, 88%);
        height:calc(100vh - 220px);
        padding:60px 90px;
        gap:28px;
    }

    .reward-layout{
        width:min(1500px, 88%);
        height:calc(100vh - 220px);
        display:grid;
        grid-template-columns:1fr;
        place-items:center;
    }

    .qr-panel{
        width:min(780px, 100%);
        padding:50px 70px;
        gap:22px;
    }

    .qr-panel h2{
        max-width:650px;
        font-size:3.25rem;
    }

    .qr-logo{
        width:210px;
    }

    .reward-qr-lock{
        width:330px;
    }

    .privacy-consent{
        width:560px;
        font-size:1.08rem;
    }

    .privacy-qr-block{
        width:410px;
        grid-template-columns:100px 1fr;
        padding:14px 18px;
    }

    .privacy-qr-image{
        width:100px;
        height:100px;
    }

    .privacy-qr-block small{
        font-size:.9rem;
    }
}
