:root{--ink:#18151f;--muted:#686274;--pink:#ff4d8d;--orange:#ff9f1c;--blue:#36c2ff;--cream:#fff8ef;--card:#ffffff;--line:#efe6df}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;background:var(--cream);color:var(--ink)}a{text-decoration:none;color:inherit}.wrap{width:min(1180px,92%);margin:auto}.nav{position:sticky;top:0;background:rgba(255,248,239,.92);backdrop-filter:blur(14px);z-index:5;border-bottom:1px solid var(--line)}.navin{height:74px;display:flex;align-items:center;justify-content:space-between}.logo{font-weight:1000;font-size:28px;letter-spacing:-1.8px}.logo span{color:var(--pink)}.navlinks{display:flex;gap:22px;align-items:center;font-weight:700}.btn{display:inline-flex;align-items:center;justify-content:center;background:var(--ink);color:white;padding:14px 20px;border-radius:999px;font-weight:900;border:0;cursor:pointer}.btn.alt{background:linear-gradient(135deg,var(--pink),var(--orange));}.hero{padding:80px 0 40px}.grid{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}.tag{display:inline-flex;background:white;border:1px solid var(--line);border-radius:999px;padding:10px 16px;font-weight:800;color:var(--pink)}h1{font-size:clamp(44px,7vw,84px);line-height:.95;letter-spacing:-4px;margin:22px 0}p{font-size:17px;line-height:1.65;color:var(--muted)}.heroimg{min-height:520px;border-radius:38px;background:url('https://images.unsplash.com/photo-1530103862676-de8c9debad1d?auto=format&fit=crop&w=1200&q=80') center/cover;position:relative;box-shadow:0 30px 80px rgba(24,21,31,.16);overflow:hidden}.float{position:absolute;background:white;padding:18px;border-radius:24px;box-shadow:0 20px 50px rgba(0,0,0,.14);font-weight:900}.f1{left:24px;bottom:28px}.f2{right:24px;top:28px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:30px 0}.stat,.card{background:var(--card);border:1px solid var(--line);border-radius:28px;padding:24px}.stat b{font-size:34px}.section{padding:60px 0}.head{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:24px}.head h2{font-size:42px;letter-spacing:-2px;margin:0}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card img{width:100%;height:190px;object-fit:cover;border-radius:22px;margin-bottom:16px}.price{font-size:28px;font-weight:1000}.form{background:white;border-radius:34px;padding:28px;border:1px solid var(--line);box-shadow:0 25px 70px rgba(0,0,0,.08)}input,select{width:100%;padding:15px;border:1px solid var(--line);border-radius:16px;margin:8px 0 14px;font-size:15px}.checks{display:grid;gap:10px}.check{padding:12px;border:1px solid var(--line);border-radius:16px;display:flex;gap:10px;align-items:flex-start}.check input{width:auto}.footer{padding:40px 0;background:#18151f;color:white;margin-top:60px}.footer p{color:#cfc8d9}.adminbox{width:min(440px,92%);margin:80px auto}.table{width:100%;border-collapse:collapse;background:white;border-radius:20px;overflow:hidden}.table th,.table td{padding:14px;border-bottom:1px solid var(--line);text-align:left}.badge{padding:7px 10px;border-radius:999px;font-size:12px;font-weight:900;background:#eee}.paid{background:#dcffe6;color:#11742b}.pending{background:#fff3cc;color:#795400}.scanbox{text-align:center;padding:30px;background:white;border-radius:28px}@media(max-width:820px){.grid,.cards{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}.navlinks{display:none}h1{letter-spacing:-2px}.heroimg{min-height:380px}}

.pagehero{padding:86px 0 52px;background:linear-gradient(135deg,#fff8ef,#ffe8f1 55%,#e8f8ff)}.pagehero h1{margin:18px 0 10px}.stagehero{background:linear-gradient(135deg,#18151f,#6b2cff);color:white}.stagehero p{color:#eee}.activityhero{background:linear-gradient(135deg,#fff8ef,#fff0cf,#e7fbff)}.mapgrid{display:grid;grid-template-columns:1.25fr .75fr;gap:24px;align-items:start}.mapboard{min-height:620px;background:white;border:1px solid var(--line);border-radius:34px;padding:18px;position:relative;box-shadow:0 25px 70px rgba(0,0,0,.08);overflow:hidden}.map-zone{position:absolute;border:2px solid #18151f;border-radius:18px;background:#fff8ef;padding:14px;text-align:center;font-weight:1000;box-shadow:0 10px 28px rgba(0,0,0,.08)}.map-zone small{font-weight:700;color:var(--muted)}.entry{left:6%;bottom:5%;width:22%}.help{left:31%;bottom:5%;width:19%}.food{right:5%;bottom:5%;width:38%;height:18%}.shop{right:5%;top:8%;width:25%;height:26%}.stage{left:34%;top:8%;width:28%;height:26%;background:#18151f;color:white}.stage small{color:#ddd}.kids{left:6%;top:8%;width:22%;height:20%}.exp{left:6%;top:36%;width:27%;height:23%}.worka{left:39%;top:42%;width:22%;height:18%}.workb{right:8%;top:42%;width:24%;height:18%}.firstaid{left:38%;bottom:28%;width:18%}.exit{right:6%;bottom:29%;width:18%}.timeline{display:grid;gap:16px}.timeline div{background:white;border:1px solid var(--line);border-radius:24px;padding:22px;display:grid;grid-template-columns:120px 1fr;gap:18px;align-items:start}.timeline b{color:var(--pink)}.timeline h3{margin:0}.timeline p{margin:6px 0 0}@media(max-width:820px){.mapgrid{grid-template-columns:1fr}.mapboard{min-height:760px}.map-zone{font-size:12px;padding:10px}.timeline div{grid-template-columns:1fr}}

.jh-shell{background:#f7f2ec;min-height:100vh}.top-notice{background:#e91e7a;color:white;font-weight:800;border-radius:8px;padding:12px 18px;margin:18px auto}.pillnav a{background:white;border-radius:14px;padding:12px 22px;box-shadow:0 8px 24px rgba(0,0,0,.04)}.jh-title{text-align:center;font-size:24px;margin:34px 0 18px}.map-frame{background:white;border:2px solid #222;margin:30px auto;padding:20px;position:relative;min-height:780px;overflow:hidden}.map-frame:before{content:"FAM JAM VENUE MAP";position:absolute;right:40px;bottom:35px;font-size:44px;font-weight:1000;color:#ef4b79;letter-spacing:2px}.path{position:absolute;border:10px solid #9bb7e3;border-left-color:transparent;border-bottom-color:transparent;border-radius:40px;inset:70px 40px 130px 40px;pointer-events:none}.zone{position:absolute;border:2px solid #2b3140;border-radius:6px;background:#fff;padding:10px;text-align:center;font-weight:900;box-shadow:0 6px 16px rgba(0,0,0,.08)}.zone.big{font-size:30px}.z-main{left:28%;top:28%;width:24%;height:38%;background:#ffc928}.z-blue{left:4%;top:9%;width:23%;height:18%;background:#c7f2ff}.z-game{left:30%;top:10%;width:22%;height:16%;background:#ffd7f0}.z-green{left:53%;top:20%;width:10%;height:28%;background:#9ee36e;writing-mode:vertical-rl;font-size:25px}.z-stalls{right:18%;top:10%;width:24%;height:43%;background:#f5f5f5}.z-food{right:2%;top:12%;width:15%;height:38%;background:#ffe387}.z-red{right:4%;top:52%;width:12%;height:21%;background:#ef233c;color:white}.z-entry{right:2%;bottom:13%;width:19%;background:#fff}.z-work1{left:5%;top:38%;width:19%;height:15%;background:#e9ffd7}.z-work2{left:55%;top:54%;width:17%;height:13%;background:#e8f5ff}.z-kids{left:6%;bottom:19%;width:19%;height:12%;background:#ffe8f1}.z-reg{left:31%;bottom:15%;width:18%;height:10%;background:#fff}.z-rest{right:2%;top:2%;width:10%;background:#2785c7;color:white}.stage-row{margin:40px auto}.stage-row h2{text-align:center}.stage-strip{display:flex;gap:6px;overflow-x:auto;padding-bottom:12px}.stage-card{min-width:260px;background:white;border-radius:8px;overflow:hidden;border:1px solid #ddd}.stage-card img{width:100%;height:130px;object-fit:cover}.stage-card div{padding:12px}.stage-card small{font-weight:900;color:#e91e7a}.festival{background:#ffd2e8}.red{background:#ffd6d6}.blue{background:#d9eaff}.green{background:#c8f7d7}.game{background:#ead7ff}.grand-list{max-width:780px;margin:50px auto;background:#fff;border-radius:16px;padding:20px 28px}.grand-item{display:grid;grid-template-columns:100px 1fr;gap:20px;border-bottom:1px solid #eee;padding:18px 0}.activity-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin:30px auto}.activity-card{background:white;border:1px solid #ddd;border-radius:8px;overflow:hidden;box-shadow:0 12px 30px rgba(0,0,0,.06)}.activity-card img{height:190px;width:100%;object-fit:cover}.activity-card .body{padding:15px}.activity-card small{font-weight:1000;color:#e91e7a}.actions{display:grid;grid-template-columns:1fr 1fr}.actions button,.actions a{border:0;padding:13px;text-align:center;font-weight:900;cursor:pointer}.infoBtn{background:#e91e7a;color:white}.regBtn{background:#16a34a;color:white}.modal{display:none;position:fixed;z-index:50;inset:0;background:rgba(24,21,31,.62);padding:40px 0}.modal.open{display:block}.modal-card{background:white;width:min(760px,92%);margin:auto;max-height:88vh;overflow:auto;border-radius:10px}.modal-card img{width:100%;height:340px;object-fit:cover}.modal-body{padding:28px 36px}.modal-foot{position:sticky;bottom:0;background:#f8f8f8;display:flex;justify-content:flex-end;gap:14px;padding:18px 36px}.ghost{background:white;border:1px solid #ccc;border-radius:8px;padding:12px 22px;font-weight:800}.profile-card{max-width:760px;margin:30px auto}.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.selected-box{background:#fff3fa;border:1px solid #ffd4e8;border-radius:18px;padding:16px;margin:16px 0}.pass-list{display:grid;gap:12px}.pass-mini{background:#fff;border:1px solid #eee;border-radius:16px;padding:16px;display:flex;justify-content:space-between;gap:10px}.muted{color:var(--muted)}@media(max-width:900px){.activity-grid{grid-template-columns:1fr}.two{grid-template-columns:1fr}.map-frame{min-height:920px}.map-frame:before{font-size:28px}.zone{font-size:11px}.zone.big{font-size:18px}.stage-card{min-width:220px}.grand-item{grid-template-columns:1fr}.modal-card img{height:220px}}


.stats-section{
    padding:50px 0;
}

.stats-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:24px;
    width:100%;
}

.stat-card{
    background:#f8f8f8;
    border-radius:28px;
    padding:42px 32px;
    min-height:220px;
    border:1px solid #ececec;
    transition:0.3s ease;
    display:flex;
    flex-direction:column;
    justify-content:center;
}

.stat-card:hover{
    transform:translateY(-4px);
    box-shadow:0 12px 35px rgba(0,0,0,0.08);
}

.stat-card h2{
    font-size:64px;
    font-weight:800;
    color:#111;
    margin-bottom:18px;
    line-height:1;
}

.stat-card p{
    font-size:24px;
    color:#555;
    line-height:1.4;
}

@media(max-width:1100px){
    .stats-grid{
        grid-template-columns:repeat(2,1fr);
    }
}

@media(max-width:700px){
    .stats-grid{
        grid-template-columns:1fr;
    }
}