#menu-toggle { display: inline-grid; }
@media (max-width: 1100px) {
  :root { --sidebar-width: 270px; }
  .exhibit-grid { grid-template-columns: repeat(2, 1fr); }
  .question-cloud { grid-template-columns: repeat(2, 1fr); }
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 820px) {
  :root { --topbar-height: 68px; }
  #menu-toggle { display: inline-grid; }
  .brand small, #sound-toggle, #contrast-toggle, #progress-button { display: none; }
  .topbar { padding: 0 12px; }
  .topbar__identity { gap:7px; }
  .topbar__actions { gap: 5px; }
  .language-select { width: 92px; }
  .sidebar { transform: translateX(-105%); width: min(88vw, 320px); box-shadow: var(--shadow); }
  .sidebar.is-open { transform: translateX(0); }
  .app-shell.sidebar-is-collapsed .sidebar { transform: translateX(-105%); }
  .main { margin-left: 0; padding: calc(var(--topbar-height) + 18px) 14px 72px; }
  .site-footer { margin-left: 0; padding: 0 14px 24px; }
  .ai-kakao-ad--desktop { display: none; }
  .ai-kakao-ad--mobile { display: flex; }
  body.ai-desktop-ad-visible .app-shell.sidebar-is-collapsed .main { padding-left: 14px; }
  body.ai-desktop-ad-visible .app-shell.sidebar-is-collapsed .site-footer { padding-left: 14px; }
  .hero { min-height: 420px; padding: 26px; }
  .lab-grid { grid-template-columns: 1fr; }
  .price-card { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  h1 { font-size: clamp(2.25rem, 12vw, 3.5rem); }
  .brand strong { font-size: .82rem; }
  .brand__mark { display:none; }
  .home-link { width:38px; height:38px; }
  #login-button { width: 42px; padding: 0; font-size: 0; }
  #login-button::before { content: "G"; font-size: .9rem; }
  .exhibit-grid, .question-cloud, .stats-grid { grid-template-columns: 1fr; }
  .hero { min-height: 500px; }
  .modal { padding: 26px 20px; }
  .bar-row { grid-template-columns: 72px 1fr 40px; }
  .page-navigation { flex-direction: column; }
  .page-navigation .button { width: 100%; }
  .toast-region { right: 12px; left: 12px; bottom: 12px; }
  .toast { max-width: none; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

@media (max-width: 980px) {
  .detail-modal__layout { grid-template-columns: 1fr; }
  .detail-visual { min-height: 390px; }
  .detail-modal__content h2 { font-size: clamp(2rem, 7vw, 3.5rem); }
}
@media (max-width: 620px) {
  .detail-modal { width: 100vw; max-height: 100dvh; min-height: 100dvh; border-radius: 0; padding: 18px 16px 24px; }
  .detail-modal__topline { margin-top: 26px; padding-right: 0; }
  .detail-modal__layout { gap: 22px; }
  .detail-visual { min-height: 310px; border-radius: 19px; }
  .detail-facts { grid-template-columns: 1fr; }
  .detail-facts > div { min-height: auto; }
  .detail-modal__footer { position: sticky; bottom: -24px; margin-inline: -16px; padding: 16px; background: rgba(7,13,25,.94); backdrop-filter: blur(18px); z-index: 12; }
  .detail-modal__footer #detail-cta { flex: 1; padding-inline: 12px; }
  .detail-modal__navigation .button { min-width: 46px; }
  .detail-visual--builder { grid-template-columns: 1fr; gap: 10px; padding: 26px; }
  .builder-parts { grid-template-columns: repeat(2,1fr); }
  .builder-parts span { min-width: 0; }
  .builder-arrow { transform: rotate(90deg); }
  .builder-result { width: 72%; height: 150px; }
  .chip-die { left: 7%; width: 55%; }.memory-stack { right: 7%; width: 28%; }
  .rag-query { left: 5%; }.rag-answer { right: 4%; }.rag-library-visual { width: 68%; }
  .claim-card { left: 5%; width: 39%; }.verify-shield { right: 5%; width: 130px; height: 150px; }
  .balance-arm { width: 76%; }.balance-arm span { width: 112px; font-size: .72rem; }
  .certificate-sheet { width: 82%; padding: 24px; }.certificate-seal { right: 9%; bottom: 8%; width: 76px; height: 76px; }
}

@media (max-width: 920px) {
  .research-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .detail-visual--local-cloud { padding:8%; }
}

@media (max-width: 620px) {
  .research-special { padding:20px 14px; border-radius:20px; }
  .research-grid { grid-template-columns:1fr; }
  .research-card { min-height:190px; }
  .detail-facts { grid-template-columns:1fr; }
  .detail-research__head { align-items:flex-start; flex-direction:column; }
  .detail-sources a { grid-template-columns:25px 1fr auto; }
  .detail-visual--local-cloud { grid-template-columns:1fr; gap:10px; padding:8%; }
  .local-device,.cloud-cluster{min-height:105px}.cloud-link{transform:rotate(90deg)}
  .detail-visual--privacy,.detail-visual--regulation{grid-template-columns:1fr;padding:8%;gap:14px}.privacy-chat{min-height:130px}.privacy-key{display:none}
  .detail-visual--jobs .jobs-role{left:50%;top:8%;transform:translateX(-50%);width:90px;height:90px}.jobs-tasks{left:8%;right:8%;bottom:12%;width:auto}.jobs-shift{display:none}
  .detail-visual--thinking .thinking-brain{left:4%;width:90px;height:90px}.detail-visual--thinking .thinking-ai{right:4%;width:90px;height:90px}.thinking-loop{width:48%}.thinking-loop span{width:68px;height:68px;font-size:.5rem}
  .detail-visual--companion .companion-ai,.detail-visual--companion .companion-human{width:100px;height:100px}.companion-chat{max-width:140px}.companion-chat span{font-size:.62rem}
  .detail-visual--energy .energy-datacenter{left:6%;width:58%;height:48%}.energy-meter{right:5%;width:90px;height:190px}.energy-cooling{right:4%;bottom:10%}
  .detail-visual--vault .vault-door{left:4%;width:185px;height:185px}.vault-items{right:4%;grid-template-columns:repeat(2,65px)}.vault-items i{height:56px}.vault-redact{display:none}
  .detail-visual--education .education-path span{width:62px;height:62px;font-size:.52rem}.education-fork{gap:16px}.education-fork b{padding:13px 15px;font-size:.68rem}
  .detail-visual--detector .detector-copy{left:5%;width:55%}.detector-scores{right:4%}.detector-scores span{padding:10px;font-size:.65rem}.detector-scores b{font-size:2.6rem}
  .detail-visual--provenance .provenance-frame{left:5%;width:52%}.provenance-seal{right:5%;width:105px;height:105px;font-size:1rem}.provenance-chain{left:5%;right:5%}.provenance-chain b{padding:7px;font-size:.48rem}
}

/* Dynamic viewport and LLM simulator responsiveness */
html, body { max-width:100%; overflow-x:hidden; }
.main,.page,.section,.hero,.card { min-width:0; max-width:100%; }
.textarea,.input,.select,pre,code { max-width:100%; overflow-wrap:anywhere; }
@media (max-width: 980px) {
  .llm-control-deck { grid-template-columns:1fr; }
  .llm-actions { grid-column:auto; }
  .llm-workspace { grid-template-columns:1fr; min-height:0; }
  .llm-stage,.llm-stage__visual { min-height:480px; }
  .llm-explainer { min-height:260px; }
  .llm-pipeline { grid-template-columns:repeat(7,132px); scroll-snap-type:x mandatory; }
  .llm-pipeline button { scroll-snap-align:start; }
}
@media (max-width: 700px) {
  .llm-simulator { margin-inline:-4px; padding:16px 12px 18px; border-radius:18px; }
  .llm-simulator__header { display:grid; gap:14px; }
  .llm-fullscreen-button { width:100%; }
  .llm-control-deck { margin-top:16px; gap:10px; }
  .llm-question-box,.llm-parameters { padding:14px; border-radius:14px; }
  .llm-samples { flex-wrap:nowrap; overflow-x:auto; padding-bottom:4px; }
  .llm-samples button { flex:0 0 auto; max-width:250px; }
  .llm-actions { display:grid; grid-template-columns:1fr 1fr; }
  .llm-actions .button:first-child { grid-column:1/-1; }
  .llm-pipeline { margin:16px 0 10px; grid-template-columns:repeat(7,112px); gap:6px; }
  .llm-pipeline button { min-height:68px; padding:9px; }
  .llm-stage,.llm-stage__visual { min-height:390px; }
  .llm-stage__visual { padding:14px; justify-items:stretch; }
  .llm-explainer { min-height:auto; padding:20px 17px; }
  .llm-step-number { font-size:4rem; }
  .llm-context-stack article { grid-template-columns:34px 1fr; padding:12px; gap:10px; }
  .llm-context-stack article:nth-child(2),.llm-context-stack article:nth-child(3){margin-left:0}
  .llm-token-field { align-content:flex-start; justify-content:flex-start; }
  .llm-token-field span { min-width:58px; min-height:58px; padding:9px; font-size:.78rem; }
  .llm-embedding { min-width:560px; }
  .llm-attention-map { min-width:540px; }
  .llm-prob-row { grid-template-columns:86px 1fr 44px; gap:8px; padding:9px; font-size:.75rem; }
  .llm-sampling { grid-template-columns:1fr; justify-items:center; gap:18px; }
  .llm-sampling-ring { width:180px;height:180px; }
  .llm-sampling-controls { width:100%; }.llm-sampling p{grid-column:auto}
  .llm-output-head { flex-wrap:wrap; }.llm-output-head small{width:100%;margin-left:18px}
  .llm-chat-bubble { min-height:220px; padding:18px; }
  .llm-simulator__note { padding:12px; }
  .llm-simulator:fullscreen,.llm-simulator.is-sim-fullscreen { padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left)); }
  .llm-simulator:fullscreen .llm-simulator__header p,.llm-simulator.is-sim-fullscreen .llm-simulator__header p { display:none; }
  .llm-simulator:fullscreen .llm-control-deck,.llm-simulator.is-sim-fullscreen .llm-control-deck { grid-template-columns:1fr; }
  .llm-simulator:fullscreen .llm-workspace,.llm-simulator.is-sim-fullscreen .llm-workspace { min-height:0; }
  .llm-simulator:fullscreen .llm-stage,.llm-simulator:fullscreen .llm-stage__visual,.llm-simulator.is-sim-fullscreen .llm-stage,.llm-simulator.is-sim-fullscreen .llm-stage__visual { min-height:58dvh; }
}
@media (max-width: 430px) {
  .topbar { padding-left:max(8px,env(safe-area-inset-left)); padding-right:max(8px,env(safe-area-inset-right)); }
  .brand__mark { width:36px;height:36px;border-radius:11px; }
  .language-select { width:78px;padding-inline:7px;font-size:.74rem; }
  .topbar__actions .icon-button,#login-button { min-width:38px;width:38px;min-height:38px;height:38px; }
  .main { padding-left:10px;padding-right:10px; }
  .hero { min-height:auto; padding:22px 17px; }
  .section { margin-top:36px; }
  .llm-simulator__header h3 { font-size:1.45rem; }
  .llm-stage,.llm-stage__visual { min-height:360px; }
  .llm-embedding { min-width:510px; }
  .llm-attention-map { min-width:500px; }
  .llm-repeat-flow span { font-size:.48rem;padding:6px; }
}
