@import url('./university-filled-actions.css');
@font-face{font-family:ReviewedNunito;src:url('/fonts/nunito/Nunito-wght.ttf') format('truetype');font-style:normal;font-weight:200 1000;font-display:swap;unicode-range:U+0000-024F,U+0300-036F,U+1E00-1EFF,U+2000-206F,U+20A0-20CF}
/* Layout adapter only: the professor's bubble is the shared Pixel Pot skin. */
.pilot-loading{max-width:40rem;margin:12vh auto;padding:24px}
html body :is(#university-dialog,#university-lessons-library){--pilot-ink:#292733;--pilot-surface:#f4f0fa;--pilot-line:#aca8b5;--pilot-blue:#3772ae;--pilot-mint:#218452;--pilot-yellow:#916810}
html[data-ui-theme=dark] body :is(#university-dialog,#university-lessons-library){--pilot-ink:#e6e6e6;--pilot-surface:#24272a;--pilot-line:#41464b;--pilot-blue:var(--uni-colour-blue);--pilot-mint:var(--uni-colour-green);--pilot-yellow:#f6d45e}
html body :is(#university-dialog,#university-lessons-library) .pilot-button{border:3px solid var(--pilot-blue);border-radius:14px;background:var(--pilot-surface);color:var(--pilot-blue);font:600 17px/1.25 Nunito,sans-serif;padding:10px 16px;min-height:42px;box-shadow:none;cursor:pointer;outline:none;transition:transform .08s}
html body :is(#university-dialog,#university-lessons-library) .pilot-button[data-tone=mint]{color:var(--pilot-mint);border-color:var(--pilot-mint)}
html body :is(#university-dialog,#university-lessons-library) .pilot-button[data-tone=yellow]{color:var(--pilot-yellow);border-color:var(--pilot-yellow)}
html body :is(#university-dialog,#university-lessons-library) .pilot-button:active{transform:translateY(2px) scale(.98)}
html body :is(#university-dialog,#university-lessons-library) .pilot-button:focus-visible{filter:brightness(1.18);transform:scale(1.04)}
html body :is(#university-dialog,#university-lessons-library)[data-lesson=pilot] .uni-exercise{display:block;width:100%;max-width:100%;height:auto;min-height:0}
html body :is(#university-dialog,#university-lessons-library)[data-lesson=pilot] .uni-exercise.pilot-scene-host{display:flex;flex-direction:column;justify-content:center;min-height:100%}
html body :is(#university-dialog,#university-lessons-library)[data-lesson=pilot] .uni-scroll{overflow:auto;padding-bottom:28px}
/* Keep the familiar Settings switch, centred between the title and keyboard. */
html body #university-dialog[data-lesson=pilot][data-practice=true] .uni-exercise{display:flex;flex-direction:column;min-height:100%;gap:0}
html body #university-dialog[data-lesson=pilot][data-practice=true] .uni-exercise>h2{flex:none}
html body #university-dialog[data-lesson=pilot][data-practice=true] .uni-keyboard-choices{display:flex;flex:1;flex-direction:column;justify-content:center;margin:0;padding:12px 0;box-sizing:border-box}
/* Reserve both layouts before focus opens the keyboard, including while the
   professor transition is inert. Switching layouts must not move the lesson. */
html body #university-dialog[data-lesson=pilot][data-practice=true]{--pilot-practice-keyboard-height:clamp(224px,32dvh,286px)}
html body #university-dialog[data-lesson=pilot][data-practice=true] .uni-keyboard-slot{display:block!important;flex:none!important;height:var(--pilot-practice-keyboard-height)!important;min-height:var(--pilot-practice-keyboard-height)!important;max-height:var(--pilot-practice-keyboard-height)!important}
@media(min-width:1000px) and (min-height:700px){html body #university-dialog[data-lesson=pilot][data-practice=true]{--pilot-practice-keyboard-height:clamp(260px,34dvh,460px)}}
@media(max-height:720px) and (orientation:portrait){html body #university-dialog[data-lesson=pilot][data-practice=true]{--pilot-practice-keyboard-height:182px}}
/* The compact keyboard typography applies before focus too. */
@media(max-height:700px) and (orientation:portrait){
 html body #university-dialog[data-lesson=pilot][data-practice=true] .uni-exercise h2{font-size:22px;margin-bottom:6px}
 html body #university-dialog[data-lesson=pilot][data-practice=true] .uni-answer{min-height:42px;padding:5px 8px}
}
@media(orientation:landscape) and (max-height:600px){html body #university-dialog[data-lesson=pilot][data-practice=true]{--pilot-practice-keyboard-height:190px}}
@media(orientation:landscape) and (max-height:500px){
 html body #university-dialog[data-lesson=pilot][data-practice=true] .uni-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto auto 1fr auto;gap:5px 24px}
}
.pilot-teacher{max-width:780px;width:100%;margin:auto;display:flex;flex-direction:column;align-items:center;gap:16px}
html body :is(#university-dialog,#university-lessons-library) .pilot-teacher h2{font:700 24px/1.25 Nunito,sans-serif;margin:0;text-align:center}
.pilot-support{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;align-content:start;align-items:start;width:100%}
.pilot-support:empty{display:none}
.pilot-scene{width:100%;display:flex;flex-direction:column;align-items:center}
html body :is(#university-dialog,#university-lessons-library) .pilot-bubble{position:relative;width:min(100%,440px);box-sizing:border-box;padding:16px 22px 28px;cursor:pointer;flex:none}
/* Keep the shared speech font and skin. The University's generic tiny/pale rt
   rule must not leak into the professor's paper bubble, including in dark mode. */
html body :is(#university-dialog,#university-lessons-library) .pilot-bubble .pilot-speech-word{display:inline-block;white-space:nowrap;line-height:1.1;padding-top:.65em;vertical-align:baseline}
html body :is(#university-dialog,#university-lessons-library) .pilot-bubble .speech-text-region{overflow-wrap:normal;word-break:normal;line-break:strict}
html body :is(#university-dialog,#university-lessons-library) .pilot-bubble ruby{display:inline-block;position:relative;line-height:1;vertical-align:baseline}
html body :is(#university-dialog,#university-lessons-library) .pilot-bubble rt{display:contents;font:inherit;color:inherit!important}
html body :is(#university-dialog,#university-lessons-library) .pilot-bubble .pilot-ruby-reading{position:absolute;bottom:calc(100% - .04em);left:50%;transform:translateX(-50%);font:500 .6em/1.2 system-ui,sans-serif;white-space:nowrap;color:inherit!important;pointer-events:none}
.pilot-professor{height:185px;width:256px;overflow:hidden;opacity:0;flex:none}
.pilot-professor canvas{width:400px;height:400px;max-width:none;display:block;margin-top:-130px;margin-left:-72px;image-rendering:pixelated}
.pilot-professor-ready{opacity:1;transform-origin:center bottom}
.pilot-small,.pilot-audio-missing{font:14px/1.45 Nunito,sans-serif;opacity:.8}
html body :is(#university-dialog,#university-lessons-library) .pilot-example{margin:0;padding:14px;border:2px solid var(--pilot-line);border-radius:14px;max-width:100%;background:var(--pilot-surface);color:var(--pilot-ink)}
.pilot-sentence{display:flex;align-items:baseline;justify-content:center;flex-wrap:wrap;gap:6px;padding-top:10px}
html body :is(#university-dialog,#university-lessons-library) .pilot-segment{font-size:28px;padding:5px 8px;min-height:0}
.pilot-segment .uni-jp{font-size:inherit}
.pilot-translation{margin:12px 0;font:18px/1.4 Nunito,sans-serif;text-align:center}
.pilot-audio{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}
.pilot-audio-missing{display:block;margin-top:8px}
.pilot-explanation{margin-top:12px;padding:14px;border-top:2px solid var(--pilot-line);font:18px/1.55 Nunito,sans-serif}
.pilot-explanation h4{margin:0 0 6px;font:700 16px Nunito,sans-serif}
.pilot-explanation p{margin:0 0 12px}
.pilot-word{padding:12px;border:2px solid var(--pilot-line);border-radius:14px;text-align:center;min-width:110px;background:var(--pilot-surface);color:var(--pilot-ink)}
.pilot-word-jp{font-size:28px;margin-top:10px}
.pilot-word>span,.pilot-word>small{display:block}.pilot-word-meaning{margin:10px 0}
.pilot-word-compact{min-width:95px;flex:1;max-width:170px}.pilot-word-compact p{margin:8px 0 0;font:16px/1.3 Nunito,sans-serif}
html body :is(#university-dialog,#university-lessons-library) .pilot-word{display:flex;flex-direction:column;align-items:center;gap:6px}
html body :is(#university-dialog,#university-lessons-library) .pilot-word-compact .pilot-word-jp{font-size:26px;white-space:nowrap;flex:none}
html body :is(#university-dialog,#university-lessons-library) .pilot-word-jp .uni-jp{font-size:inherit!important;white-space:nowrap}
.pilot-words{display:flex;gap:12px;flex-wrap:wrap}
/* Fiches: compact blocks and audio tiles, shared by the lesson and Mes cours.
   Deliberately independent of the professor and its saved placement. */
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche{--fiche-paper:#fffaf1;--fiche-inset:#eee7f5;--fiche-border:#a697b6;--fiche-ink:#44315c;--fiche-audio:#1685d5;--fiche-explain:#267650;--fiche-copy:18px;max-width:740px;width:100%;margin:0 auto;display:grid;gap:12px;padding:4px 0 20px;box-sizing:border-box;color:var(--fiche-ink);font:600 var(--fiche-copy)/1.4 ReviewedNunito,sans-serif;text-align:left}
html[data-ui-theme=dark] body :is(#university-dialog,#university-lessons-library) .pilot-fiche{--fiche-paper:#24272a;--fiche-inset:#2d3135;--fiche-border:#41464b;--fiche-ink:#e6e6e6;--fiche-audio:var(--uni-colour-blue);--fiche-explain:var(--uni-colour-green)}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche-heading{padding:0 4px 8px;text-align:center}
html body :is(#university-dialog,#university-lessons-library)[data-screen] .pilot-fiche h2{font:400 28px/1.25 var(--uni-ui-font);color:var(--fiche-ink);text-align:center;text-wrap:balance;margin:0}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche-section{border:3px solid var(--fiche-border);border-radius:17px;padding:12px;min-width:0;background:var(--fiche-paper);box-shadow:none}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche h3{font:400 17px/1.25 var(--uni-ui-font);text-transform:uppercase;letter-spacing:.025em;margin:0 0 10px;color:var(--fiche-ink)}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche p,html body :is(#university-dialog,#university-lessons-library) .pilot-fiche li{font:600 var(--fiche-copy)/1.4 ReviewedNunito,sans-serif;color:var(--fiche-ink);margin:0;overflow-wrap:normal;word-break:normal}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche .uni-jp{font:400 1em/1.45 var(--uni-word-font);color:inherit}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche .uni-jp rt{font:inherit;color:inherit;opacity:1}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche .uni-ruby-reading{font:500 .48em/1.1 ReviewedNunito,sans-serif;color:inherit;opacity:.9}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche button{appearance:none;-webkit-tap-highlight-color:transparent;outline:none;box-shadow:none;cursor:pointer;transition:transform 85ms ease;touch-action:manipulation}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche button:active{transform:translateY(2px) scale(.97)}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche button:focus-visible{filter:brightness(1.12);transform:scale(1.04)}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche-tile{display:inline-flex;align-items:baseline;justify-content:center;vertical-align:middle;gap:0;white-space:nowrap;max-width:100%;min-width:0;min-height:0;border:3px solid var(--fiche-border);border-radius:11px;padding:8px 9px 5px;margin:0;background:var(--fiche-inset);color:var(--fiche-ink);font:400 26px/1.45 var(--uni-word-font);box-sizing:border-box}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche-tile[data-audible]{color:var(--fiche-audio);border-color:var(--fiche-audio);background:var(--fiche-paper)}
/* Green identifies explanations even before opening; audio-only tiles stay blue. */
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche-tile[aria-expanded]{color:var(--fiche-explain);border-color:var(--fiche-explain)}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche-tile[aria-expanded=true]{background:var(--fiche-inset)}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche p .pilot-fiche-tile,html body :is(#university-dialog,#university-lessons-library) .pilot-fiche li .pilot-fiche-tile,html body :is(#university-dialog,#university-lessons-library) .pilot-fiche h3 .pilot-fiche-tile{font-size:20px;padding:6px 5px 3px;margin:3px 1px;border-width:2px;border-radius:8px}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche-mark{font:inherit;color:inherit;white-space:nowrap}
/* Repeated Japanese in prose uses the existing course highlighter, not an
   extra button. Word boundaries/readings stay those of the shared renderer. */
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche-highlight{display:inline-block;max-width:100%;font:400 20px/1.45 var(--uni-word-font);color:var(--fiche-ink);vertical-align:baseline;box-decoration-break:clone;-webkit-box-decoration-break:clone}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche-highlight[data-reading]{padding-top:.35em}
html body :is(#university-dialog,#university-lessons-library) .pilot-formula-line{container-type:inline-size;display:flex;flex-wrap:wrap;align-items:stretch;justify-content:space-between;gap:6px}
html body :is(#university-dialog,#university-lessons-library) .pilot-formula-group{display:flex;align-items:stretch;gap:6px;flex:1 0 auto;min-width:0}
html body :is(#university-dialog,#university-lessons-library) .pilot-formula-line .pilot-fiche-tile{flex:1 0 auto;align-items:center;padding:10px 7px 7px;font-size:clamp(22px,8.6cqi,34px)}
html body :is(#university-dialog,#university-lessons-library) .pilot-formula-slot{flex:1 0 auto;display:inline-flex;align-items:center;justify-content:center;border:2px solid var(--fiche-border);border-radius:11px;background:var(--fiche-inset);padding:12px 10px;font:600 17px/1.3 ReviewedNunito,sans-serif;min-height:48px;box-sizing:border-box}
html body :is(#university-dialog,#university-lessons-library) .pilot-formula-operator{align-self:center;font:600 20px/1 ReviewedNunito,sans-serif}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche .pilot-formula-meaning{font:400 20px/1.3 var(--uni-ui-font);text-align:center;margin-top:12px}
html body :is(#university-dialog,#university-lessons-library) .pilot-definition{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
html body :is(#university-dialog,#university-lessons-library) .pilot-definition>.pilot-fiche-tile{flex:none;font-size:30px;padding:10px 12px 6px}
html body :is(#university-dialog,#university-lessons-library) .pilot-definition>p{flex:1 1 140px;min-width:0}
html body :is(#university-dialog,#university-lessons-library) .pilot-translations{display:grid;gap:6px;margin-top:10px}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche .pilot-example{border:0;border-radius:0;background:none;padding:0;margin:0;display:grid;gap:9px;min-width:0}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche-section>p+.pilot-example{margin-top:12px}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche .pilot-example+.pilot-example{margin-top:18px}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche .pilot-sentence{display:flex;flex-wrap:wrap;align-items:stretch;justify-content:center;gap:6px;padding:0;line-height:1.45}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche .pilot-sentence>.pilot-fiche-tile{flex:1 0 auto;max-width:100%;font-size:26px;padding:8px 5px 5px}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche .pilot-translation{position:relative;border:0;border-radius:10px;background:var(--fiche-inset);padding:9px 12px;margin:0;color:var(--fiche-ink);text-align:center;font:400 20px/1.3 var(--uni-ui-font);min-height:0;width:100%;box-sizing:border-box}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche .pilot-example>button.pilot-translation{padding-inline:40px;overflow-wrap:normal;word-break:normal}
html body :is(#university-dialog,#university-lessons-library) .pilot-phrase-sound{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:24px;height:24px;color:var(--fiche-audio)}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche .pilot-explanation{margin:0;padding:12px 0 0;border:0;border-top:2px solid var(--fiche-border);border-radius:0;background:none;box-shadow:none}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche .pilot-explanation[hidden]{display:none}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche .pilot-explanation[data-unfolding]{box-sizing:border-box;overflow:hidden}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche .pilot-explanation h4{font:400 17px/1.3 var(--uni-ui-font);color:var(--fiche-explain);margin:0 0 5px}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche .pilot-explanation p+h4{margin-top:12px}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche .pilot-words{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:stretch}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche .pilot-word{container-type:inline-size;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;align-items:stretch;justify-content:stretch;min-width:0;min-height:0;width:100%;max-width:none;padding:0;margin:0;border:2px solid var(--fiche-border);border-radius:11px;background:var(--fiche-paper);color:var(--fiche-ink);box-sizing:border-box}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche .pilot-word-jp{display:flex;align-items:center;justify-content:center;margin:0;padding:9px 2px 6px;background:var(--fiche-inset);border-radius:8px 0 0 8px;font-size:clamp(18px,15.5cqi,32px);line-height:1.45;color:var(--fiche-audio);min-width:0}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche .pilot-word-meaning{display:flex;align-items:center;justify-content:center;text-align:center;white-space:normal;margin:0;padding:5px 4px;font:600 16px/1.2 ReviewedNunito,sans-serif;color:var(--fiche-ink);min-width:0}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche .pilot-word-notes{margin-top:10px}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche .pilot-small{display:block;font:600 15px/1.4 ReviewedNunito,sans-serif;opacity:.8;margin:8px 0 0;color:var(--fiche-ink)}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche ul{padding-left:20px;margin:10px 0}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche li+li{margin-top:8px}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche-link{border:2px solid var(--fiche-audio);border-radius:10px;background:var(--fiche-paper);color:var(--fiche-audio);font:600 17px/1.3 ReviewedNunito,sans-serif;padding:9px 12px;margin-top:12px;max-width:100%}
@media(min-width:900px){html body :is(#university-dialog,#university-lessons-library) .pilot-fiche{--fiche-copy:21px;gap:16px}html body :is(#university-dialog,#university-lessons-library)[data-screen] .pilot-fiche h2{font-size:34px}html body :is(#university-dialog,#university-lessons-library) .pilot-fiche-section{padding:18px}html body :is(#university-dialog,#university-lessons-library) .pilot-fiche h3{font-size:19px}html body :is(#university-dialog,#university-lessons-library) .pilot-fiche .pilot-fiche-tile{font-size:30px}html body :is(#university-dialog,#university-lessons-library) .pilot-fiche .pilot-formula-line .pilot-fiche-tile{font-size:34px}html body :is(#university-dialog,#university-lessons-library) .pilot-fiche .pilot-word-meaning{font-size:20px}}
@media(max-width:360px){html body :is(#university-dialog,#university-lessons-library) .pilot-fiche{--fiche-copy:16px}html body :is(#university-dialog,#university-lessons-library) .pilot-fiche-section{padding:10px}html body :is(#university-dialog,#university-lessons-library) .pilot-formula-line{gap:4px}html body :is(#university-dialog,#university-lessons-library) .pilot-formula-line .pilot-fiche-tile{padding-inline:5px}html body :is(#university-dialog,#university-lessons-library) .pilot-formula-slot{font-size:15px;padding-inline:6px}html body :is(#university-dialog,#university-lessons-library) .pilot-fiche .pilot-word-meaning{font-size:14px}}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche [data-kana-only] .pilot-fiche-tile{font-size:28px;padding:6px 8px 4px}
/* The professor uses these same blocks inside the creator's reserved support
   area. Long demonstrations scroll there without shifting the actor or bubble. */
html body :is(#university-dialog,#university-lessons-library) .pilot-support.pilot-fiche{max-width:none;padding:0;margin:0}
html body :is(#university-dialog,#university-lessons-library) .pilot-support.pilot-fiche>.pilot-example{border:3px solid var(--fiche-border);border-radius:17px;background:var(--fiche-paper);padding:10px}
html body :is(#university-dialog,#university-lessons-library) .pilot-support.pilot-fiche>.pilot-words{width:100%}
html body :is(#university-dialog,#university-lessons-library) .pilot-support.pilot-fiche .pilot-sentence>.pilot-fiche-tile{font-size:24px}
html body :is(#university-dialog,#university-lessons-library) .pilot-support.pilot-fiche .pilot-translation{font-size:18px;padding:7px 10px}
html body :is(#university-dialog,#university-lessons-library) .pilot-support.pilot-fiche .pilot-example+.pilot-example{margin-top:0}
@media(prefers-reduced-motion:reduce){html body :is(#university-dialog,#university-lessons-library) .pilot-fiche button{transition:none}}
html body :is(#university-dialog,#university-lessons-library) .pilot-modal{color:var(--pilot-ink);background:var(--pilot-surface);border:3px solid var(--pilot-line);border-radius:20px;width:min(940px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:0;box-sizing:border-box}
.pilot-modal[open]{display:flex;flex-direction:column}
.pilot-modal::backdrop{background:#0009}
.pilot-modal-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;border-bottom:2px solid var(--pilot-line);flex:none}
.pilot-modal-header h2{font:700 22px Nunito,sans-serif;margin:0}
.pilot-modal-body{padding:20px;overflow:auto;min-height:0}
.pilot-modal-footer{padding:14px;display:flex;justify-content:center;gap:10px;flex-wrap:wrap;flex:none;border-top:2px solid var(--pilot-line)}
.pilot-modal-footer>.reviewed-skip{width:100%;min-height:var(--uni-action-height);font:var(--uni-action-font)/1.1 UniversityActions,var(--uni-ui-font)}
.pilot-library-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding:16px 0;border-bottom:1px solid var(--pilot-line)}
.pilot-library-row small{width:100%;font:14px Nunito,sans-serif}
.pilot-preference{display:flex;gap:12px;align-items:center;margin:24px 0;font:17px Nunito,sans-serif}
@media(max-width:600px){.pilot-teacher{gap:12px}.pilot-professor{height:155px;width:230px}.pilot-professor canvas{width:320px;height:320px;margin-top:-100px;margin-left:-45px}.pilot-modal-body{padding:14px}.pilot-fiche{font-size:17px}.pilot-support{gap:6px}.pilot-word{min-width:calc(50% - 4px);box-sizing:border-box}html body :is(#university-dialog,#university-lessons-library) .pilot-word-compact{min-width:0;padding:8px 4px}.pilot-word-compact .pilot-word-jp{font-size:22px}.pilot-word-compact p{font-size:14px}.pilot-bubble{padding:12px 16px 26px!important}}
@media(prefers-reduced-motion:reduce){.pilot-professor-ready{animation:none}.pilot-button{transition:none!important}}
@media(max-width:600px){html body :is(#university-dialog,#university-lessons-library) .pilot-word-compact .pilot-word-jp{font-size:22px}html body :is(#university-dialog,#university-lessons-library) .pilot-teacher h2{font-size:22px;line-height:1.3}}

/* Portrait staging: interactive material above the shared bubble, then the
   professor at the bottom edge. The footer overlays the cropped lower bust. */
@media(max-width:600px) and (orientation:portrait){
 html body :is(#university-dialog,#university-lessons-library)[data-pilot-professor] .uni-shell{position:relative;padding-bottom:0;gap:10px;overflow:hidden}
 html body :is(#university-dialog,#university-lessons-library)[data-pilot-professor] .uni-scroll{overflow:hidden;padding:0;display:flex;flex:1;min-height:0}
 html body :is(#university-dialog,#university-lessons-library)[data-pilot-professor] .uni-exercise.pilot-scene-host{height:100%;min-height:0;display:block;padding:0}
 html body :is(#university-dialog,#university-lessons-library)[data-pilot-professor] .uni-response{display:none}
 html body :is(#university-dialog,#university-lessons-library)[data-pilot-professor] .pilot-scene-host .pilot-teacher{--professor-height:clamp(300px,39dvh,330px);height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto var(--professor-height);gap:10px;align-items:stretch;margin:0;max-width:none}
 html body :is(#university-dialog,#university-lessons-library)[data-pilot-professor] .pilot-scene-host .pilot-teacher>h2{grid-row:1;margin:0;text-align:center}
 html body :is(#university-dialog,#university-lessons-library)[data-pilot-professor] .pilot-scene-host .pilot-support{grid-row:2;display:flex;align-content:start;align-items:start;min-height:0;overflow:auto;overscroll-behavior:contain;gap:8px;padding:6px 3px}
 html body :is(#university-dialog,#university-lessons-library)[data-pilot-professor] .pilot-scene-host .pilot-support:empty{display:block}
 html body :is(#university-dialog,#university-lessons-library)[data-pilot-professor] .pilot-scene-host .pilot-support .pilot-example{width:100%;box-sizing:border-box}
 html body :is(#university-dialog,#university-lessons-library)[data-pilot-professor] .pilot-scene-host .pilot-word-compact{gap:4px;padding:6px 4px}
 html body :is(#university-dialog,#university-lessons-library)[data-pilot-professor] .pilot-scene-host .pilot-word-compact .pilot-word-jp{margin:6px 0 0}
 html body :is(#university-dialog,#university-lessons-library)[data-pilot-professor] .pilot-scene-host .pilot-word-compact p{margin:0;font:14px/1.25 Nunito,sans-serif}
 html body :is(#university-dialog,#university-lessons-library)[data-pilot-professor] .pilot-scene-host .pilot-scene{display:contents}
 html body :is(#university-dialog,#university-lessons-library)[data-pilot-professor] .pilot-scene-host .pilot-bubble{grid-row:3;align-self:end;justify-self:center;width:100%;max-width:440px;z-index:1}
 html body :is(#university-dialog,#university-lessons-library)[data-pilot-professor] .pilot-scene-host .pilot-professor{grid-row:4;width:100%;height:var(--professor-height);position:relative;overflow:hidden;clip-path:inset(0 0 calc(var(--uni-action-height) + var(--uni-bottom)) 0);pointer-events:none}
 html body :is(#university-dialog,#university-lessons-library)[data-pilot-professor] .pilot-scene-host .pilot-professor canvas{position:absolute;width:1024px;height:1024px;left:50%;margin:0 0 0 -512px;top:-376px;max-width:none}
 html body :is(#university-dialog,#university-lessons-library)[data-pilot-professor] .uni-footer{position:absolute;bottom:var(--uni-bottom);left:var(--uni-gutter);right:var(--uni-gutter);width:auto;z-index:2}
}

/* Four creator compositions, received 12 October. Positions belong to this
   isolated pilot; skin, speech, sprite animation and lesson content stay shared. */
html body :is(#university-dialog,#university-lessons-library)[data-pilot-composed] .uni-shell{overflow:hidden;padding-bottom:0}
html body :is(#university-dialog,#university-lessons-library)[data-pilot-composed] .uni-scroll{display:block;overflow:hidden}
html body :is(#university-dialog,#university-lessons-library)[data-pilot-composed] .pilot-scene-host{display:block!important;height:auto!important;min-height:0!important;margin:0!important}
html body :is(#university-dialog,#university-lessons-library)[data-pilot-composed] .pilot-teacher{display:block!important;height:auto!important;min-height:0!important;margin:0 auto!important}
html body :is(#university-dialog,#university-lessons-library)[data-pilot-composed] .pilot-teacher .pilot-scene{display:contents}
html body :is(#university-dialog,#university-lessons-library)[data-pilot-composed] .uni-response{display:none}
html body :is(#university-dialog,#university-lessons-library)[data-pilot-composed] .uni-footer{position:absolute;bottom:var(--uni-bottom);left:var(--uni-gutter);right:var(--uni-gutter);width:auto;z-index:10}
.pilot-placement-layer{position:absolute;inset:0;pointer-events:none;z-index:5;overflow:clip}
.pilot-placement-layer :is(.pilot-professor,.pilot-bubble,.pilot-support){position:absolute!important;margin:0!important;max-width:none!important;max-height:none!important;min-height:0!important;box-sizing:border-box!important}
.pilot-placement-layer .pilot-professor{clip-path:none!important;overflow:visible!important;pointer-events:none!important;z-index:1}
.pilot-placement-layer .pilot-professor canvas{position:absolute!important;margin:0!important;max-width:none!important;image-rendering:pixelated}
.pilot-placement-layer .pilot-bubble{height:auto!important;min-height:0!important;z-index:4;pointer-events:auto!important}
.pilot-placement-layer .pilot-support{display:flex!important;flex-wrap:wrap!important;align-content:start!important;justify-content:center!important;align-items:start!important;gap:8px!important;padding:4px!important;overflow:auto!important;z-index:3;pointer-events:auto!important}
.pilot-placement-layer .pilot-support:empty{pointer-events:none!important}
html body :is(#university-dialog,#university-lessons-library) .pilot-placement-layer .pilot-word-compact{padding:6px 4px!important;gap:4px!important;min-width:max-content!important;flex:1 0 auto!important}
html body :is(#university-dialog,#university-lessons-library) .pilot-placement-layer .pilot-word-compact .pilot-word-jp{margin:6px 0 0!important}
.pilot-placement-layer .pilot-word-jp .uni-jp-word{white-space:nowrap!important}
.pilot-placement-layer .pilot-word-compact p{margin:0!important;font-size:14px!important}
.pilot-placement-layer .pilot-example{width:100%;box-sizing:border-box}
.pilot-mystery-demo,.pilot-guided-options{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche :is(.pilot-mystery-demo [data-demonstrated=true],.pilot-guided-options [data-verdict=correct]){color:var(--fiche-explain);border-color:var(--fiche-explain)}
html body :is(#university-dialog,#university-lessons-library) .pilot-guided-options [data-verdict=incorrect]{color:#ff6f88;border-color:currentColor}
.pilot-guided-listen{width:52px;height:52px;align-items:center!important}
html body :is(#university-dialog,#university-lessons-library) .pilot-modal[data-pilot-composed]{width:100%;max-width:none;height:100%;max-height:none;margin:0;inset:0;border:0;border-radius:0}
.pilot-modal[data-pilot-composed] .pilot-modal-header{position:absolute;inset:0 0 auto;border:0;justify-content:flex-end;padding:12px 16px;pointer-events:none;z-index:10}
.pilot-modal[data-pilot-composed] .pilot-modal-header>h2{display:none}
.pilot-modal[data-pilot-composed] .pilot-modal-header>button{pointer-events:auto}
html body :is(#university-dialog,#university-lessons-library) .pilot-modal[data-pilot-composed] .pilot-course-heading{position:absolute;top:clamp(42px,13.5vw,60px);left:24px;right:24px;width:auto}
@media(max-width:360px){html body :is(#university-dialog,#university-lessons-library) .pilot-modal[data-pilot-composed] .pilot-modal-header>button{font-size:14px;min-height:32px;padding:6px 10px}}
.pilot-modal[data-pilot-composed] .pilot-modal-body{overflow:hidden}
.pilot-modal[data-pilot-composed] .pilot-modal-footer{position:absolute;bottom:14px;left:14px;right:14px;z-index:10;border:0}

/* The teacher's skip action keeps the University skin, in the screen corner.
   Do not change the exercise actions or the fiche's COMPRIS layout. */
html body :is(#university-dialog,#university-lessons-library)[data-pilot-professor] .uni-footer,
html body :is(#university-dialog,#university-lessons-library) .pilot-modal[data-pilot-composed] .pilot-modal-footer{
 position:absolute;left:auto;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));
 width:max-content;max-width:calc(100% - 32px);padding:0;justify-content:flex-end;z-index:10
}
html body :is(#university-dialog,#university-lessons-library)[data-pilot-professor] .uni-footer>[data-pilot-skip],
html body :is(#university-dialog,#university-lessons-library) .pilot-modal[data-pilot-composed] .pilot-modal-footer>.reviewed-skip{
 width:auto;max-width:100%;min-width:0;flex:0 1 auto
}
html body :is(#university-dialog,#university-lessons-library)[data-pilot-professor] .uni-footer>.pilot-skip-icon-button,
html body :is(#university-dialog,#university-lessons-library) .pilot-modal[data-pilot-composed] .pilot-modal-footer>.pilot-skip-icon-button{
 display:inline-flex;align-items:center;justify-content:center;width:52px;min-width:52px;height:52px;min-height:52px;padding:0;line-height:1
}
.pilot-skip-icon-button>svg{display:block;width:28px;height:28px;color:#1b1d1f;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}

html body :is(#university-dialog,#university-lessons-library) .pilot-modal:not([data-pilot-composed])>.pilot-modal-footer.uni-footer{
 position:static;width:100%;max-width:none;padding:14px;box-sizing:border-box;flex:none
}
/* Same discovery toast as creature-cards.css + interface-confort.css, scoped
   to the isolated pilot instead of loading their unrelated page layouts. */
html body :is(#university-dialog,#university-lessons-library) #discovery-notice{
 position:fixed;z-index:100;pointer-events:none;left:50%;right:auto;top:max(12px,env(safe-area-inset-top));bottom:auto;
 transform:translateX(-50%);width:max-content;max-width:min(600px,calc(100vw - 24px));box-sizing:border-box;
 padding:12px 20px;background:#e4f3df;color:#284c3a;border:2px solid #587b63;box-shadow:3px 3px #30493b;
 font:700 clamp(20px,3vw,36px)/1.2 PixelUI,sans-serif;text-align:center
}
html body :is(#university-dialog,#university-lessons-library) #discovery-notice.is-arriving{animation:discovery-arrive 6.4s both;transform-origin:center}
@keyframes discovery-arrive{0%{opacity:0;transform:translateX(-50%) scale(.5)}5%{opacity:1;transform:translateX(calc(-50% - 2px)) scale(1.06)}7%{transform:translateX(calc(-50% + 2px)) scale(1.02)}10%,85%{opacity:1;transform:translateX(-50%) scale(1)}100%{opacity:0;transform:translateX(-50%) scale(1)}}
@media(prefers-reduced-motion:reduce){html body :is(#university-dialog,#university-lessons-library) #discovery-notice.is-arriving{animation:none}}

/* Only the drawn actor's box is clickable, not the larger transparent canvas.
   Individual scale preserves all creator placement transforms and frames. */
html body :is(#university-dialog,#university-lessons-library) [data-dialogue-control]{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;transition:scale 95ms ease-out,translate 95ms ease-out}
html body :is(#university-dialog,#university-lessons-library) [data-dialogue-control][aria-disabled="false"]{cursor:pointer;pointer-events:auto!important}
html body :is(#university-dialog,#university-lessons-library) [data-dialogue-pressed]{scale:.97}
html body :is(#university-dialog,#university-lessons-library) .pilot-bubble[data-dialogue-pressed]{translate:var(--pilot-press-x,0px) var(--pilot-press-y,0px)}
html body :is(#university-dialog,#university-lessons-library) .pilot-professor canvas{pointer-events:none!important}
@media(prefers-reduced-motion:reduce){html body :is(#university-dialog,#university-lessons-library) [data-dialogue-control]{transition:none}}
/* Reading the board lowers the bubble without interrupting its shared writer. */
html body :is(#university-dialog,#university-lessons-library) .pilot-bubble[data-pilot-reading]{transition:transform 300ms cubic-bezier(.2,.7,.25,1),scale 95ms ease-out,translate 95ms ease-out}
html body :is(#university-dialog,#university-lessons-library) .pilot-bubble[data-pilot-reading-instant]{transition:none}
@media(prefers-reduced-motion:reduce){html body :is(#university-dialog,#university-lessons-library) .pilot-bubble[data-pilot-reading]{transition:none}}

/* Announcement and lesson title share one stable, centred top slot. */
html body :is(#university-dialog,#university-lessons-library) .pilot-teacher>h2.pilot-course-heading{
 display:grid;width:100%;text-align:center;margin:0;box-sizing:border-box;
 overflow:visible
}
html body :is(#university-dialog,#university-lessons-library) .pilot-course-heading>span{grid-area:1/1;align-self:center;min-width:0}
/* Three times the shared 24px speech type, only for the single-word notion. */
html body :is(#university-dialog,#university-lessons-library) .pilot-bubble[data-pilot-notion]{font-size:var(--pilot-notion-size,72px)!important}
html body :is(#university-dialog,#university-lessons-library) .pilot-bubble[data-pilot-notion] .speech-text-region{overflow:visible}
/* Use the top of the creator's support area while the notion is enlarged,
   leaving its example clear on short phones and tablets. Anchors stay intact. */
html body :is(#university-dialog,#university-lessons-library) .pilot-placement-layer .pilot-support[data-pilot-notion]{align-content:start!important;align-items:start!important}

/* The same fiche blocks extend to authored tables and kanji explanations. */
html body :is(#university-dialog,#university-lessons-library) .pilot-reference-table{display:grid;gap:10px;margin-top:12px}
html body :is(#university-dialog,#university-lessons-library) .pilot-reference-row{display:grid;grid-template-columns:repeat(var(--columns),minmax(0,1fr));gap:10px;padding:12px;border-radius:11px;background:var(--fiche-inset)}
html body :is(#university-dialog,#university-lessons-library) .pilot-reference-cell{min-width:0}
html body :is(#university-dialog,#university-lessons-library) .pilot-reference-cell h4{font:700 14px/1.3 ReviewedNunito,sans-serif;opacity:.75;margin:0 0 10px}
html body :is(#university-dialog,#university-lessons-library) .pilot-kanji-parts{display:flex;justify-content:center;flex-wrap:wrap;gap:14px;margin-top:16px}
html body :is(#university-dialog,#university-lessons-library) .pilot-kanji-part{text-align:center}
html body :is(#university-dialog,#university-lessons-library) .pilot-kanji-part>.pilot-fiche-tile{font-size:52px;min-width:78px;justify-content:center;align-items:center}
html body :is(#university-dialog,#university-lessons-library) .pilot-kanji-part p{margin-top:12px}
html body #university-lessons-library{--uni-ui-font:'Fusion Pixel',Pixel,monospace;--uni-word-font:'Noto Sans JP',sans-serif}
html body #university-lessons-library .pilot-modal{width:min(900px,96vw);height:min(94dvh,1000px);max-height:94dvh;background:var(--pilot-surface);color:var(--pilot-ink);border:3px solid var(--pilot-line);border-radius:20px;padding:16px}
.lesson-library{padding:20px;max-width:1000px;margin:auto}.lesson-library-list{display:grid;gap:12px}.lesson-library-card{padding:16px;border:3px solid var(--uni-line,#aca8b5);border-radius:16px;background:transparent;color:inherit;font:600 20px ReviewedNunito,sans-serif;text-align:left;cursor:pointer}.lesson-library-card small{display:block;font-size:14px;opacity:.7;margin-top:7px}
@media(max-width:560px){html body :is(#university-dialog,#university-lessons-library) .pilot-reference-row{grid-template-columns:1fr}html body :is(#university-dialog,#university-lessons-library) .pilot-reference-cell{display:grid;grid-template-columns:minmax(65px,.8fr) minmax(0,1.7fr);gap:12px;align-items:center}html body :is(#university-dialog,#university-lessons-library) .pilot-reference-cell h4{margin:0}}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche .pilot-word[data-wide]{grid-column:1/-1}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche .pilot-words{container-type:inline-size}
/* Five kana fit beside a neighbour when each Japanese half has 80px plus padding. */
@container(min-width:352px){html body :is(#university-dialog,#university-lessons-library) .pilot-fiche .pilot-word[data-wide=japanese][data-word-length="5"]{grid-column:auto}}
@container(min-width:416px){html body :is(#university-dialog,#university-lessons-library) .pilot-fiche .pilot-word[data-wide=japanese][data-word-length="6"]{grid-column:auto}}
@container(min-width:480px){html body :is(#university-dialog,#university-lessons-library) .pilot-fiche .pilot-word[data-wide=japanese][data-word-length="7"]{grid-column:auto}}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche .pilot-word .pilot-word-jp{font-size:clamp(16px,calc(45cqi / var(--word-units)),32px)}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche .pilot-words{grid-auto-rows:1fr}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche .pilot-word .pilot-word-meaning{padding-inline:1px;font-size:clamp(14px,calc(90cqi / var(--word-meaning-units)),16px)}
html body :is(#university-dialog,#university-lessons-library) .pilot-fiche .pilot-word[data-compact-meaning] .pilot-word-meaning{font-size:clamp(12px,calc(90cqi / var(--word-meaning-units)),16px)}
@media(min-width:900px){html body :is(#university-dialog,#university-lessons-library) .pilot-fiche .pilot-word .pilot-word-meaning{font-size:clamp(16px,calc(90cqi / var(--word-meaning-units)),20px)}}
