.portal-shell{min-height:60vh}.portal-dashboard__header{margin-bottom:var(--margin-medium)}.portal-dashboard__title{margin:0}.portal-actions .btn{display:inline-block;margin-top:var(--margin-medium)}.portal-actions--views{display:flex;flex-wrap:wrap;gap:var(--margin-small)}.portal-actions--views .btn{margin-top:0}.portal-hub{grid-column:auto;margin-top:var(--margin-large);padding:0;color:inherit;background:transparent}.portal-hub:after{display:none}.portal-hub--resources{margin-top:var(--margin-medium)}.portal-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(18rem,1fr));gap:1rem;margin:0;max-width:none;padding:0;list-style:none}.portal-tiles>li{display:grid}.portal-tile{display:grid;grid-template-rows:auto 1fr auto;gap:.9rem;color:inherit;text-decoration:none;transition:background-color var(--transition)}.portal-tile:hover,.portal-tile:focus-visible{background:var(--portal-wash)}.portal-tile:focus-visible{outline:2px solid var(--portal-fg);outline-offset:2px}.portal-tile__icon{display:grid;place-items:center start;font-size:var(--font-size-caption-icon);line-height:1}.portal-tile__body{display:grid;gap:.35rem;align-content:start}.portal-tile__name{display:inline-flex;gap:.45rem;align-items:baseline;font-size:1.05rem;font-weight:600;line-height:1.25}.portal-tile__external{font-size:.7rem}.portal-tile__description{display:-webkit-box;overflow:hidden;color:var(--portal-muted);font-size:.88rem;line-height:1.45;line-clamp:3;-webkit-line-clamp:3;-webkit-box-orient:vertical}.portal-auth-links{margin-top:var(--margin-medium)}.portal-programme__toolbar{display:flex;flex-wrap:wrap;gap:var(--margin-medium);margin-bottom:var(--margin-large);align-items:center}.portal-toggle{display:inline-flex;border:var(--border);border-radius:var(--radius);overflow:hidden}.portal-toggle button{background:transparent;border:none;padding:var(--margin-x-small) var(--margin-small);color:inherit;font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;cursor:pointer}.portal-toggle button.is-active{background:var(--color-fg);color:var(--color-bg)}.portal-list__group{margin-bottom:var(--margin-large)}.portal-list ul{list-style:none;margin:0;padding:0}.portal-list__stage{font-family:var(--font-mono);font-size:.8rem;text-transform:uppercase;margin-bottom:var(--margin-small)}.portal-list__row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:var(--margin-medium);align-items:baseline;width:100%;text-align:left;background:none;border:none;border-bottom:var(--border);padding:var(--margin-small) 0;color:inherit;font:inherit;cursor:pointer}.portal-list__name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-list__dates,.portal-status{opacity:.75;white-space:nowrap;font-size:.75rem}.portal-gantt{display:grid;gap:var(--margin-x-small)}.portal-gantt__header{display:grid;grid-template-columns:minmax(8rem,14rem) minmax(0,1fr) 9rem;gap:var(--margin-small);align-items:end;padding-bottom:var(--margin-x-small);border-bottom:var(--border)}.portal-gantt__header-label,.portal-gantt__header-dates{font-family:var(--font-mono);font-size:.65rem;text-transform:uppercase;opacity:.65}.portal-gantt__axis{position:relative;min-height:1.25rem}.portal-gantt__tick{position:absolute;top:0;transform:translate(-50%);font-size:.65rem;white-space:nowrap;opacity:.75}.portal-gantt__row{display:grid;grid-template-columns:minmax(8rem,14rem) minmax(0,1fr) 9rem;gap:var(--margin-small);align-items:center;width:100%;background:none;border:none;padding:var(--margin-x-small) 0;color:inherit;font:inherit;cursor:pointer;text-align:left}.portal-gantt__label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-gantt__dates{font-size:.7rem;opacity:.75;white-space:nowrap;text-align:right}.portal-gantt__track{position:relative;height:1.25rem;background:color-mix(in srgb,var(--color-fg) 12%,transparent);border-radius:var(--radius);min-width:0}.portal-gantt__track--empty{background:transparent;border:1px dashed color-mix(in srgb,var(--color-fg) 25%,transparent)}.portal-gantt__bar{position:absolute;top:0;bottom:0;background:var(--color-fg);border-radius:var(--radius);min-width:4px}.portal-gantt__unscheduled{margin-top:var(--margin-large);padding-top:var(--margin-medium);border-top:var(--border)}.portal-gantt__unscheduled-title{font-size:.75rem;text-transform:uppercase;margin-bottom:var(--margin-small);opacity:.75}@media(max-width:640px){.portal-list__row{grid-template-columns:minmax(0,1fr);gap:var(--margin-x-small)}.portal-list__dates,.portal-status{justify-self:start}.portal-gantt__header{display:none}.portal-gantt__row{grid-template-columns:minmax(0,1fr);gap:var(--margin-x-small)}.portal-gantt__dates{text-align:left}}.portal-calendar{display:grid;gap:var(--margin-small)}.portal-calendar__item{display:grid;grid-template-columns:8rem 1fr auto;gap:var(--margin-small);align-items:baseline;text-align:left;background:none;border:none;border-bottom:var(--border);padding:var(--margin-small) 0;color:inherit;font:inherit;cursor:pointer}.portal-modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:var(--margin-medium)}.portal-modal__backdrop{position:absolute;inset:0;background:color-mix(in srgb,var(--color-2) 26%,transparent)}.portal-modal__panel{position:relative;z-index:1;background:var(--color-bg);color:var(--color-fg);border:var(--border);border-radius:var(--radius);padding:var(--margin-large);max-width:32rem;width:100%;max-height:90vh;overflow:auto}.portal-modal__close{float:right;display:grid;grid-template-columns:min-content 1fr;gap:var(--margin-x-small);align-items:center;background:none;border:none;cursor:pointer;color:inherit;font-family:var(--font);font-size:var(--font-size-caption);letter-spacing:-.01rem;line-height:normal;text-align:left}.portal-modal__close>*{margin:0}.portal-modal__close>i{font-size:var(--font-size-caption-icon)}.portal-detail{display:grid;gap:var(--margin-small);margin-top:var(--margin-medium)}.portal-detail dt{font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;opacity:.7}.portal-detail dd{margin:0 0 var(--margin-small)}.portal-empty{opacity:.75}.feedback .error{color:var(--color-4, #c0392b)}.feedback .success{color:var(--color-3, #27ae60)}.form__btn{margin-top:var(--margin-small)}.btn{display:inline-block;padding:var(--margin-x-small) var(--margin-small);border:var(--border);border-radius:var(--radius);background:var(--color-fg);color:var(--color-bg);text-decoration:none;font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;cursor:pointer}button.btn{appearance:none}.portal-shell{--portal-fg: var(--color-fg);--portal-bg: var(--color-bg);--portal-surface: transparent;--portal-surface-strong: color-mix(in srgb, var(--portal-fg) 8%, transparent);--portal-border: var(--portal-fg);--portal-border-soft: color-mix(in srgb, var(--portal-fg) 28%, transparent);--portal-muted: color-mix(in srgb, var(--portal-fg) 78%, transparent);--portal-wash: color-mix(in srgb, var(--portal-fg) 8%, transparent);--portal-card-padding: 1.85rem;padding:0 var(--site-gutter-inline) var(--margin-large);background:transparent;color:var(--portal-fg)}.portal-programme-title{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:end;margin-bottom:1.25rem}.portal-programme-title h1{margin:0}.portal-label{margin:0 0 var(--margin-x-small);color:var(--portal-fg);letter-spacing:var(--letter-spacing);text-transform:none}.portal-programme{display:grid;gap:1rem}.portal-programme__panel,.portal-card{grid-column:auto;padding:var(--portal-card-padding);color:var(--portal-fg);background:var(--portal-surface);border:1px solid var(--portal-border);border-radius:0;box-shadow:none}.portal-programme__panel:after,.portal-card:after{display:none}.portal-programme__panel{display:grid;gap:1rem}.portal-programme__summary{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem}.portal-programme__summary h2{margin:0;font-size:clamp(1.25rem,2vw,1.75rem)}.portal-toggle{padding:.2rem;background:var(--portal-wash);border:1px solid var(--portal-border);border-radius:999px}.portal-toggle button{min-width:6rem;padding:.55rem 1rem;border-radius:999px;color:var(--portal-muted)}.portal-toggle button.is-active{background:var(--portal-fg);color:var(--portal-bg)}.portal-programme__filters{display:grid;grid-template-columns:minmax(16rem,2fr) repeat(4,minmax(9rem,1fr)) auto;gap:.75rem;align-items:end}.portal-field{display:grid;gap:.35rem}.portal-field span{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.06em;text-transform:uppercase;color:var(--portal-muted)}.portal-field input,.portal-field select{width:100%;min-height:2.6rem;padding:.65rem .75rem;color:var(--portal-fg);background:#f4f1e7b3;border:1px solid var(--portal-border);border-radius:.65rem;font:inherit}.portal-field input:focus,.portal-field select:focus{outline:2px solid color-mix(in srgb,var(--color-2) 25%,transparent);border-color:var(--color-2)}.portal-filter-clear{min-height:2.6rem;padding:.65rem .9rem;color:var(--portal-fg);background:transparent;border:1px solid var(--portal-border);border-radius:.65rem;font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;cursor:pointer}.portal-list{overflow:auto}.portal-list table{width:100%;min-width:980px;border-collapse:collapse}.portal-list th{position:sticky;top:0;z-index:1;padding:.9rem 1.1rem;background:var(--portal-surface-strong);color:var(--portal-muted);font-family:var(--font-mono);font-size:.65rem;letter-spacing:.06em;text-align:left;text-transform:uppercase;border-bottom:1px solid var(--portal-border)}.portal-list td{padding:1rem 1.1rem;vertical-align:top;border-bottom:1px solid var(--portal-border-soft)}.portal-list tr:hover td{background:color-mix(in srgb,var(--color-2) 4%,transparent)}.portal-list__task{display:grid;gap:.3rem;max-width:42rem;padding:0;color:inherit;background:none;border:none;text-align:left;cursor:pointer}.portal-list__task strong{font-weight:700}.portal-list__task span{display:-webkit-box;overflow:hidden;color:var(--portal-muted);font-size:.86rem;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical}.portal-list__dates{color:var(--portal-muted);font-size:.72rem}.portal-status-pill{display:inline-flex;align-items:center;width:fit-content;min-height:1.6rem;padding:.18rem .55rem;color:var(--portal-fg);background:color-mix(in srgb,var(--color-2) 7%,transparent);border:1px solid var(--portal-border);border-radius:999px;font-family:var(--font-mono);font-size:.64rem;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap}.portal-status--done{background:#dcefe6;border-color:#b7dbc9}.portal-status--in-progress{background:color-mix(in srgb,var(--color-2) 12%,transparent);border-color:color-mix(in srgb,var(--color-2) 24%,transparent)}.portal-status--planned,.portal-status--not-started{background:color-mix(in srgb,var(--color-2) 6%,transparent);border-color:color-mix(in srgb,var(--color-2) 16%,transparent)}.portal-status--blocked{background:#f5d9d3;border-color:#e7b5aa}.portal-status--hold{background:color-mix(in srgb,var(--color-2) 4%,transparent);border-color:color-mix(in srgb,var(--color-2) 12%,transparent)}.portal-gantt{overflow:hidden;border:var(--pack-rule)}.portal-gantt__scroller{overflow:auto}.portal-gantt__canvas{min-width:100%}.portal-gantt__header,.portal-gantt__row{display:grid;grid-template-columns:19rem minmax(44rem,1fr) 13rem;gap:0;align-items:stretch}.portal-gantt__header{position:sticky;top:0;z-index:4;min-height:2.75rem;padding:0;background:var(--portal-surface-strong);border-bottom:var(--pack-rule)}.portal-gantt__header-label,.portal-gantt__header-dates{display:flex;align-items:center;padding:.8rem 1rem;color:var(--portal-muted);font-family:var(--font-mono);font-size:.65rem;letter-spacing:.06em;text-transform:uppercase}.portal-gantt__header-label,.portal-gantt__task{position:sticky;left:0;z-index:3;background:var(--portal-bg);border-right:var(--pack-rule)}.portal-gantt__header-label{z-index:5;background:var(--portal-surface-strong)}.portal-gantt__axis{position:relative;min-height:2.75rem;background:var(--gantt-month-lines)}.portal-gantt__tick{position:absolute;top:50%;transform:translateY(-50%);padding-inline-start:var(--pack-gantt-tick-inset);color:var(--portal-muted);font-size:.65rem;white-space:nowrap}.portal-gantt__today{position:absolute;top:0;bottom:0;width:2px;background:#e0533d;box-shadow:0 0 0 4px #e0533d1a}.portal-gantt__row{min-height:2.6rem;border-bottom:var(--pack-rule)}.portal-gantt__row:last-child{border-bottom:0}.portal-gantt__row:hover .portal-gantt__task,.portal-gantt__row:hover .portal-gantt__track,.portal-gantt__row:hover .portal-gantt__dates{background-color:color-mix(in srgb,var(--color-2) 4%,transparent)}.portal-gantt__task,.portal-gantt__dates,.portal-gantt__track{min-width:0;min-height:2.6rem;color:inherit;font:inherit;text-align:left;border:none;cursor:default}.portal-gantt__task{display:grid;align-content:center;padding:.45rem 1rem}.portal-gantt__task-name{margin:0;overflow:hidden;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.portal-gantt__track{position:relative;padding:0;background:var(--gantt-month-lines),#f4f1e76b}.portal-gantt__bar{position:absolute;top:50%;display:flex;align-items:center;min-width:.75rem;height:1.55rem;padding-inline:.55rem;overflow:hidden;color:var(--portal-fg);background:color-mix(in srgb,var(--color-2) 12%,transparent);border:1px solid color-mix(in srgb,var(--color-2) 28%,transparent);border-radius:999px;box-shadow:none;transform:translateY(-50%)}.portal-gantt__bar span{overflow:hidden;font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.portal-gantt__dates{display:flex;align-items:center;padding:.45rem 1rem;background:var(--portal-bg);color:var(--portal-muted);font-size:.74rem;white-space:nowrap;border-left:var(--pack-rule)}.portal-gantt__dates .mono{color:var(--portal-fg);font-size:.68rem}.portal-gantt__unscheduled{display:grid;gap:.5rem;margin:0;padding:1rem;background:var(--portal-bg);border-top:1px solid var(--portal-border)}.portal-gantt__unscheduled-title{margin:0 0 .25rem;color:var(--portal-muted)}.portal-unscheduled-task{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem;color:inherit;background:var(--portal-wash);border:1px dashed color-mix(in srgb,var(--color-2) 24%,transparent);border-radius:.75rem;text-align:left;cursor:pointer}.portal-modal__panel{background:var(--portal-bg);color:var(--portal-fg);border:1px solid var(--portal-border);border-radius:1rem;box-shadow:0 30px 100px color-mix(in srgb,var(--color-2) 18%,transparent)}.portal-empty{padding:var(--portal-card-padding);color:var(--portal-muted);background:var(--portal-surface);border:1px solid var(--portal-border);border-radius:0}@media(max-width:980px){.portal-programme__filters{grid-template-columns:1fr 1fr}.portal-field--search,.portal-filter-clear{grid-column:1 / -1}.portal-programme-title{grid-template-columns:1fr}}@media(max-width:640px){.portal-programme__filters{grid-template-columns:1fr}.portal-programme__summary{align-items:stretch}.portal-toggle,.portal-toggle button{width:100%}}body:has(.portal-main--document){--color-fg: var(--color-2);--color-bg: var(--color-0);color:var(--color-fg);background:var(--color-bg)}.portal-site-header{display:grid;grid-template-columns:1fr auto;gap:var(--margin-small);align-items:center;color:var(--color-fg);background:transparent}.portal-site-header__nav{display:flex;flex-wrap:wrap;gap:var(--margin-medium);justify-content:flex-end;align-items:center}.portal-project-switcher{position:relative}.portal-project-switcher summary{cursor:pointer;list-style:none}.portal-project-switcher summary::-webkit-details-marker{display:none}.portal-project-switcher__menu{position:absolute;z-index:10;top:calc(100% + .75rem);right:0;display:grid;min-width:min(20rem,calc(100vw - 2 * var(--site-gutter-inline)));padding:.5rem;background:var(--color-bg);border:1px solid color-mix(in srgb,var(--color-fg) 30%,transparent)}.portal-project-switcher__menu a{padding:.75rem;color:var(--color-fg);font-size:var(--font-size-caption)}.portal-project-switcher__menu a:hover,.portal-project-switcher__menu a:focus-visible,.portal-project-switcher__menu a.is-active{background:color-mix(in srgb,var(--color-fg) 12%,transparent)}.portal-site-header__nav .header-nav__link.is-active span{text-decoration:underline;text-underline-offset:.2em}.portal-main{display:block;min-height:min(70vh,64rem)}.portal-auth-main{display:grid;align-items:center;min-height:min(70vh,44rem);padding:0 var(--site-gutter-inline) var(--margin-large)}.portal-auth-section{width:100%;max-width:min(36rem,100%);margin:0;padding:0;color:var(--color-fg);background:transparent}.portal-auth-section:after{display:none}.portal-auth-form{display:grid;gap:var(--margin-medium);width:100%;max-width:36rem;color:var(--color-fg)}.portal-auth-form__header{display:grid;gap:var(--margin-x-small)}.portal-auth-form__title,.portal-auth-form__header p{margin:0;color:var(--color-fg)}.portal-auth-form__fields{display:grid;gap:var(--margin-small)}.portal-auth-field{display:grid;gap:var(--margin-xx-small);color:var(--color-fg);font-family:var(--font);font-size:inherit;letter-spacing:inherit;text-transform:none}.portal-auth-field .label-icon-left{color:var(--color-fg)}.portal-auth-field input{width:100%;margin:0;padding:0 0 var(--margin-xx-small);appearance:none;border:0;border-bottom:var(--keyline) solid var(--color-fg);border-radius:0;box-shadow:none;background:transparent;color:var(--color-fg);font:inherit;outline:none}.portal-auth-field input:-webkit-autofill,.portal-auth-field input:-webkit-autofill:hover,.portal-auth-field input:-webkit-autofill:focus{-webkit-text-fill-color:var(--color-fg);caret-color:var(--color-fg);transition:background-color 9999s ease-in-out 0s;box-shadow:0 0 0 1000px var(--color-bg) inset}.portal-auth-form__actions{display:grid;gap:var(--margin-medium)}.portal-auth-submit{display:inline-flex;gap:var(--margin-x-small);align-items:center;justify-self:start;padding:0;color:var(--color-fg);background:transparent;border:0;font:inherit;cursor:pointer}.portal-auth-submit[disabled]{cursor:wait;opacity:.62}.portal-auth-secondary{display:grid;gap:var(--margin-x-small);justify-items:start;color:var(--color-fg)}.portal-auth-feedback{min-height:1.5rem}.portal-auth-feedback p{margin:0}.portal-auth-feedback .error{color:var(--color-4)}.portal-auth-feedback .success{color:var(--color-3)}.portal-prose{color:var(--portal-fg);line-height:1.5}.portal-prose p{margin:0 0 .75rem}.portal-prose p:last-child{margin-bottom:0}.portal-prose strong{font-weight:700}.portal-roadmap{display:grid;gap:1rem;margin:0;padding:0;list-style:none}.portal-roadmap__phase{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1rem}.portal-roadmap__index{font-size:.75rem;letter-spacing:.08em;color:var(--portal-muted);padding-top:.35rem}.portal-roadmap__header{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:space-between;margin-bottom:.35rem}.portal-roadmap__header h2{margin:0;font-size:clamp(1.15rem,2vw,1.45rem)}.portal-roadmap__window{margin:0 0 .75rem;color:var(--portal-muted);font-size:.72rem;letter-spacing:.04em;text-transform:uppercase}.portal-stack,.portal-stack__graph{display:grid;gap:1rem}.portal-stack__hint{margin:0;font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--portal-muted)}.portal-stack__svg{width:100%;height:auto;min-height:18rem;background:var(--portal-wash);border-radius:0;touch-action:none}.portal-stack__edge{stroke:color-mix(in srgb,var(--color-2) 28%,transparent);stroke-width:2}.portal-stack__node-group{cursor:grab}.portal-stack__node-group--dragging{cursor:grabbing}.portal-stack__node{fill:var(--color-0);stroke:var(--color-2);stroke-width:2}.portal-stack__node--active{fill:var(--color-2)}.portal-stack__type{fill:var(--color-2);font-family:var(--font-mono);font-size:.55rem;letter-spacing:.04em}.portal-stack__node--active+.portal-stack__type,.portal-stack__node--active~.portal-stack__type{fill:var(--color-0)}.portal-stack__label{fill:var(--color-2);font-size:.72rem}.portal-pack-header{display:block;max-width:var(--pack-width);margin:0 0 var(--pack-header-margin-bottom);padding:0;align-items:unset;grid-template-columns:none;color:var(--pack-ink)}.portal-pack-header .portal-label{margin:0 0 .65rem}.portal-pack-header__title{margin:0 0 var(--pack-heading-margin-bottom);max-width:none;color:var(--pack-accent);font-size:clamp(2.5rem,7vh,4rem);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-display);line-height:var(--pack-leading-title);text-wrap:balance}.portal-pack__nav{margin:1rem 0 0}.portal-pack{display:grid;gap:0;max-width:none;margin:0;color:var(--pack-ink);counter-reset:pack-section}.portal-pack :is(h1,h2,h3,h4,h5,h6),.portal-pack-header :is(h1,h2,h3,h4,h5,h6){max-width:none}.portal-pack :is(p,ul,ol),.portal-pack-header :is(p,ul,ol){max-width:var(--pack-measure)}.portal-pack :is(.portal-pack__asks,.portal-pack__rows,.portal-pack__deliverables,.portal-pack__timeline,.portal-pack__decisions,.portal-pack__stage-key){max-width:none}.portal-pack :is(table,.portal-gantt) :is(p,ul,ol){max-width:none}.portal-pack :is(h2,h3,h4,h5,h6){margin-top:0;margin-bottom:0;letter-spacing:var(--letter-spacing-tighter)}.portal-pack__section{position:relative;display:grid;grid-template-columns:[content-start] var(--pack-width) [content-end] minmax(0,1fr);grid-auto-flow:row;gap:var(--pack-section-inner-gap);grid-column:auto;align-content:start;padding:var(--pack-section-gap) 0;color:var(--pack-ink);background:transparent;border:0;border-radius:0;box-shadow:none}.portal-pack__section>*{grid-column:content-start / content-end}.portal-pack__section>.portal-pack__bleed{grid-column:1 / -1}.portal-pack__section:first-child{padding-top:0}.portal-pack__section:last-child{padding-bottom:0}.portal-pack__section:before,.portal-pack__section:after{display:none;content:none}.portal-pack__section:not(:first-child):before{display:block;content:"";position:absolute;top:0;left:0;width:var(--pack-width);border-top:var(--pack-rule)}.portal-pack__eyebrow{margin:0;max-width:none;color:var(--pack-meta);font-size:var(--pack-font-meta);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing);line-height:var(--pack-leading-meta);text-transform:none}.portal-pack__section h2{margin:0 0 var(--pack-heading-margin-bottom);color:var(--pack-accent);font-size:var(--pack-font-h2);line-height:var(--pack-leading-heading);counter-increment:pack-section}.portal-pack__section h2:before{content:counter(pack-section) ". "}.portal-pack__section h3,.portal-pack__section h3:not(:first-of-type){margin:var(--pack-h4-margin-top) 0 0;max-width:none;color:var(--pack-accent);font-size:var(--pack-font-h4);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight);line-height:var(--pack-leading-meta);text-transform:none}.portal-pack__section h3:first-of-type{margin-top:var(--pack-item-gap)}.portal-pack .portal-prose{max-width:var(--pack-measure);color:var(--pack-ink);font-size:var(--pack-font-prose);letter-spacing:-.012em;line-height:var(--pack-leading-prose)}.portal-pack .portal-prose p{margin:0 0 1em}.portal-pack .portal-prose p:last-child{margin-bottom:0}.portal-pack__signal{font-weight:var(--font-weight-bold);white-space:nowrap}.portal-pack__signal:before{content:"";display:inline-block;width:var(--pack-signal-dot-size);height:var(--pack-signal-dot-size);margin-right:var(--pack-signal-dot-gap);border-radius:50%;background:currentColor;vertical-align:.08em}.portal-pack__signal--red{color:var(--pack-signal-red)}.portal-pack__signal--yellow{color:var(--pack-signal-yellow)}.portal-pack__signal--green{color:var(--pack-signal-green)}.portal-pack__back{display:grid;gap:.85rem;justify-items:start;max-width:var(--pack-width);margin:var(--pack-back-margin-top) 0 0;padding-top:var(--pack-back-pad-top);border-top:var(--pack-rule)}.portal-pack__nav a,.portal-pack__back a,.portal-pack__print{color:var(--pack-accent)}@media print{.portal-site-header__nav,footer.mono,.portal-pack__nav,.portal-pack__back{display:none!important}.portal-main--document,.portal-shell{background:transparent!important}}.portal-pack__asks,.portal-pack__rows,.portal-pack__deliverables,.portal-pack__timeline,.portal-pack__decisions{display:grid;gap:0;margin:0;padding:0;list-style:none}.portal-pack__asks,.portal-pack__decisions,.portal-pack__timeline{counter-reset:pack-item}.portal-pack__ask,.portal-pack__row,.portal-pack__deliverable,.portal-pack__milestone{display:grid;gap:var(--pack-item-gap);padding:var(--pack-item-padding-block) 0;border-top:var(--pack-rule)}.portal-pack__ask:first-child,.portal-pack__row:first-child,.portal-pack__deliverable:first-child,.portal-pack__milestone:first-child{border-top:0;padding-top:var(--pack-item-padding-block-first)}.portal-pack__ask,.portal-pack__decisions>.portal-pack__row{grid-template-columns:var(--pack-marker-size) minmax(0,1fr);column-gap:var(--pack-marker-gap);align-items:start;counter-increment:pack-item}.portal-pack__ask:before,.portal-pack__decisions>.portal-pack__row:before,.portal-pack__milestone:before{content:counter(pack-item);display:grid;place-items:center;width:var(--pack-marker-size);height:var(--pack-marker-size);margin-top:.1rem;border:var(--pack-marker-border-width) solid var(--pack-accent);border-radius:50%;color:var(--pack-accent);font-size:var(--pack-marker-font-size);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight);line-height:1}.portal-pack__ask>*,.portal-pack__decisions>.portal-pack__row>*{grid-column:2}.portal-pack__ask-what,.portal-pack__row-title,.portal-pack__deliverable-what,.portal-pack__milestone-title{margin:0;color:var(--pack-accent);font-size:var(--pack-font-item-title);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight);line-height:var(--pack-leading-item)}.portal-pack__ask-meta,.portal-pack__row-meta,.portal-pack__deliverable-when,.portal-pack__milestone-when{margin:0;color:var(--pack-meta);font-size:var(--pack-font-meta);letter-spacing:var(--letter-spacing);line-height:var(--pack-leading-meta-loose);text-transform:none}.portal-pack__ask-why,.portal-pack__row-body,.portal-pack__milestone-body{margin:.15rem 0 0;max-width:var(--pack-measure);color:var(--pack-ink);font-size:var(--pack-font-item-body);letter-spacing:var(--letter-spacing);line-height:var(--pack-leading-body)}.portal-pack__deliverable{grid-template-columns:var(--pack-icon-col) minmax(0,1fr) auto;column-gap:var(--pack-deliverable-gap);align-items:baseline}.portal-pack__deliverable-icon{color:var(--pack-accent);font-size:var(--font-size-caption-icon);line-height:1;translate:0 .08em}.portal-pack__deliverable-what{color:var(--pack-ink);font-weight:var(--font-weight-semibold)}.portal-pack__deliverable-when{white-space:nowrap}.portal-pack__table-wrap,.portal-pack .portal-gantt{margin-block:var(--pack-table-block-gap)}.portal-pack__table-wrap{overflow-x:auto}.portal-pack__table{width:100%;border-collapse:collapse;color:var(--pack-ink);font-size:var(--pack-font-table);letter-spacing:var(--letter-spacing);line-height:var(--pack-leading-body)}.portal-pack__table :is(th,td,p,ul,ol,li){font-size:inherit}.portal-pack__table th,.portal-pack__table td{padding:var(--pack-table-pad-block) var(--pack-table-pad-inline);border:var(--pack-rule);vertical-align:top;text-align:left}.portal-pack__table th{background:color-mix(in srgb,var(--pack-accent) 5%,transparent);color:var(--pack-ink);font-weight:var(--font-weight-bold);line-height:var(--pack-leading-meta);white-space:nowrap}.portal-pack__table td:first-child{width:var(--pack-table-col-label);color:var(--pack-ink);font-weight:400;line-height:var(--pack-leading-meta)}.portal-pack__table td:nth-child(2){width:var(--pack-table-col-mid)}.portal-pack__table-title{margin:0;color:var(--pack-ink);font-weight:400;letter-spacing:var(--letter-spacing-tight);line-height:var(--pack-leading-meta)}.portal-pack__table-body{margin:0;color:var(--pack-ink);line-height:var(--pack-leading-body)}.portal-pack__table ul{margin:0;padding:0 0 0 1.15rem;color:var(--pack-ink);line-height:var(--pack-leading-lead)}.portal-pack__table li+li{margin-top:var(--pack-item-gap)}.portal-pack__table .portal-pack__status{display:block;margin:0;color:var(--pack-ink);font-size:inherit;font-weight:400}.portal-pack__table .portal-pack__status:before{content:none}.portal-pack__status{display:inline;margin-left:.55rem;color:var(--pack-meta);font-size:var(--pack-font-meta);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing);text-transform:none}.portal-pack__status:before{content:"· "}.portal-pack__milestone{grid-template-columns:var(--pack-marker-size) minmax(var(--pack-milestone-when-min),var(--pack-milestone-when-max)) minmax(0,1fr);gap:var(--pack-item-gap) var(--pack-marker-gap);align-items:start;counter-increment:pack-item}.portal-pack__milestone-when{padding-top:.2rem;font-weight:var(--font-weight-medium)}.portal-pack__milestone-title,.portal-pack__milestone-body{grid-column:3}.portal-pack__milestone-body{margin-top:0}.portal-pack__two-col{display:grid;gap:0}@media(min-width:860px){.portal-pack__two-col{grid-template-columns:1fr 1fr;gap:0 var(--pack-two-col-gap)}.portal-pack__two-col>.portal-pack__rows+.portal-pack__rows{padding-left:var(--pack-two-col-gap);border-left:var(--pack-rule)}.portal-pack__milestone{grid-template-columns:var(--pack-marker-size) minmax(var(--pack-milestone-when-min),var(--pack-milestone-when-max-wide)) minmax(0,1fr)}}@media(max-width:640px){.portal-pack__deliverable{grid-template-columns:var(--pack-icon-col) minmax(0,1fr);gap:var(--pack-item-gap) var(--pack-deliverable-gap)}.portal-pack__deliverable-when{grid-column:2;white-space:normal}.portal-pack__milestone{grid-template-columns:var(--pack-marker-size) minmax(0,1fr);gap:.3rem var(--pack-marker-gap)}.portal-pack__milestone-when,.portal-pack__milestone-title,.portal-pack__milestone-body{grid-column:2}.portal-pack__table th,.portal-pack__table td{padding:1rem 1.1rem}.portal-pack__table td:first-child,.portal-pack__table td:nth-child(2){width:auto}}.portal-stack__detail{display:grid;gap:.55rem;padding:var(--portal-card-padding);color:var(--portal-fg);background:var(--portal-bg);border:1px solid var(--portal-border);border-radius:0}.portal-stack__detail h2{margin:0;font-size:1.25rem}.portal-stack__role{margin:0;color:var(--portal-muted)}.portal-stack__links{margin:0;font-size:.9rem}.portal-todos__filters{grid-template-columns:minmax(14rem,2fr) minmax(8rem,.9fr) minmax(8rem,.9fr) auto}.portal-todos__groups{display:grid;gap:1.5rem}.portal-todos__group{grid-column:auto;gap:0;padding:0;color:inherit;background:transparent}.portal-todos__group:after{display:none}.portal-todos__group-title{display:flex;gap:.65rem;align-items:baseline;margin:0 0 .65rem;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase}.portal-todos__group-count{opacity:.55}.portal-pack__stage-key{display:flex;flex-wrap:wrap;gap:.65rem 1rem;margin:0 0 1rem;padding:0;list-style:none}.portal-pack__stage-key--explained{display:grid;gap:.75rem;max-width:var(--pack-measure)}.portal-pack__stage-key--explained li{display:grid;grid-template-columns:5.5rem minmax(0,1fr);gap:.85rem;align-items:center}.portal-pack__stage-key--explained p{margin:0;color:var(--pack-ink);font-size:var(--pack-font-table);line-height:1.45}.portal-pack__stage-key .portal-gantt__bar{position:static;transform:none;min-width:4.5rem;justify-content:center}.portal-gantt__bar--select{color:var(--portal-bg);background:color-mix(in srgb,var(--color-2) 78%,transparent);border-color:var(--color-2)}.portal-gantt__bar--safe{color:var(--portal-fg);background:color-mix(in srgb,var(--color-signal-yellow) 55%,transparent);border-color:color-mix(in srgb,var(--color-signal-yellow) 80%,var(--color-fg))}.portal-gantt__bar--deal{color:var(--portal-fg);background:color-mix(in srgb,var(--color-4) 42%,transparent);border-color:color-mix(in srgb,var(--color-4) 70%,var(--color-fg))}.portal-gantt__bar--build{color:#fff;background:color-mix(in srgb,var(--color-5) 82%,transparent);border-color:var(--color-5)}.portal-gantt__bar--deploy{color:var(--portal-fg);background:color-mix(in srgb,var(--color-3) 55%,transparent);border-color:color-mix(in srgb,var(--color-3) 70%,var(--color-fg))}.portal-gantt__bar--care{color:var(--portal-muted);background:color-mix(in srgb,var(--portal-fg) 10%,transparent);border-color:color-mix(in srgb,var(--portal-fg) 28%,transparent)}.portal-gantt__row--core .portal-gantt__task-name{color:var(--color-5)}.portal-matrix th,.portal-matrix td{white-space:nowrap}.portal-matrix td:first-child,.portal-matrix td:nth-child(2){width:auto}.portal-matrix__th{display:inline-flex;align-items:center;gap:.28em}.portal-matrix__hint{position:relative;display:inline-flex;align-items:center;color:var(--portal-muted);cursor:help;outline:none}.portal-matrix__hint-icon{width:.85em;height:.85em}.portal-matrix__hint-icon svg{width:100%;height:100%;display:block}.portal-matrix__hint-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.portal-matrix__hint:after{content:none;position:absolute;left:50%;top:calc(100% + .45rem);z-index:5;width:max-content;max-width:16rem;padding:.45rem .6rem;border-radius:.35rem;background:var(--portal-fg);color:var(--portal-bg);font-family:var(--font-body);font-size:.78rem;font-weight:var(--font-weight-regular);line-height:1.35;letter-spacing:0;text-transform:none;white-space:normal;text-align:left;box-shadow:0 .35rem 1rem color-mix(in srgb,var(--portal-fg) 18%,transparent);pointer-events:none;transform:translate(-50%)}.portal-matrix__hint:hover:after,.portal-matrix__hint:focus-visible:after{content:attr(data-tip)}.portal-score{display:inline-flex;align-items:baseline;font-family:var(--font-mono)}.portal-score--pencilled{color:var(--color-5)}.portal-score--ratified{color:var(--portal-fg)}.portal-score--bold{font-weight:var(--font-weight-bold)}.portal-score--empty{color:var(--portal-muted);opacity:.55}@media(max-width:640px){.portal-roadmap__phase,.portal-todos__filters{grid-template-columns:1fr}.portal-site-header__nav{gap:var(--margin-small)}.portal-site-header__nav .header-nav__link span{display:none}}
