/* Hallmark · pre-emit critique: P4 H5 E5 S5 R5 V4
 * genre: editorial · macrostructure: Long Document / application form
 * theme: Muses locked DESIGN.md · light paper / Japanese gothic / teal
 * audience: adult office workers · use: course application · tone: soft, calm
 * nav: none · footer: none (user-requested embed scope) · motion: focus/color only
 */
*, *::before, *::after { box-sizing: border-box; }
html, body { overflow-x: clip; }
body.muses-form-page { margin: 0; background: var(--color-surface); color: var(--color-ink); font-family: var(--font-body); font-size: 16px; line-height: 1.8; }
.muses-shell { width: min(100%, 760px); margin-inline: auto; padding: var(--space-lg) max(var(--space-sm), env(safe-area-inset-right)) var(--space-xl) max(var(--space-sm), env(safe-area-inset-left)); }
.muses-document { min-width: 0; }
.muses-intro { border-top: 4px solid var(--color-accent); padding-top: var(--space-md); padding-bottom: var(--space-md); margin-bottom: var(--space-lg); border-bottom: var(--rule-thin) solid var(--color-divider); }
.muses-brand { margin: 0 0 var(--space-sm); font-size: 13px; color: var(--color-ink-2); }
.muses-brand span { color: var(--color-accent-dark); font-weight: 700; margin-inline-start: var(--space-3xs); }
.muses-intro h1 { font-family: var(--font-display); font-size: clamp(25px, 4.5vw, 34px); font-weight: 700; font-style: normal; line-height: 1.5; letter-spacing: .02em; margin: 0 0 var(--space-xs); overflow-wrap: anywhere; min-width: 0; }
.muses-lead { margin: 0; font-size: 15px; }
.muses-required-note { margin: var(--space-xs) 0 0; color: var(--color-ink-2); font-size: 13px; }
.muses-required-note span { color: var(--color-error); }
.muses-content { overflow-wrap: anywhere; }
.muses-content > p:empty { display: none; }
.muses-content img { max-width: 100%; height: auto; }
.muses-content .fluentform { width: 100%; min-width: 0; }
.muses-content .fluentform .ff-el-group { margin-bottom: var(--space-lg); }
.muses-content .fluentform .ff-el-group:has(.ff-el-form-check) { padding: var(--space-sm); background: var(--color-field-group); border-radius: var(--radius-input); }
.muses-content .fluentform .ff-el-input--label { margin-bottom: var(--space-2xs); }
.muses-content .fluentform .ff-el-input--label label { color: var(--color-ink); font-size: 16px; font-weight: 700; line-height: 1.7; }
.muses-content .fluentform .ff-el-is-required.asterisk-right label::after { content: '＊'; color: var(--color-error); font-size: 13px; margin-inline-start: var(--space-3xs); }
.muses-content .fluentform .ff-el-form-control { display: block; width: 100%; max-width: 100%; min-width: 0; min-height: 52px; height: auto; padding: 12px 14px; background: var(--color-surface); border: 1.5px solid var(--color-rule); border-radius: var(--radius-input); color: var(--color-ink); font-family: var(--font-body); font-size: 16px; line-height: 1.5; box-shadow: none; transition: border-color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out); }
.muses-content .fluentform select.ff-el-form-control { padding-inline-end: 30px; text-overflow: ellipsis; }
.muses-content .fluentform .ff-el-form-control::placeholder { color: var(--color-ink-2); opacity: 1; }
.muses-content .fluentform .ff-el-form-control:hover { border-color: var(--color-accent); }
.muses-content .fluentform .ff-el-form-control:focus { border-color: var(--color-focus); outline: 2px solid var(--color-focus); outline-offset: 2px; }
.muses-content .fluentform .ff-el-form-check { margin: 0; }
.muses-content .fluentform .ff-el-form-check + .ff-el-form-check { margin-top: var(--space-2xs); }
.muses-content .fluentform .ff-el-form-check-label { display: flex; align-items: flex-start; gap: var(--space-xs); width: 100%; padding: var(--space-xs) var(--space-sm); border: 1.5px solid var(--color-rule); border-radius: var(--radius-input); background: var(--color-surface); cursor: pointer; color: var(--color-ink); font-size: 15px; line-height: 1.7; transition: border-color var(--dur-fast) var(--ease-out); }
.muses-content .fluentform .ff-el-form-check-label:hover { border-color: var(--color-accent); }
.muses-content .fluentform .ff-el-form-check-label:has(input:checked) { background: var(--color-accent-soft); border-color: var(--color-accent-dark); }
.muses-content .fluentform .ff-el-form-check-label:has(input:focus-visible) { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.muses-content .fluentform .ff-el-form-check-input { float: none; position: static; flex: 0 0 auto; width: 20px; height: 20px; margin: 3px 0 0; accent-color: var(--color-accent-dark); }
.muses-content .fluentform .ff-el-form-check-label span { min-width: 0; }
.muses-content .fluentform .ff_submit_btn_wrapper { margin-top: var(--space-xl); margin-bottom: 0; text-align: center; }
.muses-content .fluentform .ff-btn-submit { display: inline-flex; align-items: center; justify-content: center; width: min(100%, 320px); min-height: 56px; padding: 14px 24px; border: 0; border-radius: var(--radius-input); background: var(--color-accent-dark); color: var(--color-white); font-family: var(--font-body); font-size: 17px; font-weight: 700; line-height: 1.5; white-space: nowrap; cursor: pointer; box-shadow: none; transition: background-color var(--dur-fast) var(--ease-out); }
.muses-content .fluentform .ff-btn-submit:hover { background: var(--color-ink); opacity: 1; }
.muses-content .fluentform .ff-btn-submit:active { background: var(--color-accent-dark); }
.muses-content .fluentform .ff-btn-submit:focus-visible, .skip-link:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 4px; }
.muses-content .fluentform .ff-btn-submit:disabled, .muses-content .fluentform .ff-btn-submit[aria-disabled="true"] { opacity: .55; cursor: not-allowed; }
.muses-content .fluentform .ff-btn-submit.ff-working, .muses-content .fluentform .ff-btn-submit[aria-busy="true"] { opacity: .7; cursor: progress; }
.muses-content .fluentform .ff-el-form-control:disabled { background: var(--color-paper-2); opacity: .65; cursor: not-allowed; }
.muses-content .fluentform .ff-el-is-error .ff-el-form-control, .muses-content .fluentform .ff-el-form-control[aria-invalid="true"] { border-color: var(--color-error); }
.muses-content .fluentform .error, .muses-content .fluentform .text-danger, .muses-content .ff-errors-in-stack { color: var(--color-error); font-size: 14px; }
.muses-content .ff-message-success { padding: var(--space-md); border: var(--rule-thin) solid var(--color-success); border-radius: var(--radius-input); background: var(--color-accent-soft); color: var(--color-ink); box-shadow: none; }
.skip-link { position: absolute; top: -100px; inset-inline-start: var(--space-sm); padding: var(--space-2xs) var(--space-sm); background: var(--color-surface); color: var(--color-ink); z-index: 99999; white-space: nowrap; }
.skip-link:focus { top: var(--space-sm); }
@media (min-width: 48rem) { .muses-shell { padding: var(--space-xl) var(--space-lg) var(--space-2xl); } .muses-intro { padding-top: var(--space-lg); } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; } }

/* Root-only placeholder; application pages retain their layout. */
.muses-home { padding-block: var(--space-2xl); border-top: 4px solid var(--color-accent); margin-top: var(--space-xl); }
.muses-home h1 { margin: 0 0 var(--space-sm); font-family: var(--font-display); font-size: 32px; font-weight: 700; font-style: normal; color: var(--color-accent-dark); }
.muses-home p { margin: 0; color: var(--color-ink-2); font-size: 16px; }
