@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/caveat-latin-400-normal-D6LQsQ_v.woff2) format("woff2"),url(/assets/caveat-latin-400-normal-BzhAQZkN.woff) format("woff")}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/caveat-latin-600-normal-zlTlWIYU.woff2) format("woff2"),url(/assets/caveat-latin-600-normal-DUjB8dgm.woff) format("woff")}@font-face{font-family:"Noto Serif";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-serif-latin-400-normal-BV_iYGc9.woff2) format("woff2"),url(/assets/noto-serif-latin-400-normal-DT0cwSa_.woff) format("woff")}@font-face{font-family:"Noto Serif";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/noto-serif-latin-600-normal-BiuDA9L7.woff2) format("woff2"),url(/assets/noto-serif-latin-600-normal-RZopCp-J.woff) format("woff")}:root{--paper: oklch(95% .022 85);--paper-deep: oklch(91% .03 82);--paper-card: oklch(98% .015 88);--ink: oklch(24% .02 60);--ink-soft: oklch(42% .02 60);--ink-faint: oklch(58% .015 60);--hairline: oklch(80% .02 70);--stamp: oklch(58% .18 32);--stamp-deep: oklch(50% .17 32);--teal: oklch(52% .09 195);--gold: oklch(74% .12 80);--alert: oklch(56% .17 25);--font-hand: "Caveat", ui-rounded, cursive;--font-serif: "Noto Serif", Georgia, "Times New Roman", serif;--text-xs: .78rem;--text-sm: .9rem;--text-base: clamp(1rem, .95rem + .2vw, 1.0625rem);--text-lg: 1.25rem;--text-xl: clamp(1.5rem, 1.2rem + 1.2vw, 2rem);--text-display: clamp(2.4rem, 1.6rem + 3.2vw, 3.8rem);--space-1: .375rem;--space-2: .625rem;--space-3: 1rem;--space-4: 1.5rem;--space-5: 2.5rem;--space-section: clamp(2.5rem, 2rem + 3vw, 5rem);--radius: 14px;--radius-lg: 22px;--shadow-card: 0 1px 0 oklch(100% 0 0 / .6) inset, 0 10px 24px -16px oklch(30% .04 60 / .5);--shadow-lift: 0 18px 40px -22px oklch(30% .04 60 / .6);--duration-fast: .14s;--duration: .28s;--ease: cubic-bezier(.16, 1, .3, 1)}.stamp-button{border:2px solid var(--ink);background:var(--stamp);color:#fff8ea;font-family:var(--font-serif);font-weight:600;font-size:var(--text-base);padding:.7em 1.4em;border-radius:255px 18px 225px 16px/18px 225px 16px 255px;box-shadow:3px 3px 0 var(--ink);transition:transform var(--duration-fast) var(--ease),box-shadow var(--duration-fast) var(--ease)}.stamp-button:hover{transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--ink)}.stamp-button:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}.stamp-button--ghost{background:var(--paper-card);color:var(--ink)}.stamp-button--danger{background:var(--alert);color:#fff8ea}.stamp-button--danger-ghost{background:var(--paper-card);color:var(--alert);border-color:var(--alert);box-shadow:3px 3px 0 var(--alert)}.stamp-button--danger-ghost:hover{box-shadow:5px 5px 0 var(--alert)}.stamp-button--danger-ghost:active{box-shadow:1px 1px 0 var(--alert)}.stamp-button:disabled{opacity:.5;pointer-events:none}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100dvh;font-family:var(--font-serif);font-size:var(--text-base);line-height:1.55;color:var(--ink);background-color:var(--paper);background-image:radial-gradient(oklch(80% .03 70 / .18) .5px,transparent .6px),radial-gradient(oklch(80% .03 70 / .12) .5px,transparent .6px);background-size:22px 22px,38px 38px;background-position:0 0,11px 19px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3{font-family:var(--font-hand);font-weight:600;line-height:1.05;margin:0;letter-spacing:.01em}a{color:var(--stamp-deep);text-decoration-thickness:1px;text-underline-offset:2px}button{font:inherit;cursor:pointer}:focus-visible{outline:2.5px solid var(--stamp);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.landing{max-width:64rem;margin:0 auto;padding:var(--space-4) var(--space-3) var(--space-section);display:flex;flex-direction:column;gap:var(--space-section)}.landing__nav{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2);padding-block:var(--space-2)}.landing__mark{font-family:var(--font-hand);font-size:2rem;font-weight:600;color:var(--ink)}.landing__mark-dot{color:var(--stamp)}.landing__passport{font-style:italic;color:var(--ink-faint);font-size:var(--text-sm)}.landing__hero{display:flex;flex-direction:column;gap:var(--space-3);max-width:38rem}.landing__eyebrow{margin:0;text-transform:uppercase;letter-spacing:.22em;font-size:var(--text-xs);color:var(--stamp-deep);font-family:var(--font-serif)}.landing__title{font-size:var(--text-display);color:var(--ink)}.landing__lede{margin:0;font-size:var(--text-lg);color:var(--ink-soft);max-width:34rem}.landing__actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}.landing__fineprint{margin:0;font-size:var(--text-sm);color:var(--ink-faint);font-style:italic}.landing__error{margin:0;color:var(--alert);font-size:var(--text-sm)}.landing__actions .stamp-button:disabled{opacity:.45;cursor:not-allowed;box-shadow:2px 2px 0 var(--ink);transform:none}.landing__pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3)}.pillar{background:var(--paper-card);border:1.5px solid var(--hairline);border-radius:var(--radius-lg);padding:var(--space-3);box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:var(--space-1)}.pillar:nth-child(2){transform:rotate(-.6deg)}.pillar:nth-child(3){transform:rotate(.5deg)}.pillar__num{font-family:var(--font-hand);font-size:1.5rem;color:var(--stamp)}.pillar__title{font-size:1.9rem;color:var(--ink)}.pillar p{margin:0;color:var(--ink-soft);font-size:var(--text-sm)}.landing__foot{display:flex;justify-content:space-between;border-top:1.5px dashed var(--hairline);padding-top:var(--space-3);font-size:var(--text-sm);color:var(--ink-faint);font-style:italic}@media (max-width: 720px){.landing__pillars{grid-template-columns:1fr}.pillar:nth-child(2),.pillar:nth-child(3){transform:none}}.shell{min-height:100dvh;display:grid;grid-template-rows:auto 1fr auto}.shell__head{position:sticky;top:0;z-index:5;padding:var(--space-2) var(--space-3);background:color-mix(in oklch,var(--paper) 86%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1.5px solid var(--hairline)}.shell__mark{font-family:var(--font-hand);font-size:1.6rem;font-weight:600}.shell__mark-dot{color:var(--stamp)}.shell__content{width:100%;max-width:48rem;margin:0 auto;padding:var(--space-4) var(--space-3) calc(var(--space-section) + 4rem)}.shell__nav{position:sticky;bottom:0;z-index:5;display:flex;justify-content:space-around;gap:var(--space-1);padding:var(--space-1) var(--space-2) calc(var(--space-1) + env(safe-area-inset-bottom,0));background:color-mix(in oklch,var(--paper-card) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1.5px solid var(--hairline)}.shell__tab{flex:1;text-align:center;padding:.55em .25em;border-radius:var(--radius);text-decoration:none;font-family:var(--font-serif);font-size:var(--text-sm);color:var(--ink-faint);transition:color var(--duration-fast) var(--ease),background var(--duration-fast) var(--ease)}.shell__tab:hover{color:var(--ink-soft)}.shell__tab--active{color:var(--stamp-deep);font-weight:600;background:color-mix(in oklch,var(--stamp) 12%,transparent)}@media (min-width: 860px){.shell{grid-template-columns:13rem 1fr;grid-template-rows:auto 1fr}.shell__head{grid-column:1 / -1;grid-row:1}.shell__nav{grid-column:1;grid-row:2;position:sticky;top:3.4rem;align-self:start;flex-direction:column;justify-content:flex-start;height:calc(100dvh - 3.4rem);border-top:none;border-right:1.5px solid var(--hairline);background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.shell__content{grid-column:2;grid-row:2}.shell__tab{flex:none;text-align:left;font-size:var(--text-base);padding:.6em .8em}}.capture-card{position:relative;background:var(--paper-card);border:1.5px solid var(--hairline);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-3) var(--space-3);box-shadow:var(--shadow-lift);display:flex;flex-direction:column;gap:var(--space-3);transform:rotate(-.4deg);animation:card-in var(--duration) var(--ease)}@keyframes card-in{0%{opacity:0;transform:translateY(8px) rotate(-.4deg)}to{opacity:1;transform:translateY(0) rotate(-.4deg)}}.capture-card__tape{position:absolute;top:-12px;left:50%;width:96px;height:24px;transform:translate(-50%) rotate(-2deg);background:color-mix(in oklch,var(--gold) 55%,transparent);border:1px solid color-mix(in oklch,var(--gold) 70%,var(--ink));opacity:.7}.capture-card__title{font-size:1.8rem;color:var(--ink);margin:0}.field{display:flex;flex-direction:column;gap:var(--space-1);border:none;padding:0;margin:0}.field__label{font-size:var(--text-sm);color:var(--ink-soft);display:flex;align-items:baseline;gap:var(--space-2)}.field__flag{font-style:normal;font-family:var(--font-hand);font-size:1.05rem;color:var(--stamp)}.field__input{font:inherit;color:var(--ink);background:var(--paper);border:1.5px solid var(--hairline);border-radius:var(--radius);padding:.55em .7em;width:100%;transition:border-color var(--duration-fast) var(--ease)}.field__input:focus{border-color:var(--stamp);outline:none}.field--needed .field__input{border-color:color-mix(in oklch,var(--stamp) 60%,var(--hairline));background:color-mix(in oklch,var(--stamp) 6%,var(--paper))}.field__money{display:flex;align-items:stretch;gap:var(--space-1)}.field__currency{display:inline-flex;align-items:center;padding:0 .7em;border:1.5px solid var(--hairline);border-radius:var(--radius);background:var(--paper-deep);color:var(--ink-soft);font-size:var(--text-sm)}.chips{display:flex;flex-wrap:wrap;gap:var(--space-1)}.chip{border:1.5px solid var(--hairline);background:var(--paper);color:var(--ink-soft);border-radius:999px;padding:.35em .85em;font-size:var(--text-sm);transition:background var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease)}.chip:hover{border-color:var(--ink-faint)}.chip--on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.capture-card__error{margin:0;color:var(--alert);font-size:var(--text-sm)}.capture-card__save{align-self:flex-start}.capture-card__save:disabled{opacity:.5;cursor:not-allowed;box-shadow:2px 2px 0 var(--ink);transform:none}.bills{margin-top:var(--space-4)}.bills__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-2);border-bottom:1.5px solid var(--hairline);padding-bottom:var(--space-1)}.bills__title{font-family:var(--font-serif);font-size:var(--text-lg);color:var(--ink)}.bills__sum{font-size:var(--text-sm);color:var(--ink-faint);font-variant-numeric:tabular-nums}.bills__empty{padding:var(--space-3) 0}.bills__list{list-style:none;display:flex;flex-direction:column;gap:var(--space-2)}.bill-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);text-align:left;padding:var(--space-2) var(--space-3);background:var(--paper-card);border:1.5px solid var(--hairline);border-radius:var(--radius);box-shadow:var(--shadow-card);transition:transform var(--duration-fast) var(--ease),box-shadow var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease)}.bill-row:hover{transform:translateY(-2px);box-shadow:var(--shadow-lift);border-color:var(--stamp)}.bill-row:active{transform:translateY(0)}.bill-row__main{display:flex;flex-direction:column;gap:2px;min-width:0}.bill-row__merchant{font-family:var(--font-serif);font-size:var(--text-base);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bill-row__meta{font-size:var(--text-xs);color:var(--ink-faint)}.bill-row__amount{font-family:var(--font-serif);font-weight:600;font-size:var(--text-base);color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}.bill-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:flex-end;justify-content:center}@media (min-width: 640px){.bill-modal{align-items:center}}.bill-modal__scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:#261d1666;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.bill-modal__sheet{position:relative;width:100%;max-width:28rem;max-height:88vh;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);background:var(--paper-card);border:2px solid var(--ink);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow-lift);animation:bill-sheet-in var(--duration) var(--ease)}@media (min-width: 640px){.bill-modal__sheet{border-radius:var(--radius-lg)}}@keyframes bill-sheet-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.bill-modal__sheet{animation:none}}.bill-modal__head{display:flex;align-items:center;justify-content:space-between}.bill-modal__head h3{font-family:var(--font-serif);font-size:var(--text-lg);color:var(--ink)}.bill-modal__close{font-size:var(--text-lg);color:var(--ink-soft);padding:.2em .4em;line-height:1}.bill-modal__close:hover{color:var(--ink)}.bill-modal__actions{display:flex;align-items:center;gap:var(--space-2);justify-content:flex-end;flex-wrap:wrap;margin-top:var(--space-1)}.bill-modal__confirm{margin-right:auto;font-size:var(--text-sm);color:var(--alert);font-family:var(--font-serif)}.screen__title{font-size:var(--text-xl);color:var(--ink);margin-bottom:var(--space-1)}.screen__sub{color:var(--ink-soft);margin:0 0 var(--space-4)}.note-card{background:var(--paper-card);border:1.5px solid var(--hairline);border-radius:var(--radius-lg);padding:var(--space-3);box-shadow:var(--shadow-card)}.muted{color:var(--ink-faint);font-style:italic}.record{display:flex;flex-direction:column;gap:var(--space-3)}.record__trip{display:flex;align-items:center;gap:var(--space-2)}.record__select{font:inherit;color:var(--ink);background:var(--paper-card);border:1.5px solid var(--hairline);border-radius:var(--radius);padding:.45em .7em;flex:1}.record__compose{display:flex;flex-direction:column;gap:var(--space-2);background:var(--paper-card);border:1.5px solid var(--hairline);border-radius:var(--radius-lg);padding:var(--space-3);box-shadow:var(--shadow-card)}.record__text{font:inherit;color:var(--ink);background:var(--paper);border:1.5px solid var(--hairline);border-radius:var(--radius);padding:.6em .7em;resize:vertical;min-height:3.2em}.record__text:focus{border-color:var(--stamp);outline:none}.record__actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.record__mic--live{border-color:var(--alert);color:var(--alert);animation:record-mic-pulse 1.1s ease-in-out infinite}@keyframes record-mic-pulse{0%,to{box-shadow:0 0 color-mix(in oklab,var(--alert) 45%,transparent)}50%{box-shadow:0 0 0 6px color-mix(in oklab,var(--alert) 0%,transparent)}}@media (prefers-reduced-motion: reduce){.record__mic--live{animation:none}}.record__error{color:var(--alert);font-size:var(--text-sm);margin:0}.record__declined{border-style:dashed}.record__declined p{margin:0;color:var(--ink-soft)}.record__saved{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.record__saved p{margin:0;font-family:var(--font-hand);font-size:1.4rem;color:var(--teal)}.record__new-trip{display:flex;flex-direction:column;gap:var(--space-3);max-width:26rem}.record__cards,.stats{display:flex;flex-direction:column;gap:var(--space-3)}.stats__scope{display:flex;flex-wrap:wrap;gap:var(--space-1)}.stats__headline{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-3)}.stats__total{display:block;font-family:var(--font-serif);font-weight:600;font-size:clamp(2rem,1.4rem + 2.4vw,3rem);line-height:1;color:var(--ink)}.stats__total-label{font-size:var(--text-sm);color:var(--ink-faint);font-style:italic}.stats__count{text-align:right}.stats__count-num{display:block;font-family:var(--font-hand);font-size:2.4rem;line-height:1;color:var(--stamp)}.stats__bars{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.bar__head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-1)}.bar__name{color:var(--ink)}.bar__value{font-size:var(--text-sm);color:var(--ink-soft)}.bar__track{height:14px;background:var(--paper-deep);border:1.5px solid var(--hairline);border-radius:999px;overflow:hidden}.bar__fill{height:100%;background:linear-gradient(90deg,var(--stamp) 0%,color-mix(in oklch,var(--stamp) 78%,var(--gold)) 100%);border-radius:999px;transition:width var(--duration) var(--ease)}.bar:nth-child(3n+2) .bar__fill{background:linear-gradient(90deg,var(--teal) 0%,color-mix(in oklch,var(--teal) 70%,var(--gold)) 100%)}
