:root{--cream:#f4ead7;--paper:#fbf4e7;--ink:#302a22;--muted:#766b5c;--red:#a83a2c;--deep-red:#7d241c;--green:#38583c;--line:#cbbca2;--shadow:0 18px 50px rgba(67,45,25,.18);--serif:"Cormorant Garamond",Georgia,serif;--sans:Inter,Arial,sans-serif;--script:Parisienne,cursive}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;color:var(--ink);font-family:var(--sans);background:#ede1ca;background-image:radial-gradient(circle at 20% 10%,rgba(255,255,255,.55),transparent 27%),linear-gradient(90deg,rgba(120,87,51,.035) 1px,transparent 1px),linear-gradient(rgba(120,87,51,.025) 1px,transparent 1px);background-size:auto,5px 5px,5px 5px}.paper-noise{position:fixed;inset:0;pointer-events:none;z-index:99;opacity:.18;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.22'/%3E%3C/svg%3E")}.topbar{height:82px;padding:0 clamp(18px,4vw,68px);display:flex;align-items:center;gap:32px;border-bottom:1px solid rgba(111,82,49,.24);background:rgba(248,239,221,.9);backdrop-filter:blur(12px);position:sticky;top:0;z-index:40}.brand{border:0;background:none;color:var(--red);font:clamp(26px,3vw,41px) var(--script);display:flex;gap:10px;align-items:center;white-space:nowrap;cursor:pointer}.cup{font:28px var(--serif)}nav{display:flex;align-items:center;justify-content:center;gap:22px;flex:1;overflow-x:auto;scrollbar-width:none}nav button{border:0;background:none;color:#4c4338;font:500 12px var(--sans);padding:9px 4px;white-space:nowrap;cursor:pointer;border-bottom:1px solid transparent}nav button.active{color:var(--red);border-color:var(--red)}.account-btn{border:1px solid #846f54;background:rgba(255,250,239,.5);border-radius:999px;padding:8px 13px;display:flex;gap:7px;align-items:center;color:#554638;cursor:pointer}.account-icon{font-size:18px}main{min-height:calc(100vh - 82px);padding:36px clamp(18px,5vw,72px) 62px;position:relative;overflow:hidden}main:before{content:"PARIS";position:absolute;right:-36px;top:40px;font:160px var(--serif);color:rgba(143,52,40,.035);transform:rotate(90deg);pointer-events:none}.lesson-header{text-align:center;max-width:770px;margin:0 auto 30px}.kicker{font:600 12px var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--red)}h1,h2,h3,p{margin-top:0}.lesson-header h1{font:600 clamp(38px,6vw,66px)/.98 var(--serif);margin:8px 0;color:var(--green)}.lesson-header h1 span{color:var(--red)}.lesson-header p{font:17px/1.6 var(--serif);color:#635646}.divider{display:flex;align-items:center;gap:12px;max-width:360px;margin:15px auto;color:var(--green)}.divider:before,.divider:after{content:"";height:1px;flex:1;background:#a99a80}.alphabet-grid{max-width:800px;margin:auto;display:grid;grid-template-columns:repeat(7,1fr);gap:13px}.letter-card{aspect-ratio:1.15;border:1px solid rgba(96,81,57,.28);border-radius:8px;background:rgba(255,250,239,.58);box-shadow:0 4px 15px rgba(73,50,27,.06);font:600 clamp(28px,3vw,40px) var(--serif);color:var(--green);cursor:pointer;transition:.2s;position:relative}.letter-card:hover,.letter-card:focus-visible{transform:translateY(-3px) rotate(-1deg);background:#fff9ec;border-color:var(--red);box-shadow:0 8px 22px rgba(95,54,33,.16);outline:none}.letter-card:nth-child(3n){transform:rotate(.4deg)}.stamp{position:absolute;border:2px solid rgba(67,91,57,.38);color:rgba(57,81,50,.6);width:82px;height:104px;right:3vw;top:40px;transform:rotate(8deg);display:grid;place-items:center;font:700 13px var(--serif);text-align:center;background:rgba(84,102,66,.08);box-shadow:inset 0 0 0 4px rgba(248,239,221,.7)}.metro{position:absolute;left:-20px;bottom:34px;width:120px;color:rgba(77,55,34,.35);font:700 25px var(--serif);transform:rotate(-5deg)}.category-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:18px;max-width:1040px;margin:0 auto}.topic-card{min-height:155px;padding:24px 22px;border:1px solid rgba(97,75,46,.23);border-radius:8px;background:rgba(252,245,232,.72);box-shadow:0 8px 24px rgba(71,47,26,.08);cursor:pointer;text-align:left;position:relative;overflow:hidden;transition:.2s}.topic-card:before{content:"";position:absolute;width:90px;height:90px;border:1px solid rgba(151,52,39,.15);border-radius:50%;right:-22px;top:-22px}.topic-card:hover{transform:translateY(-3px);border-color:#9d7254}.topic-card strong{display:block;font:600 31px var(--serif);color:var(--red);margin-bottom:7px}.topic-card small{font:14px/1.4 var(--serif);color:#65594a}.detail-shell{max-width:1050px;margin:0 auto}.back-btn{border:0;background:none;color:#655547;cursor:pointer;margin-bottom:18px}.lesson-sheet{background:rgba(250,243,229,.84);border:1px solid rgba(103,78,44,.28);border-radius:8px;box-shadow:var(--shadow);min-height:500px;display:grid;grid-template-columns:minmax(280px,.9fr) 1.1fr;position:relative}.lesson-sheet:before{content:"";position:absolute;left:0;top:0;bottom:0;width:38px;background:repeating-linear-gradient(to bottom,transparent 0 18px,#574a38 19px 22px,transparent 23px 34px);opacity:.65}.symbol-panel{padding:55px 42px 40px 70px;border-right:1px solid #d1c2a8;display:flex;flex-direction:column;justify-content:center}.symbol{font:600 clamp(96px,16vw,190px)/.72 var(--serif);color:var(--red);letter-spacing:-.12em}.phonetic{font:500 35px var(--serif);margin-top:26px}.audio-btn{width:max-content;margin-top:18px;border:0;border-radius:999px;background:var(--red);color:white;padding:11px 16px;cursor:pointer}.lesson-copy{padding:55px 50px;display:flex;flex-direction:column}.lesson-copy h2{font:600 42px var(--serif);color:var(--green);margin-bottom:3px}.ipa{font:28px var(--serif);color:var(--red)}.rule{font:18px/1.65 var(--serif);border-left:3px solid var(--red);padding:10px 0 10px 18px}.examples{margin-top:20px;border-top:1px solid #cbbda5}.example-row{display:grid;grid-template-columns:34px 1fr 1fr;align-items:center;padding:12px 4px;border-bottom:1px solid rgba(150,128,94,.3);font:18px var(--serif)}.example-row button{border:0;background:none;cursor:pointer}.note-actions{margin-top:auto;padding-top:28px;display:flex;gap:12px;flex-wrap:wrap}.note-actions button{border:1px solid var(--green);background:rgba(245,239,222,.55);color:var(--green);padding:12px 17px;border-radius:5px;cursor:pointer}.note-actions button:hover{background:var(--green);color:white}.pager{display:flex;justify-content:space-between;gap:16px;margin-top:18px}.pager button{border:1px solid #8b775d;background:rgba(255,249,237,.7);border-radius:5px;padding:11px 18px;cursor:pointer}.note-backdrop{position:fixed;inset:0;background:rgba(43,37,29,.57);backdrop-filter:blur(2px);z-index:80;display:flex;justify-content:flex-end;align-items:center;padding:clamp(12px,5vw,60px)}.note-backdrop[hidden]{display:none}.notebook{width:min(520px,92vw);height:min(730px,88vh);position:relative;background:rgba(255,250,236,.91);background-image:linear-gradient(rgba(163,120,79,.12) 1px,transparent 1px);background-size:100% 32px;border:1px solid #c6a985;border-radius:5px 14px 14px 5px;box-shadow:0 25px 90px rgba(18,12,7,.45);padding:35px 34px 46px 58px;animation:noteIn .28s ease-out}.notebook:after{content:"";position:absolute;inset:8px -7px -8px 7px;border:1px solid rgba(106,79,48,.25);border-radius:4px 12px 12px 4px;z-index:-1;background:rgba(239,224,196,.75)}@keyframes noteIn{from{opacity:0;transform:translateX(35px) rotate(2deg)}to{opacity:1;transform:none}}.rings{position:absolute;left:-16px;top:28px;bottom:22px;width:40px;background:repeating-linear-gradient(to bottom,transparent 0 22px,#5e5547 23px 27px,transparent 28px 39px);filter:drop-shadow(2px 2px 1px rgba(0,0,0,.25))}.close-note{position:absolute;right:18px;top:16px;border:0;background:transparent;font-size:29px;color:#574b3e;cursor:pointer}.note-heading{height:76px;padding-right:35px;position:relative}.note-heading h2{font:36px var(--script);margin:0;color:#493e34}.note-heading .eyebrow{font-size:10px;letter-spacing:.15em;color:var(--red);margin:0}.heart{position:absolute;right:15px;bottom:8px;color:var(--red);font-size:24px}.note-toolbar{height:42px;display:flex;align-items:center;gap:4px;padding:5px;border:1px solid rgba(123,96,62,.22);background:rgba(250,242,225,.78);position:relative;z-index:4;overflow-x:auto}.note-toolbar button{width:31px;height:29px;border:0;background:transparent;border-radius:4px;color:#514537;cursor:pointer;flex:0 0 auto}.note-toolbar button:hover,.note-toolbar button.active{background:var(--green);color:#fff}.tool-separator{width:1px;height:23px;background:#c1b092;margin:0 3px}.color-picker{width:28px;height:28px;position:relative;overflow:hidden;border-radius:50%;border:1px solid #aa9478;flex:0 0 auto}.color-picker input{position:absolute;inset:-8px;width:45px;height:45px;cursor:pointer}.note-pages{position:relative;height:calc(100% - 143px);overflow:hidden}.note-text{position:absolute;inset:0;padding:14px 10px;outline:0;overflow-y:auto;font:18px/32px var(--serif);z-index:2}.note-text:empty:before{content:attr(data-placeholder);color:#968a7b;font-style:italic}.note-text ul{margin-top:0}.note-text.draw-disabled{pointer-events:none}.note-pages canvas{position:absolute;inset:0;width:100%;height:100%;z-index:3;touch-action:none;pointer-events:none}.note-pages canvas.active{pointer-events:auto}.note-status{height:24px;display:flex;justify-content:space-between;font:10px var(--sans);color:#8a765f;padding-top:7px}.bookmark{position:absolute;width:21px;height:62px;left:44%;bottom:-39px;background:var(--red);clip-path:polygon(0 0,100% 0,100% 100%,50% 78%,0 100%)}.cafe-sketch{position:absolute;right:27px;bottom:35px;color:rgba(73,82,53,.27);font:35px/18px var(--serif);text-align:center;pointer-events:none}.cafe-sketch span{font-size:11px;letter-spacing:.2em}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);opacity:0;background:#384c38;color:white;padding:11px 17px;border-radius:999px;z-index:120;transition:.25s;pointer-events:none;font-size:13px}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:820px){.topbar{height:auto;min-height:68px;padding:10px 14px;gap:12px;flex-wrap:wrap}.brand{font-size:27px}.account-btn span:last-child{display:none}nav{order:3;flex-basis:100%;justify-content:flex-start;gap:16px}.alphabet-grid{grid-template-columns:repeat(5,1fr);gap:9px}.stamp,.metro{display:none}.lesson-sheet{grid-template-columns:1fr}.symbol-panel{min-height:270px;border-right:0;border-bottom:1px solid #d1c2a8;padding:48px 28px 28px 55px}.symbol{font-size:120px}.lesson-copy{padding:34px 25px}.lesson-copy h2{font-size:36px}.note-backdrop{padding:10px;align-items:flex-end}.notebook{height:min(720px,91vh);width:100%;padding-left:48px}.rings{left:-10px}main{padding-top:24px}.category-grid{grid-template-columns:repeat(2,1fr)}.topic-card{min-height:130px;padding:18px 16px}}@media(max-width:480px){.alphabet-grid{grid-template-columns:repeat(4,1fr)}.letter-card{font-size:28px}.category-grid{grid-template-columns:1fr 1fr}.topic-card strong{font-size:24px}.example-row{grid-template-columns:28px 1fr 1fr;font-size:16px}.note-actions{flex-direction:column}.note-actions button{width:100%}.note-toolbar{gap:2px}}
/* Course pages stay like paper sheets; only the note modal keeps its spiral binding. */
.topbar{gap:24px}.brand,.account-btn{flex:0 0 auto}nav{justify-content:flex-start;flex:1 1 auto;min-width:0;gap:19px;padding:7px 2px 5px;scrollbar-width:auto;scrollbar-color:rgba(120,89,56,.5) transparent;cursor:grab;overscroll-behavior-x:contain}nav:active{cursor:grabbing}nav button{flex:0 0 auto}h1,h2,h3,p,.topic-card strong{overflow-wrap:anywhere}.lesson-sheet{grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr)}.lesson-sheet:before{display:none}.symbol-panel{min-width:0;padding-left:42px}.lesson-copy{min-width:0}.symbol{max-width:100%;font-size:clamp(78px,13vw,175px);line-height:.78;overflow-wrap:anywhere}.symbol.symbol-word{font-size:clamp(48px,7.2vw,118px);letter-spacing:-.075em;line-height:.82}.lesson-copy h2{font-size:clamp(32px,4.1vw,42px);line-height:1}.rule,.example-row strong,.example-row span{overflow-wrap:anywhere}.example-row{grid-template-columns:34px minmax(0,1fr) minmax(0,1fr)}.ipa-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.ipa-group{background:rgba(252,245,232,.72);border:1px solid rgba(97,75,46,.23);border-radius:8px;padding:20px}.ipa-group h2{font:600 28px var(--serif);color:var(--green);margin-bottom:12px}.ipa-list{display:grid;gap:8px}.ipa-entry{width:100%;display:grid;grid-template-columns:44px minmax(0,1fr);gap:10px;align-items:center;text-align:left;border:0;border-top:1px solid rgba(150,128,94,.25);background:transparent;padding:10px 0;color:#55483b;cursor:pointer;font:15px/1.3 var(--serif)}.ipa-entry:first-child{border-top:0}.ipa-entry:hover .ipa-symbol{color:var(--red)}.ipa-symbol{font:600 29px var(--serif);color:var(--red)}.ipa-entry small{display:block;color:#776957}@media(max-width:820px){.ipa-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.symbol-panel{padding-left:28px}}@media(max-width:480px){.ipa-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* The lesson sheet must become a single page on phones.  Keep this last so
   desktop typography adjustments can never override the mobile layout. */
@media(max-width:820px){
  .lesson-sheet{display:grid;grid-template-columns:minmax(0,1fr)}
  .symbol-panel{min-height:270px;padding:48px 28px 28px;border-right:0;border-bottom:1px solid #d1c2a8}
  .symbol,.symbol.symbol-word{font-size:clamp(64px,26vw,120px);line-height:.82;letter-spacing:-.075em}
  .lesson-copy{padding:34px 25px}
  .lesson-copy h2{font-size:36px}
  .example-row{grid-template-columns:28px minmax(0,1fr) minmax(0,1fr);font-size:16px}
}
