.portal{--p-gutter:clamp(16px, 4vw, 40px);--p-max:1180px;--p-pad:clamp(16px, 2.6vw, 28px);--p-radius:var(--r-lg);--p-card:#ffffffb8;--p-card-solid:#fff;--p-sunk:#ffffff9e;--p-present:#177d57;--p-present-soft:#22b08e2b;--p-present-line:#22b08e80;--p-late:#8a5a00;--p-late-soft:#f2c14e47;--p-late-line:#d6a02899;--p-absent:#b3261e;--p-absent-soft:#ef5d6f26;--p-absent-line:#ef5d6f80;--p-leave:#5140c9;--p-leave-soft:#8b7bff2b;--p-leave-line:#8b7bff80;--p-gold:#f2c14e;--p-gold-line:#c98f0a;--p-gold-ink:#7a5000;--p-gold-soft:#f2c14e3d;--p-danger:#c43a2f;--tone-a:#22b08e;--tone-a-ink:#0f6e53;--tone-b:#3fa6d6;--tone-b-ink:#155f86;--tone-c:#e0a82e;--tone-c-ink:#7a5000;--tone-d:#e76f8a;--tone-d-ink:#a3203f;--cert-bg:#fffdf7;--cert-line:#e2c572;--p-bubble:#eaf4f9;--ink-3:var(--ink-2);flex-direction:column;min-height:100dvh;display:flex}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .portal{--p-card:#16191ebd;--p-card-solid:#1c1f24;--p-sunk:#ffffff0d;--p-present:#6fe3b8;--p-present-soft:#22b08e33;--p-present-line:#6fe3b873;--p-late:#f7cf6a;--p-late-soft:#f2c14e2e;--p-late-line:#f7cf6a73;--p-absent:#ff9a92;--p-absent-soft:#ef5d6f33;--p-absent-line:#ff9a9273;--p-leave:#bdb3ff;--p-leave-soft:#8b7bff3d;--p-leave-line:#bdb3ff73;--p-gold-ink:#f7cf6a;--p-gold-soft:#f2c14e29;--p-danger:#d9483d;--tone-a-ink:#6fe0c4;--tone-b-ink:#8ad0ef;--tone-c-ink:#f7cf6a;--tone-d-ink:#ffa3b8;--cert-bg:#16181d;--cert-line:#8f7630;--p-bubble:#1b2b35;--ink-2:#d4d4d9}}.portal-sky{z-index:-2;background:var(--aurora-base);pointer-events:none;position:fixed;inset:0}.portal-wrap{width:100%;max-width:var(--p-max);padding-inline:var(--p-gutter);margin-inline:auto}.portal-main{flex:1 0 auto;padding-block:clamp(16px,3vw,32px) clamp(32px,5vw,60px)}.portal-bar{z-index:100;background:color-mix(in srgb, var(--bg) 70%, transparent);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);border-bottom:1px solid var(--line-soft);position:sticky;top:0}.portal-bar__inner{justify-content:space-between;align-items:center;gap:12px;height:62px;display:flex}.portal-bar__brand{min-width:0;min-height:44px;color:var(--ink);align-items:center;gap:10px;display:flex}.portal-bar__brand:hover{text-decoration:none}.portal-bar__brand img{object-fit:contain;background:#fff;border-radius:50%;flex:none;width:36px;height:36px;padding:1px}.portal-bar__text{flex-direction:column;min-width:0;line-height:1.15;display:flex}.portal-bar__name{letter-spacing:-.02em;white-space:nowrap;text-overflow:ellipsis;font-size:.9375rem;font-weight:650;overflow:hidden}.portal-bar__sub{letter-spacing:.08em;text-transform:uppercase;color:var(--brand);font-size:.6875rem;font-weight:700}.portal-bar__me{flex:none;align-items:center;gap:8px;display:flex}.portal-bar__player{border-radius:var(--r-pill);background:var(--p-card);border:1px solid var(--glass-border);min-height:44px;box-shadow:var(--glass-highlight);color:var(--ink);transition:transform .25s var(--ease-out), box-shadow .25s var(--ease);align-items:center;gap:8px;padding:3px 14px 3px 3px;font-size:.9375rem;font-weight:650;display:inline-flex}.portal-bar__player:hover{box-shadow:var(--shadow-sm);text-decoration:none;transform:translateY(-1px)}.portal-bar__player .avatar{border-radius:50%}.portal-bar__out{border-radius:var(--r-pill);border:1px solid var(--line);min-height:44px;color:var(--ink-2);transition:background-color .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease);background:0 0;align-items:center;gap:6px;padding:0 14px;font-size:.875rem;font-weight:600;display:inline-flex}.portal-bar__out svg{width:17px;height:17px}.portal-bar__out:hover{background:var(--ink);border-color:var(--ink);color:var(--bg)}@media (max-width:560px){.portal-bar__first{display:none}.portal-bar__player{padding-right:3px}}@media (max-width:380px){.portal-bar__out{padding:0 11px}}.portal-foot{padding:18px var(--p-gutter) 26px;text-align:center;color:var(--ink-2);font-size:.8125rem}.portal-foot a{font-weight:600}.portal-title{letter-spacing:-.034em;font-size:clamp(1.9rem,1.3rem + 2.6vw,3rem)}.portal-lede{max-width:62ch;color:var(--ink-2);margin-top:8px;font-size:clamp(1rem,.95rem + .3vw,1.125rem)}.portal-h2{letter-spacing:-.024em;font-size:clamp(1.3rem,1.1rem + 1vw,1.75rem)}.portal-h3{letter-spacing:-.018em;font-size:1.1875rem;line-height:1.2}.portal-eyebrow{letter-spacing:.09em;text-transform:uppercase;color:var(--brand);font-size:.75rem;font-weight:700;display:block}.portal-muted{color:var(--ink-2)}:where(.portal) p+p{margin-top:0}.portal .btn--sm{min-height:44px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .portal-title,:root:not([data-theme=light]) .portal-lede{text-shadow:0 1px 14px #00000080}}.portal-page{animation:portal-enter .55s var(--ease-out) both;gap:clamp(16px,2.2vw,24px);display:grid}@keyframes portal-enter{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.portal-card{min-width:0;padding:var(--p-pad);border-radius:var(--p-radius);background:var(--p-card);-webkit-backdrop-filter:blur(18px)saturate(170%);backdrop-filter:blur(18px)saturate(170%);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow), var(--glass-highlight);position:relative}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.portal-card{background:var(--p-card-solid)}}.portal-card__title{margin-bottom:14px}.portal-head__row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 20px;display:flex}.portal-head__actions{flex-wrap:wrap;gap:10px;display:flex}.portal-back{border-radius:var(--r-pill);border:1px solid var(--glass-border);background:var(--p-card);min-height:44px;box-shadow:var(--glass-highlight), var(--shadow-sm);color:var(--ink);transition:transform .25s var(--ease-out), box-shadow .25s var(--ease);align-items:center;gap:4px;margin-bottom:14px;padding:0 16px 0 10px;font-size:.9375rem;font-weight:600;display:inline-flex}.portal-back svg{width:18px;height:18px;transition:transform .25s var(--ease-out)}.portal-back:hover{box-shadow:var(--shadow-md);text-decoration:none;transform:translateY(-1px)}.portal-back:hover svg{transform:translate(-3px)}.portal-back--corner{justify-self:start;margin-bottom:0}.portal-round{border:1px solid var(--line);background:var(--p-card-solid);width:44px;height:44px;color:var(--ink);transition:transform .2s var(--ease-out), background-color .2s var(--ease), color .2s var(--ease);border-radius:50%;flex:none;place-items:center;display:inline-grid}.portal-round svg{width:20px;height:20px}.portal-round:hover:not(:disabled){background:var(--ink);color:var(--bg);transform:translateY(-1px)}.portal-round:disabled{opacity:.35;cursor:not-allowed}.portal-show,.portal-parent-link{border-radius:var(--r-pill);border:1px solid var(--line);min-height:44px;color:var(--ink-2);transition:background-color .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease);background:0 0;justify-content:center;align-items:center;gap:7px;padding:0 16px;font-size:.9375rem;font-weight:600;display:inline-flex}.portal-show svg,.portal-parent-link svg{width:18px;height:18px}.portal-show:hover,.portal-parent-link:hover{color:var(--ink);border-color:var(--ink-2);background:var(--p-sunk)}.portal-show[aria-pressed=true]{color:var(--brand);border-color:color-mix(in srgb, var(--brand) 50%, transparent)}.portal-parent-link{justify-self:center}.portal .btn--primary.portal-danger{background:var(--p-danger);color:#fff;box-shadow:inset 0 1px 0 #ffffff3d, 0 4px 14px color-mix(in srgb, var(--p-danger) 30%, transparent)}.portal .btn--primary.portal-danger:hover{background:color-mix(in srgb, var(--p-danger) 86%, #000)}.portal-skel{background:linear-gradient(90deg, color-mix(in srgb, var(--ink) 7%, transparent) 25%, color-mix(in srgb, var(--ink) 13%, transparent) 45%, color-mix(in srgb, var(--ink) 7%, transparent) 65%);background-size:300% 100%;border-radius:8px;max-width:100%;animation:1.4s linear infinite portal-shimmer;display:block}@keyframes portal-shimmer{0%{background-position:100% 0}to{background-position:0 0}}.portal-loading{gap:clamp(16px,2.2vw,24px);display:grid}.portal-skel-card{gap:12px;display:grid}.portal-skel-row{align-items:center;gap:18px;display:flex}.portal-skel-col{flex:1;gap:10px;display:grid}.portal-error{text-align:center;justify-items:center;gap:12px;display:grid}.portal-error p{max-width:46ch;font-weight:500}.portal-error__art{width:80px;height:80px;color:var(--brand);background:#ffffffd9;border-radius:50%;place-items:center;display:grid}.portal-error__art>svg:not([width]){width:34px;height:34px}.portal-empty{color:var(--ink-2);align-items:center;gap:14px;padding:4px 0;display:flex}.portal-empty p{font-weight:500}.portal-empty__art{background:var(--brand-soft);width:48px;height:48px;color:var(--brand);border-radius:14px;flex:none;place-items:center;display:grid}.portal-empty__art>svg:not([width]){width:24px;height:24px}.portal-empty__art:has(>svg[width]){background:#fffc;border-radius:18px;width:auto;height:auto;padding:6px}.portal-signin{justify-items:center;padding-top:clamp(4px,3vh,40px)}.portal-signin__card{text-align:center;gap:16px;width:100%;max-width:540px;display:grid}.portal-signin__card.portal-form{text-align:left}.portal-signin__hello{text-align:center;justify-items:center;gap:8px;display:grid}.portal-signin__hello .avatar{filter:drop-shadow(0 10px 16px #0f3c5a2e)}.portal-signin__logo{filter:drop-shadow(0 10px 16px #0f3c5a26);margin-inline:auto}.portal-signin__title{letter-spacing:-.03em;font-size:clamp(1.7rem,1.25rem + 2vw,2.3rem)}.portal-signin__ask{color:var(--ink-2);font-size:1.0625rem}.portal-signin__note{min-height:1.6em;color:var(--ink-2);font-weight:650}.portal-signin__note.is-wrong{color:var(--p-absent)}.portal-signin__stuck{justify-items:center;gap:12px;padding:4px 0 6px;display:grid}.portal-signin__stuck p{max-width:38ch;font-size:1.0625rem;font-weight:500}.portal-signin__stuck p+p{margin-top:0}.portal-signin__stuck-art{background:var(--brand-soft);width:68px;height:68px;color:var(--brand);border-radius:50%;place-items:center;display:grid}.portal-signin__stuck-art svg{width:30px;height:30px}.portal-form{gap:18px;display:grid}.portal-who{flex-wrap:wrap;justify-content:center;gap:14px;list-style:none;display:flex}.portal-who li{animation:portal-pop-in .55s var(--ease-out) both;animation-delay:calc(var(--i,0) * 80ms)}.portal-who__btn{border:1.5px solid var(--glass-border);background:var(--p-sunk);min-width:136px;box-shadow:0 2px 0 #0000000d, var(--shadow-md);color:var(--ink);transition:transform .3s var(--ease-out), box-shadow .3s var(--ease), border-color .3s var(--ease);border-radius:26px;justify-items:center;gap:6px;padding:14px 14px 16px;font-size:1.125rem;font-weight:700;display:grid}.portal-who__btn:hover{border-color:var(--aurora-1);box-shadow:var(--shadow-lg);transform:translateY(-4px)scale(1.03)}.portal-who__btn:active{transform:scale(.97)}.portal-pad{justify-items:center;gap:16px;display:grid}.portal-slots{justify-content:center;gap:12px;display:flex}.portal-slot{border:2px dashed color-mix(in srgb, var(--ink) 22%, transparent);background:var(--p-sunk);border-radius:22px;place-items:center;width:74px;height:74px;display:grid}.portal-slot.is-filled{border:2px solid color-mix(in srgb, var(--aurora-1) 70%, transparent);animation:portal-pop .45s var(--ease-out) both;background:#fff;box-shadow:0 6px 16px #0f3c5a29}.portal-slot__dot{background:color-mix(in srgb, var(--ink) 20%, transparent);border-radius:50%;width:10px;height:10px}@keyframes portal-pop{0%{opacity:0;transform:scale(.4)}60%{opacity:1;transform:scale(1.12)}to{transform:scale(1)}}@keyframes portal-pop-in{0%{opacity:0;transform:translateY(14px)scale(.94)}to{opacity:1;transform:none}}.portal-pad__grid{grid-template-columns:repeat(3,minmax(88px,118px));gap:clamp(8px,2.4vw,14px);display:grid}.portal-tile{color:#34343e;-webkit-tap-highlight-color:transparent;min-height:104px;animation:portal-pop-in .5s var(--ease-out) both;animation-delay:calc(var(--i,0) * 35ms);transition:transform .22s var(--ease-out), box-shadow .22s var(--ease), opacity .2s var(--ease);background:linear-gradient(#fff,#f3f6f9);border:1.5px solid #ffffffe6;border-radius:24px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:8px 4px;display:flex;box-shadow:0 3px #0f3c5a1a,0 10px 20px #0f3c5a1a}.portal-tile svg{transition:transform .3s var(--ease-out)}.portal-tile:hover{transform:translateY(-3px);box-shadow:0 5px #0f3c5a1a,0 16px 26px #0f3c5a29}.portal-tile:hover svg{transform:rotate(-6deg)scale(1.06)}.portal-tile:active{transition-duration:80ms;transform:translateY(2px)scale(.95);box-shadow:0 1px #0f3c5a1a,0 4px 10px #0f3c5a1f}.portal-tile[aria-disabled=true]{opacity:.5;cursor:default;transform:none}.portal-tile[aria-disabled=true] svg{transform:none}.portal-tile__name{letter-spacing:-.005em;font-size:.8125rem;font-weight:650}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .portal-tile{background:linear-gradient(#f4f6f9,#dfe5ec);border-color:#ffffff40;box-shadow:0 3px #00000080,0 10px 22px #00000073}}.portal-pad__foot{justify-content:center;display:flex}.portal-undo{border-radius:var(--r-pill);border:1.5px solid color-mix(in srgb, var(--brand) 40%, transparent);background:var(--brand-soft);min-height:44px;color:var(--brand);transition:transform .2s var(--ease-out), background-color .2s var(--ease), color .2s var(--ease), opacity .2s var(--ease);align-items:center;gap:7px;padding:0 18px;font-weight:650;display:inline-flex}.portal-undo svg{width:18px;height:18px}.portal-undo:hover{background:var(--brand);color:var(--on-brand)}.portal-undo[aria-disabled=true]{opacity:.45;cursor:default;background:var(--brand-soft);color:var(--brand)}.portal-code{text-transform:uppercase;letter-spacing:.04em;font-variant-numeric:tabular-nums}.portal-code::placeholder{letter-spacing:.02em}.portal-pin{border:0;min-width:0;margin:0;padding:0}.portal-pin__legend{color:var(--ink-2);margin-bottom:7px;padding:0;font-size:.875rem;font-weight:500}.portal-pin__boxes{gap:clamp(5px,1.5vw,10px);display:flex}.portal-pin input{border:1px solid var(--line);background:var(--surface);width:clamp(40px,11vw,52px);height:56px;color:var(--ink);text-align:center;font-variant-numeric:tabular-nums;appearance:none;transition:border-color .2s var(--ease), box-shadow .2s var(--ease);border-radius:12px;padding:0;font-size:1.5rem;font-weight:700}.portal-pin input:focus{border-color:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb, var(--brand) 18%, transparent);outline:none}.portal-pin[disabled] input{opacity:.6}.portal-pin-row{flex-wrap:wrap;align-items:flex-end;gap:12px 14px;display:flex}.portal-player{grid-template-columns:auto minmax(0,1fr) minmax(0,360px);align-items:center;gap:clamp(16px,3vw,32px);display:grid}.portal-player__avatar{filter:drop-shadow(0 14px 18px #0f3c5a33);animation:5s ease-in-out infinite portal-bob}@keyframes portal-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.portal-player__name{letter-spacing:-.034em;margin-top:2px;font-size:clamp(1.8rem,1.2rem + 2.4vw,2.8rem)}.portal-player__class{color:var(--ink-2);margin-top:6px;font-weight:500}.portal-player__code{font-variant-numeric:tabular-nums;letter-spacing:.02em;font-weight:650}.portal-chips{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.portal-chip{border-radius:var(--r-pill);border:1px solid var(--glass-border);background:var(--p-sunk);min-height:38px;box-shadow:var(--glass-highlight);color:var(--ink);align-items:center;gap:6px;padding:6px 14px 6px 10px;font-size:.9375rem;display:inline-flex}.portal-chip svg{flex:none;width:20px;height:20px}.portal-chip--star svg{fill:var(--p-gold);stroke:var(--p-gold-line)}.portal-chip--star strong{font-variant-numeric:tabular-nums;font-size:1.0625rem}.portal-chip--star em{border-radius:var(--r-pill);background:var(--p-present-soft);color:var(--p-present);margin-left:2px;padding:1px 8px;font-size:.8125rem;font-style:normal;font-weight:700}.portal-chip--streak svg{fill:#f28c4e59;stroke:#e0662a}.portal-chip--link{min-height:44px;transition:transform .2s var(--ease-out), background-color .2s var(--ease);font-weight:600}.portal-chip--link:hover{background:var(--p-card-solid);text-decoration:none;transform:translateY(-1px)}.portal-player__grow{border:1px solid var(--glass-border);background:var(--p-sunk);border-radius:22px;align-items:center;gap:14px;padding:14px;display:flex}.portal-player__tree{background:radial-gradient(circle at 50% 40%,#fff,#eef6f2);border-radius:26px;flex:none;place-items:center;width:100px;height:100px;display:grid;box-shadow:inset 0 -4px 10px #0f3c5a14}.portal-player__level{flex:1;gap:5px;min-width:0;display:grid}.portal-player__title{letter-spacing:-.02em;font-size:1.3rem;line-height:1.15}.portal-player__next{color:var(--ink-2);font-size:.875rem;font-weight:500}.portal-progress{border-radius:var(--r-pill);background:color-mix(in srgb, var(--ink) 10%, transparent);height:12px;overflow:hidden}.portal-progress span{border-radius:inherit;background:linear-gradient(90deg, var(--aurora-2), var(--aurora-1), var(--aurora-3));min-width:12px;height:100%;animation:portal-grow-in 1.1s var(--ease-out) .3s both;transform-origin:0;display:block;box-shadow:inset 0 1px #ffffff73}@keyframes portal-grow-in{0%{transform:scaleX(0)}}@media (max-width:880px){.portal-player{grid-template-columns:auto minmax(0,1fr)}.portal-player__grow{grid-column:1/-1}}@media (max-width:540px){.portal-player{text-align:center;grid-template-columns:minmax(0,1fr);justify-items:center}.portal-player .portal-chips{justify-content:center}.portal-player__grow{text-align:left;width:100%}}.portal-mapcard{overflow:hidden}.portal-mapcard__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 16px;margin-bottom:6px;display:flex}.portal-mapcard__head .portal-muted{font-size:.875rem}.portal-map{min-height:120px;position:relative}.portal-map__path{pointer-events:none;position:absolute;top:0;left:0;overflow:visible}.portal-map__path path{fill:none;stroke-linecap:round;stroke-linejoin:round}.portal-map__track{stroke:#ffffffb3;stroke-width:26px}.portal-map__ahead{stroke:color-mix(in srgb, var(--ink) 34%, transparent);stroke-width:5px;stroke-dasharray:0 14}.portal-map__done{stroke:#f2a53a;stroke-width:6px;stroke-dasharray:0 14;animation:1.4s linear infinite portal-march}@keyframes portal-march{to{stroke-dashoffset:-28px}}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .portal-map__track{stroke:#ffffff12}:root:not([data-theme=light]) .portal-map__done{stroke:#f7c948}}.portal-map__lands{margin:0;padding:0;list-style:none;position:absolute;inset:0}.portal-land{text-align:center;position:absolute;transform:translate(-50%,-44px)}.portal-land__in{animation:portal-land-in .6s var(--ease-out) both;animation-delay:calc(var(--i,0) * .11s + .12s);flex-direction:column;align-items:center;gap:8px;display:flex}@keyframes portal-land-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.portal-land__disc{background:radial-gradient(circle at 34% 28%, #fff 0%, color-mix(in srgb, var(--land) 22%, #fff) 42%, color-mix(in srgb, var(--land) 58%, #fff) 100%);width:88px;height:88px;box-shadow:0 0 0 4px #ffffffd9, inset 0 -6px 12px #00000014, 0 12px 24px color-mix(in srgb, var(--land) 38%, transparent);border-radius:50%;flex:none;place-items:center;display:grid;position:relative}.portal-land.is-here .portal-land__disc{box-shadow:0 0 0 4px #fff, 0 0 0 8px var(--land), inset 0 -6px 12px #00000014, 0 16px 30px color-mix(in srgb, var(--land) 50%, transparent);animation:2.6s ease-in-out infinite portal-here}@keyframes portal-here{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.portal-land__me{z-index:2;filter:drop-shadow(0 8px 6px #00000038);width:84px;margin-left:-42px;animation:2.4s ease-in-out infinite portal-hop;position:absolute;bottom:76px;left:50%}.portal-land__me .avatar{max-width:none}@keyframes portal-hop{0%,to{transform:translateY(0)}45%{transform:translateY(-9px)}60%{transform:translateY(-9px)}}.portal-land.is-ahead .portal-land__disc>svg{filter:grayscale()blur(1.2px);opacity:.55}.portal-land.is-ahead .portal-land__disc{background:radial-gradient(circle at 34% 28%,#fff,#e6eaef)}.portal-land__mist{color:#5d6573;background:radial-gradient(circle,#fff9 0%,#ffffff40 70%,#0000 72%);border-radius:50%;place-items:center;display:grid;position:absolute;inset:0}.portal-land__mist svg{width:26px;height:26px}.portal-land__label{border:1px solid var(--glass-border);background:var(--p-card-solid);width:100%;box-shadow:var(--shadow-sm);border-radius:16px;gap:1px;padding:7px 10px 8px;display:grid}.portal-land__label strong{letter-spacing:-.015em;font-size:.9688rem;line-height:1.2}.portal-land__term{color:var(--ink-2);font-size:.8125rem;line-height:1.3}.portal-land__stars{color:var(--p-gold-ink);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;gap:4px;margin-top:2px;font-size:.875rem;font-weight:700;display:inline-flex}.portal-land__stars svg{width:16px;height:16px;fill:var(--p-gold);stroke:var(--p-gold-line)}.portal-land.is-ahead .portal-land__label{opacity:.72}.portal-land__report{border-radius:var(--r-pill);border:1.5px solid color-mix(in srgb, var(--land) 65%, #fff);background:linear-gradient(180deg, color-mix(in srgb, var(--land) 18%, #fff), color-mix(in srgb, var(--land) 34%, #fff));min-height:44px;box-shadow:0 3px 0 color-mix(in srgb, var(--land) 45%, transparent), 0 8px 16px color-mix(in srgb, var(--land) 25%, transparent);color:#1d1d1f;white-space:nowrap;transition:transform .2s var(--ease-out), box-shadow .2s var(--ease);align-items:center;gap:6px;padding:0 16px 0 12px;font-size:.875rem;font-weight:700;display:inline-flex}.portal-land__report svg{width:18px;height:18px}.portal-land__report:hover{text-decoration:none;transform:translateY(-2px)}.portal-land__report:active{box-shadow:0 1px 0 color-mix(in srgb, var(--land) 45%, transparent);transform:translateY(2px)}.portal-tiles{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));grid-auto-flow:dense;gap:clamp(16px,2.2vw,24px);display:grid}.portal-tiles__cell{min-width:0;animation:portal-pop-in .6s var(--ease-out) both;animation-delay:calc(var(--i,0) * 70ms + .18s);display:flex}.portal-tiles__cell>.portal-card{flex:1}@media (min-width:760px){.portal-tiles__cell:has(>.is-wide){grid-column:span 2}}.portal-tile-card{flex-direction:column;gap:14px;display:flex}.portal-tile-card__head{align-items:center;gap:12px;display:flex}.portal-tile-card__icon{background:linear-gradient(135deg, color-mix(in srgb, var(--aurora-1) 22%, transparent), color-mix(in srgb, var(--aurora-3) 22%, transparent));width:42px;height:42px;color:var(--brand);border-radius:13px;flex:none;place-items:center;display:grid}.portal-tile-card__icon svg{width:22px;height:22px}.portal-tile-card__body{flex:1;min-width:0}.portal-tile-card__text{color:var(--ink-2)}.portal-tile-card__more{align-self:flex-start;min-height:44px}.portal-att{flex-wrap:wrap;align-items:center;gap:16px 22px;display:flex}.portal-ring{flex:none;width:120px;height:120px;position:relative}.portal-ring svg{width:120px;height:120px;animation:portal-ring-in .9s var(--ease-out) .25s both;overflow:visible}@keyframes portal-ring-in{0%{opacity:0;transform:rotate(-110deg)scale(.82)}to{opacity:1;transform:none}}.portal-ring circle{fill:none;stroke-width:12px}.portal-ring__track{stroke:color-mix(in srgb, var(--ink) 10%, transparent)}.portal-ring__fill{stroke:#22b08e;stroke-dasharray:var(--dash);stroke-linecap:round;filter:drop-shadow(0 3px 6px #22b08e59)}.portal-ring__label{text-align:center;place-content:center;line-height:1.1;display:grid;position:absolute;inset:0}.portal-ring__label strong{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:1.6rem}.portal-ring__label span{color:var(--ink-2);font-size:.75rem;font-weight:600}.portal-att__counts{flex:1;gap:6px;min-width:150px;list-style:none;display:grid}.portal-att__counts li{align-items:center;gap:8px;font-size:.9375rem;display:flex}.portal-att__counts strong{font-variant-numeric:tabular-nums;margin-left:auto}.portal-att__none{width:100%;color:var(--ink-2);font-size:.875rem}.portal-money{grid-template-columns:repeat(auto-fit,minmax(min(100%,118px),1fr));gap:10px;margin:0;display:grid}.portal-money>div{border:1px solid var(--glass-border);background:var(--p-sunk);border-radius:16px;padding:12px 14px}.portal-money dt{color:var(--ink-2);font-size:.8125rem;font-weight:600}.portal-money dd{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:clamp(1.1rem,1rem + .6vw,1.35rem);font-weight:750}.portal-money .is-owed dd{color:var(--p-late)}.portal-money .is-clear dd{color:var(--p-present)}.portal-money--big dd{font-size:clamp(1.3rem,1.1rem + 1vw,1.8rem)}.portal-list{list-style:none;display:grid}.portal-list>li{border-bottom:1px solid var(--line-soft);padding:14px 0}.portal-list>li:first-child{padding-top:0}.portal-list>li:last-child{border-bottom:0;padding-bottom:0}.portal-list--tight>li{padding-block:10px}.portal-hw__top{flex-wrap:wrap;align-items:center;gap:6px 8px;margin-bottom:6px;display:flex}.portal-hw__body{white-space:pre-line;overflow-wrap:anywhere;line-height:1.5}.portal-hw--compact .portal-hw__body{-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.9688rem;display:-webkit-box;overflow:hidden}.portal-hw__given{color:var(--ink-2);margin-top:6px;font-size:.8125rem}.portal-subject,.portal-due,.portal-status,.portal-tag{border-radius:var(--r-pill);letter-spacing:.01em;white-space:nowrap;align-items:center;gap:4px;padding:3px 10px;font-size:.75rem;font-weight:700;line-height:1.4;display:inline-flex}.portal-subject{background:var(--p-leave-soft);color:var(--p-leave)}.portal-due{background:color-mix(in srgb, var(--ink) 7%, transparent);color:var(--ink-2)}.portal-due svg{width:14px;height:14px}.portal-due.is-today{background:var(--p-absent-soft);color:var(--p-absent);box-shadow:inset 0 0 0 1px var(--p-absent-line)}.portal-due.is-tomorrow{background:var(--p-late-soft);color:var(--p-late);box-shadow:inset 0 0 0 1px var(--p-late-line)}.portal-notice__title{letter-spacing:-.01em;overflow-wrap:anywhere;font-weight:700;line-height:1.35}.portal-notice__date{color:var(--ink-2);margin-top:2px;font-size:.8125rem;display:block}.portal-notice__body{white-space:pre-line;overflow-wrap:anywhere;margin-top:8px;line-height:1.55}.portal-notice--compact{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.portal-notice--compact .portal-notice__title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.9688rem;display:-webkit-box;overflow:hidden}.portal-notice--compact .portal-notice__date{flex:none;margin:0}.portal-awards{list-style:none;display:grid}.portal-award{border-bottom:1px solid var(--line-soft);align-items:flex-start;gap:12px;padding:11px 0;display:flex}.portal-award:first-child{padding-top:0}.portal-award:last-child{border-bottom:0;padding-bottom:0}.portal-award__stars{border-radius:var(--r-pill);background:var(--p-gold-soft);min-width:58px;color:var(--p-gold-ink);font-variant-numeric:tabular-nums;flex:none;justify-content:center;align-items:center;gap:3px;padding:4px 10px;font-weight:800;display:inline-flex}.portal-award__stars svg{width:17px;height:17px;fill:var(--p-gold);stroke:var(--p-gold-line)}.portal-award__badge-only{margin-inline:9px}.portal-award__text{min-width:0}.portal-award__reason{overflow-wrap:anywhere;font-weight:600;line-height:1.35}.portal-award__meta{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:3px;font-size:.8125rem;display:flex}.portal-award__badge{align-items:center;gap:6px;font-weight:600;display:inline-flex}.portal-badge-disc{background:radial-gradient(circle at 34% 28%, color-mix(in srgb, var(--badge) 55%, #fff) 0%, var(--badge) 58%, color-mix(in srgb, var(--badge) 78%, #000) 100%);box-shadow:inset 0 -3px 6px #00000029, inset 0 2px 2px #ffffff59, 0 4px 10px color-mix(in srgb, var(--badge) 35%, transparent);border-radius:50%;flex:none;place-items:center;display:inline-grid;position:relative}.portal-badge-disc svg{width:100%;height:100%}.portal-badge-disc.is-locked{background:color-mix(in srgb, var(--ink) 11%, transparent);box-shadow:inset 0 2px 5px #0000001f}.portal-badge-disc.is-locked svg{opacity:.55}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .portal-badge-disc.is-locked svg{opacity:.3}}.portal-shelf{grid-template-columns:repeat(auto-fill,minmax(max(64px,20% - 6.4px),1fr));gap:14px 8px;list-style:none;display:grid}.portal-shelf__item{text-align:center;justify-items:center;gap:6px;display:grid}.portal-shelf__disc{display:inline-grid;position:relative}.portal-shelf__item.is-earned .portal-shelf__disc{animation:portal-pop .55s var(--ease-out) both;animation-delay:calc(var(--i,0) * 50ms + .3s)}.portal-shelf__item.is-earned .portal-badge-disc{transition:transform .3s var(--ease-out)}.portal-shelf__item.is-earned:hover .portal-badge-disc{transform:rotate(-8deg)scale(1.08)}.portal-shelf__count{border-radius:var(--r-pill);background:var(--ink);min-width:26px;color:var(--bg);font-variant-numeric:tabular-nums;padding:1px 6px;font-size:.75rem;font-weight:800;position:absolute;top:-4px;right:-6px;box-shadow:0 2px 6px #0003}.portal-shelf__q{border:2px solid var(--p-card-solid);background:color-mix(in srgb, var(--ink) 45%, var(--p-card-solid));width:24px;height:24px;color:var(--p-card-solid);border-radius:50%;place-items:center;font-size:.8125rem;font-weight:800;line-height:1;display:grid;position:absolute;top:-4px;right:-5px}.portal-shelf__name{color:var(--ink-2);font-size:.75rem;font-weight:650;line-height:1.2}.portal-shelf__item.is-earned .portal-shelf__name{color:var(--ink)}.portal-shelf--described{grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:12px}.portal-shelf--described .portal-shelf__item{border:1px solid var(--glass-border);background:var(--p-sunk);text-align:left;border-radius:18px;grid-template-columns:auto minmax(0,1fr);place-items:center start;gap:14px;padding:12px}.portal-shelf--described .portal-shelf__name{font-size:.9688rem}.portal-shelf--described .portal-shelf__text{gap:2px;display:grid}.portal-shelf__desc{color:var(--ink-2);font-size:.8125rem;line-height:1.4}.portal-shelf--described .portal-shelf__item:not(.is-earned) .portal-shelf__name{color:var(--ink-2)}.portal-mark{fill:none;stroke:currentColor;stroke-width:2.3px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:16px;height:16px}.portal-mark--present{color:var(--p-present)}.portal-mark--late{color:var(--p-late)}.portal-mark--absent{color:var(--p-absent)}.portal-mark--leave{color:var(--p-leave)}.portal-legend__swatch{border:1px solid var(--line);background:var(--p-sunk);border-radius:7px;flex:none;place-items:center;width:24px;height:24px;display:inline-grid}.portal-legend__swatch.is-present{background:var(--p-present-soft);border-color:var(--p-present-line)}.portal-legend__swatch.is-late{background:var(--p-late-soft);border-color:var(--p-late-line)}.portal-legend__swatch.is-absent{background:var(--p-absent-soft);border-color:var(--p-absent-line)}.portal-legend__swatch.is-leave{background:var(--p-leave-soft);border-color:var(--p-leave-line)}.portal-legend__swatch .portal-mark{width:15px;height:15px}.portal-cal{gap:16px;display:grid}.portal-cal>*{width:100%;max-width:680px;margin-inline:auto}.portal-cal__nav{justify-content:space-between;align-items:center;gap:12px;display:flex}.portal-cal__month{letter-spacing:-.02em;text-align:center;font-size:clamp(1.2rem,1.05rem + .8vw,1.6rem)}.portal-cal__weekdays,.portal-cal__grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:clamp(4px,1vw,8px);list-style:none;display:grid}.portal-cal__weekdays{margin-bottom:6px}.portal-cal__weekdays li{text-align:center;letter-spacing:.04em;color:var(--ink-2);font-size:.75rem;font-weight:700}.portal-cal__wd-rest{display:none}@media (min-width:520px){.portal-cal__wd-rest{display:inline}}.portal-cal[aria-busy=true] .portal-cal__grid{opacity:.6}.portal-day{aspect-ratio:1;border:1px solid var(--line-soft);background:var(--p-sunk);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:1px;min-width:0;min-height:42px;display:flex;position:relative}.portal-day__n{font-variant-numeric:tabular-nums;font-size:.8125rem;font-weight:650;line-height:1.1}.portal-day .portal-mark{width:17px;height:17px}.portal-day.is-gap,.portal-day.is-loading{background:0 0;border:0}.portal-day.is-loading .portal-skel{width:100%}.portal-day.is-present{background:var(--p-present-soft);border-color:var(--p-present-line)}.portal-day.is-late{background:var(--p-late-soft);border-color:var(--p-late-line)}.portal-day.is-absent{background:var(--p-absent-soft);border-color:var(--p-absent-line)}.portal-day.is-leave{background:var(--p-leave-soft);border-color:var(--p-leave-line)}.portal-day.is-sunday:not([class*=is-present]):not([class*=is-late]):not([class*=is-absent]):not([class*=is-leave]) .portal-day__n{color:var(--ink-2);opacity:.7}.portal-day.is-future{opacity:.45}.portal-day.is-today{box-shadow:0 0 0 2px var(--brand)}@media (min-width:640px){.portal-day{border-radius:14px}.portal-day__n{font-size:.9375rem}.portal-day .portal-mark{width:20px;height:20px}}.portal-legend{flex-wrap:wrap;gap:8px 16px;list-style:none;display:flex}.portal-legend__item{align-items:center;gap:8px;font-size:.875rem;font-weight:500;display:inline-flex}.portal-summary{flex-wrap:wrap;align-items:center;gap:16px 32px;display:flex}.portal-summary__big{gap:2px;display:grid}.portal-summary__big strong{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:clamp(2rem,1.6rem + 1.8vw,2.8rem);line-height:1}.portal-summary__big span{color:var(--ink-2);font-size:.9375rem;font-weight:500}.portal-summary__counts{flex:1;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;list-style:none;display:grid}.portal-summary__counts li{border:1px solid var(--glass-border);background:var(--p-sunk);border-radius:14px;align-items:center;gap:8px;padding:10px 12px;font-size:.9375rem;display:flex}.portal-summary__counts strong{font-variant-numeric:tabular-nums;margin-left:auto;font-size:1.125rem}.portal-grow__hero{flex-wrap:wrap;align-items:center;gap:20px 36px;display:flex}.portal-grow__tree{width:200px;height:200px;box-shadow:inset 0 -8px 20px #0f3c5a14, var(--shadow-md);background:radial-gradient(circle at 50% 38%,#fff,#eaf6f0);border-radius:40px;flex:none;place-items:center;display:grid}.portal-grow__tree svg{transform-origin:50% 90%;animation:6s ease-in-out infinite portal-sway}@keyframes portal-sway{0%,to{transform:rotate(0)}50%{transform:rotate(-2deg)}}.portal-grow__words{gap:6px;min-width:0;display:grid}.portal-grow__total{align-items:center;gap:10px;display:flex}.portal-grow__total svg{width:44px;height:44px;fill:var(--p-gold);stroke:var(--p-gold-line)}.portal-grow__total strong{letter-spacing:-.045em;font-variant-numeric:tabular-nums;font-size:clamp(2.6rem,2rem + 2.4vw,3.8rem);line-height:1}.portal-grow__total span{color:var(--ink-2);font-size:1.125rem;font-weight:600}.portal-levels{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:26px;list-style:none;display:grid;position:relative}.portal-levels:before{content:"";background:repeating-linear-gradient(90deg, color-mix(in srgb, var(--ink) 22%, transparent) 0 6px, transparent 6px 14px);border-radius:2px;height:4px;position:absolute;top:31px;left:10%;right:10%}.portal-level{text-align:center;align-content:start;justify-items:center;gap:5px;display:grid;position:relative}.portal-level__art{border:2px solid var(--line);width:66px;height:66px;transition:transform .3s var(--ease-out);background:radial-gradient(circle at 50% 40%,#fff,#eef4f1);border-radius:50%;place-items:center;display:grid}.portal-level__title{font-size:.8125rem;font-weight:700;line-height:1.2}.portal-level__stars{color:var(--ink-2);font-size:.75rem;font-weight:500}.portal-level.is-done .portal-level__art{border-color:#22b08e}.portal-level.is-here .portal-level__art{border:3px solid var(--p-gold);box-shadow:0 0 0 6px var(--p-gold-soft), 0 10px 22px #e0a82e4d;transform:scale(1.14)}.portal-level.is-here .portal-level__title{color:var(--p-gold-ink)}.portal-level.is-ahead .portal-level__art svg{filter:grayscale();opacity:.45}@media (max-width:560px){.portal-levels{grid-template-columns:minmax(0,1fr);gap:10px}.portal-levels:before{background:repeating-linear-gradient(180deg, color-mix(in srgb, var(--ink) 22%, transparent) 0 6px, transparent 6px 14px);width:4px;height:auto;inset:16px auto 16px 31px}.portal-level{text-align:left;grid-template-columns:auto minmax(0,1fr) auto;place-items:center start;gap:14px}.portal-level__title{font-size:.9688rem}.portal-level.is-here .portal-level__art{transform:scale(1.06)}}.portal-cert{background:var(--cert-bg);border:2px solid var(--cert-line);box-shadow:inset 0 0 0 7px var(--cert-bg), inset 0 0 0 8.5px var(--cert-line), var(--shadow-lg);color:var(--ink);border-radius:22px;padding:clamp(20px,4vw,44px);position:relative}.portal-cert:before,.portal-cert:after{content:"✦";color:var(--cert-line);font-size:1.1rem;position:absolute;top:16px}.portal-cert:before{left:20px}.portal-cert:after{right:20px}@media (max-width:560px){.portal-cert:before,.portal-cert:after{display:none}}.portal-cert__head{border-bottom:1.5px dashed color-mix(in srgb, var(--cert-line) 70%, transparent);align-items:center;gap:14px;padding-bottom:16px;display:flex}.portal-cert__head img{background:#fff;border-radius:50%;flex:none;width:56px;height:56px;padding:2px}.portal-cert__school{letter-spacing:.08em;text-transform:uppercase;color:var(--brand);font-size:.8125rem;font-weight:700}.portal-cert__title{letter-spacing:-.025em;margin-top:2px;font-size:clamp(1.35rem,1.1rem + 1.3vw,2rem)}.portal-cert__session{color:var(--ink-2);margin-top:2px;font-size:.875rem}.portal-cert__who{align-items:center;gap:18px;margin:20px 0 18px;display:flex}.portal-cert__avatar{flex:none;position:relative}.portal-cert__stamp{background:var(--p-gold);color:#7a5000;border:2px dashed #7a500073;border-radius:50%;place-items:center;width:40px;height:40px;display:grid;position:absolute;bottom:-6px;right:-8px;transform:rotate(-14deg);box-shadow:0 4px 10px #b7860b59}.portal-cert__stamp svg{fill:#fff4d0;stroke:#7a5000;width:22px;height:22px}.portal-cert__name{letter-spacing:-.02em;font-size:clamp(1.2rem,1.05rem + .8vw,1.6rem);font-weight:750}.portal-cert__empty{color:var(--ink-2);padding:14px 0}.portal-marks{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.portal-marks th,.portal-marks td{text-align:left;vertical-align:middle;border-bottom:1px solid var(--line-soft);padding:11px 8px}.portal-marks th:first-child{padding-left:0}.portal-marks td:last-child{text-align:right;padding-right:0}.portal-marks thead th{letter-spacing:.07em;text-transform:uppercase;color:var(--ink-2);padding-top:0;font-size:.75rem;font-weight:700}.portal-marks thead th:last-child{text-align:right}.portal-marks tbody th{font-weight:650}.portal-marks__remark{color:var(--ink-2);font-size:.8125rem;font-weight:400;display:block}.portal-marks__num{white-space:nowrap}.portal-marks__bar-col{width:32%}.portal-marks__bar{border-radius:var(--r-pill);background:color-mix(in srgb, var(--ink) 8%, transparent);height:9px;display:block;overflow:hidden}.portal-marks__bar>span{border-radius:inherit;height:100%;display:block}.portal-marks tfoot th,.portal-marks tfoot td{border-top:2px solid color-mix(in srgb, var(--cert-line) 80%, transparent);border-bottom:0;padding-top:14px;font-weight:750}.portal-marks__pct{color:var(--brand);margin-left:8px;font-weight:750}@media (max-width:520px){.portal-marks__bar-col{display:none}.portal-marks__pct{margin:2px 0 0;display:block}}.tone-a{--tone:var(--tone-a);--tone-ink:var(--tone-a-ink)}.tone-b{--tone:var(--tone-b);--tone-ink:var(--tone-b-ink)}.tone-c{--tone:var(--tone-c);--tone-ink:var(--tone-c-ink)}.tone-d{--tone:var(--tone-d);--tone-ink:var(--tone-d-ink)}.tone-none{--tone:var(--ink-3);--tone-ink:var(--ink-2)}.portal-marks__bar>span{background:var(--tone)}.portal-grade{background:color-mix(in srgb, var(--tone) 20%, transparent);min-width:42px;height:32px;box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--tone) 55%, transparent);color:var(--tone-ink);letter-spacing:-.01em;border-radius:10px;place-items:center;padding:0 9px;font-weight:800;display:inline-grid}.portal-grade--big{border-radius:12px;min-width:52px;height:40px;font-size:1.25rem}.portal-cert__note{margin:22px 0 0}.portal-bubble{background:var(--p-bubble);border:1px solid color-mix(in srgb, var(--brand) 22%, transparent);border-radius:20px;margin:0;padding:14px 18px;font-size:1.0625rem;line-height:1.5;position:relative}.portal-bubble p{white-space:pre-line}.portal-bubble:after{content:"";background:inherit;border-right:1px solid color-mix(in srgb, var(--brand) 22%, transparent);border-bottom:1px solid color-mix(in srgb, var(--brand) 22%, transparent);border-bottom-right-radius:4px;width:18px;height:18px;position:absolute;bottom:-10px;left:28px;transform:rotate(45deg)}.portal-cert__note figcaption{color:var(--ink-2);margin-top:14px;padding-left:20px;font-size:.875rem;font-weight:600}.portal-fee{justify-content:space-between;align-items:flex-start;gap:12px 16px;display:flex}.portal-fee__main{min-width:0}.portal-fee__title{overflow-wrap:anywhere;font-weight:650}.portal-fee__meta{color:var(--ink-2);margin-top:2px;font-size:.8125rem}.portal-fee__side{text-align:right;flex:none;justify-items:end;gap:4px;display:grid}.portal-fee__amount{font-variant-numeric:tabular-nums;font-size:1.0625rem}.portal-status.is-paid{background:var(--p-present-soft);color:var(--p-present)}.portal-status.is-part{background:var(--brand-soft);color:var(--brand)}.portal-status.is-due{background:var(--p-late-soft);color:var(--p-late)}.portal-status.is-late{background:var(--p-absent-soft);color:var(--p-absent)}.portal-set{gap:16px;display:grid}.portal-set__head{align-items:flex-start;gap:14px;display:flex}.portal-set__lede{max-width:64ch;color:var(--ink-2);margin-top:4px;font-size:.9375rem}@media (max-width:520px){.portal-set__head>.portal-tile-card__icon{display:none}}.portal-set__row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.portal-set__state{align-items:center;gap:10px;font-weight:600;display:inline-flex}.portal-set__actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.portal-set__actions--center{justify-content:center}.portal-set__pad{gap:14px;display:grid}.portal-set__ask{text-align:center;font-weight:600}.portal-set .field{max-width:420px}.portal-set .portal-form .btn{white-space:normal;text-align:center;justify-self:start}.portal-dot{background:color-mix(in srgb, var(--ink) 30%, transparent);border-radius:50%;flex:none;width:10px;height:10px}.portal-dot.is-on{background:#22b08e;box-shadow:0 0 0 4px #22b08e33}.portal-confirm{border:1.5px solid color-mix(in srgb, var(--p-danger) 40%, transparent);background:color-mix(in srgb, var(--p-danger) 7%, transparent);border-radius:16px;gap:12px;padding:14px 16px;display:grid}.portal-confirm p{font-weight:600}.portal-device{flex-wrap:wrap;align-items:center;gap:10px 14px;display:flex}.portal-device__icon{background:var(--brand-soft);width:42px;height:42px;color:var(--brand);border-radius:13px;flex:none;place-items:center;display:grid}.portal-device__icon svg{width:22px;height:22px}.portal-device__text{flex:1;min-width:160px}.portal-device__name{overflow-wrap:anywhere;font-weight:650}.portal-device__meta{color:var(--ink-2);margin-top:1px;font-size:.8125rem}.portal-device__confirm{flex-wrap:wrap;gap:8px;display:flex}.portal-device__remove:hover:not(:disabled){background:var(--p-danger);border-color:var(--p-danger);color:#fff}.portal-tag{vertical-align:2px;background:var(--brand-soft);color:var(--brand);text-transform:uppercase;letter-spacing:.06em;margin-left:8px;font-size:.6875rem}.portal-pins{gap:16px;display:grid}@media (prefers-reduced-motion:reduce){.portal-page,.portal-who li,.portal-slot.is-filled,.portal-tile,.portal-player__avatar,.portal-progress span,.portal-map__done,.portal-land__in,.portal-land.is-here .portal-land__disc,.portal-land__me,.portal-tiles__cell,.portal-ring svg,.portal-shelf__item.is-earned .portal-shelf__disc,.portal-grow__tree svg,.portal-skel{animation:none!important}.portal-tile:hover,.portal-tile:hover svg,.portal-who__btn:hover,.portal-back:hover,.portal-back:hover svg,.portal-land__report:hover,.portal-bar__player:hover,.portal-chip--link:hover,.portal-shelf__item.is-earned:hover .portal-badge-disc{transform:none}}@media print{.portal-sky,.portal .doodles,.portal-bar,.portal-foot,.portal-noprint,.portal .skip-link,.portal~.confetti,.portal .confetti{display:none!important}.portal-main{max-width:none;padding:0}.portal-page{gap:0;animation:none}.portal-page:has(>.portal-cert)>:not(.portal-cert){display:none!important}.portal-cert{--p-bubble:#eaf4f9;--ink:#1d1d1f;--ink-2:#4b4b50;--ink-3:#4b4b50;--line-soft:#0000001a;--brand:#0f6d97;--brand-soft:#eaf4f9;--cert-bg:#fff;--cert-line:#c9a445;--tone-a-ink:#0f6e53;--tone-b-ink:#155f86;--tone-c-ink:#7a5000;--tone-d-ink:#a3203f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#1d1d1f;break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fff;box-shadow:inset 0 0 0 7px #fff,inset 0 0 0 8.5px #c9a445}}
