/* Compact, touch-first home. Session/payment controls keep their original IDs. */
.homeShell{max-width:1000px;padding:20px 24px 110px}
.homeShell .brand{font-size:28px;line-height:1.15}
.homeGreeting{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;color:#89707b;margin:8px 0 12px}
.homeGreeting>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.homeLogout{border:0;background:none;color:#967e87;font-size:12px;min-height:44px;padding:8px}
.homeGrid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}
.homeShell .homeWelcome{display:flex;align-items:center;position:relative;isolation:isolate;margin:0;padding:26px 22px;border-radius:28px;border:1px solid #f4d7e2;background:linear-gradient(125deg,#fff5e8,#ffedf4 65%,#f4edff);box-shadow:0 12px 35px #b3406110;overflow:visible;min-width:0;min-height:235px}
.homeShell .homeWelcome:before,.homeShell .homeWelcome:after{display:none}
.homeWelcomeText{position:relative;z-index:1;flex:1;min-width:0}
.homeEyebrow{font-size:9px;letter-spacing:.12em;color:#ac6683;font-weight:800}
.homeShell .homeWelcome h1{font-size:30px;letter-spacing:-.045em;line-height:1.12;margin:8px 0;color:#82324f}
.homeShell .homeWelcome p{font-size:12px;line-height:1.55;margin:0 0 16px;color:#996e80;max-width:180px}
.homeShell .homeWelcome small{display:block;margin-top:9px;font-size:10px;color:#957784;line-height:1.4}
.homeShell .homeWelcome .btn{width:auto;min-width:142px;padding:12px 18px;font-size:14px;min-height:46px;border-radius:15px}
.homeWelcome .btn span{margin-left:10px}
.homeShell .homeWelcome .mascotStage{width:42%;height:auto;aspect-ratio:1;min-width:0;flex:none;padding:0;margin:0 -9px 0 -14px;position:relative}
.homeShell .homeWelcome .liveMascot,.homeShell .homeWelcome .mascot{width:100%;height:auto;aspect-ratio:1}
.homeWelcome .mascotHello{display:none}
.homeSetup{min-width:0}
.homeModes{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.homeModes button{display:flex;align-items:center;justify-content:center;gap:12px;background:#fffafd4;color:#8e4665;border:1px solid #eedce4;border-radius:18px;padding:18px 10px;min-height:76px;cursor:pointer;font-weight:750;font-size:15px;box-shadow:0 4px 12px #81345804}
.homeShell svg:not(.mascotArt){fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.homeModes svg{width:30px;height:30px;flex:none}
.homeModes button[aria-pressed=true]{border-color:#df94b0;background:#fff1f7;color:#c22b63;box-shadow:inset 0 0 0 1px #f3bdd1}
.homeUpload{display:flex;align-items:center;position:relative;gap:12px;background:#fff;border:1px dashed #e6c6d5;border-radius:17px;padding:14px;margin:0 0 18px;cursor:pointer;min-height:72px;overflow:hidden}
.homeUpload>span:nth-child(2){flex:1;min-width:0}
.homeUpload b{display:block;font-size:13px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;color:#815067}
.homeUpload small{display:block;font-size:10px;font-weight:450;color:#a38895;margin-top:5px}
.uploadMark{display:grid;place-items:center;width:32px;height:34px;background:#fff0f6;border-radius:10px;font-size:24px;color:#c97896}
.homeUpload input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;margin:0}
.homeUpload:focus-within{outline:3px solid #edacc5;outline-offset:3px}
.homeLevelHeading{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.homeLevelHeading label{font-size:12px}.homeLevelHeading span{font-size:10px;color:#ae929e}
.homeLevels{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}
.homeLevels button{background:#fff;border:1px solid #efdee6;border-radius:13px;min-height:44px;color:#967384;font-size:13px;cursor:pointer}
.homeLevels button[aria-pressed=true]{background:#fce5ef;color:#b73165;border-color:#e7a5bf;font-weight:750}
.homeLanguage{display:flex;align-items:center;gap:16px;border-bottom:1px solid #f2e3e9;padding-bottom:8px}
.homeLanguage label{flex:1;font-size:12px}
.homeLanguage select{width:63%;margin:0;background:#fff;padding:9px 12px;min-height:44px;font-size:14px;border-radius:13px}
.homeOptions{border-bottom:1px solid #f2e3e9}
.homeOptions summary{display:flex;justify-content:space-between;align-items:center;min-height:46px;font-size:12px;font-weight:650;color:#9f7186;cursor:pointer;list-style:none}
.homeOptions summary::-webkit-details-marker{display:none}.homeOptions summary span{font-size:20px;font-weight:400}
.homeOptions[open] summary span{transform:rotate(45deg)}
.homeOptionsBody{padding:4px 0 8px}.homeOptionsBody label{font-size:11px}.homeOptionsBody .row>div{min-width:0}
.homeOptionsBody input,.homeOptionsBody select{font-size:16px;margin:5px 0 12px;padding:10px;min-height:44px}
.homeShell #startError:empty{display:none}.homeShell #startError{margin:10px 0;line-height:1.5}
.homeNav{position:fixed;z-index:30;left:50%;bottom:12px;transform:translateX(-50%);display:flex;width:min(480px,calc(100% - 32px));background:#fffcfefa;backdrop-filter:blur(14px);border:1px solid #f0dce6;box-shadow:0 5px 30px #8a285416;border-radius:23px;padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px))}
.homeNav button{flex:1;min-width:0;min-height:49px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:0;background:none;color:#b498a5;font-size:10px;cursor:pointer;border-radius:14px}
.homeNav svg{width:21px;height:21px}.homeNav button[aria-current=page]{color:#d73572;background:#fff0f7;font-weight:750}
.homeShell button:focus-visible,.homeOptions summary:focus-visible{outline:3px solid #dd9db6;outline-offset:3px}
.homeModes button,.homeLevels button{transition:background .18s ease,border-color .18s ease,transform .18s ease}
.homeNav button,.homeModes button,.homeLevels button,.homeOptions summary{position:relative;isolation:isolate;overflow:hidden}
.homeModes button:active,.homeLevels button:active{transform:scale(.98)}
@media(max-width:720px){
 .homeShell{max-width:480px;padding:18px 20px 100px}.homeGrid{display:block}.homeShell .brand{font-size:26px}
 .homeGreeting{margin:0 0 8px}.homeShell .homeWelcome{min-height:176px;padding:20px;margin-bottom:18px;border-radius:25px}
 .homeShell .homeWelcome h1{font-size:29px}.homeShell .homeWelcome p{margin:0 0 12px;font-size:11px}
 .homeShell .homeWelcome .mascotStage{width:40%;max-width:165px;margin-right:-8px}
 .homeModes button{min-height:66px;padding:14px 10px}.homeModes{gap:10px;margin-bottom:12px}
 .homeUpload{min-height:64px;padding:12px;margin-bottom:14px}.homeNav{bottom:8px}
}
@media(max-width:355px){.homeShell{padding:12px 14px 100px}.homeShell .homeWelcome{padding:16px}.homeShell .homeWelcome h1{font-size:25px}.homeShell .homeWelcome .btn{min-width:128px;padding:10px 14px}.homeShell .homeWelcome small{font-size:9px}.homeModes button{font-size:13px;gap:8px}.homeModes svg{width:26px}.homeShell .brand{font-size:24px}}
@media(prefers-reduced-motion:reduce){.homeModes button,.homeLevels button{transition:none}.homeModes button:active,.homeLevels button:active{transform:none}}

/* Optional voucher entry; checkout keeps the second voucher field. */
.homeVoucher{margin-top:10px;padding-top:10px;border-top:1px solid #f2e3e9}
.homeVoucher>label{display:flex;align-items:center;gap:7px;margin:0 0 7px;font-size:11px;font-weight:650;color:#8f6075}
.homeVoucher>label span{font-size:10px;font-weight:450;color:#ad929e}
.homeVoucherRow{display:flex;align-items:center;gap:8px}
.homeVoucherRow input{flex:1;min-width:0;min-height:42px;margin:0;padding:9px 12px;border-radius:13px;font-size:13px;text-transform:uppercase;background:#fffafd}
.homeVoucherRow button{flex:none;min-height:42px;padding:9px 13px;border:1px solid #eccddb;border-radius:13px;background:#fff5f9;color:#ad2c60;font-size:11px;font-weight:750}
#homeVoucherMessage{display:block;min-height:0;margin-top:5px;color:#9b7486;font-size:10px;line-height:1.4}
#homeVoucherMessage:empty{display:none}
@media(max-width:720px){.homeVoucher{margin-top:8px}.homeVoucherRow input{font-size:16px}.homeVoucherRow button{font-size:12px}}
