/* Fluid layouts from narrow phones to wide desktop displays. */
:root{--page-gutter:clamp(12px,4vw,76px)}
html{min-width:0;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{min-width:0;overflow-wrap:break-word}
main,header,footer{width:100%;max-width:1920px;margin-inline:auto}
section{padding-inline:var(--page-gutter)}
header{padding-inline:var(--page-gutter)}
main>*,section>*,.course-grid>*,.tools-grid>*,.reader-layout>*,.playground>*,.math-hero>*{min-width:0}
img,svg,video,canvas,iframe{max-width:100%}
input,select,textarea,button{max-width:100%}
button,.button,.outline{white-space:normal;overflow-wrap:anywhere;min-height:44px}
.math-hero{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(24px,4vw,80px)}
.math-hero h1{font-size:clamp(34px,6vw,92px);letter-spacing:clamp(-3px,-.15vw,-.5px)}
.hero-art{min-height:clamp(300px,32vw,480px)}
.hero-art>img:not(.spark){height:auto;object-fit:contain}
.art-tag{padding-inline:20px;line-height:1.8}
.formula-sticker{left:0;max-width:75%;padding:clamp(12px,2vw,24px);font-size:clamp(17px,2vw,24px)}
.hero-meta{flex-wrap:wrap;gap:20px 30px}
.hero-meta>span{min-width:0}
.ticker{gap:16px 26px;text-align:center}
.course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.course-no{flex-wrap:wrap;gap:12px 20px}
.course h3{overflow-wrap:anywhere}
.playground{padding-inline:var(--page-gutter);grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(24px,4vw,70px)}
.graph-panel{width:100%;min-width:0;padding:clamp(12px,2vw,24px)}
.graph-panel svg{width:100%;height:auto}
.legend{flex-wrap:wrap}
.tools-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.tool-box{min-width:0}
.section-head{flex-wrap:wrap;gap:24px}
.section-head>input{flex:0 1 340px;min-width:0;width:100%}
.chapter-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
.reader-controls,.zoom-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.reader-controls label{display:flex;align-items:center;gap:7px;max-width:100%}
.reader-controls input{width:70px;min-width:0}
.library-toolbar{grid-template-columns:repeat(3,minmax(0,1fr))}
.library-toolbar label{min-width:0}
.library-toolbar select,.library-toolbar input{width:100%;min-width:0}
.reader-layout{grid-template-columns:minmax(180px,260px) minmax(0,1fr)}
.image-viewport{width:100%;overflow:auto;overscroll-behavior:contain;max-height:75vh;max-height:75dvh}
#pageImage{max-width:none;height:auto;display:block}
.reader-layout aside{min-width:0}
.page-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.page-tile{min-width:0;overflow:hidden}
.page-tile img{width:100%;height:auto;object-fit:contain}
#readProgress,#saveStatus,#pageCaption,.source-note{overflow-wrap:anywhere}
.reader-main:fullscreen,.reader-main.pdf-expanded{width:100%;height:100vh;height:100dvh;max-width:none;overflow:auto;padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}
.closing{gap:clamp(24px,4vw,65px)}
footer{gap:24px;flex-wrap:wrap;padding-inline:var(--page-gutter)}
@media(min-width:1600px){body{font-size:18px}.intro,.course p{font-size:17px}.course-grid{gap:30px}.chapter-cards{gap:24px}.image-viewport{max-height:80dvh}}
@media(max-width:1000px){.library-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.library-toolbar label:last-child{grid-column:1/-1}.reader-layout{grid-template-columns:190px minmax(0,1fr)}.chapter-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:850px){header{height:auto;min-height:0;flex-wrap:wrap;padding-block:20px;gap:18px}header nav{position:static;display:flex;flex:0 0 100%;order:3;flex-wrap:wrap;gap:12px 22px;justify-content:center;padding-top:16px}.math-hero{padding-top:64px}.math-hero h1{font-size:clamp(34px,6.3vw,60px)}.hero-art{min-height:300px}.reader-layout{grid-template-columns:160px minmax(0,1fr)}}
@media(max-width:650px){.math-hero,.course-grid,.playground,.tools-grid,.reader-layout{grid-template-columns:minmax(0,1fr)}.math-hero h1{font-size:clamp(30px,9.5vw,60px)}.math-hero{gap:44px;padding-top:54px}.hero-art{margin:0;min-height:clamp(235px,70vw,360px)}.hero-art .spark{width:clamp(64px,22vw,110px);right:0;bottom:0}.art-tag{font-size:9px;letter-spacing:1px;top:20px}.formula-sticker{bottom:12px;transform:rotate(2deg)}.hero-meta{gap:18px;justify-content:space-between}.hero-meta small{font-size:8px}.course{padding:clamp(18px,5vw,30px)}.course h3{font-size:clamp(26px,7vw,38px)}.reader-layout aside{order:2;max-height:280px}.page-grid{grid-template-columns:repeat(auto-fit,minmax(min(90px,100%),1fr))}.library-toolbar{grid-template-columns:minmax(0,1fr)}.library-toolbar label:last-child{grid-column:auto}.chapter-cards{grid-template-columns:minmax(0,1fr)}.reader-main{padding:10px}.image-viewport{max-height:65dvh}.closing{margin-inline:0;border-radius:0;flex-direction:column}.closing img{width:110px}.section-head>input{flex-basis:100%}footer{flex-direction:column;align-items:flex-start}.tools-grid .tool-box{padding:20px}.reader-controls,.zoom-controls{font-size:12px}.zoom-controls button{padding:8px 11px}}
@media(max-width:360px){header .brand{font-size:24px;flex:1 1 120px;gap:8px}header .brand span{max-width:80px;font-size:8px;letter-spacing:1px;padding-left:8px}header #theme{min-width:70px;padding:8px 10px;font-size:12px}header nav{font-size:11px;gap:8px 15px}.hero-meta{gap:15px;justify-content:flex-start}.hero-meta>span{font-size:24px}.math-hero .actions{align-items:stretch;flex-direction:column}.math-hero .actions a{text-align:center}.formula-sticker{font-size:16px}.formula-sticker small{font-size:12px}.hero-art{min-height:235px}.art-tag{font-size:8px;padding-inline:12px}.method-strip{gap:14px}.number-row{gap:6px}.number-row input{padding:8px 5px}.reader-controls input{width:58px}.note-label{display:block}.note-label span{display:block}}
@media(max-height:500px) and (orientation:landscape){.image-viewport{max-height:65dvh}.reader-main:fullscreen .image-viewport{max-height:none}.math-hero{padding-block:40px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* HNK contact and profile links remain usable on narrow screens. */
footer{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(0,2fr);align-items:start;gap:40px;padding-block:48px}.footer-brand{min-width:0}.footer-brand .brand{flex-wrap:wrap}.footer-brand p{font-size:13px;line-height:1.8;margin-top:20px}.footer-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;min-width:0}.footer-link-group{min-width:0}.footer-link-group h3{font-size:12px;font-weight:700;letter-spacing:1px;margin:0 0 18px}.footer-link-group ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}.footer-link-group a{display:inline-flex;align-items:center;gap:8px;min-height:36px;font-size:13px;overflow-wrap:anywhere}.footer-link-group a:hover{text-decoration:underline}.footer-link-group a:focus-visible{outline:3px solid #2272be;outline-offset:4px}.footer-link-group span{color:#2272be}.dark .footer-link-group span{color:#72e1ef}@media(max-width:900px){footer{grid-template-columns:minmax(0,1fr)}.footer-links{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:600px){.footer-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 20px}.footer-link-group:last-child{grid-column:1/-1}.footer-link-group:last-child ul{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:300px){.footer-links{grid-template-columns:minmax(0,1fr)}.footer-link-group:last-child ul{grid-template-columns:minmax(0,1fr)}}
