.portal{--portal-amber:#e8a82e;--portal-amber-deep:#c4881a;--portal-green:#3d7a52;--portal-green-soft:#e8f3ec;--portal-ink:#1a1f2e;--portal-muted:#5c6478;--portal-border:#dde2eb;--portal-bg:#fafbfc;--portal-card:#fff;background:var(--portal-bg);min-height:100dvh;color:var(--portal-ink);font-family:var(--font-geist-sans),system-ui,sans-serif}.portal a:not(.portal-header-btn):not(.portal-btn){color:var(--portal-green)}.portal-header{z-index:20;border-bottom:1px solid var(--portal-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:rgba(255,255,255,.92);padding:.85rem 1.25rem;position:-webkit-sticky;position:sticky;top:0}.portal-header__inner{justify-content:space-between;align-items:center;gap:1rem;width:100%;max-width:64rem;margin-left:auto;margin-right:auto;display:flex}.portal-header__brand-row{flex-wrap:wrap;align-items:center;gap:.5rem .65rem;min-width:0;display:flex}.portal-brand{color:inherit;align-items:center;gap:.55rem;text-decoration:none;display:inline-flex}.portal-brand__logo{border-radius:10px;display:block}.portal-brand__name{letter-spacing:-.02em;font-size:1.05rem;font-weight:800}.portal-header-nav{align-items:center;gap:.65rem;display:flex}.portal-header-link{color:var(--portal-muted);font-size:.9rem;font-weight:600;text-decoration:none}.portal-header-link:hover{color:var(--portal-ink)}.portal-header-btn{background:var(--portal-green);color:#fff;border-radius:999px;align-items:center;padding:.45rem .9rem;font-size:.85rem;font-weight:700;text-decoration:none;display:inline-flex}.portal-header-btn:hover{color:#fff;background:#2f6342}.portal-header-btn--ghost{border:1px solid var(--portal-border);color:var(--portal-muted);cursor:pointer;font:inherit;background:#fff}.portal-header-btn--ghost:hover{color:var(--portal-ink);background:#f4f6f8}.portal-header-muted{color:var(--portal-muted);font-size:.9rem}.portal .session-mode-badge{letter-spacing:.04em;border-radius:999px;align-items:center;padding:.2rem .55rem;font-size:.72rem;font-weight:800;display:inline-flex}.portal .session-mode-badge--admin{color:#9a3412;background:#fff7ed;border:1px solid #fdba74}.portal .session-mode-badge--creator{color:#1d4ed8;background:#eff6ff;border:1px solid #93c5fd}.portal .session-mode-badge--learner{color:#15803d;background:#f0fdf4;border:1px solid #86efac}.portal-hero{background:#fff;padding:1rem 1.25rem 2rem}.portal-hero__banner{border-radius:18px;width:100%;max-width:64rem;min-height:max(14rem,min(38vw,22rem));margin:0 auto;position:relative;overflow:hidden;box-shadow:0 14px 44px rgba(26,31,46,.16)}.portal-hero__photo{object-fit:cover;object-position:center 40%;width:100%;height:100%;display:block;position:absolute;top:0;bottom:0;left:0;right:0}.portal-hero__overlay{pointer-events:none;background:linear-gradient(100deg,rgba(12,18,32,.58) 0%,rgba(12,18,32,.32) 38%,rgba(12,18,32,.06) 58%,transparent 72%);position:absolute;top:0;bottom:0;left:0;right:0}.portal-hero__copy-on-image{z-index:1;text-align:left;flex-direction:column;justify-content:center;align-items:flex-start;width:min(100%,30rem);padding:1.5rem 1.6rem;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.portal-eyebrow{letter-spacing:.16em;color:var(--portal-amber-deep);margin:0 0 .5rem;font-size:.68rem;font-weight:700}.portal-eyebrow--on-image{color:rgba(255,255,255,.88)}.portal-hero__title{letter-spacing:-.03em;margin:0 0 1rem;font-size:max(1.2rem,min(3.8vw,1.9rem));font-weight:800;line-height:1.38}.portal-hero__title--on-image{color:#fff;text-shadow:0 2px 18px rgba(0,0,0,.28)}.portal-hero__below{text-align:center;max-width:40rem;margin:1.35rem auto 0;padding:0 .25rem}.portal-hero__lead{color:var(--portal-muted);margin:0 0 .75rem;font-size:.95rem;line-height:1.85}.portal-hero__note{color:var(--portal-muted);margin:0;font-size:.82rem;line-height:1.65}.portal-btn{border:2px solid transparent;border-radius:999px;justify-content:center;align-items:center;padding:.75rem 1.25rem;font-size:.92rem;font-weight:700;text-decoration:none;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.portal-btn--primary{background:var(--portal-amber);color:#1a1408;border-color:var(--portal-amber)}.portal-btn--primary:hover{background:var(--portal-amber-deep);border-color:var(--portal-amber-deep);color:#fff}.portal-btn--ghost{color:var(--portal-ink);border-color:var(--portal-border);background:0 0}.portal-btn--ghost:hover{border-color:var(--portal-green);color:var(--portal-green)}.portal-btn--large{padding:.75rem 1.4rem;font-size:.92rem}.portal-img{text-align:center;border:none;border-radius:0;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;width:100%;display:flex;position:relative;overflow:hidden}.portal-img--banner{aspect-ratio:21/9;border-bottom:1px solid var(--portal-border);min-height:12rem}.portal-img--banner.portal-img--hero{background:linear-gradient(135deg,#fff8e8 0%,#e8f3ec 45%,#d8e8f0 100%)}.portal-img--banner .portal-img__icon{font-size:3.5rem}.portal-img--banner .portal-img__label{font-size:1rem}.portal-img--feature{aspect-ratio:4/3;border:1px dashed var(--portal-border);border-radius:14px}.portal-img--feature.portal-img--create{background:linear-gradient(135deg,#eef2ff 0%,#f8f9fc 100%)}.portal-img--feature.portal-img--learn{background:linear-gradient(135deg,#e8f3ec 0%,#fff8e8 100%)}.portal-img--feature.portal-img--invite{background:linear-gradient(135deg,#f3eef8 0%,#eef2ff 100%)}.portal-img--feature .portal-img__icon{font-size:2rem}.portal-img--feature .portal-img__label{font-size:.82rem}.portal-img__icon{opacity:.85;line-height:1}.portal-img__label{color:var(--portal-muted);font-weight:600}.portal-img__badge{border:1px solid var(--portal-border);letter-spacing:.04em;color:var(--portal-muted);background:rgba(255,255,255,.88);border-radius:999px;padding:.25rem .55rem;font-size:.68rem;font-weight:700;position:absolute;top:.75rem;right:.75rem}.portal-feature{background:var(--portal-bg);padding:3rem 1.25rem}.portal-feature--reverse{background:#fff}.portal-feature__inner{align-items:center;gap:2rem;max-width:68rem;margin:0 auto;display:grid}.portal-feature__visual{min-width:0}.portal-feature__photo{aspect-ratio:4/3;object-fit:cover;object-position:center;border-radius:14px;width:100%;display:block;box-shadow:0 8px 28px rgba(26,31,46,.1)}.portal-feature__copy{min-width:0}.portal-feature__num{letter-spacing:.12em;color:var(--portal-amber-deep);margin:0 0 .5rem;font-size:.78rem;font-weight:800}.portal-feature__title{letter-spacing:-.02em;margin:0 0 1rem;font-size:max(1.25rem,min(3vw,1.65rem));font-weight:800;line-height:1.35}.portal-feature__body{color:var(--portal-muted);margin:0 0 1.25rem;font-size:.95rem;line-height:1.85}.portal-feature__list{flex-direction:column;gap:.55rem;margin:0;padding:0;list-style:none;display:flex}.portal-feature__list li{color:var(--portal-ink);padding-left:1.35rem;font-size:.9rem;line-height:1.6;position:relative}.portal-feature__list li:before{content:"✓";color:var(--portal-green);font-weight:800;position:absolute;left:0}.portal-closing{background:radial-gradient(ellipse 80% 60% at 50% 100%,rgba(61,122,82,.14) 0%,transparent 60%),linear-gradient(180deg,var(--portal-bg)0%,#fff 100%);text-align:center;padding:3.5rem 1.25rem 4rem}.portal-closing__inner{max-width:40rem;margin:0 auto}.portal-closing__title{letter-spacing:-.02em;margin:0 0 1rem;font-size:max(1.5rem,min(4vw,2rem));font-weight:800;line-height:1.35}.portal-closing__body{color:var(--portal-muted);margin:0 0 1.75rem;font-size:.98rem;line-height:1.85}.portal-closing__actions{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.portal-footer{border-top:1px solid var(--portal-border);text-align:center;background:#fff;padding:1.5rem 1.25rem 2rem}.portal-footer__text,.portal-footer__copy{color:var(--portal-muted);margin:0 0 .5rem;font-size:.85rem}.portal-footer__copy:last-child{margin-bottom:0}@media (min-width:768px){.portal-header,.portal-hero{padding-left:2rem;padding-right:2rem}.portal-hero__banner{min-height:20rem}.portal-hero__copy-on-image{width:min(100%,34rem);padding:2rem 2.25rem}.portal-img--banner{aspect-ratio:21/8;min-height:18rem}.portal-feature{padding:3.5rem 2rem}.portal-feature__inner{grid-template-columns:1fr 1fr;gap:3rem}.portal-feature--reverse .portal-feature__visual{order:2}.portal-feature--reverse .portal-feature__copy{order:1}.portal-closing,.portal-footer{padding-left:2rem;padding-right:2rem}}@media (min-width:1024px){.portal-hero__banner{max-width:68rem;min-height:22rem}.portal-img--banner{min-height:18rem}}
