.u-mt-2 {margin-top: var(--space-2);} .u-mt-4 {margin-top: var(--space-4);} .u-mt-6 {margin-top: var(--space-6);} .u-mt-8 {margin-top: var(--space-8);} .u-mt-10 {margin-top: var(--space-10);} .u-mt-12 {margin-top: var(--space-12);} .u-mb-4 {margin-bottom: var(--space-4);} .u-mb-10 {margin-bottom: var(--space-10);} .u-mb-12 {margin-bottom: var(--space-12);} .u-measure {max-width: var(--measure); margin-inline: auto;} .u-measure-text {max-width: var(--measure-text);} .u-text-accent {color: var(--color-accent-text);} .u-text-inverse {color: var(--color-text-inverse);} .u-text-muted {color: var(--color-text-muted);} .u-text-sm {font-size: var(--text-sm);} .u-text-5xl {font-size: var(--text-5xl);} .u-link-inherit {color: inherit; text-decoration: underline;} .u-w-full {width: 100%;} .u-inline-flex {display: inline-flex;} .u-justify-start {justify-content: flex-start;} .error-stage {min-height: 60vh; display: flex; align-items: center;} .rubric {display: flex; align-items: center; gap: var(--space-5); padding-block: var(--space-3); border-bottom: 2px solid var(--color-gray-200); animation: fadeInUp 0.5s ease-out;} .rubric__text {flex: 0 0 auto; min-width: 0;} .rubric__title {font-size: var(--text-2xl); font-weight: var(--font-weight-semibold); letter-spacing: var(--tracking-tight); color: var(--color-text); margin: 0 0 var(--space-1) 0;} .rubric__meta {font-size: 13px; font-weight: var(--font-weight-medium); color: var(--color-text-muted); margin: 0; text-transform: uppercase; letter-spacing: var(--tracking-snug);} .rubric__rule {flex: 1 1 auto; height: 1px; background: linear-gradient(90deg, var(--color-gray-200) 0%, var(--color-accent-light) 50%, var(--color-gray-200) 100%); opacity: 0.6; animation: shimmer 2s ease-in-out infinite;} @keyframes shimmer {0%, 100% {opacity: 0.6;} 50% {opacity: 1;}} @keyframes fadeInUp {from {opacity: 0; transform: translateY(12px);} to {opacity: 1; transform: translateY(0);}}
form.is-loading {opacity: 0.65; pointer-events: none;} .form-char-counter {display: block; text-align: right; font-size: var(--text-xs); color: var(--color-text-muted); margin-top: var(--space-1); transition: color var(--transition-fast); user-select: none;} .form-char-counter--warn {color: var(--color-warning-dark);} .form-char-counter--limit {color: var(--color-error-strong); font-weight: var(--font-weight-semibold);} .form-file-upload {display: flex; flex-direction: column; gap: var(--space-1);} .form-file-trigger {display: inline-flex; align-items: center; gap: var(--space-2); padding: var(--space-3) var(--space-4); border: 1.5px dashed var(--field-border); border-radius: var(--field-radius); background: var(--color-bg-alt); color: var(--color-text-muted); font-size: var(--text-sm); font-family: var(--font-base); cursor: pointer; width: 100%; box-shadow: var(--field-shadow); transition: border-color var(--glow-speed) var(--glow-ease), background var(--glow-speed) var(--glow-ease), box-shadow var(--glow-speed) var(--glow-ease), color var(--glow-speed) var(--glow-ease), transform var(--glow-speed) var(--glow-ease);} .form-file-trigger:hover {border-color: var(--field-hover-border); background: var(--field-hover-bg); box-shadow: var(--upload-hover-shadow); color: var(--color-accent-text); transform: translate3d(0, -1px, 0);} .form-file-trigger:focus-visible {border-color: var(--field-hover-border); background: var(--field-hover-bg); box-shadow: var(--upload-hover-shadow); color: var(--color-accent-text); transform: translate3d(0, -1px, 0); outline: none;} .form-file-trigger input[type="file"] {display: none;} .form-file-selected {display: flex; align-items: center; gap: var(--space-2); font-size: var(--text-sm); color: var(--color-text-muted); min-height: 1.4em;} .form-file-hint {font-size: var(--text-xs); color: var(--color-text-light);} .application-form-wrap {position: relative; isolation: isolate; overflow: hidden; background-clip: padding-box; background: radial-gradient(80% 70% at 100% 0%, rgb(var(--c-wash) / 0.88), transparent 52%), linear-gradient(180deg, var(--color-bg), var(--color-bg-alt)); border: 1px solid var(--color-border); border-radius: var(--radius-xl); padding: var(--space-10) var(--space-8); max-width: 720px; margin: 0 auto; box-shadow: var(--card-shadow);} .application-form-wrap > * {position: relative; z-index: 1;} @media (max-width: 640px) {.application-form-wrap {padding: var(--space-6) var(--space-5);}} .application-form-wrap--info {display: flex; justify-content: center; max-width: 560px; padding: var(--space-8); text-align: center;} .application-form-title {font-family: var(--font-display); font-size: var(--text-2xl); font-weight: var(--font-weight-bold); color: var(--color-text); margin-bottom: var(--space-2);} .application-form-subtitle {font-size: var(--text-sm); color: var(--color-text-muted); line-height: var(--leading-relaxed); margin-bottom: var(--space-8);} .form-required-legend {font-size: var(--text-sm); color: var(--color-text-muted); line-height: var(--leading-relaxed); margin-bottom: var(--space-6);} .subject-hints .subject-hint[hidden] {display: none;} .form-input-hint {display: block; margin-top: var(--space-1); font-size: var(--text-xs); color: var(--color-text-light); line-height: var(--leading-relaxed);} .subject-hint:not(.subject-hint--panel) {display: flex; flex-direction: column; gap: var(--space-3); margin: 0 0 var(--space-5); padding: var(--space-4); background: var(--color-accent-bg); border: 1px solid var(--color-accent-bg-hover); border-left: 3px solid var(--color-accent); border-radius: var(--radius-md);} .subject-hint-line, .subject-hint-intro, .subject-hint-tail {margin: 0; font-size: var(--text-sm); color: var(--color-text-muted); line-height: var(--leading-relaxed);} .subject-hint-help {font-size: var(--text-sm);} .subject-hint-summary {cursor: pointer; list-style: none; display: inline-flex; align-items: center; gap: var(--space-2); font-weight: var(--font-weight-semibold); color: var(--color-accent-text);} .subject-hint-summary::-webkit-details-marker {display: none;} .subject-hint-summary::before {content: "›"; display: inline-block; font-size: 1.15em; line-height: 1; transition: transform var(--transition-fast);} .subject-hint-help[open] > .subject-hint-summary::before {transform: rotate(90deg);} .subject-hint-body {display: flex; flex-direction: column; gap: var(--space-2); margin-top: var(--space-3);} .subject-hint-list {margin: 0; padding-left: var(--space-5); display: flex; flex-direction: column; gap: var(--space-1); font-size: var(--text-sm); color: var(--color-text-muted);} .subject-hint-list li {line-height: var(--leading-relaxed);} .subject-hint-reassure {margin: 0; font-size: var(--text-xs); color: var(--color-text-light); font-style: italic;} .subject-hint-template {align-self: flex-start; display: inline-flex; align-items: center; gap: var(--space-2); padding: var(--space-2) var(--space-3); font-family: var(--font-base); font-size: var(--text-sm); font-weight: var(--font-weight-semibold); color: var(--color-accent-text); background: transparent; border: 1px solid var(--color-accent); border-radius: var(--radius-md); cursor: pointer; transition: background var(--transition-fast), color var(--transition-fast);} .subject-hint-template:hover, .subject-hint-template:focus-visible {background: var(--color-accent); color: var(--color-text-inverse); outline: none;} .subject-hint--panel {margin: 0 0 var(--space-5);} .subject-panel {display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); padding: var(--space-6); background: var(--color-bg-alt); border: 1px solid var(--color-border); border-radius: var(--radius-lg);} .subject-panel-title {margin: 0; font-family: var(--font-display); font-size: var(--text-lg); font-weight: var(--font-weight-bold); color: var(--color-text);} .subject-panel-body {margin: 0; font-size: var(--text-sm); color: var(--color-text-muted); line-height: var(--leading-relaxed);} .subject-panel-cta {margin-top: var(--space-1);} .subject-panel .open-badge {margin: 0;} @media (prefers-reduced-motion: reduce) {.subject-hint-summary::before, .subject-hint-template {transition: none;}}