html,body{margin:0;height:100%;background:#0a1022;overflow:hidden;
  font-family:-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:#222}
/* whole scene is a link to sikh.html; info button + panel sit outside it */
#home-link{position:fixed;inset:0;display:block;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}
canvas{display:block;width:100%;height:100%;touch-action:none;opacity:0;transition:opacity 3s ease-out}
canvas.on{opacity:1}
canvas.fast{transition-duration:.35s}
.hidden{display:none!important}

/* --- info button (top right) --- */
.icon-btn{position:fixed;top:max(16px,env(safe-area-inset-top,0px));right:max(16px,env(safe-area-inset-right,0px));
  z-index:20;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.9);border:none;
  box-shadow:0 1px 4px rgba(0,0,0,.3);display:flex;align-items:center;justify-content:center;
  cursor:pointer;font:italic 700 20px Georgia,"Times New Roman",serif;color:#1a1a1a;padding:0}
.icon-btn:hover{background:#fff}
.icon-btn.active{background:#e8f0fe;color:#1a73e8}

/* --- panel --- */
.panel{position:fixed;top:calc(max(16px,env(safe-area-inset-top,0px)) + 52px);
  right:max(16px,env(safe-area-inset-right,0px));width:340px;max-width:calc(100vw - 32px);
  max-height:calc(100vh - 90px);max-height:calc(100dvh - 90px);overflow-y:auto;z-index:9999;background:#fff;border-radius:12px;
  box-shadow:0 4px 24px rgba(0,0,0,.28);padding:18px 16px 14px;display:flex;flex-direction:column;gap:14px;
  scrollbar-width:thin}
.panel h2{font-size:16px;margin:0;padding-right:28px;letter-spacing:.1px}
.panel p{font-size:12px;color:#444;line-height:1.55;margin:0}
.panel a{color:#1a73e8}
.panel .lbl{font-size:11px;color:#6b7280;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin:0}
.panel .hint{font-size:11px;color:#5f6672;line-height:1.5}
.panel-divider{height:1px;background:#eceef1;flex-shrink:0}
details.sect>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;user-select:none}
details.sect>summary::-webkit-details-marker{display:none}
details.sect>summary::after{content:"";width:7px;height:7px;margin-right:3px;border-right:2px solid #6b7280;border-bottom:2px solid #6b7280;transform:rotate(45deg) translateY(-2px);transition:transform .15s}
details.sect[open]>summary::after{transform:rotate(-135deg) translateY(-2px)}
details.sect>summary:hover .lbl{color:#2b2f36}
details.sect>summary:focus-visible{outline:2px solid #1a73e8;outline-offset:3px;border-radius:4px}
details.sect[open]>summary{margin-bottom:8px}
details.sect[open]>.sect,details.sect[open]>.seg{margin-bottom:0}
details.sect[open]>.sect{margin-top:14px}
.sect{display:flex;flex-direction:column;gap:8px}
.modal-close{position:absolute;top:4px;right:6px;min-width:44px;min-height:44px;background:none;border:none;font-size:22px;cursor:pointer;color:#888;line-height:1;padding:2px 6px;border-radius:6px}
.modal-close:hover{background:#f1f3f4;color:#444}
.gurbani-quote { margin: 0; padding: 12px 10px; text-align: center; border-left: 3px solid rgba(190,165,110,.7); background: rgba(190,165,110,.06); border-radius: 6px; }
#info-panel .gurbani-quote .gurbani-text { margin: 0 0 6px; font-family: "Noto Sans Gurmukhi","Gurmukhi MN","Nirmala UI","Raavi",sans-serif; font-size: clamp(14px, 3.4vw, 17px); font-weight: 700; line-height: 1.65; color: #222; }
#info-panel .gurbani-quote .gurbani-source { margin: 0 0 6px; font-size: clamp(10px, 3vw, 12px); font-weight: 500; line-height: 1.4; color: #666; overflow-wrap: anywhere; }
#info-panel .gurbani-quote .gurbani-translation { margin: 0; font-size: clamp(10px, 3vw, 12px); font-weight: 400; line-height: 1.4; font-style: italic; color: #444; }

/* --- button groups --- */
.seg{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.seg.seg-2{grid-template-columns:repeat(2,1fr)}
.seg button{display:flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;
  border:1px solid #d5d9de;background:#f6f7f9;color:#2b2f36;font-size:12.5px;font-weight:600;
  padding:9px 8px;border-radius:8px;cursor:pointer;transition:background .12s,border-color .12s}
.seg button:hover:not([aria-pressed="true"]){background:#eceff3;border-color:#c3c9d1}
.seg button[aria-pressed="true"]{background:#1a73e8;border-color:#1a73e8;color:#fff}
.seg button:focus-visible{outline:2px solid #1a73e8;outline-offset:2px}

/* --- rows / inputs --- */
.row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:32px}
.row span,.row label.name{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:#2b2f36}
.row input[type=number]{width:96px;box-sizing:border-box;padding:6px 8px;border:1px solid #d5d9de;border-radius:8px;
  font-size:13px;font-weight:600;font-family:inherit;text-align:right;color:#2b2f36;background:#fff}
.row input[type=number]:focus{outline:2px solid #1a73e8;outline-offset:1px;border-color:#1a73e8}
.switch{position:relative;display:inline-block;width:36px;height:20px;flex-shrink:0}
.switch input{opacity:0;width:0;height:0}
.switch-slider{position:absolute;cursor:pointer;inset:0;background:#ccc;border-radius:20px;transition:background-color .15s}
.switch-slider::before{content:"";position:absolute;width:16px;height:16px;left:2px;top:2px;background:#fff;border-radius:50%;
  transition:transform .15s;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.switch input:checked+.switch-slider{background:#1a73e8}
.switch input:checked+.switch-slider::before{transform:translateX(16px)}
.switch input:focus-visible+.switch-slider{outline:2px solid #1a73e8;outline-offset:2px}

/* --- keys --- */
kbd{display:inline-block;box-sizing:border-box;min-width:20px;padding:1px 5px;font:600 11px ui-monospace,Menlo,Consolas,monospace;
  border:1px solid #bbb;border-bottom-width:2px;border-radius:4px;background:#fafafa;color:#333;text-align:center;line-height:1.5}
.seg button kbd{font-size:10.5px;opacity:.8}
.seg button[aria-pressed="true"] kbd{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.5);color:#fff;opacity:1}
.keys{display:grid;grid-template-columns:max-content 1fr;gap:8px 12px;font-size:12px;color:#444;align-items:start;justify-items:start;line-height:1.45}
.kk{display:flex;gap:3px}
@media (max-width:480px){.panel{width:calc(100vw - 32px)}}

.seg button:disabled{opacity:.45;cursor:not-allowed}
.gurbani-credit{margin-top:5px!important}
.logo-link img{margin-bottom:-2px;width:180px;max-width:100%;height:auto}

/* --- visible entry affordance + no-JS fallback --- */
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.enter-hint{position:fixed;left:0;right:0;bottom:max(28px,env(safe-area-inset-bottom,0px));z-index:5;text-align:center;
  font-size:13px;letter-spacing:.04em;color:rgba(255,255,255,.78);text-shadow:0 1px 6px rgba(0,0,0,.6);
  pointer-events:none;opacity:0;transition:opacity 2s ease 2.5s}
.ready .enter-hint{opacity:1}
.enter-noscript{position:fixed;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:1.4rem;text-decoration:none;background:#0a1022}
@media (hover:none){.seg button kbd{display:none}}
@media (prefers-reduced-motion:reduce){canvas{transition-duration:.01s}.enter-hint{transition-duration:.01s}}
