*, ::before, ::after {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*//*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/

*,
::before,
::after {
  box-sizing: border-box; /* 1 */
  border-width: 0; /* 2 */
  border-style: solid; /* 2 */
  border-color: #e5e7eb; /* 2 */
}

::before,
::after {
  --tw-content: '';
}

/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/

html,
:host {
  line-height: 1.5; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  -moz-tab-size: 4; /* 3 */
  -o-tab-size: 4;
     tab-size: 4; /* 3 */
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */
  font-feature-settings: normal; /* 5 */
  font-variation-settings: normal; /* 6 */
  -webkit-tap-highlight-color: transparent; /* 7 */
}

/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/

body {
  margin: 0; /* 1 */
  line-height: inherit; /* 2 */
}

/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/

hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
  border-top-width: 1px; /* 3 */
}

/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

/*
Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  text-decoration: inherit;
}

/*
Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */
  font-feature-settings: normal; /* 2 */
  font-variation-settings: normal; /* 3 */
  font-size: 1em; /* 4 */
}

/*
Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
  border-collapse: collapse; /* 3 */
}

/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-feature-settings: inherit; /* 1 */
  font-variation-settings: inherit; /* 1 */
  font-size: 100%; /* 1 */
  font-weight: inherit; /* 1 */
  line-height: inherit; /* 1 */
  letter-spacing: inherit; /* 1 */
  color: inherit; /* 1 */
  margin: 0; /* 2 */
  padding: 0; /* 3 */
}

/*
Remove the inheritance of text transform in Edge and Firefox.
*/

button,
select {
  text-transform: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/

button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button; /* 1 */
  background-color: transparent; /* 2 */
  background-image: none; /* 2 */
}

/*
Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type='search'] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/*
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/*
Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
Removes the default spacing and border for appropriate elements.
*/

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}

fieldset {
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}

ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/*
Reset default styling for dialogs.
*/
dialog {
  padding: 0;
}

/*
Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/

input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

input::placeholder,
textarea::placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

/*
Set the default cursor for buttons.
*/

button,
[role="button"] {
  cursor: pointer;
}

/*
Make sure disabled buttons don't get the pointer cursor.
*/
:disabled {
  cursor: default;
}

/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}

/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/* Make elements with the HTML hidden attribute stay hidden by default */
[hidden]:where(:not([hidden="until-found"])) {
  display: none;
}
.visible {
  visibility: visible;
}
.fixed {
  position: fixed;
}
.hidden {
  display: none;
}
.transform {
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.filter {
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.transition {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

@font-face { font-family:"Newsreader"; font-style:normal; font-weight:200 800; font-display:swap; src:url("/fonts/newsreader/newsreader-latin-ext-wght-normal.woff2") format("woff2"); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:"Newsreader"; font-style:normal; font-weight:200 800; font-display:swap; src:url("/fonts/newsreader/newsreader-latin-wght-normal.woff2") format("woff2"); }
@font-face { font-family:"Public Sans"; font-style:normal; font-weight:100 900; font-display:swap; src:url("/fonts/public-sans/public-sans-latin-ext-wght-normal.woff2") format("woff2"); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:"Public Sans"; font-style:normal; font-weight:100 900; font-display:swap; src:url("/fonts/public-sans/public-sans-latin-wght-normal.woff2") format("woff2"); }

:root {
  --header-h: 68px;
  --bg:#F4F1E8; --surface:#FFFEF9; --surface-2:#DCE7DC; --ink:#1D2922; --muted:#536159; --line:#7B877D;
  --brand:#245B42; --brand-strong:#1D4B36; --accent:#9B3B16; --danger:#A52D2D; --success:#245B42;
  --success-surface:#E4EDE3; --on-brand:#FFFFFF; --ochre:#C49A38; --shadow:0 12px 32px rgb(29 41 34 / 10%);
  --font-display:"Newsreader",Georgia,serif; --font-ui:"Public Sans",system-ui,sans-serif;
  color-scheme:light;
}
:root[data-theme="dark"] { --bg:#141B17; --surface:#1E2922; --surface-2:#35483B; --ink:#F4F3EA; --muted:#BECABD; --line:#7D927F; --brand:#B7DCA4; --brand-strong:#C9E9B9; --accent:#F0B570; --danger:#FFB4A9; --success:#B7DCA4; --success-surface:#2B3E2E; --on-brand:#172117; --ochre:#E3BB67; --shadow:0 12px 32px rgb(0 0 0 / 24%); color-scheme:dark; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) { --bg:#141B17; --surface:#1E2922; --surface-2:#35483B; --ink:#F4F3EA; --muted:#BECABD; --line:#7D927F; --brand:#B7DCA4; --brand-strong:#C9E9B9; --accent:#F0B570; --danger:#FFB4A9; --success:#B7DCA4; --success-surface:#2B3E2E; --on-brand:#172117; --ochre:#E3BB67; --shadow:0 12px 32px rgb(0 0 0 / 24%); color-scheme:dark; }
}
* { box-sizing: border-box; }
html { scroll-padding-top: calc(var(--header-h) + 1.5rem); background: var(--bg); }
body { margin:0; min-height:100vh; background:var(--bg); color:var(--ink); font-family:var(--font-ui); line-height:1.55; }
a { color:inherit; text-underline-offset:3px; }
button, input, select, textarea { font:inherit; }
button:not([class]), .button, input[type=submit] { border:1px solid var(--line); border-radius:.75rem; background:var(--surface-2); color:var(--ink); padding:.65rem .9rem; font-weight:700; cursor:pointer; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible, [tabindex]:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
button:active, .button:active { transform:translateY(1px) scale(.985); }
.skip-link { position:fixed; left:1rem; top:-5rem; z-index:1000; background:var(--ink); color:var(--bg); padding:.75rem 1rem; border-radius:.5rem; }
.skip-link:focus { top:1rem; }
.site-header { position:sticky; top:0; z-index:100; height:var(--header-h); display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:0 clamp(1rem,4vw,3rem); border-bottom:1px solid color-mix(in srgb,var(--line) 75%,transparent); background:color-mix(in srgb,var(--bg) 92%,transparent); backdrop-filter:blur(14px); }
.brand { display:inline-flex; align-items:center; gap:.55rem; font-family:var(--font-display); font-size:1.25rem; font-weight:650; letter-spacing:-.025em; text-decoration:none; }
.brand img { display:block; width:44px; height:44px; border-radius:11px; }
.brand.small { font-size:1rem; }
.brand.small img { width:36px; height:36px; border-radius:9px; }
.site-header nav { display:flex; align-items:center; gap:1rem; font-size:.9rem; }
.site-header nav a { text-decoration:none; }
.site-header nav form { margin:0; }
.nav-login,.nav-button { border:1px solid var(--line); border-radius:999px; padding:.45rem .8rem!important; background:var(--surface)!important; color:var(--ink)!important; }
.sitewizard-banner { border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent); background:var(--success-surface); color:var(--muted); }
.sitewizard-banner>div { width:min(100%,1120px); min-height:46px; margin:0 auto; display:flex; align-items:center; justify-content:center; gap:.75rem; padding:.4rem 1rem; font-size:.8rem; text-align:center; }
.sitewizard-banner a { color:var(--brand); font-weight:800; }
.sitewizard-banner button { display:grid; flex:0 0 34px; width:34px; height:34px; place-items:center; border:0; border-radius:50%; background:transparent; color:var(--muted); padding:0; cursor:pointer; font-size:1.2rem; line-height:1; }
.sitewizard-banner button:hover { background:color-mix(in srgb,var(--brand) 10%,transparent); color:var(--ink); }
.sitewizard-banner[hidden],.sitewizard-banner-dismissed .sitewizard-banner { display:none; }
main { min-height:calc(100vh - var(--header-h) - 150px); }
.flash { max-width:720px; margin:1rem auto 0; padding:.85rem 1rem; border-radius:.75rem; border:1px solid; }
.flash-notice { background:color-mix(in srgb,var(--success) 12%,var(--surface)); border-color:var(--success); }
.flash-error { background:color-mix(in srgb,var(--danger) 12%,var(--surface)); border-color:var(--danger); }
.hero { max-width:700px; margin:clamp(1.5rem,4vw,3.5rem) auto .9rem; padding:0 1rem; text-align:center; }
.hero h1 { margin:.35rem 0 0; font-family:var(--font-display); font-size:clamp(1.65rem,5vw,2.65rem); font-weight:500; line-height:1.1; letter-spacing:-.035em; }
.hero-note { margin:.85rem auto 0; color:var(--muted); font-size:.92rem; }
.eyebrow { margin:0; color:var(--brand); font-size:.75rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.discover { width:min(100%,720px); margin:0 auto; padding:0 1rem 3rem; }
.filter-panel { margin:0 auto 1rem; background:var(--surface); border:1px solid var(--line); border-radius:1rem; }
.filter-panel summary { cursor:pointer; padding:.75rem 1rem; font-weight:700; }
.filter-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; padding:0 1rem 1rem; }
label { display:grid; gap:.35rem; font-size:.88rem; font-weight:650; }
label span { color:var(--muted); font-size:.76rem; font-weight:500; }
input,select,textarea { width:100%; border:1px solid var(--line); border-radius:.65rem; background:var(--surface); color:var(--ink); padding:.7rem .75rem; }
textarea { min-height:130px; resize:vertical; }
.filter-actions { grid-column:1/-1; display:flex; gap:.6rem; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:.4rem; padding:.72rem 1rem; text-decoration:none; cursor:pointer; transition:transform .16s ease,background .16s ease; }
.button.primary { background:var(--brand); border-color:var(--brand); color:var(--on-brand); }
.button.secondary { background:var(--surface); color:var(--ink); }
.button.danger { background:var(--danger); border-color:var(--danger); color:#fff; }
.button.wide { width:100%; }
.swipe-shell { position:relative; outline:none; }
.card-stack { position:relative; height:620px; min-height:620px; perspective:1100px; }
.debt-card { position:absolute; inset:0; display:flex; flex-direction:column; overflow:auto; border:1px solid var(--line); border-radius:1.25rem; background:var(--surface); box-shadow:var(--shadow); touch-action:pan-y pinch-zoom; -webkit-user-select:none; -moz-user-select:none; user-select:none; transform:translateY(calc(min(var(--stack-index), 1) * 9px)) scale(calc(1 - min(var(--stack-index), 1) * .025)); transform-origin:50% 92%; transition:transform .22s cubic-bezier(.2,0,0,1),opacity .12s ease; }
.debt-card.is-queued { visibility:hidden; }
.profile-image { width:5rem; height:5rem; flex:0 0 5rem; border-radius:.75rem; -o-object-fit:cover; object-fit:cover; background:var(--surface-2); }
.sample-banner { align-self:flex-start; background:var(--ink); color:var(--bg); padding:.35rem .65rem; border-radius:999px; font-size:.7rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.card-body { display:flex; min-height:0; flex:1; flex-direction:column; gap:.65rem; padding:1rem 1.1rem; }
.card-heading { display:flex; align-items:start; justify-content:space-between; gap:1rem; }
.card-heading h2 { margin:0; font-family:var(--font-display); font-size:1.7rem; font-weight:500; line-height:1.1; }
.card-heading p,.pledged-line { margin:.2rem 0 0; color:var(--muted); font-size:.83rem; }
.card-heading>strong { white-space:nowrap; color:var(--brand); font-size:1.15rem; }
.card-meta { display:flex; justify-content:space-between; gap:.75rem; color:var(--muted); font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.remaining { display:grid; gap:.15rem; margin:.25rem 0; }
.remaining span { color:var(--muted); font-size:.82rem; }
.remaining strong { color:var(--brand); font-family:var(--font-ui); font-size:clamp(2.45rem,10vw,3.35rem); line-height:1; font-variant-numeric:lining-nums tabular-nums; }
.amount,.status-top>strong,.demo-total { font-variant-numeric:lining-nums tabular-nums; }
.cost-item { margin:0; padding:.65rem .75rem; border-radius:.75rem; background:var(--success-surface); font-size:.88rem; }
.work-link { align-self:flex-start; font-size:.84rem; }
.story { display:-webkit-box; overflow:hidden; margin:0; -webkit-line-clamp:3; -webkit-box-orient:vertical; }
.verified-line { color:var(--success); font-size:.8rem; font-weight:700; }
.progress-label { display:flex; justify-content:space-between; gap:1rem; font-size:.78rem; }
.progress-track { overflow:hidden; height:7px; border-radius:999px; background:var(--surface-2); }
.progress-track span { display:block; height:100%; border-radius:inherit; background:var(--success); }
.milestone-track { position:relative; overflow:visible; }
.milestone-track>span { overflow:hidden; }
.milestone-track i { position:absolute; top:-4px; width:2px; height:15px; border-radius:2px; background:var(--ink); transform:translateX(-1px); }
.amount-range { margin:0; color:var(--muted); font-size:.82rem; }
.amount-range.large { margin:1.5rem 0; font-size:1rem; }
.warning.compact { margin:.1rem 0; padding:.45rem .6rem; }
.card-links { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:auto; font-size:.78rem; }
.card-links .report-form { margin:0; }
.report-form { margin-top:auto; text-align:right; }
.report-form button { border:0; background:transparent; color:var(--muted); padding:.2rem; font-size:.75rem; font-weight:600; text-decoration:underline; }
.swipe-stamp { position:absolute; top:4rem; z-index:6; opacity:0; border:3px solid currentColor; border-radius:.5rem; padding:.3rem .55rem; font-size:1.5rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; pointer-events:none; }
.stamp-left { right:1rem; color:var(--danger); transform:rotate(9deg); }
.stamp-right { left:1rem; color:var(--success); transform:rotate(-9deg); }
.swipe-actions { display:flex; align-items:center; justify-content:center; gap:1rem; margin:1.1rem 0 .55rem; }
.round-action { display:grid; place-items:center; width:58px; height:58px; border:1px solid var(--line); border-radius:50%; background:var(--surface); color:var(--ink); box-shadow:0 6px 18px rgba(20,25,22,.1); font-size:1.55rem; cursor:pointer; }
.round-action.info { width:46px; height:46px; font-family:Georgia,serif; font-size:1.1rem; }
.round-action.accept { color:var(--success); }
.round-action.reject { color:var(--danger); }
.round-action:disabled { opacity:.35; cursor:not-allowed; }
.undo-button { display:block; margin:0 auto; border:0!important; background:transparent!important; color:var(--muted)!important; padding:.35rem!important; font-size:.8rem; }
.undo-button:disabled { opacity:.35; cursor:not-allowed; }
.sheet { position:fixed; inset:auto 0 0; width:min(calc(100% - 1rem),560px); max-height:calc(100vh - 1rem); overflow:auto; margin:0 auto; border:1px solid var(--line); border-radius:1.25rem 1.25rem 0 0; background:var(--surface); color:var(--ink); padding:1.4rem; box-shadow:0 -20px 60px rgba(0,0,0,.2); }
.sheet::backdrop { background:rgba(10,16,13,.55); backdrop-filter:blur(3px); }
.sheet-handle { width:44px; height:4px; margin:-.5rem auto 1rem; border-radius:999px; background:var(--line); }
.sheet-close { position:relative; z-index:2; display:grid; place-items:center; width:36px; height:36px; margin:-.55rem 0 .2rem auto; padding:0!important; border-radius:50%!important; }
.sheet h2 { margin:.35rem 0 1rem; font-family:var(--font-display); font-size:1.7rem; }
.choice-row { display:flex; align-items:center; gap:.7rem; margin:.55rem 0; border:1px solid var(--line); border-radius:.8rem; padding:.75rem; }
.choice-row input { width:auto; }
.choice-row span { display:grid; color:var(--ink); }
.choice-row small { color:var(--muted); }
.amount-field { margin:.75rem 0; }
.warning { border-left:3px solid var(--accent); background:color-mix(in srgb,var(--accent) 10%,var(--surface)); padding:.7rem .85rem; font-size:.86rem; }
.profile-tabs { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.2rem; }
.goal-fields,.repeat-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
.payout-mode { grid-column:1/-1; }
.field-details { border:1px solid var(--line); border-radius:.75rem; padding:.8rem; }
.field-details summary { cursor:pointer; font-weight:750; }
.field-details>p { color:var(--muted); font-size:.85rem; }
.profile-detail-head { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
.profile-image.large { width:9rem; height:9rem; flex-basis:9rem; }
.preline { white-space:pre-line; }
.timeline { display:grid; gap:.6rem; padding:0; list-style:none; }
.timeline li { display:grid; grid-template-columns:minmax(7rem,.35fr) 1fr; gap:1rem; border-top:1px solid var(--line); padding-top:.6rem; }
.promise-box { border:1px solid var(--line); border-radius:1rem; background:var(--surface); padding:1rem; }
.donor-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:.75rem; margin:1.5rem 0; }
.donor-summary div { display:grid; gap:.2rem; border:1px solid var(--line); border-radius:.8rem; padding:1rem; }
.donor-summary strong { font-size:1.25rem; }
.donor-summary span { color:var(--muted); font-size:.78rem; }
.badge-list { display:flex; flex-wrap:wrap; gap:.5rem; }
.badge-list span { border:1px solid var(--line); border-radius:999px; padding:.35rem .6rem; font-size:.78rem; }
.legal-page section,.about-page section { margin-top:2rem; }
.legal-updated { color:var(--muted); }
.about-intro,.lead { font-family:var(--font-display); font-size:clamp(1.25rem,3vw,1.7rem); line-height:1.4; }
.auth-card,.content-page,.page-head,.page-section { width:min(calc(100% - 2rem),760px); margin:clamp(2rem,7vw,5rem) auto; }
.auth-card { max-width:480px; border:1px solid var(--line); border-radius:1.2rem; background:var(--surface); padding:clamp(1.25rem,4vw,2.2rem); box-shadow:var(--shadow); }
.auth-card h1,.content-page h1,.page-head h1 { margin:.3rem 0 .7rem; font-family:var(--font-display); font-weight:500; font-size:clamp(2rem,7vw,3.2rem); line-height:1.05; }
.form-stack { display:grid; gap:1rem; margin-top:1.2rem; }
.check { display:flex; align-items:flex-start; gap:.65rem; }
.check input { width:auto; margin-top:.25rem; }
.divider { display:flex; align-items:center; gap:.7rem; color:var(--muted); margin:1.2rem 0; }
.divider::before,.divider::after { content:""; flex:1; height:1px; background:var(--line); }
.oauth-list { display:grid; gap:.5rem; }
.dev-box { margin-top:1rem; border:1px dashed var(--accent); border-radius:.8rem; padding:.8rem; }
.dev-box>div { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.6rem; }
.legal-small { color:var(--muted); font-size:.75rem; }
.button-row { display:flex; flex-wrap:wrap; gap:.6rem; }
.site-footer { display:flex; align-items:flex-start; justify-content:space-between; gap:2rem; padding:2rem clamp(1rem,4vw,3rem); border-top:1px solid var(--line); color:var(--muted); font-size:.8rem; }
.site-footer>div { display:flex; flex-wrap:wrap; gap:.8rem 1.2rem; }
.page-head { margin-bottom:1.5rem; }
.page-head p:last-child { max-width:650px; color:var(--muted); }
.provider-note { color:var(--muted); font-size:.85rem; }
.list-grid { width:min(calc(100% - 2rem),900px); margin:0 auto 4rem; display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr)); gap:1rem; }
.status-card,.form-card,.empty-state { border:1px solid var(--line); border-radius:1rem; background:var(--surface); padding:1.15rem; }
.stack-end { position:absolute; inset:0; display:grid; align-content:center; text-align:center; }
.stack-end[hidden] { display:none; }
.status-top { display:flex; align-items:start; justify-content:space-between; gap:1rem; }
.status-top h2,.status-top h3 { margin:.2rem 0; }
.status-pill { display:inline-flex; margin:.45rem 0; border-radius:999px; background:var(--surface-2); padding:.25rem .6rem; color:var(--muted); font-size:.76rem; font-weight:800; }
.status-released,.status-verified,.status-confirmed { color:var(--success); background:color-mix(in srgb,var(--success) 14%,var(--surface)); }
.status-rejected,.status-expired { color:var(--danger); }
.status-paid,.status-pending { color:var(--brand); }
.creditor-data { display:grid; gap:.4rem; }
.creditor-data div { display:grid; grid-template-columns:130px 1fr; gap:.5rem; }
.creditor-data dt { color:var(--muted); }
.creditor-data dd { margin:0; font-weight:700; overflow-wrap:anywhere; }
.profile-layout { width:min(calc(100% - 2rem),1100px); margin:0 auto 2rem; display:grid; grid-template-columns:minmax(0,2fr) minmax(270px,1fr); gap:1rem; align-items:start; }
.profile-side { display:grid; gap:1rem; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:1rem; }
.form-grid .full { grid-column:1/-1; }
.privacy-separator { display:grid; gap:.2rem; border-top:1px solid var(--line); padding-top:1rem; }
.privacy-separator span { color:var(--muted); font-size:.8rem; }
.admin-grid { width:min(calc(100% - 2rem),1100px); margin:0 auto 4rem; display:grid; grid-template-columns:2fr 1fr; gap:1.2rem; }
.admin-grid>div { display:grid; align-content:start; gap:.8rem; }
.reject-row { display:flex; flex:1; gap:.5rem; }
.three-sentences { display:grid; gap:.8rem; margin:2rem 0; }
.three-sentences p { margin:0; border-left:3px solid var(--brand); padding:.8rem 1rem; background:var(--surface); }
.steps { display:grid; gap:1rem; padding-left:1.25rem; }
.lead { font-size:1.15rem; color:var(--muted); }
.safety-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin:2rem 0; }
.safety-grid article { border-top:2px solid var(--brand); background:var(--surface); padding:1rem; }
.safety-grid h2 { margin-top:0; font-size:1.15rem; }
.type-filter { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:.55rem; margin:0; padding:0; border:0; }
.type-filter legend { width:100%; margin-bottom:.15rem; font-size:.88rem; font-weight:700; }
.type-filter label { display:flex; align-items:center; gap:.4rem; min-height:44px; border:1px solid var(--line); border-radius:999px; padding:.45rem .75rem; background:var(--surface); cursor:pointer; }
.type-filter input { width:auto; }
.type-filter label:has(input:checked) { border-color:var(--brand); background:var(--success-surface); color:var(--brand); }
.type-filter label span { color:inherit; font-size:.82rem; font-weight:700; }
.project-fields { display:grid; grid-template-columns:1fr 1fr; gap:1rem; border:1px solid var(--line); border-radius:.8rem; padding:1rem; background:var(--success-surface); }
.project-fields[hidden],[data-debt-field][hidden] { display:none; }

.scroll-meter { position:fixed; inset:var(--header-h) 0 auto; z-index:90; height:4px; background:var(--surface-2); }
.scroll-meter span { display:block; width:0; height:100%; background:var(--brand); transform-origin:left center; }
.market-hero { width:min(calc(100% - 2rem),760px); margin:clamp(3rem,9vw,7rem) auto 2rem; }
.market-hero h1,.landing-copy h1,.landing-section h2,.advice-card h2,.landing-reward h2 { font-family:var(--font-display); font-weight:500; letter-spacing:-.025em; }
.market-hero h1 { margin:.25rem 0 1rem; font-size:clamp(2.5rem,8vw,5rem); line-height:.98; }
.market-hero>p:last-child { max-width:620px; color:var(--muted); font-size:1.1rem; }
.market-grid { width:min(calc(100% - 2rem),900px); margin:0 auto 2rem; display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:.8rem; }
.market-card { display:flex; align-items:center; justify-content:space-between; min-height:84px; border:1px solid var(--line); border-radius:1rem; background:var(--surface); padding:1rem; text-decoration:none; box-shadow:var(--shadow); }
.market-card strong { font-family:var(--font-display); font-size:1.35rem; font-weight:500; }
.market-card span { color:var(--muted); font-size:.78rem; }
.market-note { width:min(calc(100% - 2rem),900px); margin:0 auto 5rem; color:var(--muted); }

.landing-hero { width:min(calc(100% - 2rem),1120px); margin:clamp(2rem,6vw,5rem) auto; display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,448px); align-items:center; gap:clamp(2rem,6vw,6rem); }
.landing-copy h1 { margin:.35rem 0 1rem; font-size:clamp(2.65rem,6vw,5.4rem); line-height:.98; }
.landing-intro { max-width:650px; font-size:clamp(1.05rem,2vw,1.3rem); }
.ymyl-note { max-width:650px; border-left:3px solid var(--accent); padding:.7rem 1rem; color:var(--muted); font-size:.9rem; }
.demo-stack { position:relative; min-height:570px; outline:none; isolation:isolate; touch-action:pan-y pinch-zoom; }
.card-stack__back { position:absolute; inset:.8rem .5rem -.8rem; z-index:-1; border:1px solid var(--line); border-radius:1.25rem; background:var(--surface); transform:rotate(1.5deg); }
.landing-demo-card { position:relative; display:grid; gap:1rem; min-height:550px; border:1px solid var(--line); border-radius:1.25rem; background:var(--surface); padding:1.25rem; box-shadow:var(--shadow); transition:transform .22s cubic-bezier(.2,0,0,1); overflow:hidden; }
.demo-card-top,.demo-identity,.demo-actions { display:flex; align-items:center; justify-content:space-between; gap:.8rem; }
.demo-card-top .sample-banner { margin:0; }
.card-kind { margin:0; color:var(--muted); font-size:.75rem; font-weight:700; text-align:right; }
.demo-identity { justify-content:flex-start; }
.profile-initials { display:grid; place-items:center; width:4rem; height:4rem; flex:0 0 4rem; border-radius:.75rem; background:var(--success-surface); color:var(--brand); font-family:var(--font-display); font-size:2rem; }
.demo-identity h2 { margin:0; font-family:var(--font-display); font-size:1.65rem; font-weight:500; }
.demo-identity p { margin:.1rem 0 0; color:var(--muted); font-size:.82rem; }
.demo-remaining { display:grid; gap:.2rem; margin:0; }
.demo-remaining span { color:var(--muted); font-size:.82rem; }
.demo-remaining strong { color:var(--brand); font-size:clamp(2.8rem,10vw,4rem); line-height:1; }
.demo-result { display:grid; gap:.45rem; margin:0; }
.demo-result div { display:flex; justify-content:space-between; gap:1rem; padding-bottom:.45rem; border-bottom:1px solid var(--surface-2); }
.demo-result dt { color:var(--muted); }
.demo-result dd { margin:0; font-weight:700; }
progress { -webkit-appearance:none; -moz-appearance:none; appearance:none; display:block; width:100%; height:.75rem; border:1px solid var(--line); border-radius:999px; overflow:hidden; background:var(--surface-2); color:var(--brand); }
progress::-webkit-progress-bar { background:var(--surface-2); } progress::-webkit-progress-value { background:var(--brand); } progress::-moz-progress-bar { background:var(--brand); }
.demo-total { margin:-.6rem 0 0; color:var(--muted); font-size:.76rem; }
.demo-actions .button { flex:1; }
.demo-status { min-height:1.5rem; margin:0; color:var(--brand); font-weight:700; text-align:center; }
.landing-demo-card[data-state="complete"] { background:var(--success-surface); }
.landing-section,.advice-card,.landing-reward { width:min(calc(100% - 2rem),960px); margin:clamp(5rem,12vw,10rem) auto; }
.section-count { color:var(--brand); font-size:.75rem; font-weight:800; letter-spacing:.14em; }
.landing-section>h2,.advice-card h2,.landing-reward h2,.split-section h2 { max-width:760px; margin:.2rem 0 2rem; font-size:clamp(2.1rem,5vw,3.6rem); line-height:1.05; }
.landing-steps { display:grid; gap:1rem; padding:0; counter-reset:item; list-style:none; }
.landing-steps li { display:grid; grid-template-columns:minmax(130px,.45fr) 1fr; gap:1.5rem; border-top:1px solid var(--line); padding:1.15rem 0; }
.landing-steps strong { font-family:var(--font-display); font-size:1.45rem; font-weight:500; }
.landing-steps p { margin:0; color:var(--muted); }
.split-section { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,7vw,6rem); }
.split-section article { border-top:2px solid var(--brand); }
.split-section h2 { font-size:clamp(1.8rem,4vw,2.7rem); }
.split-section article>p:last-child { color:var(--muted); }
.advice-card { border:1px solid var(--line); border-radius:1.25rem; background:var(--surface); padding:clamp(1.25rem,5vw,3rem); box-shadow:var(--shadow); }
.advice-card h2 { margin:.5rem 0 1rem; font-size:clamp(1.6rem,4vw,2.4rem); }
.advice-card a { display:inline-block; color:var(--brand); font-weight:700; }
.advice-card small { display:block; margin-top:.8rem; color:var(--muted); }
.faq-section details { border-top:1px solid var(--line); padding:.35rem 0; }
.faq-section summary { min-height:52px; padding:.8rem 0; font-weight:700; cursor:pointer; }
.faq-section details p { margin:.2rem 0 1rem; color:var(--muted); }
.landing-reward { position:relative; overflow:hidden; border-radius:1.25rem; background:var(--success-surface); padding:clamp(2rem,7vw,5rem); text-align:center; }
.landing-reward h2 { margin:.5rem auto 1rem; }
.completion-stamp { display:inline-block; margin:0; border:2px solid var(--brand); border-radius:.4rem; padding:.35rem .6rem; color:var(--brand); font-weight:800; letter-spacing:.06em; transform:rotate(-4deg); text-transform:uppercase; }
.landing-reward.is-earned { animation:reward-shake .45s ease both; }
@keyframes reward-shake { 0%,100%{transform:none} 35%{transform:rotate(-.7deg) scale(1.01)} 70%{transform:rotate(.5deg) scale(1.01)} }
.mm-lp-hint { position:fixed; z-index:1000; max-width:min(280px,calc(100vw - 16px)); border-radius:.65rem; background:var(--ink); color:var(--bg); padding:.55rem .7rem; box-shadow:var(--shadow); font-size:.8rem; pointer-events:none; }
.mm-lp-hint__name,.mm-lp-hint__text { display:block; }
.mm-lp-hint__text { margin-top:.2rem; opacity:.8; }
.is-busy { opacity:.78; cursor:wait!important; }
.motion-in { animation:soft-in .28s ease-out both; }
@keyframes soft-in { from { opacity:0; transform:translateY(7px); } to { opacity:1; transform:none; } }
@media (max-width:760px) {
  .site-header nav>a:not(.nav-login):not([href="/pledges"]):not([href="/profile"]):not([href="/admin"]) { display:none; }
  .site-header { padding:0 1rem; }
  .site-header .brand>span { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
  .filter-grid,.form-grid,.profile-layout,.admin-grid,.safety-grid,.project-fields,.goal-fields,.repeat-grid,.landing-hero,.split-section,.donor-summary { grid-template-columns:1fr; }
  .form-grid .full { grid-column:auto; }
  .card-stack { height:640px; min-height:640px; }
  .landing-hero { margin-top:2rem; }
  .landing-copy h1 { font-size:clamp(2.55rem,13vw,4.1rem); }
  .demo-stack { width:100%; min-height:565px; }
  .landing-steps li { grid-template-columns:1fr; gap:.35rem; }
  .site-footer { flex-direction:column; }
  .story { -webkit-line-clamp:2; }
  .timeline li { grid-template-columns:1fr; gap:.2rem; }
}
@media (max-width:410px) {
  .hero { margin-top:1rem; }
  .card-stack { height:650px; min-height:650px; }
  .profile-image { width:4.5rem; height:4.5rem; flex-basis:4.5rem; }
  .card-body { padding:.85rem .95rem; gap:.5rem; }
  .site-header nav { gap:.55rem; }
  .landing-demo-card { min-height:545px; padding:1rem; }
  .demo-actions { align-items:stretch; flex-direction:column; }
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation-duration:.01ms!important; animation-iteration-count:1!important; }
  .motion-in { animation:soft-fade .12s linear both; }
  .landing-reward.is-earned { animation:none; }
  .completion-stamp { transform:none; }
  @keyframes soft-fade { from { opacity:0; } to { opacity:1; } }
}
