:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e0d13;--bg-glow:#2a1631;--surface:#1a1822;--surface-hover:#24212f;--border:#2f2b3b;--text:#f4f1f8;--text-muted:#a49fb3;--accent:#ff7a59;--accent-strong:#ff5a33;--accent-soft:#ff7a5924;--gold:#ffc857;--radius:14px;--radius-small:8px;--shadow:0 10px 30px #00000059;--font:"Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic UI", "Meiryo", system-ui, sans-serif}*,:before,:after{box-sizing:border-box}body{min-height:100vh;font-family:var(--font);color:var(--text);background:radial-gradient(ellipse 80% 50% at 50% -10%, var(--bg-glow), transparent 70%), var(--bg);-webkit-font-smoothing:antialiased;margin:0;line-height:1.7}img{max-width:100%;display:block}a{color:inherit}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.app{flex-direction:column;min-height:100vh;padding-inline:16px;display:flex}.app__header{justify-content:space-between;align-items:center;gap:16px;width:100%;max-width:960px;margin:0 auto;padding-block:16px;display:flex}.logo{letter-spacing:.02em;cursor:pointer;background:0 0;border:0;padding:0;font-weight:700}.app__main{flex:1;width:100%;max-width:960px;margin:0 auto;padding-block:24px 48px}.app__footer{border-top:1px solid var(--border);width:100%;max-width:960px;color:var(--text-muted);text-align:center;margin:0 auto;padding-block:24px;font-size:.8rem}.app__footer p{margin:.25em 0}.app__footer-links{flex-wrap:wrap;justify-content:center;gap:4px 20px;margin-bottom:8px;display:flex}.app__footer-links a{color:var(--text-muted)}.app__footer-small{opacity:.8;font-size:.7rem}.button{cursor:pointer;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.5em;padding:.75em 1.4em;font-weight:700;text-decoration:none;transition:transform .15s,background .15s,border-color .15s;display:inline-flex}.button:active{transform:scale(.97)}.button--primary{background:linear-gradient(135deg, var(--accent), var(--accent-strong));color:#fff;box-shadow:0 6px 20px #ff5a334d}.button--primary:hover{filter:brightness(1.08)}.button--ghost{border-color:var(--border);color:var(--text-muted);background:0 0}.button--ghost:hover{border-color:var(--text-muted);color:var(--text)}.button--large{padding:.9em 2.4em;font-size:1.1rem}.actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:32px;display:flex}.start{text-align:center;padding-block:8vh 4vh;animation:.5s both fade-up}.start__eyebrow{color:var(--accent);letter-spacing:.1em;margin:0;font-size:.85rem;font-weight:700}.start__title{letter-spacing:.02em;margin:.2em 0 .4em;font-size:clamp(2.2rem,7vw,3.6rem);line-height:1.2}.start__title-sub{color:var(--text-muted);margin-top:.4em;font-size:.45em;font-weight:500;display:block}.start__lead{color:var(--text-muted);max-width:32em;margin:0 auto 2.2em}.start__courses{max-width:420px;margin:0 auto 1.2em}.start__note{color:var(--text-muted);font-size:.8rem}.question{max-width:560px;margin:0 auto}.progress{align-items:center;gap:12px;margin-bottom:28px;display:flex}.progress__bar{background:var(--surface);border-radius:999px;flex:1;height:6px;overflow:hidden}.progress__fill{background:linear-gradient(90deg, var(--accent), var(--gold));border-radius:inherit;height:100%;transition:width .3s}.progress__label{font-variant-numeric:tabular-nums;font-weight:700}.progress__total{color:var(--text-muted);font-weight:500}.question__body{animation:.3s both fade-up}.question__title{margin:0 0 20px;font-size:clamp(1.5rem,5vw,2rem)}.options{gap:10px;display:grid}.option{text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;align-items:center;gap:14px;width:100%;padding:14px 16px;transition:background .15s,border-color .15s,transform .15s;display:flex}.option:hover{background:var(--surface-hover);border-color:var(--text-muted)}.option--selected,.option--selected:hover{background:var(--accent-soft);border-color:var(--accent);transform:scale(1.01)}.option__emoji{text-align:center;flex-shrink:0;width:1.6em;font-size:1.6rem}.option__text{flex-direction:column;flex:1;line-height:1.4;display:flex}.option__label{font-weight:700}.option__hint{color:var(--text-muted);font-size:.8rem}.option__key{color:var(--text-muted);border:1px solid var(--border);border-radius:6px;padding:0 .5em;font-family:inherit;font-size:.75rem}@media (hover:none){.option__key{display:none}}.question__hint{color:var(--text-muted);margin:-8px 0 16px;font-size:.85rem}.question__actions{margin-top:20px}.question__back{margin-top:24px}.status{text-align:center;padding-block:10vh;animation:.3s both fade-up}.status__spinner,.status__icon{font-size:3rem}.status__spinner{animation:.9s ease-in-out infinite bounce;display:inline-block}.status__title{margin:.6em 0;font-size:1.3rem}.status__message{color:var(--text-muted)}.chips{flex-wrap:wrap;justify-content:center;gap:8px;margin:16px 0 0;padding:0;list-style:none;display:flex}.chip{background:var(--surface);border:1px solid var(--border);color:var(--text-muted);border-radius:999px;padding:.25em .9em;font-size:.85rem}.results{max-width:820px;margin:0 auto}.results__header{text-align:center;animation:.4s both fade-up}.results__eyebrow{color:var(--accent);letter-spacing:.1em;margin:0;font-size:.85rem;font-weight:700}.results__title{margin:.1em 0 0;font-size:clamp(1.4rem,5vw,2rem);line-height:1.4}.results__note{color:var(--gold);margin:16px 0 0;font-size:.85rem}.results__pr{color:var(--text-muted);margin:8px 0 0;font-size:.75rem}.results__empty{text-align:center;color:var(--text-muted);padding-block:48px}.results__actions{margin-top:40px}.results__disclaimer{text-align:center;color:var(--text-muted);margin-top:16px;font-size:.75rem}.cards{gap:20px;margin-top:32px;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);grid-template:"poster body""poster offers"1fr/180px 1fr;gap:0 20px;padding:18px;animation:.45s both fade-up;display:grid}.card__poster{grid-area:poster;align-self:start;position:relative}.card__offers{grid-area:offers;min-width:0}.card__poster img,.card__poster-placeholder{aspect-ratio:2/3;object-fit:cover;border-radius:var(--radius-small);background:var(--surface-hover);width:100%}.card__poster-placeholder{place-items:center;font-size:2.5rem;display:grid}.card__type{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;border-radius:6px;padding:.1em .6em;font-size:.7rem;font-weight:700;position:absolute;top:8px;left:8px}.card__body{grid-area:body;min-width:0}.card__title{margin:0;font-size:1.25rem;line-height:1.4}.card__original{color:var(--text-muted);margin:.15em 0 0;font-size:.8rem}.card__meta{flex-wrap:wrap;align-items:center;gap:4px 14px;margin-top:8px;display:flex}.card__facts{color:var(--text-muted);font-size:.85rem}.card__overview{margin-top:12px}.card__overview-text{color:#d9d4e3;margin:0;font-size:.9rem}.card__overview-text.is-clamped{-webkit-line-clamp:4;line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.card__overview-note{color:var(--text-muted);margin:12px 0 4px;font-size:.75rem}.link-button{color:var(--accent);cursor:pointer;background:0 0;border:0;margin-top:4px;padding:0;font-size:.85rem;font-weight:700}.link-button:hover{text-decoration:underline}.rating{align-items:center;gap:6px;font-size:.85rem;display:inline-flex}.rating__stars{letter-spacing:.05em;font-size:1.05rem;line-height:1;display:inline-block;position:relative}.rating__empty{color:#3d3849}.rating__filled{white-space:nowrap;color:var(--gold);position:absolute;inset:0 auto 0 0;overflow:hidden}.rating__score{color:var(--gold);font-weight:700}.rating__count{color:var(--text-muted);font-size:.75rem}.reasons{flex-wrap:wrap;gap:6px;margin:8px 0 0;padding:0;list-style:none;display:flex}.reason{background:var(--accent-soft);color:var(--text);border-radius:999px;padding:.15em .7em;font-size:.8rem;font-weight:700}.tags{flex-wrap:wrap;gap:6px;margin:10px 0 0;padding:0;list-style:none;display:flex}.tag{background:var(--surface-hover);color:var(--text-muted);border-radius:6px;padding:.05em .7em;font-size:.75rem}.roadmap{gap:28px;margin:32px 0 0;padding:0;list-style:none;display:grid}.roadmap__step{animation:.4s both fade-up;position:relative}.roadmap__step:not(:last-child):after{content:"";border-left:2px dashed var(--accent);opacity:.6;height:28px;position:absolute;bottom:-28px;left:28px}.roadmap__label{margin:0 0 10px;font-weight:700}.roadmap__number{background:var(--accent);color:#1a1206;letter-spacing:.05em;border-radius:999px;margin-right:.7em;padding:.15em .8em;font-size:.8rem;font-weight:800;display:inline-block}.roadmap__catchcopy{margin:12px 0 0;font-weight:700;line-height:1.6}.roadmap__note{color:var(--gold);margin:10px 0 0;font-size:.85rem}.level-badge{background:linear-gradient(90deg, var(--accent), var(--gold));color:#1a1206;letter-spacing:.05em;border-radius:6px;margin-right:.6em;padding:.05em .6em;font-size:.75rem;font-weight:800;display:inline-block}.draft-badge{border:1px dashed var(--text-muted);color:var(--text-muted);border-radius:6px;margin-left:.6em;padding:.05em .6em;font-size:.75rem}.card__level{color:var(--text-muted);margin:0 0 6px;font-size:.85rem}.card__guide-link{color:var(--accent);margin-top:12px;font-weight:700;text-decoration:none;display:inline-block}.card__guide-link:hover{text-decoration:underline}.tag--type{color:var(--text)}.film{max-width:760px;margin:0 auto;animation:.3s both fade-up}.film__back{margin-bottom:16px}.film__header{grid-template-columns:200px 1fr;align-items:start;gap:24px;display:grid}.film__poster{border-radius:var(--radius);width:100%;box-shadow:var(--shadow)}.film__level{color:var(--text-muted);margin:0 0 8px;font-size:.9rem}.film__title{margin:0 0 4px;font-size:clamp(1.6rem,5vw,2.2rem);line-height:1.3}.film__catchcopy{margin:14px 0 0;font-size:1.05rem;font-weight:700;line-height:1.6}.film__overview{color:var(--text-muted);margin:0;line-height:1.8}.guide{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-top:28px;padding:20px}.guide__title{margin:0 0 12px;font-size:1.1rem}.guide__list{margin:0;padding-left:1.2em;line-height:1.8}.guide__list li+li{margin-top:8px}.guide--note{border-color:var(--accent)}.guide__note{white-space:pre-line;margin:0;line-height:1.9}.guide--after{border-style:dashed}.spoiler__note{color:var(--text-muted);margin:0 0 12px}@media (width<=600px){.film__header{grid-template-columns:1fr}.film__poster{max-width:220px;margin:0 auto}}.info{max-width:720px;margin:0 auto;line-height:1.9;animation:.3s both fade-up}.info__title{margin:0 0 20px;font-size:clamp(1.5rem,5vw,2rem)}.info__section{margin-top:28px}.info__section h2{margin:0 0 8px;font-size:1.1rem}.info__section p{margin:0 0 10px}.info a{color:var(--accent)}.info__table{grid-template-columns:8em 1fr;gap:6px 16px;margin:0;display:grid}.info__table dt{color:var(--text-muted)}.info__table dd{margin:0}.info__note{color:var(--text-muted);margin-top:28px;font-size:.85rem}.contact{gap:18px;margin-top:20px;display:grid}.contact__field{gap:6px;display:grid}.contact__field span{font-size:.9rem;font-weight:700}.contact__field input,.contact__field textarea{border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface);width:100%;color:var(--text);font:inherit;padding:10px 12px}.contact__field input:focus,.contact__field textarea:focus{outline:2px solid var(--accent);outline-offset:1px}.contact__widget{min-height:65px}.contact__error{color:var(--gold);margin:0}.contact .button{justify-self:start}.app__nav a{color:var(--text-muted);font-size:.9rem;text-decoration:none}.app__nav a:hover{color:var(--text)}.start__browse{margin-top:1.5em}.start__browse a{color:var(--accent);font-weight:700}.chip--link{color:inherit;text-decoration:none}.collection{max-width:960px;margin:0 auto;animation:.3s both fade-up}.collection__header{max-width:720px}.collection__title{margin:0 0 16px;font-size:clamp(1.5rem,5vw,2.1rem);line-height:1.4}.collection__intro{color:var(--text-muted);margin:0 0 12px;line-height:1.9}.collection__cta{margin-top:8px}.collection__level{margin-top:40px}.collection__level-title{margin:0 0 16px;font-size:1.2rem}.poster-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:20px;margin:28px 0 0;padding:0;list-style:none;display:grid}.poster-card{height:100%;color:inherit;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;text-decoration:none;transition:transform .15s,border-color .15s;display:flex;overflow:hidden}.poster-card:hover{border-color:var(--accent);transform:translateY(-2px)}.poster-card img,.poster-card__placeholder{aspect-ratio:2/3;object-fit:cover;background:var(--surface-hover);width:100%}.poster-card__placeholder{place-items:center;font-size:2rem;display:grid}.poster-card__body{flex-direction:column;gap:4px;padding:10px 12px 14px;display:flex}.poster-card__level{color:var(--accent);letter-spacing:.05em;font-size:.7rem;font-weight:800}.poster-card__title{font-weight:700;line-height:1.4}.poster-card__meta{color:var(--text-muted);font-size:.75rem}.poster-card__catchcopy{font-size:.8rem;line-height:1.6}.poster-card__types{font-size:.85rem}.collection__others{margin-top:48px}.collection__others-title{margin:0 0 8px;font-size:1rem}@media (width<=600px){.poster-grid{grid-template-columns:repeat(2,1fr);gap:12px}}.breadcrumbs{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:16px;font-size:.85rem;display:flex}.breadcrumbs a{color:var(--text-muted)}.info__row{display:contents}.related__heading{color:var(--text-muted);margin:20px 0 0;font-size:.95rem}.guide .poster-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));margin-top:12px}.button--share{color:#fff;border:1px solid var(--border);background:#000}.button--share:hover{background:#1a1a1a}.film__share{margin-top:16px}.results__lead{color:var(--text-muted);margin:8px 0 0}.offers{border-top:1px dashed var(--border);margin-top:16px;padding-top:14px}.offers__heading{color:var(--text-muted);margin:0 0 8px;font-size:.8rem;font-weight:700}.offers__list{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.offers__empty{color:var(--text-muted);margin:0;font-size:.85rem}.offers__empty a{color:var(--accent)}.offer-button{background:var(--accent-soft);border:1px solid #ff7a5959;border-radius:10px;align-items:center;gap:10px;height:100%;padding:8px 12px 8px 8px;text-decoration:none;transition:background .15s,border-color .15s,transform .15s;display:flex}.offer-button:hover{border-color:var(--accent);background:#ff7a593d}.offer-button:active{transform:scale(.98)}.offer-button--disabled{opacity:.5;cursor:not-allowed}.offer-button__text{flex-direction:column;flex:1;min-width:0;line-height:1.35;display:flex}.offer-button__service{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.72rem;overflow:hidden}.offer-button__cta{font-size:.9rem;font-weight:700}.offer-button__arrow{color:var(--accent);font-size:1.4rem;line-height:1}.pr-badge{border:1px solid var(--text-muted);color:var(--text-muted);border-radius:4px;flex-shrink:0;padding:0 .45em;font-size:.65rem}.service-logo{object-fit:cover;border-radius:8px;flex-shrink:0}.service-logo--large{width:40px;height:40px}.service-logo--small{border-radius:6px;width:30px;height:30px}.service-logo--text{background:var(--surface-hover);place-items:center;font-size:.7rem;font-weight:700;display:grid}.offers__paid{flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:12px;display:flex}.offers__paid-label{color:var(--text-muted);font-size:.75rem}.offers__logos{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.offers__logo-link{opacity:.85;transition:opacity .15s;display:block}.offers__logo-link:hover{opacity:1}@media (width<=600px){.card{grid-template:"poster body""offers offers"/96px 1fr;gap:0 14px;padding:14px}.card__title{font-size:1.05rem}.offers__list{grid-template-columns:1fr}}@keyframes fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes bounce{0%,to{transform:translateY(0)rotate(-6deg)}50%{transform:translateY(-14px)rotate(6deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
