/* iPad: scene owns the viewport; navigation is a small overlay, not extra rows. */
.kv-menu-toggle{display:flex;align-items:center;justify-content:center;gap:8px;min-width:48px;min-height:48px;padding:8px 15px;border:1px solid #e3daca;border-radius:24px;background:#fffaf0;color:#234361;font:inherit;font-size:14px;font-weight:800;cursor:pointer;box-shadow:0 3px 12px #4d3e2112}
.kv-menu-toggle svg{width:22px;height:22px}
.kv-menu-dialog{width:min(480px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:22px;border:1px solid #e9dcc5;border-radius:26px;background:#fffaf0;color:#173456;box-shadow:0 20px 80px #332a2940;overflow:auto}
.kv-menu-dialog::backdrop{background:#20372c55;backdrop-filter:blur(5px)}
.kv-menu-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.kv-menu-heading h2{font-size:23px;margin:0}.kv-menu-heading button{border:0;background:#f0e7d5;color:#173456;min-width:44px;min-height:44px;border-radius:50%;font-size:28px;cursor:pointer}
.kv-menu-dialog nav{display:grid;grid-template-columns:1fr 1fr;gap:10px}.kv-menu-dialog nav>a,.kv-menu-dialog nav>button{display:flex;align-items:center;gap:10px;text-decoration:none;font:inherit;font-size:15px;font-weight:750;color:#244963;background:white;border:1px solid #e1dfd4;border-radius:16px;min-height:54px;padding:12px;cursor:pointer;text-align:left}.kv-menu-dialog .icon{width:22px;height:22px;flex-shrink:0}.kv-menu-dialog a:hover,.kv-menu-dialog nav>button:hover{background:#eff6ff}
body.kv-immersive .app-shell{position:relative;background:#f5ead5}
body.kv-immersive .kv-header.kv-header{position:absolute!important;top:max(10px,env(safe-area-inset-top));left:max(14px,env(safe-area-inset-left));right:max(14px,env(safe-area-inset-right));width:auto!important;height:auto!important;min-height:0!important;padding:0!important;z-index:30;background:none!important;border:0!important;display:flex!important;flex-wrap:nowrap!important;gap:12px;pointer-events:none}
body.kv-immersive .kv-header>*{pointer-events:auto}
body.kv-immersive .kv-logo{background:#fff9eae8;padding:10px 15px;border-radius:22px;box-shadow:0 3px 14px #593d2112}.kv-immersive .kv-wordmark{font-size:29px}
body.kv-immersive .kv-theme{position:absolute;left:50%;transform:translateX(-50%);margin:0;background:#fffaf0ed;border-color:#fff9ed;box-shadow:0 3px 14px #593d2117;padding:3px;gap:8px}
body.kv-immersive .kv-theme button{min-height:44px;font-size:14px;padding:8px 14px}
body.kv-immersive .kv-menu-toggle{margin-left:auto;background:#fffaf0ed}
body.kv-world.kv-immersive .hub-main,body.kv-world.kv-immersive:has(.kv-home) .hub-main{padding:0!important;margin:0!important;max-width:none!important;width:100%!important;height:100%!important}
.kv-immersive .kv-home{position:relative;display:block;width:100%;height:100%;overflow:hidden;gap:0}
.kv-immersive .kv-fit-scene{position:absolute;inset:0;display:block;overflow:hidden;background:radial-gradient(ellipse at center,#fffcf0,#e9d5b0);}
.kv-immersive .kv-fit-scene .kv-story-stage,.kv-immersive .kv-fit-scene .kv-world-scene{position:absolute;max-width:none!important;margin:0!important;border-radius:0!important;overflow:visible;}
.kv-immersive .kv-fit-scene .kv-scene-image{width:100%;height:100%;max-width:none;aspect-ratio:auto;object-fit:fill;border-radius:0}
.kv-immersive .kv-fit-scene .kv-scene-tabs{position:absolute!important;top:auto!important;bottom:max(12px,env(safe-area-inset-bottom));left:50%;right:auto;transform:translateX(-50%);width:max-content;max-width:calc(100% - 32px);display:flex;flex-direction:row;gap:8px;padding:7px;background:#fff9e9ed;border:1px solid #fffaef;border-radius:24px;box-shadow:0 4px 24px #66512e28;z-index:10;}
.kv-immersive .kv-fit-scene .kv-scene-tabs a{min-width:88px;min-height:44px;padding:8px 13px;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:7px;border:0;border-radius:16px;background:transparent;color:#24465b;font-size:14px;white-space:nowrap;box-shadow:none;line-height:1.2;transition:background .15s}
.kv-immersive .kv-fit-scene .kv-scene-tabs a:hover,.kv-immersive .kv-fit-scene .kv-scene-tabs a:active{transform:none;background:#eaf0f5}
.kv-immersive .kv-fit-scene .kv-scene-tabs .icon{display:block;color:var(--chapter);width:21px;height:21px}
.kv-immersive .kv-fit-scene .kv-scene-zone{top:14%;bottom:17%;height:auto;width:40%;border-radius:28px;}
.kv-immersive .kv-fit-scene .kv-zone-home{left:6%}.kv-immersive .kv-fit-scene .kv-zone-school{left:54%}
.kv-immersive .kv-fit-scene .kv-scene-zone>span{min-height:44px;padding:8px 18px;font-size:clamp(16px,1.6vw,25px);white-space:nowrap;gap:9px;line-height:1.25;border-radius:25px;box-shadow:0 3px 12px #714e2926;background:#fff7e8ed}
.kv-immersive .kv-fit-scene .kv-scene-zone .icon{display:block;width:23px;height:23px}
.kv-immersive .kv-fit-scene[data-wide="true"] .kv-scene-zone{bottom:13%}
.kv-immersive .kv-fit-scene .kv-map-hint{display:none}
.kv-immersive .kv-fit-scene .kv-map-stop{min-height:44px;min-width:88px;gap:0}
.kv-immersive .kv-fit-scene .kv-stop-dot{display:none}
.kv-immersive .kv-fit-scene .kv-stop-label{font-size:16px;min-height:44px;padding:10px 16px;display:flex;align-items:center;background:#fff9e9f5}
.kv-immersive .kv-fit-scene[data-wide="true"] .kv-map-stop:nth-of-type(1){left:20%;top:49%}
.kv-immersive .kv-fit-scene[data-wide="true"] .kv-map-stop:nth-of-type(2){left:78%;top:49%}
.kv-immersive .kv-fit-scene[data-wide="true"] .kv-map-stop:nth-of-type(3){left:49%;top:41%}
.kv-immersive .kv-fit-scene[data-wide="true"] .kv-map-stop:nth-of-type(4){left:83%;top:86%}
.kv-immersive .kv-fit-scene[data-wide="true"] .kv-map-stop:nth-of-type(5){left:20%;top:84%}
.kv-immersive .kv-fit-scene[data-wide="true"] .kv-map-stop:nth-of-type(6){left:53%;top:78%}
.kv-menu-toggle:focus-visible,.kv-menu-dialog :focus-visible{outline:3px solid #165fcc;outline-offset:3px}
@media(max-width:1000px){.kv-immersive .kv-fit-scene .kv-scene-tabs a{min-width:72px;padding:8px;font-size:13px;gap:5px}.kv-immersive .kv-wordmark{font-size:25px}.kv-immersive .kv-menu-toggle{padding:8px 12px}.kv-immersive .kv-fit-scene .kv-scene-zone>span{font-size:17px;padding:7px 12px}}
@media(max-width:600px){
 body.kv-immersive .kv-header.kv-header{left:8px;right:8px;top:max(8px,env(safe-area-inset-top));gap:8px}.kv-immersive .kv-logo{padding:9px!important;border-radius:16px!important}.kv-immersive .kv-wordmark{font-size:22px}.kv-immersive .kv-wordmark i{display:none}
 body.kv-immersive .kv-theme{position:static;left:auto;transform:none;margin-left:auto;gap:3px;padding:2px}.kv-immersive .kv-theme button{font-size:11px!important;padding:6px 8px!important;min-height:44px!important}.kv-immersive .kv-theme .icon{display:none}.kv-immersive .kv-menu-toggle{padding:9px;min-width:44px;min-height:48px;margin:0!important}.kv-immersive .kv-menu-toggle span{display:none}
 .kv-immersive .kv-fit-scene .kv-scene-tabs{display:grid;grid-template-columns:repeat(3,1fr);max-width:calc(100% - 16px);width:calc(100% - 16px);padding:7px;gap:8px;border-radius:22px;bottom:max(8px,env(safe-area-inset-bottom))}.kv-immersive .kv-fit-scene .kv-scene-tabs a{min-width:0;font-size:12px;min-height:44px;padding:6px 4px}.kv-immersive .kv-fit-scene .kv-scene-tabs .icon{width:18px;height:18px}
 .kv-immersive .kv-fit-scene .kv-scene-zone>span{font-size:12px;white-space:normal;text-align:center;padding:6px 9px}.kv-immersive .kv-fit-scene .kv-scene-zone .icon{display:none}.kv-immersive .kv-fit-scene .kv-stop-label{font-size:12px;padding:7px 10px}
 .kv-menu-dialog{padding:16px}.kv-menu-dialog nav>a,.kv-menu-dialog nav>button{font-size:14px;padding:10px;gap:7px}
}
@media(max-height:450px) and (min-width:600px){body.kv-immersive .kv-header.kv-header{top:6px;left:10px;right:10px}.kv-immersive .kv-logo{padding:7px 12px!important}.kv-immersive .kv-wordmark{font-size:24px}.kv-immersive .kv-theme button{min-height:44px!important;padding:5px 11px!important}.kv-immersive .kv-menu-toggle{min-height:44px;padding:6px 12px}.kv-immersive .kv-fit-scene .kv-scene-tabs{bottom:6px;padding:4px;gap:8px}.kv-immersive .kv-fit-scene .kv-scene-tabs a{font-size:12px;min-height:44px;padding:5px 8px}.kv-immersive .kv-fit-scene .kv-scene-tabs .icon{display:none}.kv-immersive .kv-fit-scene[data-wide="true"] .kv-scene-zone{bottom:19%}.kv-immersive .kv-fit-scene .kv-scene-zone>span{min-height:44px;font-size:14px;padding:6px 12px}}
@media(prefers-reduced-motion:reduce){.kv-menu-toggle,.kv-scene-tabs a{transition:none!important}}

body.kv-immersive .kv-header.kv-header{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;box-shadow:none!important}

.kv-immersive .kv-fit-scene::before{content:"";position:absolute;inset:-24px;background-image:var(--scene-backdrop);background-size:cover;background-position:center;filter:blur(14px);opacity:.8;pointer-events:none}
