@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/fb526027db1fc1ae-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/4da3161b738b07dd-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/af4bf8399d1aacdf-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fraunces Fallback;src:local("Times New Roman");ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.00%;size-adjust:115.45%}.__className_eb41fe{font-family:Fraunces,Fraunces Fallback;font-style:normal}.__variable_eb41fe{--font-fraunces:"Fraunces","Fraunces Fallback"}@font-face{font-family:Epilogue;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/f5ebe7c6e11a4cc3-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Epilogue;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/8a6acee7b2a440a7-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Epilogue;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/5c9b804ec7dd51d9-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Epilogue;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/f5ebe7c6e11a4cc3-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Epilogue;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/8a6acee7b2a440a7-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Epilogue;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/5c9b804ec7dd51d9-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Epilogue;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/f5ebe7c6e11a4cc3-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Epilogue;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/8a6acee7b2a440a7-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Epilogue;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/5c9b804ec7dd51d9-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Epilogue;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/f5ebe7c6e11a4cc3-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Epilogue;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/8a6acee7b2a440a7-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Epilogue;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/5c9b804ec7dd51d9-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Epilogue Fallback;src:local("Arial");ascent-override:71.15%;descent-override:21.16%;line-gap-override:0.00%;size-adjust:111.04%}.__className_40ab80{font-family:Epilogue,Epilogue Fallback;font-style:normal}.__variable_40ab80{--font-epilogue:"Epilogue","Epilogue Fallback"}@font-face{font-family:Fira Code;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/999e639cd9d85971-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Fira Code;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/9af6411484c7e20a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Fira Code;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e6b5cfd5a74e1cae-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Fira Code;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/6aacc40b7795b725-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Fira Code;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/67110d8fe39c5e84-s.woff2) format("woff2");unicode-range:u+2000-2001,u+2004-2008,u+200a,u+23b8-23bd,u+2500-259f}@font-face{font-family:Fira Code;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/046b90749014f852-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fira Code;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/3703c28dcda155b1-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fira Code;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/999e639cd9d85971-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Fira Code;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/9af6411484c7e20a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Fira Code;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e6b5cfd5a74e1cae-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Fira Code;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/6aacc40b7795b725-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Fira Code;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/67110d8fe39c5e84-s.woff2) format("woff2");unicode-range:u+2000-2001,u+2004-2008,u+200a,u+23b8-23bd,u+2500-259f}@font-face{font-family:Fira Code;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/046b90749014f852-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fira Code;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/3703c28dcda155b1-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fira Code Fallback;src:local("Arial");ascent-override:73.56%;descent-override:23.92%;line-gap-override:0.00%;size-adjust:134.59%}.__className_a2a2b2{font-family:Fira Code,Fira Code Fallback;font-style:normal}.__variable_a2a2b2{--font-fira-code:"Fira Code","Fira Code Fallback"}.navbar{background:rgba(244,246,255,.9);border-bottom:1px solid var(--border);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);position:sticky;top:0;z-index:40}.navbar-inner{max-width:80rem;margin:0 auto;padding:0 1.25rem;justify-content:space-between;height:3.75rem}.navbar-brand,.navbar-inner{display:flex;align-items:center}.navbar-brand{gap:.625rem;text-decoration:none}.navbar-logo{width:2rem;height:2rem;border-radius:var(--radius-md);background:var(--gradient-royal);display:flex;align-items:center;justify-content:center;color:#ffffff;font-size:.9375rem;font-weight:800;font-style:italic;flex-shrink:0;box-shadow:0 2px 8px rgba(65,105,225,.4)}.navbar-name{font-family:var(--font-display);font-weight:700;font-size:1.25rem;color:var(--text-100);transition:color .15s;letter-spacing:-.01em}.navbar-brand:hover .navbar-name{color:var(--royal-600)}.navbar-links{display:flex;align-items:center;gap:.125rem;font-size:.875rem}.navbar-divider{display:inline-block;width:1px;height:1rem;background:var(--surface-border);margin:0 .375rem}.navbar-username{color:var(--text-100);font-size:.875rem;font-weight:700;padding:0 .5rem;text-decoration:none;transition:color .15s}.navbar-username:hover{color:var(--royal-600)}.btn-primary{display:inline-flex;align-items:center;justify-content:center;background:var(--gradient-royal);color:#ffffff;font-weight:700;padding:.5625rem 1.25rem;border-radius:var(--radius-lg);border:none;cursor:pointer;transition:opacity .15s,transform .15s,box-shadow .15s;font-size:.875rem;text-decoration:none;font-family:inherit;letter-spacing:.01em;box-shadow:0 2px 8px rgba(65,105,225,.35)}.btn-primary:hover{opacity:.9;box-shadow:0 4px 18px rgba(65,105,225,.5);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-primary:focus-visible{outline:2px solid var(--royal-400);outline-offset:2px}.btn-primary:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;background:var(--surface-card);color:var(--royal-600);font-weight:500;padding:.5625rem 1.25rem;border-radius:var(--radius-lg);border:1px solid var(--border-light);cursor:pointer;transition:border-color .15s,box-shadow .15s,background .15s;font-size:.875rem;text-decoration:none;font-family:inherit}.btn-secondary:hover{border-color:var(--royal-500);background:var(--royal-100);box-shadow:0 2px 8px rgba(65,105,225,.1)}.btn-secondary:focus-visible{outline:2px solid var(--royal-400);outline-offset:2px}.btn-secondary:disabled{opacity:.45;cursor:not-allowed}.btn-ghost{display:inline-flex;align-items:center;justify-content:center;background:none;color:var(--text-300);font-weight:500;padding:.4375rem .875rem;border-radius:var(--radius-lg);border:none;cursor:pointer;transition:color .15s,background .15s;font-size:.875rem;text-decoration:none;font-family:inherit}.btn-ghost:hover{color:var(--royal-600);background:var(--surface-subtle)}.btn-block{width:100%}.btn-text{font-size:.875rem;background:none;border:none;cursor:pointer;padding:0;font-family:inherit}.btn-text--brand{color:var(--royal-600)}.btn-text--brand:hover{color:var(--royal-700);text-decoration:underline}.btn-text--danger{color:var(--color-error)}.btn-text--danger:hover{text-decoration:underline}.btn-lg{padding:.75rem 1.875rem;font-size:.9375rem}.card{background:var(--surface-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);border:1px solid var(--border);padding:1.5rem}.card-hover{transition:box-shadow .25s,border-color .25s,transform .25s}.card-hover:hover{box-shadow:var(--shadow-card-hover);border-color:var(--border-royal);transform:translateY(-2px)}.form-stack{gap:1rem}.form-group,.form-stack{display:flex;flex-direction:column}.form-group{gap:.375rem}.form-label{display:block;font-size:.75rem;font-weight:600;color:var(--text-200);font-family:var(--font-sans);letter-spacing:.05em;text-transform:uppercase}.form-input{width:100%;border:1px solid var(--surface-border);border-radius:var(--radius-md);padding:.625rem .875rem;background:var(--surface-card);color:var(--text-100);font-size:.875rem;transition:border-color .15s,box-shadow .15s;outline:none}.form-input::-moz-placeholder{color:var(--text-500)}.form-input::placeholder{color:var(--text-500)}.form-input:focus{border-color:var(--royal-500);box-shadow:0 0 0 3px rgba(65,105,225,.15)}.form-textarea{resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.form-label-optional{font-weight:400;text-transform:none;letter-spacing:0;color:var(--text-500);font-family:var(--font-sans);font-size:.75rem}.input-password-wrapper{position:relative}.input-password-wrapper .form-input{padding-right:2.75rem}.password-toggle{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--text-400);display:flex;align-items:center;padding:0;line-height:1}.password-toggle:hover{color:var(--text-100)}.form-error{background:var(--color-error-bg);color:var(--color-error);padding:.625rem 1rem;border-radius:var(--radius-md);font-size:.875rem;border:1px solid rgba(193,32,26,.25)}.form-actions{display:flex;gap:.5rem;padding-top:.5rem}.link{color:var(--royal-600)}.link:hover{color:var(--royal-700);text-decoration:underline}.badge{display:inline-flex;align-items:center;gap:.25rem;font-size:.6875rem;font-weight:600;padding:.125rem .625rem;border-radius:var(--radius-full);font-family:var(--font-sans);letter-spacing:.05em;text-transform:uppercase}.badge-brand{background:var(--royal-100);color:var(--royal-700);border:1px solid var(--royal-200)}.alert{padding:.75rem 1.25rem;border-radius:var(--radius-xl);font-size:.875rem;text-align:center;max-width:28rem;margin:0 auto 2rem;border:1px solid}.alert-success{background:var(--color-success-bg);border-color:#a7f3d0;color:var(--color-success)}.alert-warning{background:var(--color-warning-bg);border-color:#fcd59a;color:var(--color-warning)}.alert-error{background:var(--color-error-bg);border-color:#fecaca;color:var(--color-error)}.text-muted{color:var(--text-300)}.page-title{font-family:var(--font-display);font-size:1.625rem;font-weight:700;margin-bottom:.375rem;color:var(--text-100);letter-spacing:-.02em}.page-subtitle{color:var(--text-300);margin-bottom:1.75rem;font-size:.9375rem}@keyframes skeleton-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,var(--surface-subtle) 25%,#dde3f5 50%,var(--surface-subtle) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-md);display:block}.sk-title{height:1.875rem;margin-bottom:.5rem}.sk-body{height:1rem;margin-bottom:.375rem}.bank-card-skeleton{height:7.5rem;border-radius:var(--radius-2xl)}.question-item-skeleton{height:4rem;border-radius:var(--radius-lg);margin-bottom:.5rem}.student-item-skeleton{height:4.5rem;border-radius:var(--radius-lg);margin-bottom:.75rem}.result-item-skeleton{height:5.5rem;border-radius:var(--radius-xl);margin-bottom:.75rem}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem}.modal-box{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg,0 8px 32px rgba(0,0,0,.18));padding:2rem;max-width:26rem;width:100%}.modal-title{font-family:var(--font-display);font-size:1.25rem;font-weight:700;color:var(--text-200);margin-bottom:.75rem}.modal-body{font-size:.9375rem;color:var(--text-300);line-height:1.6;margin-bottom:1.5rem}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end}.hero{text-align:center;padding:6rem 0 5rem;position:relative;overflow:hidden;animation:fadeIn .5s ease both}.hero:before{content:"電車";position:absolute;top:-.5rem;left:50%;transform:translateX(-50%);font-family:var(--font-display);font-size:clamp(5rem,18vw,13rem);font-weight:900;color:rgba(65,105,225,.055);white-space:nowrap;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;line-height:1;letter-spacing:-.03em}.hero-title{font-family:var(--font-display);font-size:clamp(2.25rem,6vw,4rem);font-weight:700;color:var(--text-100);margin-bottom:1.25rem;line-height:1.1;animation:fadeUp .6s ease .1s both}.hero-subtitle,.hero-title{position:relative;z-index:1}.hero-subtitle{font-size:1.0625rem;color:var(--text-300);margin-bottom:.875rem;max-width:38rem;margin-left:auto;margin-right:auto;line-height:1.65;animation:fadeUp .6s ease .2s both}.hero-actions{display:flex;gap:.875rem;justify-content:center;position:relative;z-index:1;animation:fadeUp .6s ease .3s both}.hero-eyebrow{margin-bottom:1.25rem;position:relative;z-index:1;animation:fadeUp .6s ease .05s both}.hero-context{font-size:.9375rem;color:var(--text-400);margin-bottom:2.5rem;max-width:36rem;margin-left:auto;margin-right:auto;line-height:1.65;position:relative;z-index:1;animation:fadeUp .6s ease .28s both}.opening-statement{text-align:center;padding:3.5rem 1rem;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.opening-line{font-family:var(--font-display);font-size:clamp(1.125rem,2.5vw,1.625rem);font-weight:500;color:var(--text-400);letter-spacing:-.015em;line-height:1.5}.opening-line--accent{color:var(--text-100);font-weight:700}.home-section{padding:4rem 0;border-bottom:1px solid var(--border)}.section-heading{font-family:var(--font-display);font-size:clamp(1.375rem,3vw,1.875rem);font-weight:700;color:var(--text-100);letter-spacing:-.025em;margin-bottom:1.5rem;line-height:1.2}.section-body{color:var(--text-200);font-size:1rem;line-height:1.75;max-width:40rem;margin-bottom:.875rem}.section-body--muted{color:var(--text-400);font-style:italic}.audience-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem;margin-top:2rem}@media (max-width:640px){.audience-grid{grid-template-columns:1fr}}.audience-card{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-xl);padding:1.75rem;box-shadow:var(--shadow-card)}.audience-tag{font-size:.6875rem;font-weight:700;font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.1em;color:var(--royal-600);margin-bottom:.5rem}.audience-range{font-family:var(--font-display);font-size:1.0625rem;font-weight:600;color:var(--text-100);margin-bottom:.75rem;letter-spacing:-.01em}.audience-card p{font-size:.9375rem;color:var(--text-300);line-height:1.65;margin:0}.philosophy-list{list-style:none;padding:0;margin:.5rem 0 1rem;display:flex;flex-direction:column;gap:.625rem}.philosophy-list li{display:flex;align-items:flex-start;gap:.75rem;font-size:1rem;color:var(--text-200);line-height:1.65}.philosophy-list li:before{content:"—";color:var(--royal-400);flex-shrink:0;font-weight:700}.method-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem;margin-top:2rem}@media (max-width:640px){.method-grid{grid-template-columns:1fr}}.method-card{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-xl);padding:1.75rem;box-shadow:var(--shadow-card);transition:box-shadow .2s,border-color .2s,transform .2s}.method-card:hover{box-shadow:var(--shadow-card-hover);border-color:var(--border-royal);transform:translateY(-2px)}.method-step{font-family:var(--font-mono);font-size:.6875rem;font-weight:600;color:var(--royal-400);letter-spacing:.1em;margin-bottom:.875rem}.method-title{font-family:var(--font-display);font-size:1.0625rem;font-weight:700;color:var(--text-100);margin-bottom:.625rem;letter-spacing:-.01em}.method-desc{font-size:.9375rem;color:var(--text-300);line-height:1.65;margin:0}.results-list{list-style:none;padding:0;margin:.5rem 0 1rem;display:flex;flex-direction:column;gap:.75rem}.results-list li{display:flex;align-items:flex-start;gap:.875rem;font-size:1rem;color:var(--text-200);line-height:1.6}.results-list li:before{content:"";display:inline-block;width:.3125rem;height:.3125rem;border-radius:var(--radius-full);background:var(--royal-400);flex-shrink:0;margin-top:.5625rem}.membership-card{background:var(--gradient-royal);border-radius:var(--radius-2xl);padding:2.5rem;box-shadow:var(--shadow-glow);color:#ffffff;max-width:44rem;margin-top:2rem}.membership-plan-name{font-size:.6875rem;font-weight:700;font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.65);margin-bottom:1rem}.membership-price-row{display:flex;align-items:flex-end;gap:.375rem;margin-bottom:1rem}.membership-price{font-family:var(--font-display);font-size:3.5rem;font-weight:800;color:#ffffff;letter-spacing:-.04em;line-height:1}.membership-period{font-size:1rem;color:rgba(255,255,255,.6);padding-bottom:.5rem}.membership-desc{font-size:1rem;color:rgba(255,255,255,.85);line-height:1.65;margin-bottom:1.75rem;max-width:36rem}.membership-features{list-style:none;padding:1.5rem 0 0;margin:0 0 2rem;border-top:1px solid rgba(255,255,255,.18);display:flex;flex-direction:column;gap:.75rem}.membership-features li{display:flex;align-items:flex-start;gap:.875rem;font-size:.9375rem;color:rgba(255,255,255,.9);line-height:1.5}.membership-features li:before{content:"✓";flex-shrink:0;font-weight:700;color:rgba(255,255,255,.7)}.membership-actions{display:flex;gap:.875rem;flex-wrap:wrap}.membership-actions .btn-primary{background:#ffffff;color:var(--royal-700);box-shadow:0 2px 10px rgba(0,0,0,.15)}.membership-actions .btn-primary:hover{opacity:1;background:var(--royal-100);box-shadow:0 4px 16px rgba(0,0,0,.2)}.membership-actions .btn-secondary{background:transparent;color:rgba(255,255,255,.85);border-color:rgba(255,255,255,.3)}.membership-actions .btn-secondary:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.55);box-shadow:none}.closing-section{text-align:center;padding:6rem 0 3rem}.closing-title{font-family:var(--font-display);font-size:clamp(1.75rem,4vw,2.625rem);font-weight:700;color:var(--text-100);letter-spacing:-.03em;margin-bottom:1.25rem;line-height:1.15;max-width:28rem;margin-left:auto;margin-right:auto}.closing-body{font-size:1.0625rem;color:var(--text-300);line-height:1.65;max-width:32rem;margin:0 auto .75rem}.closing-actions{margin-top:2.5rem}.auth-container{max-width:24rem;margin:4rem auto 0;animation:fadeUp .5s ease both}.auth-title{font-family:var(--font-display);font-size:1.875rem;font-weight:700;margin-bottom:1.5rem;letter-spacing:-.02em;color:var(--text-100)}.auth-footer{margin-top:1.125rem;font-size:.875rem;color:var(--text-300);text-align:center}.bank-grid{display:grid;gap:1rem;grid-template-columns:repeat(2,1fr)}@media (max-width:640px){.bank-grid{grid-template-columns:1fr}}.bank-card{display:block;border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.375rem;background:var(--surface-card);text-decoration:none;color:inherit;transition:border-color .2s,box-shadow .2s,transform .2s}.bank-card:hover{border-color:var(--royal-500);box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.bank-card-title{font-family:var(--font-sans);font-weight:600;font-size:1.125rem;color:var(--text-100)}.bank-card-desc{font-size:.875rem;color:var(--text-300);margin-top:.375rem}.bank-card-count{font-size:.8125rem;color:var(--text-400);margin-top:.625rem;font-family:var(--font-mono)}.bank-card--locked{opacity:.45;cursor:not-allowed;position:relative}.bank-card--locked:hover{border-color:var(--border);box-shadow:none;transform:none}.bank-card-locked-label{font-size:.75rem;font-weight:600;color:var(--text-300);margin-top:.625rem;text-transform:uppercase;letter-spacing:.04em}.quiz-container{max-width:32rem;margin:0 auto;animation:fadeIn .4s ease both}.quiz-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.75rem}.quiz-progress-track{width:10rem;background:var(--surface-border)}.quiz-progress-fill,.quiz-progress-track{border-radius:var(--radius-full);height:.375rem}.quiz-progress-fill{background:var(--gradient-royal);transition:width .4s ease;box-shadow:0 0 6px rgba(65,105,225,.45)}.quiz-definition{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.75rem;margin-bottom:1.5rem;box-shadow:var(--shadow-card)}.quiz-definition-label{font-size:.6875rem;color:var(--text-400);margin-bottom:.625rem;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em}.quiz-definition-text{font-size:1.125rem;color:var(--text-100);line-height:1.6}.quiz-choices{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:1.5rem}.quiz-choice{text-align:left;padding:.875rem 1rem;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface-card);color:var(--text-200);font-size:.875rem;cursor:pointer;transition:border-color .15s,background .15s,color .15s,box-shadow .15s;font-family:inherit;box-shadow:var(--shadow-card)}.quiz-choice:hover{border-color:var(--royal-400);color:var(--text-100);box-shadow:0 2px 8px rgba(65,105,225,.12)}.quiz-choice--selected{border-color:var(--royal-500);background:var(--royal-100);color:var(--royal-700);box-shadow:0 0 0 3px rgba(65,105,225,.12)}.quiz-choice:disabled{cursor:default}.quiz-choice--correct{background:#dcfce7;font-weight:600}.quiz-choice--correct,.quiz-choice--correct:hover{border-color:#4ade80;color:#14532d}.quiz-choice--wrong{background:#fee2e2}.quiz-choice--wrong,.quiz-choice--wrong:hover{border-color:#f87171;color:#991b1b}.quiz-submit{width:100%;background:var(--gradient-royal);color:#ffffff;padding:.6875rem 0;border-radius:var(--radius-md);border:none;cursor:pointer;font-weight:700;font-family:inherit;font-size:.875rem;transition:opacity .15s,box-shadow .15s;box-shadow:0 2px 8px rgba(65,105,225,.35);letter-spacing:.02em}.quiz-submit:hover{opacity:.9;box-shadow:0 4px 18px rgba(65,105,225,.5)}.quiz-submit:disabled{opacity:.35;cursor:not-allowed}.quiz-results-header{text-align:center;margin-bottom:2.5rem;animation:fadeUp .5s ease both}.quiz-results-title{font-family:var(--font-display);font-size:1.625rem;font-weight:700;margin-bottom:.75rem;letter-spacing:-.02em;color:var(--text-100)}.quiz-score{font-family:var(--font-display);font-size:3.5rem;font-weight:800;color:var(--royal-500);line-height:1}.quiz-score-pct{color:var(--text-300);margin-top:.375rem;font-size:.9375rem}.result-list{display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem}.result-item{border-radius:var(--radius-lg);padding:1.125rem;border:1px solid}.result-item--correct{border-color:#a7f3d0;background:#f0fdf4}.result-item--incorrect{border-color:#fecaca;background:#fef2f2}.result-item-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:.625rem}.result-question-label{font-size:.8125rem;font-weight:500;color:var(--text-300);font-family:var(--font-mono)}.result-badge{font-size:.6875rem;font-weight:600;padding:.125rem .5rem;border-radius:var(--radius-md);font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase}.result-badge--correct{background:#dcfce7;color:#15803d;border:1px solid #bbf7d0}.result-badge--incorrect{background:#fee2e2;color:#b91c1c;border:1px solid #fecaca}.result-definition{color:var(--text-200);margin-bottom:.625rem;font-size:.9375rem}.result-choices{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.result-choice{font-size:.8125rem;padding:.375rem .75rem;border-radius:var(--radius-md);border:1px solid}.result-choice--correct{border-color:#4ade80;background:#dcfce7;color:#14532d;font-weight:600}.result-choice--wrong{border-color:#f87171;background:#fee2e2;color:#991b1b}.result-choice--neutral{border-color:var(--surface-border);color:var(--text-400)}.result-correction{font-size:.875rem;color:var(--text-300);margin-top:.625rem}.quiz-actions{display:flex;gap:.75rem;justify-content:center}.quiz-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:3rem 0;color:var(--text-300)}.practice-heatmap{display:grid;grid-template-columns:repeat(30,1fr);gap:3px;max-width:480px}.practice-heatmap-cell{aspect-ratio:1/1;border-radius:3px;border:1px solid var(--border)}.practice-heatmap-cell,.practice-heatmap-cell--0{background:var(--surface-subtle)}.practice-heatmap-cell--1{background:var(--royal-100);border-color:var(--royal-200)}.practice-heatmap-cell--2{background:var(--royal-200);border-color:var(--royal-300)}.practice-heatmap-cell--3{background:var(--royal-400);border-color:var(--royal-500)}.practice-heatmap-cell--4{background:var(--royal-600);border-color:var(--royal-700)}.pricing-page{padding:3rem 0;animation:fadeIn .4s ease both}.pricing-header{text-align:center;margin-bottom:3.5rem}.pricing-title{font-family:var(--font-display);font-size:clamp(2rem,5vw,3rem);font-weight:700;color:var(--text-100);margin-bottom:1rem;letter-spacing:-.03em;line-height:1.1}.pricing-subtitle{font-size:1.0625rem;color:var(--text-300);max-width:36rem;margin:0 auto;line-height:1.65}.pricing-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem;align-items:start}.pricing-grid--two{grid-template-columns:repeat(2,1fr);max-width:44rem;margin-left:auto;margin-right:auto}@media (max-width:768px){.pricing-grid,.pricing-grid--two{grid-template-columns:1fr}}.plan-card{position:relative;border-radius:var(--radius-2xl);padding:1.875rem;display:flex;flex-direction:column;gap:1.5rem;background:var(--surface-card);box-shadow:var(--shadow-card);border:1px solid var(--border);transition:box-shadow .25s,border-color .25s}.plan-card:not(.plan-card--highlighted):hover{box-shadow:var(--shadow-card-hover);border-color:var(--border-royal)}.plan-card--highlighted{border:none;box-shadow:var(--shadow-glow)}.plan-badge,.plan-card--highlighted{background:var(--gradient-royal);color:#ffffff}.plan-badge{position:absolute;top:-.875rem;left:50%;transform:translateX(-50%);font-size:.6875rem;font-weight:700;padding:.1875rem .875rem;border-radius:var(--radius-full);box-shadow:0 2px 8px rgba(65,105,225,.35);white-space:nowrap;font-family:var(--font-sans);letter-spacing:.08em;text-transform:uppercase}.plan-card--highlighted .plan-badge{background:#ffffff;color:var(--royal-700);box-shadow:0 2px 8px rgba(0,0,0,.15)}.plan-name{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;margin-bottom:.5rem;color:var(--text-300);font-family:var(--font-sans)}.plan-card--highlighted .plan-name{color:rgba(255,255,255,.7)}.plan-price-row{display:flex;align-items:flex-end;gap:.375rem}.plan-price{font-family:var(--font-display);font-size:3rem;font-weight:800;color:var(--text-100);letter-spacing:-.04em;line-height:1}.plan-card--highlighted .plan-price{color:#ffffff}.plan-period{font-size:.875rem;margin-bottom:.25rem;color:var(--text-400)}.plan-card--highlighted .plan-period{color:rgba(255,255,255,.65)}.plan-desc{font-size:.875rem;margin-top:.5rem;color:var(--text-300);line-height:1.55}.plan-card--highlighted .plan-desc{color:rgba(255,255,255,.8)}.plan-cta{width:100%;font-weight:600;padding:.625rem 0;border-radius:var(--radius-xl);transition:border-color .15s,color .15s,background .15s,box-shadow .15s;font-size:.875rem;border:1px solid var(--border-light);cursor:pointer;font-family:inherit;background:transparent;color:var(--royal-600)}.plan-cta:hover{border-color:var(--royal-500);background:var(--royal-100);box-shadow:0 2px 8px rgba(65,105,225,.12)}.plan-cta:focus-visible{outline:2px solid var(--royal-400);outline-offset:2px}.plan-cta:disabled{opacity:.45;cursor:not-allowed}.plan-card--highlighted .plan-cta{background:#ffffff;color:var(--royal-700);border:none;font-weight:700;box-shadow:0 2px 10px rgba(0,0,0,.15)}.plan-card--highlighted .plan-cta:hover{background:var(--royal-100);box-shadow:0 4px 16px rgba(0,0,0,.2)}.plan-divider{border:none;border-top:1px solid var(--surface-border);margin:0}.plan-card--highlighted .plan-divider{border-color:rgba(255,255,255,.2)}.plan-features{list-style:none;display:flex;flex-direction:column;gap:.625rem;font-size:.875rem}.plan-feature{display:flex;align-items:flex-start;gap:.625rem}.plan-feature-icon{width:1rem;height:1rem;flex-shrink:0;margin-top:.125rem}.plan-feature-text{color:var(--text-200)}.plan-card--highlighted .plan-feature-text{color:rgba(255,255,255,.9)}.plan-feature-text--missing{color:var(--text-500)}.pricing-footer{text-align:center;font-size:.8125rem;color:var(--text-400);margin-top:3rem}.billing-page{max-width:44rem;margin:0 auto;padding:3rem 0;animation:fadeIn .4s ease both}.billing-loading{text-align:center;color:var(--text-300);padding:4rem 0}.billing-header{margin-bottom:2.5rem}.billing-title{font-family:var(--font-display);font-size:clamp(1.5rem,4vw,2.25rem);font-weight:700;color:var(--text-100);letter-spacing:-.02em;margin-bottom:.375rem}.billing-subtitle{font-size:.9375rem;color:var(--text-300)}.billing-cards{display:grid;gap:1.25rem}.billing-card{background:var(--surface-card);border:1px solid var(--surface-border);border-radius:var(--radius-2xl);padding:1.75rem 2rem;box-shadow:var(--shadow-card)}.billing-card-title{font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-400);margin-bottom:1rem}.billing-plan-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.billing-plan-name{font-size:1.375rem;font-weight:700;color:var(--text-100);font-family:var(--font-display)}.billing-status-badge{font-size:.75rem;font-weight:600;padding:.2rem .65rem;border-radius:var(--radius-full);letter-spacing:.03em}.billing-status-badge--active{background:var(--color-success-bg);color:var(--color-success)}.billing-status-badge--canceled{background:var(--color-error-bg);color:var(--color-error)}.billing-status-badge--past_due{background:var(--color-warning-bg);color:var(--color-warning)}.billing-status-badge--trialing{background:var(--royal-100);color:var(--royal-700)}.billing-period-note{font-size:.875rem;color:var(--text-300);margin-bottom:.25rem}.billing-card-actions{margin-top:1.25rem;display:flex;gap:.75rem}.billing-pm-row{display:flex;align-items:center;gap:1rem}.billing-card-brand{display:inline-flex;align-items:center;justify-content:center;width:3rem;height:2rem;background:var(--surface-subtle);border:1px solid var(--surface-border);border-radius:var(--radius-md);font-size:.6875rem;font-weight:700;color:var(--text-200);letter-spacing:.02em;flex-shrink:0}.billing-pm-details{display:flex;flex-direction:column;gap:.125rem}.billing-pm-number{font-size:.9375rem;font-weight:600;color:var(--text-100);letter-spacing:.06em}.billing-pm-expiry{font-size:.8125rem;color:var(--text-300)}.billing-pm-empty{font-size:.9375rem;color:var(--text-300)}.billing-portal-note{font-size:.8125rem;color:var(--text-400);margin-top:1.5rem;text-align:center;line-height:1.6}.billing-plan-actions{margin-top:1.25rem;display:flex;flex-direction:column;gap:1rem}.billing-upgrade-section{display:flex;flex-direction:column;gap:.625rem}.billing-upgrade-label{font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-400)}.billing-upgrade-buttons{display:flex;flex-wrap:wrap;gap:.625rem}.billing-upgrade-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:.75rem}.billing-upgrade-card{display:flex;flex-direction:column;gap:.5rem;background:var(--surface-bg);border:1px solid var(--surface-border);border-radius:var(--radius-xl);padding:1rem 1.125rem}.billing-upgrade-card-header{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.billing-upgrade-card-name{font-size:1rem;font-weight:700;color:var(--text-100);font-family:var(--font-display)}.billing-upgrade-card-price{font-size:.8125rem;font-weight:600;color:var(--text-300);white-space:nowrap}.billing-upgrade-card-desc{font-size:.8125rem;color:var(--text-300);line-height:1.5;margin:0}.billing-upgrade-card-features{list-style:none;padding:0;margin:0 0 .25rem;display:flex;flex-direction:column;gap:.25rem}.billing-upgrade-card-features li{font-size:.8125rem;color:var(--text-200);padding-left:1.1rem;position:relative}.billing-upgrade-card-features li:before{content:"✓";position:absolute;left:0;color:var(--royal-500);font-weight:700;font-size:.75rem}.billing-upgrade-card-btn{margin-top:auto;width:100%;justify-content:center}.billing-upgrade-card-confirm{margin-top:auto;display:flex;flex-direction:column;gap:.625rem}.billing-upgrade-card-confirm-note{font-size:.8125rem;color:var(--text-300);line-height:1.5;margin:0}.billing-upgrade-card-confirm-actions{display:flex;align-items:baseline;gap:.75rem}.billing-pm-section{padding-top:.75rem;border-top:1px solid var(--surface-border)}.billing-pm-inline{display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap}.billing-update-pm-form{display:flex;flex-direction:column;gap:1rem;padding-top:.25rem}.billing-update-pm-actions{display:flex;align-items:baseline;gap:1rem}.billing-pm-form-error{font-size:.875rem;color:var(--color-error);margin:0}.billing-cancel-section{padding-top:.75rem;border-top:1px solid var(--surface-border);display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap}.settings-fields{display:flex;flex-direction:column;gap:.875rem}.settings-field{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding-bottom:.875rem;border-bottom:1px solid var(--surface-border)}.settings-field:last-child{border-bottom:none;padding-bottom:0}.settings-field-label{font-size:.8125rem;font-weight:500;color:var(--text-400);white-space:nowrap;flex-shrink:0}.settings-field-value{font-size:.9375rem;font-weight:500;color:var(--text-100);text-align:right;word-break:break-all}.settings-field-value--muted{color:var(--text-300);font-weight:400}.settings-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.settings-card-header .billing-card-title{margin-bottom:0}.settings-edit-btn{font-size:.8125rem;padding:.25rem .75rem}.settings-edit-form{display:flex;flex-direction:column;gap:1rem}.settings-form-actions{display:flex;gap:.75rem;margin-top:.25rem}.settings-email-form{margin-top:1.25rem;display:flex;flex-direction:column;gap:1rem}.settings-email-note{font-size:.875rem;color:var(--text-300);line-height:1.5}.settings-email-sent{margin-top:1.25rem;padding:1rem 1.25rem;background:var(--color-success-bg);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:.75rem}.settings-email-sent p{font-size:.9375rem;color:var(--text-200);line-height:1.5}.settings-resend-btn{font-size:.8125rem;align-self:flex-start;padding:0;color:var(--text-300)}.settings-confirm-page{display:flex;align-items:center;justify-content:center;min-height:60vh}.settings-confirm-card{text-align:center;max-width:26rem;margin:0 auto}.settings-confirm-icon{width:3rem;height:3rem;border-radius:var(--radius-full);display:inline-flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:700;margin-bottom:1rem}.settings-confirm-icon--success{background:var(--color-success-bg);color:var(--color-success)}.settings-confirm-icon--error{background:var(--color-error-bg);color:var(--color-error)}.settings-confirm-title{font-family:var(--font-display);font-size:1.5rem;font-weight:700;color:var(--text-100);margin-bottom:.75rem}.settings-confirm-body{font-size:.9375rem;color:var(--text-300);line-height:1.6;margin-bottom:1.5rem}.admin-header{display:flex;align-items:center;justify-content:space-between}.admin-header,.bank-selector{margin-bottom:1.5rem}.bank-selector select{border:1px solid var(--surface-border);border-radius:var(--radius-md);padding:.5rem .75rem;font-size:.875rem;background:var(--surface-card);color:var(--text-100);outline:none;font-family:inherit}.bank-selector select:focus{border-color:var(--royal-500);box-shadow:0 0 0 3px rgba(65,105,225,.15)}.question-form{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.375rem;margin-bottom:1.5rem;box-shadow:var(--shadow-card)}.question-form-title{font-weight:600;margin-bottom:1rem;color:var(--text-100)}.choices-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.choice-row{display:flex;align-items:center;gap:.5rem}.choice-row input[type=radio]{accent-color:var(--royal-500)}.question-list{display:flex;flex-direction:column;gap:.625rem}.question-item{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1rem 1.125rem;display:flex;align-items:flex-start;justify-content:space-between;box-shadow:var(--shadow-card);transition:border-color .15s,box-shadow .15s}.question-item:hover{border-color:var(--border-light);box-shadow:var(--shadow-card-hover)}.question-info{flex:1}.question-word{font-weight:600;color:var(--text-100)}.question-def{font-size:.875rem;color:var(--text-300);margin-top:.1875rem}.question-tags{display:flex;gap:.5rem;margin-top:.5rem;flex-wrap:wrap}.question-tag{font-size:.6875rem;padding:.125rem .5rem;border-radius:var(--radius-md);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em}.question-tag--correct{background:#dcfce7;color:#15803d;border:1px solid #bbf7d0;font-weight:600}.question-tag--neutral{background:var(--surface-subtle);color:var(--text-300);border:1px solid var(--surface-border)}.question-tag--danger{background:#fee2e2;color:#b91c1c;border:1px solid #fecaca;font-weight:600}.question-item-actions{display:flex;gap:.5rem;margin-left:1rem;flex-shrink:0}.student-list{display:flex;flex-direction:column;gap:.625rem}.student-item{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-card);transition:border-color .15s}.student-item:hover{border-color:var(--border-light)}.student-toggle{width:100%;text-align:left;padding:1rem 1.125rem;display:flex;align-items:center;justify-content:space-between;background:none;border:none;cursor:pointer;font-family:inherit;color:inherit}.student-info{flex:1}.student-name{font-weight:600;color:var(--text-100)}.student-email{font-size:.8125rem;color:var(--text-300);font-family:var(--font-mono)}.student-last-active{font-size:.75rem;color:var(--text-400);margin-top:.25rem}.student-plan-badge{display:inline-block;margin-left:.5rem;padding:.1rem .5rem;font-size:.6875rem;font-weight:700;letter-spacing:.06em;border-radius:var(--radius-full);background:var(--royal-100);color:var(--royal-700);border:1px solid var(--royal-200);vertical-align:middle}.student-controls{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.25rem}.student-search{max-width:24rem}.student-stats{display:flex;align-items:center;gap:1rem;font-size:.8125rem;font-family:var(--font-mono)}.student-stat-label{color:var(--text-400)}.student-avg{font-weight:700}.student-avg--good{color:#16a34a}.student-avg--mid{color:#c26e00}.student-avg--low{color:var(--color-error)}.student-expand{color:var(--text-400);margin-left:1rem}.student-details{border-top:1px solid var(--surface-border);padding:1rem 1.125rem;background:var(--surface-subtle)}.attempt-table{width:100%;font-size:.8125rem;border-collapse:collapse;font-family:var(--font-mono)}.attempt-table th{text-align:left;color:var(--text-400);font-weight:500;padding-bottom:.625rem;text-transform:uppercase;letter-spacing:.07em;font-size:.6875rem}.attempt-table td{padding:.5rem 0;border-top:1px solid var(--surface-border);color:var(--text-200)}.attempt-table td:last-child{color:var(--text-400)}.subcategory-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin-top:1.5rem}.subcategory-card{display:block;padding:1.25rem 1.5rem;background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);text-decoration:none;color:inherit;transition:box-shadow .2s,transform .2s,border-color .2s}.subcategory-card:hover{box-shadow:var(--shadow-card-hover);border-color:var(--royal-500);transform:translateY(-2px)}.subcategory-card-title{font-family:var(--font-sans);font-size:1rem;font-weight:600;color:var(--text-100);margin:0 0 .375rem}.subcategory-card-count{font-size:.8125rem;color:var(--text-300);margin:0;font-family:var(--font-mono)}.subcategory-manager{background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem 1.5rem;margin-bottom:1.5rem}.subcategory-manager-title{font-size:.6875rem;font-weight:600;color:var(--text-300);margin:0 0 1rem;text-transform:uppercase;letter-spacing:.12em}.subcategory-list{display:flex;flex-direction:column;gap:.375rem;margin-bottom:1rem}.subcategory-item{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;border-radius:var(--radius-md);cursor:pointer;border:1px solid transparent;background:var(--surface-card);transition:background .1s,border-color .1s;color:var(--text-200)}.subcategory-item:hover{background:var(--royal-100);border-color:var(--border-light)}.subcategory-item--active{border-color:var(--royal-500);background:var(--royal-100)}.subcategory-item-name{font-size:.9rem;color:var(--text-200);display:flex;align-items:center;gap:.5rem}.subcategory-item--active .subcategory-item-name{color:var(--royal-700)}.subcategory-item-count{font-size:.75rem;color:var(--text-400);background:var(--surface-subtle);border-radius:var(--radius-full);padding:.125rem .5rem;font-family:var(--font-mono)}.subcategory-item--active .subcategory-item-count{background:var(--royal-200);color:var(--royal-700)}.subcategory-item-actions{display:flex;gap:.5rem;opacity:0;transition:opacity .1s}.subcategory-item--active .subcategory-item-actions,.subcategory-item:hover .subcategory-item-actions{opacity:1}.subcategory-item-edit{display:flex;align-items:center;gap:.5rem;width:100%}.subcategory-item-edit .form-input{flex:1;padding:.25rem .5rem;font-size:.9rem}.subcategory-add{display:flex;gap:.5rem;align-items:center}.subcategory-add .form-input{flex:1;font-size:.875rem}.checkout-page{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding:4rem 1.5rem 6rem}.checkout-card{background:var(--surface-card);border:1px solid var(--surface-border);border-radius:var(--radius-2xl);box-shadow:var(--shadow-card);padding:2.5rem;width:100%;max-width:28rem;gap:1.75rem}.checkout-card,.checkout-header{display:flex;flex-direction:column}.checkout-header{gap:.75rem}.checkout-title{font-family:var(--font-display);font-size:1.375rem;font-weight:600;color:var(--text-100);line-height:1.3}.checkout-plan-summary{display:flex;align-items:baseline;justify-content:space-between;background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-lg);padding:.75rem 1rem}.checkout-plan-name{font-weight:600;color:var(--text-200);font-size:.9375rem}.checkout-plan-price{font-family:var(--font-mono);font-size:.875rem;color:var(--royal-500);font-weight:600}.checkout-form{display:flex;flex-direction:column;gap:1.25rem}.checkout-submit{width:100%;margin-top:.25rem}.checkout-error{font-size:.875rem;color:var(--color-error);background:var(--color-error-bg);border-radius:var(--radius-md);padding:.625rem .875rem}.checkout-footer{font-size:.8125rem;color:var(--text-400);text-align:center}.checkout-skeleton{height:2.5rem}.checkout-skeleton,.checkout-skeleton-sm{margin-bottom:.5rem;border-radius:var(--radius-lg)}.checkout-skeleton-sm{height:3.5rem}.checkout-skeleton-form{height:10rem;border-radius:var(--radius-lg)}.sentences-nav-link{position:relative;display:inline-flex;align-items:center;gap:.375rem}.sentences-badge{position:absolute;top:-.25rem;right:-.5rem;min-width:1.125rem;height:1.125rem;background:var(--color-error);color:#ffffff;font-size:.625rem;font-weight:700;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;padding:0 .25rem;font-family:var(--font-sans);line-height:1;pointer-events:none}.sentence-list{display:flex;flex-direction:column;gap:.625rem}.sentence-item{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1rem 1.125rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;box-shadow:var(--shadow-card);transition:border-color .15s,box-shadow .15s;text-decoration:none;color:inherit}.sentence-item:hover{border-color:var(--border-light);box-shadow:var(--shadow-card-hover)}.sentence-item--unread{border-color:var(--color-warning);background:var(--color-warning-bg)}.sentence-item-info{flex:1}.sentence-item-date{font-size:.9rem;font-weight:600;color:var(--text-100)}.sentence-item-meta{font-size:.8125rem;color:var(--text-400);font-family:var(--font-mono);margin-top:.125rem}.sentence-item-actions{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.sentence-status-badge{font-size:.6875rem;font-weight:600;padding:.2rem .625rem;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.06em;font-family:var(--font-sans);white-space:nowrap}.sentence-status-badge--draft{background:var(--surface-subtle);color:var(--text-300);border:1px solid var(--surface-border)}.sentence-status-badge--submitted{background:var(--royal-100);color:var(--royal-700);border:1px solid var(--royal-200)}.sentence-status-badge--reviewed{background:var(--color-success-bg);color:var(--color-success);border:1px solid #a7f3d0}.sentence-unread-dot{font-size:.75rem;font-weight:600;color:var(--color-warning);white-space:nowrap}.sentence-item-skeleton{height:4.5rem;border-radius:var(--radius-lg);margin-bottom:.375rem}.sentence-form{display:flex;flex-direction:column;gap:1.25rem}.sentence-card{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-xl);padding:1.5rem;box-shadow:var(--shadow-card)}.sentence-card-index{font-size:.6875rem;font-weight:600;color:var(--text-400);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.375rem}.sentence-card-word{font-family:var(--font-display);font-size:1.375rem;font-weight:700;color:var(--text-100);margin-bottom:.875rem;letter-spacing:-.01em}.sentence-textarea{width:100%;border:1px solid var(--surface-border);border-radius:var(--radius-md);padding:.625rem .875rem;background:var(--surface-subtle);color:var(--text-100);font-size:.9375rem;line-height:1.6;min-height:4.5rem;resize:vertical;font-family:inherit;transition:border-color .15s,box-shadow .15s;outline:none;box-sizing:border-box}.sentence-textarea:focus{border-color:var(--royal-500);box-shadow:0 0 0 3px rgba(65,105,225,.15);background:var(--surface-card)}.sentence-textarea::-moz-placeholder{color:var(--text-500)}.sentence-textarea::placeholder{color:var(--text-500)}.sentence-form-actions{display:flex;align-items:center;gap:1rem;padding-top:.5rem}.sentence-save-note{font-size:.8125rem;color:var(--text-400)}.sentence-reviewed-card{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-xl);padding:1.5rem;box-shadow:var(--shadow-card)}.sentence-text-container{font-size:1rem;line-height:1.75;color:var(--text-100)}.sentence-highlight{background:rgba(251,191,36,.3);border-bottom:2px solid rgba(217,119,6,.55);border-radius:2px;padding:0 1px}.sentence-strikethrough{text-decoration:line-through;text-decoration-color:var(--color-error);color:var(--text-300)}.sentence-annotation--dimmed{opacity:.2;transition:opacity .15s}.sentence-status-badge--annotation-highlight{background:rgba(251,191,36,.2);color:#92400e;border:1px solid rgba(217,119,6,.4)}.sentence-status-badge--annotation-strikethrough{background:var(--color-error-bg);color:var(--color-error);border:1px solid #fecaca}.annotation-recommended-sentence{font-size:.9rem;color:var(--text-200);font-style:italic;padding:.5rem .75rem;background:var(--surface-subtle);border-left:3px solid var(--royal-400);border-radius:0 var(--radius-md) var(--radius-md) 0}.sentence-span-comments{margin-top:.5rem;display:flex;flex-direction:column;gap:.25rem}.sentence-span-comment{font-size:.8125rem;color:var(--text-300);font-style:italic;display:flex;gap:.375rem;align-items:baseline}.sentence-span-comment-label{font-style:normal;font-weight:600;font-size:.6875rem;font-family:var(--font-mono);color:var(--text-400);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}.sentence-overall-comment{margin-top:1rem;padding:.75rem 1rem;background:var(--surface-subtle);border-left:3px solid var(--royal-400);border-radius:0 var(--radius-md) var(--radius-md) 0;font-size:.875rem;color:var(--text-200);line-height:1.6}.sentence-overall-comment-label{font-size:.6875rem;font-weight:700;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.07em;color:var(--royal-500);margin-bottom:.25rem}.annotation-toolbar{position:fixed;z-index:200;background:var(--surface-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-card-hover);padding:.625rem .75rem;display:flex;flex-direction:column;gap:.5rem;min-width:14rem}.annotation-toolbar-row{display:flex;align-items:center;gap:.5rem}.annotation-toolbar-btn{font-size:.75rem;font-weight:600;padding:.3rem .75rem;border-radius:var(--radius-md);border:1px solid;cursor:pointer;font-family:inherit;transition:background .15s;flex:1}.annotation-toolbar-btn--highlight{background:rgba(251,191,36,.2);border-color:rgba(217,119,6,.45);color:#92400e}.annotation-toolbar-btn--highlight:hover{background:rgba(251,191,36,.4)}.annotation-toolbar-btn--strikethrough{background:var(--color-error-bg);border-color:#fecaca;color:var(--color-error)}.annotation-toolbar-btn--strikethrough:hover{background:#fee2e2}.annotation-toolbar-btn--active{outline:2px solid currentColor;outline-offset:-2px}.annotation-toolbar-input{font-size:.8125rem;border:1px solid var(--surface-border);border-radius:var(--radius-md);padding:.375rem .625rem;width:100%;font-family:inherit;color:var(--text-100);background:var(--surface-card);outline:none;box-sizing:border-box}.annotation-toolbar-input:focus{border-color:var(--royal-500);box-shadow:0 0 0 2px rgba(65,105,225,.15)}.annotation-toolbar-input::-moz-placeholder{color:var(--text-500)}.annotation-toolbar-input::placeholder{color:var(--text-500)}.annotation-toolbar-footer{display:flex;align-items:center;justify-content:space-between}.annotation-toolbar-error{font-size:.75rem;color:var(--color-error)}.annotation-toolbar-close{font-size:.75rem;color:var(--text-400);cursor:pointer;background:none;border:none;font-family:inherit;padding:0;margin-left:auto}.annotation-toolbar-close:hover{color:var(--text-100)}.annotation-sentence-container{font-size:1rem;line-height:1.75;color:var(--text-100);padding:.75rem;border:1px solid var(--surface-border);border-radius:var(--radius-md);background:var(--surface-subtle);-webkit-user-select:text;-moz-user-select:text;user-select:text;cursor:text;position:relative;min-height:3rem}.annotation-sentence-container mark{background:rgba(251,191,36,.3);border-bottom:2px solid rgba(217,119,6,.5);border-radius:2px;padding:0 1px}.annotation-sentence-container s{text-decoration-color:var(--color-error);color:var(--text-300)}.annotation-span-list{margin-top:.5rem;display:flex;flex-direction:column;gap:.25rem}.annotation-span-item{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;color:var(--text-300)}.annotation-span-item-text{font-family:var(--font-mono);font-size:.75rem;background:var(--surface-subtle);border:1px solid var(--surface-border);border-radius:var(--radius-sm);padding:.1rem .375rem}.annotation-span-remove{background:none;border:none;cursor:pointer;color:var(--text-400);font-size:.875rem;padding:0;line-height:1;margin-left:auto}.annotation-span-remove:hover{color:var(--color-error)}.annotation-overall-input{width:100%;font-family:inherit;font-size:.875rem;padding:.625rem .875rem;border:1px solid var(--surface-border);border-radius:var(--radius-md);background:var(--surface-card);color:var(--text-100);resize:vertical;min-height:3rem;outline:none;transition:border-color .15s;box-sizing:border-box}.annotation-overall-input:focus{border-color:var(--royal-500);box-shadow:0 0 0 3px rgba(65,105,225,.15)}.annotation-overall-input::-moz-placeholder{color:var(--text-500)}.annotation-overall-input::placeholder{color:var(--text-500)}.annotation-card{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-xl);padding:1.5rem;box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:.875rem}.annotation-card-word{font-family:var(--font-display);font-size:1.25rem;font-weight:700;color:var(--text-100);letter-spacing:-.01em}.annotation-card-index{font-size:.6875rem;color:var(--text-400);letter-spacing:.1em}.annotation-card-index,.annotation-section-label{font-weight:600;font-family:var(--font-mono);text-transform:uppercase}.annotation-section-label{font-size:.75rem;color:var(--text-300);letter-spacing:.08em;margin-bottom:.375rem}.annotation-no-sentence{font-size:.875rem;color:var(--text-400);font-style:italic}.sentences-upgrade-card{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-xl);padding:2.5rem 2rem;text-align:center;box-shadow:var(--shadow-card);max-width:28rem;margin:3rem auto}.sentences-upgrade-icon{font-size:2.5rem;margin-bottom:1rem}.sentences-upgrade-title{font-family:var(--font-display);font-size:1.375rem;font-weight:700;color:var(--text-100);margin-bottom:.5rem}.sentences-upgrade-desc{font-size:.9375rem;color:var(--text-300);line-height:1.6;margin-bottom:1.5rem}.sentences-pending-card{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-xl);padding:2.5rem 2rem;text-align:center;box-shadow:var(--shadow-card)}.sentences-pending-title{font-family:var(--font-display);font-size:1.25rem;font-weight:700;color:var(--text-200);margin-bottom:.5rem}.sentences-pending-desc{font-size:.9375rem;color:var(--text-400);line-height:1.6}.sentence-student-info{font-size:.875rem;color:var(--text-300)}.sentence-student-name{font-weight:600;color:var(--text-200)}.sentences-filter-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;flex-wrap:wrap}.sentences-filter-tab{padding:.375rem 1rem;border-radius:var(--radius-full);font-size:.8125rem;font-weight:600;border:1px solid var(--border);background:var(--surface-card);color:var(--text-300);cursor:pointer;font-family:inherit;transition:all .15s}.sentences-filter-tab:hover{border-color:var(--royal-400);color:var(--royal-600)}.sentences-filter-tab--active{background:var(--royal-500);border-color:var(--royal-500);color:#ffffff}.sentences-filter-tab--active:hover{background:var(--royal-600);border-color:var(--royal-600);color:#ffffff}.sentence-quota-bar{font-size:.8125rem;color:var(--text-300);background:var(--surface-subtle,var(--surface-card));border:1px solid var(--border);border-radius:var(--radius-md);padding:.5rem .875rem;margin-bottom:1rem}.sentence-quota-bar--used{background:var(--color-warning-bg,#fff8e6);border-color:var(--color-warning-border,#f0c04a);color:var(--color-warning-text,#7a5c00)}:root{--surface-body:#f4f6ff;--surface-card:#ffffff;--surface-subtle:#edf0fd;--surface-border:#d8dffa;--royal-100:#dce8ff;--royal-200:#b4cfff;--royal-300:#7baaf8;--royal-400:#5580f0;--royal-500:#4169e1;--royal-600:#2d52cc;--royal-700:#1a35a0;--royal-800:#112480;--text-100:#0d1628;--text-200:#2d3e5a;--text-300:#5a6e8a;--text-400:#8ea0ba;--text-500:#c0d0e4;--color-error:#c1201a;--color-error-bg:#fef2f2;--color-success:#0d7a57;--color-success-bg:#ecfdf5;--color-warning:#8a4500;--color-warning-bg:#fff8ed;--border:rgba(65,105,225,0.13);--border-light:rgba(65,105,225,0.22);--border-royal:rgba(65,105,225,0.55);--shadow-card:0 1px 4px rgba(65,105,225,0.07),0 1px 2px rgba(0,0,0,0.04);--shadow-card-hover:0 6px 24px rgba(65,105,225,0.14),0 2px 4px rgba(0,0,0,0.06);--shadow-glow:0 0 36px rgba(65,105,225,0.22),0 0 0 1px rgba(65,105,225,0.38);--gradient-royal:linear-gradient(135deg,#1a35a0,#4169e1 55%,#5580f0);--radius-sm:0.25rem;--radius-md:0.375rem;--radius-lg:0.5rem;--radius-xl:0.75rem;--radius-2xl:1.25rem;--radius-full:9999px;--font-display:var(--font-fraunces,"Fraunces"),Georgia,serif;--font-sans:var(--font-epilogue,"Epilogue"),system-ui,sans-serif;--font-mono:var(--font-fira-code,"Fira Code"),monospace}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:var(--surface-body);background-image:radial-gradient(ellipse 100% 60% at 75% -10%,rgba(65,105,225,.07) 0,transparent 55%),radial-gradient(ellipse 70% 45% at 5% 105%,rgba(65,105,225,.05) 0,transparent 55%),repeating-linear-gradient(0deg,transparent,transparent 63px,rgba(65,105,225,.035) 0,rgba(65,105,225,.035) 64px),repeating-linear-gradient(90deg,transparent,transparent 63px,rgba(65,105,225,.035) 0,rgba(65,105,225,.035) 64px);color:var(--text-100);line-height:1.6;min-height:100vh}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);line-height:1.2;letter-spacing:-.01em}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;background:none}button,input,select,textarea{font-family:inherit}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--surface-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--royal-200)}.page-wrapper{max-width:80rem;margin:0 auto;padding:2.5rem 1.25rem}