:root{
    --green:#1ca438; --green-br:#39d957; --green-d:#0f3a1c;
    --silver:#d2d6cd; --bg:#070a08; --ink:#eef3e9; --mut:rgba(238,243,233,.62);
    --serif:'Cormorant Garamond', Georgia, serif;
    --sans:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  }
  *{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;}
  html,body{height:100%;overflow:hidden;background:#000;font-family:var(--sans);color:var(--ink);user-select:none;touch-action:none;overscroll-behavior:none;}
  body{position:fixed;inset:0;width:100%;}
  #app{position:fixed;inset:0;}
  canvas{display:block;}

  #cine{position:absolute;inset:0;pointer-events:none;z-index:8;}
  .vig{position:absolute;inset:0;background:radial-gradient(ellipse 140% 110% at 50% 40%,transparent 62%,rgba(0,0,0,.14) 86%,rgba(8,16,10,.34) 100%);}
  .grain{position:absolute;inset:-50%;opacity:.022;mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    animation:grain 1.1s steps(3) infinite;}
  @keyframes grain{0%{transform:translate(0,0)}33%{transform:translate(-5%,3%)}66%{transform:translate(4%,-4%)}100%{transform:translate(0,0)}}
  .bar{position:absolute;left:0;right:0;height:0;background:#000;z-index:9;transition:height .8s cubic-bezier(.7,0,.2,1);}
  .bar.top{top:0;}.bar.bot{bottom:0;}
  .cinematic .bar{height:11vh;}

  #hud{position:absolute;inset:0;pointer-events:none;z-index:10;opacity:0;transition:opacity .6s;}
  #hud.on{opacity:1;}
  .topbar{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:flex-start;gap:10px;
    padding:max(14px,env(safe-area-inset-top)) max(15px,env(safe-area-inset-right)) 0 max(14px,env(safe-area-inset-left));}
  .logo-lock{display:flex;align-items:center;gap:9px;background:rgba(7,12,9,.6);backdrop-filter:blur(9px);border:1px solid rgba(28,164,56,.34);border-radius:14px;padding:6px 12px 6px 7px;}
  .avatar{width:46px;height:46px;border-radius:50%;border:2px solid var(--green);background:#0c150e;object-fit:cover;object-position:50% 22%;}
  .logo-lock .wm{height:30px;width:auto;filter:drop-shadow(0 2px 8px rgba(0,0,0,.6));}
  .stats{display:flex;gap:8px;}
  .stat{background:rgba(7,12,9,.6);backdrop-filter:blur(9px);border:1px solid rgba(28,164,56,.34);border-radius:12px;padding:8px 13px;text-align:center;min-width:60px;}
  .stat .lbl{font-size:9px;letter-spacing:2px;color:#8fb89a;text-transform:uppercase;}
  .stat .val{font-size:19px;font-weight:800;margin-top:2px;}
  .shots{display:flex;gap:5px;justify-content:center;margin-top:5px;}
  .ball-ic{width:11px;height:11px;border-radius:50%;background:radial-gradient(circle at 34% 30%,#fff,#c7cdbf);}
  .ball-ic.used{background:rgba(255,255,255,.13);box-shadow:inset 0 0 0 1px rgba(255,255,255,.22);}
  .wind{display:flex;align-items:center;gap:7px;}
  .wind .arrow svg{transition:transform .4s ease;}

  /* power readout */
  #power{position:absolute;left:50%;bottom:96px;transform:translateX(-50%);width:min(320px,70vw);opacity:0;transition:opacity .15s;}
  #power.on{opacity:1;}
  .pbar{height:12px;border-radius:8px;background:rgba(5,9,6,.6);border:1px solid rgba(28,164,56,.4);overflow:hidden;}
  .pfill{height:100%;width:0%;background:linear-gradient(90deg,#1ca438,#39d957,#bfff9b);}
  .plabel{text-align:center;font-size:11px;font-weight:700;letter-spacing:2px;margin-top:6px;color:var(--green-br);text-transform:uppercase;}

  #prompt{position:absolute;left:50%;bottom:40px;transform:translateX(-50%);text-align:center;font-size:13px;letter-spacing:1px;color:var(--ink);background:rgba(7,12,9,.5);backdrop-filter:blur(8px);border:1px solid rgba(28,164,56,.3);padding:9px 18px;border-radius:30px;transition:opacity .3s;}
  #prompt b{color:var(--green-br);}
  #exitBtn{position:absolute;left:calc(max(14px,env(safe-area-inset-left)) + 52px);bottom:38px;width:44px;height:44px;border-radius:50%;background:rgba(7,12,9,.55);backdrop-filter:blur(8px);border:1px solid rgba(28,164,56,.34);color:var(--ink);font-size:17px;cursor:pointer;pointer-events:auto;display:none;align-items:center;justify-content:center;}
  #hud.on #exitBtn{display:flex;}
  #muteBtn{position:absolute;left:max(14px,env(safe-area-inset-left));bottom:38px;width:44px;height:44px;border-radius:50%;background:rgba(7,12,9,.55);backdrop-filter:blur(8px);border:1px solid rgba(28,164,56,.34);color:var(--ink);font-size:18px;cursor:pointer;pointer-events:auto;display:flex;align-items:center;justify-content:center;}
  #manoloCorner{position:absolute;right:max(14px,env(safe-area-inset-right));bottom:28px;width:86px;height:86px;pointer-events:none;z-index:6;}
  #manoloFace{width:90px;height:90px;border-radius:50%;object-fit:contain;object-position:50% 92%;background:radial-gradient(circle at 50% 38%,#2f6f3c,#143320);border:2px solid rgba(28,164,56,.8);box-shadow:0 6px 18px rgba(0,0,0,.45);transition:transform .2s cubic-bezier(.3,1.7,.5,1);}
  #manoloCorner.pop #manoloFace{transform:scale(1.14) rotate(-3deg);}
  #manoloSpeech{position:absolute;right:94px;bottom:46px;white-space:nowrap;background:#fff;color:#0f3a1c;font-family:Fraunces,Georgia,serif;font-style:italic;font-weight:800;font-size:18px;padding:8px 15px;border-radius:14px 14px 4px 14px;box-shadow:0 6px 18px rgba(0,0,0,.35);opacity:0;transform:translateY(6px) scale(.82);transform-origin:bottom right;transition:opacity .18s ease,transform .18s cubic-bezier(.3,1.7,.5,1);}
  #manoloSpeech.show{opacity:1;transform:translateY(0) scale(1);}
  #manoloSpeech:after{content:"";position:absolute;right:16px;bottom:-7px;border:7px solid transparent;border-top-color:#fff;border-bottom:0;}
  .email-row{display:flex;flex-direction:column;gap:10px;max-width:360px;margin:2px auto 16px;}
  .email-row input[type=email]{width:100%;background:rgba(255,255,255,.06);border:1px solid rgba(28,164,56,.4);border-radius:12px;padding:14px 16px;color:var(--ink);font-family:var(--sans);font-size:15px;text-align:center;outline:none;}
  .email-row input[type=email]::placeholder{color:rgba(238,243,233,.4);}
  .email-row input[type=email]:focus{border-color:var(--green-br);}
  .consent{display:flex;align-items:flex-start;gap:8px;font-size:11px;color:var(--mut);text-align:left;line-height:1.4;}
  .consent input{margin-top:2px;accent-color:var(--green);}
  #emailErr{color:#ff8c8c;font-size:12px;min-height:14px;}
  #signupStatus{color:#9ee7ab;font-size:11px;min-height:14px;letter-spacing:.03em;}

  .screen{position:absolute;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:22px;}
  .hide{display:none !important;}
  .scrim{position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(7,12,9,.5),rgba(2,4,3,.93));}
  .card{position:relative;width:min(540px,94vw);background:linear-gradient(168deg,#10180f,#070b08);border:1px solid rgba(28,164,56,.34);border-radius:22px;text-align:center;box-shadow:0 40px 90px rgba(0,0,0,.75),inset 0 1px 0 rgba(255,255,255,.05);overflow:hidden;}
  .card:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.12;background:radial-gradient(ellipse 18% 10% at 82% 13%,rgba(126,255,151,.85),transparent 70%),radial-gradient(ellipse 30% 65% at 78% 42%,transparent 45%,rgba(105,190,112,.68) 47%,rgba(105,190,112,.68) 53%,transparent 55%);transform:rotate(-13deg) scale(1.15);transform-origin:80% 20%;}
  .meander{height:15px;background-repeat:repeat-x;background-size:auto 15px;opacity:.9;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='16' viewBox='0 0 32 16'%3E%3Cpath d='M2 14V4h10v6H6v-2h4V6H4v8h12V2H0' fill='none' stroke='%2339d957' stroke-width='1.4'/%3E%3C/svg%3E");}
  .card-in{padding:24px 30px 30px;}
  .hero-face{width:128px;height:auto;margin:-2px auto 2px;filter:drop-shadow(0 10px 24px rgba(0,0,0,.6));}
  .wm-img{width:min(280px,74%);height:auto;display:block;margin:4px auto 6px;}
  .eyebrow{font-family:var(--serif);font-size:12px;letter-spacing:6px;color:#8fb89a;text-transform:uppercase;margin-bottom:4px;}
  .card h1{font-family:var(--serif);font-weight:700;font-size:clamp(36px,7vw,56px);line-height:.95;margin:6px 0;}
  .card h1 .ac{color:var(--green-br);font-style:italic;}
  .tag{font-size:14px;color:var(--mut);line-height:1.55;margin:8px auto 20px;max-width:390px;}
  .rules{display:flex;gap:10px;justify-content:center;margin:0 auto 22px;max-width:420px;flex-wrap:wrap;}
  .chip{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;background:rgba(28,164,56,.08);border:1px solid rgba(28,164,56,.3);border-radius:30px;padding:8px 14px;}
  .chip .n{width:20px;height:20px;border-radius:50%;background:var(--green-d);border:1px solid var(--green);color:var(--green-br);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:11px;}
  .btn{cursor:pointer;border:none;font-family:var(--sans);font-weight:800;letter-spacing:1.6px;text-transform:uppercase;border-radius:13px;padding:16px 36px;font-size:13px;transition:transform .12s,box-shadow .2s,filter .2s;}
  .btn:active{transform:scale(.95);}
  .btn-green{background:linear-gradient(180deg,var(--green-br),var(--green));color:#04220c;box-shadow:0 12px 32px rgba(28,164,56,.45);}
  .btn-green:hover{box-shadow:0 16px 44px rgba(28,164,56,.65);filter:brightness(1.06);}
  .btn-ghost{background:transparent;color:var(--ink);border:1px solid rgba(238,243,233,.32);margin-top:12px;}
  .btn-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}
  .prize{display:flex;gap:18px;align-items:center;text-align:left;margin:4px auto 18px;padding:16px 18px;border:1px solid rgba(28,164,56,.28);border-radius:16px;background:rgba(28,164,56,.05);max-width:430px;}
  .prize img{height:118px;width:auto;filter:drop-shadow(0 10px 22px rgba(0,0,0,.7));}
  .prize .pname{font-family:var(--serif);font-size:21px;font-weight:700;color:var(--green-br);}
  .prize .pdesc{font-size:12px;color:var(--mut);margin-top:3px;line-height:1.5;}
  .code{display:inline-flex;align-items:center;gap:10px;margin-top:11px;background:rgba(5,8,6,.5);border:1px solid var(--green);border-radius:10px;padding:8px 12px;}
  .code .c{font-family:monospace;font-size:18px;font-weight:700;letter-spacing:2.5px;color:var(--green-br);}
  .code .copy{font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--ink);cursor:pointer;border:1px solid rgba(238,243,233,.32);border-radius:6px;padding:4px 7px;}
  .result-line{font-size:15px;color:rgba(238,243,233,.88);margin:-2px 0 16px;}
  .result-line b{color:var(--green-br);}

  #confetti{position:absolute;inset:0;z-index:25;pointer-events:none;overflow:hidden;}
  .conf{position:absolute;top:-20px;width:9px;height:14px;opacity:.95;will-change:transform;}
  .flash{position:absolute;left:50%;top:30%;transform:translate(-50%,-50%) scale(.6);z-index:20;font-family:var(--serif);font-style:italic;font-weight:700;font-size:clamp(44px,12vw,112px);color:var(--green-br);text-shadow:0 4px 40px rgba(0,0,0,.85);pointer-events:none;opacity:0;white-space:nowrap;}
  .flash.show{animation:flashIn 1.7s ease forwards;}
  @keyframes flashIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}16%{opacity:1;transform:translate(-50%,-50%) scale(1.06)}80%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(1.14)}}

  .card-in{max-height:88vh;overflow-y:auto;-webkit-overflow-scrolling:touch;}
  @media (max-height:780px){.hero-face{width:92px !important}.wm-img{width:170px !important}.card h1{font-size:26px}}
  .course-card{display:flex;align-items:center;gap:11px;width:100%;margin:0 0 7px;padding:11px 13px;border-radius:13px;border:1px solid rgba(127,174,138,.35);background:rgba(10,22,13,.55);color:#dfeee3;cursor:pointer;pointer-events:auto;text-align:left;}
  .course-card b{display:block;font:800 15px/1.2 Georgia,serif;color:#f3f7ee}
  .course-card small{display:block;font:600 11px/1.3 system-ui,sans-serif;color:#9dbfa6;margin-top:2px}
  .course-card.sel{border-color:var(--green);background:rgba(28,120,52,.28);box-shadow:0 0 0 1px var(--green) inset;}
  .cc-dot{width:16px;height:16px;border-radius:50%;flex:0 0 16px;border:2px solid rgba(255,255,255,.5)}
  .theme-chip{padding:8px 11px;border-radius:999px;border:1px solid rgba(127,174,138,.4);background:rgba(10,22,13,.55);color:#cfe4d4;font:600 12px/1 system-ui,sans-serif;cursor:pointer;pointer-events:auto;}
  .theme-chip.sel{background:var(--green);border-color:var(--green);color:#04150a;font-weight:800;}
  #loader{position:absolute;inset:0;z-index:50;background:#070a08;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;transition:opacity .7s;}
  img[data-img]:not([src]),img[data-img][src=""]{visibility:hidden;}
  #loader .lface{width:120px;animation:bob 1.6s ease-in-out infinite;}
  @keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
  #loader .lwm{width:180px;margin-top:4px;}
  .spinner{margin-top:8px;width:28px;height:28px;border:3px solid rgba(28,164,56,.22);border-top-color:var(--green);border-radius:50%;animation:spin 1s linear infinite;}
  @keyframes spin{to{transform:rotate(360deg)}}

  @media (max-width:560px){
    .logo-lock .wm{height:24px;}.avatar{width:40px;height:40px;}
    .stat{min-width:50px;padding:6px 9px;}.card-in{padding:20px 18px 26px;}
    .prize{flex-direction:column;text-align:center;}
  }
