@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-thai-thai-400-normal-Bt1rR4gi.woff2) format("woff2"),url(/assets/ibm-plex-sans-thai-thai-400-normal-DKc8V4lk.woff) format("woff")}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-thai-thai-600-normal-DvfsyWAn.woff2) format("woff2"),url(/assets/ibm-plex-sans-thai-thai-600-normal-BOwfviun.woff) format("woff")}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-thai-latin-400-normal-CwmoKdEh.woff2) format("woff2"),url(/assets/ibm-plex-sans-thai-latin-400-normal-YXrLwNa7.woff) format("woff")}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-thai-latin-600-normal-BR-dhaTH.woff2) format("woff2"),url(/assets/ibm-plex-sans-thai-latin-600-normal-P_JjY83V.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff")}:root{--paper: #f7f2e8;--card: #fffdf8;--line: #d8cdb8;--line-input: #857a66;--ink: #1c2230;--ink-2: #4a5263;--ink-3: #5f6574;--action: #23407a;--money-in: #17694d;--warn: #8a5a12;--stamp: #b5361f;--stamp-ink: #8e2614;--stamp-wash: #fbe6df;--focus: #23407a;--action-deep: #1a3163;--action-wash: #eef1f8;--action-ring: rgb(35 64 122 / .3);--chip: #f3ead7;--rule: rgb(216 205 184 / .28);--paper-deep: #efe7d7;--cover: #1e3358;--cover-ink: #fffdf8;--cover-muted: #c9d3e6;--cover-rule: #857a66;--font-ui: "IBM Plex Sans Thai", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--text-xs: .8125rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.25rem;--text-xl: 1.75rem;--text-hero: clamp(2.25rem, 1.6rem + 3vw, 3.25rem);--leading-thai: 1.65;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--gutter: 1rem;--radius-sheet: 14px;--radius-control: 10px;--shadow-sheet: 0 1px 0 #e9e0cf, 0 8px 24px -12px rgb(28 34 48 / .25);--duration-fast: .15s;--ease-out: cubic-bezier(.16, 1, .3, 1)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-ui);font-size:var(--text-base);line-height:var(--leading-thai)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.mono{font-family:var(--font-mono)}.money{font-variant-numeric:tabular-nums}.sandbox-banner{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--gutter);background:var(--stamp-wash);color:var(--stamp-ink);border-bottom:2px dashed var(--stamp);font-size:var(--text-sm);font-weight:600;letter-spacing:.02em;text-align:center}.sandbox-banner__mark{border:2px solid var(--stamp);border-radius:4px;padding:0 var(--space-2);transform:rotate(-3deg)}.shell{max-width:40rem;margin:0 auto;padding:var(--space-6) var(--gutter) var(--space-12)}.shell h1{font-size:var(--text-xl);margin:0 0 var(--space-2)}.shell p{color:var(--ink-2);margin:0}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}body{background-color:var(--paper);background-image:repeating-linear-gradient(to bottom,transparent 0 calc(2rem - 1px),var(--rule) calc(2rem - 1px) 2rem);background-attachment:local}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.muted{color:var(--ink-2)}.center{text-align:center}.mono{font-family:var(--font-mono);overflow-wrap:anywhere}.ref{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-3);overflow-wrap:anywhere}.num{font-variant-numeric:tabular-nums}.nowrap{white-space:nowrap}p{margin:0}a{color:var(--action);text-underline-offset:3px}a:hover{text-decoration-thickness:2px}.page-title{font-size:var(--text-xl);font-weight:600;line-height:1.3;margin:0 0 var(--space-4);outline-offset:6px}.page-title:focus{outline:none}.section-title{font-size:var(--text-lg);font-weight:600;margin:0 0 var(--space-3)}.stack{display:flex;flex-direction:column;gap:var(--space-4)}.actions{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center}.actions>.btn{flex:1 1 9rem}.narrow{max-width:34rem}.wide{max-width:48rem}.loading,.empty{color:var(--ink-2);padding:var(--space-6) 0}.frame{padding-bottom:5.5rem}.masthead{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);background:var(--cover);color:var(--cover-ink);padding:var(--space-3) var(--gutter);border-bottom:3px double var(--cover-rule)}.masthead__book{display:flex;flex-direction:column;min-width:0}.masthead__kicker{font-size:var(--text-xs);letter-spacing:.12em;color:var(--cover-muted)}.masthead__shop{font-size:var(--text-lg);font-weight:600;overflow-wrap:anywhere}.frame__main{padding:var(--space-6) var(--gutter) var(--space-8)}.shop-menu{position:relative}.shop-menu__button{min-height:44px;min-width:64px;padding:0 var(--space-4);border-radius:999px;font:inherit;font-weight:600;background:transparent;color:var(--cover-ink);border:1.5px solid var(--cover-muted);cursor:pointer}.shop-menu__button[aria-expanded=true]{background:var(--cover-ink);color:var(--cover)}.shop-menu__panel{position:absolute;right:0;top:calc(100% + var(--space-2));z-index:20;min-width:12rem;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-control);box-shadow:var(--shadow-sheet);padding:var(--space-2)}.shop-menu__item{display:block;min-height:44px;padding:var(--space-2) var(--space-3);border-radius:8px;color:var(--ink);text-decoration:none;font:inherit;text-align:left;background:none;border:0;cursor:pointer}.shop-menu__item:hover{background:var(--paper)}.shop-menu__item--out{color:var(--stamp);font-weight:600}.tabs{position:fixed;inset:auto 0 0;z-index:9;background:var(--card);border-top:1px solid var(--line);box-shadow:0 -8px 24px -16px #1c223059;padding-bottom:env(safe-area-inset-bottom)}.tabs__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr)}.tabs__item--wide{display:none}.tabs__link{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:60px;padding:var(--space-1);color:var(--ink-2);text-decoration:none;font-size:var(--text-sm);font-weight:600;border-top:3px solid transparent;background:none;border-left:0;border-right:0;border-bottom:0;font-family:inherit;cursor:pointer;width:100%}.tabs__icon{font-size:1.15rem;line-height:1}.tabs__link[aria-current=page]{color:var(--action);border-top-color:var(--action)}.tabs__link:hover{color:var(--ink)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:48px;padding:var(--space-2) var(--space-6);border-radius:var(--radius-control);font:inherit;font-weight:600;text-decoration:none;cursor:pointer;text-align:center;border:1.5px solid transparent;transition:background-color var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{cursor:not-allowed;opacity:.55}.btn--primary{background:var(--action);color:#fff;box-shadow:inset 0 -3px 0 var(--action-deep)}.btn--primary:hover:not(:disabled){background:var(--action-deep)}.btn--quiet{background:var(--card);color:var(--action);border-color:var(--line-input)}.btn--quiet:hover:not(:disabled){border-color:var(--action);background:var(--action-wash)}.btn--text{background:none;color:var(--action);padding:var(--space-2) var(--space-3);min-height:44px;text-decoration:underline;text-underline-offset:3px}.btn--danger{background:var(--stamp);color:#fff}.btn--sandbox{background:var(--stamp-wash);color:var(--stamp-ink);border:2px dashed var(--stamp)}.btn--sandbox:hover:not(:disabled){background:#f8d8cd}.btn__tag{font-size:var(--text-xs);letter-spacing:.08em;border:1.5px solid currentColor;border-radius:3px;padding:0 var(--space-1)}.btn__done{font-weight:400}.btn--dock{width:100%;font-size:var(--text-lg);min-height:56px;position:sticky;bottom:5.25rem;z-index:2}.stamp{display:inline-block;align-self:flex-start;border:2px solid currentColor;border-radius:5px;padding:0 var(--space-2);font-weight:600;font-size:var(--text-sm);letter-spacing:.03em;transform:rotate(-2.5deg);background:#fffdf8b3}.stamp--stamp{color:var(--stamp)}.stamp--warn{color:var(--warn)}.stamp--in{color:var(--money-in)}.stamp--muted{color:var(--ink-3)}.stamp--arrive{font-size:var(--text-lg);padding:var(--space-1) var(--space-4);border-width:3px;animation:stamp-in .4s var(--ease-out) both}@keyframes stamp-in{0%{transform:rotate(-14deg) scale(1.6)}to{transform:rotate(-2.5deg) scale(1)}}.home__grid{display:grid;gap:var(--space-8)}.vault{background:var(--card);border-radius:var(--radius-sheet);box-shadow:var(--shadow-sheet);overflow:hidden;border:1px solid var(--line)}.vault__hero{display:grid;grid-template-columns:1fr auto;align-items:end;gap:var(--space-2) var(--space-4);padding:var(--space-6) var(--space-6) var(--space-4);border-left:6px solid var(--action)}.vault__label{grid-column:1 / -1;font-weight:600;color:var(--ink-2)}.vault__amount{font-size:var(--text-hero);font-weight:600;line-height:1.05;letter-spacing:-.02em;overflow-wrap:anywhere}.vault__payout{min-height:44px;padding:var(--space-1) var(--space-6)}.vault__pending{padding:var(--space-4) var(--space-6);border-top:1px dashed var(--line);display:grid;grid-template-columns:1fr auto;gap:var(--space-1) var(--space-4);align-items:baseline}.vault__sub-label{font-weight:600;color:var(--warn)}.vault__sub-amount{font-size:var(--text-xl);font-weight:600;text-align:right}.vault__pending .chip{grid-column:1 / -1}.vault__lines{margin:0;padding:var(--space-2) var(--space-6) var(--space-4);border-top:1px solid var(--line)}.chip{display:inline-flex;align-items:center;justify-self:start;gap:var(--space-1);background:var(--chip);color:var(--warn);border-radius:999px;padding:2px var(--space-3);font-size:var(--text-sm);font-weight:600}.chip:before{content:"◷";font-weight:400}.ledger-row{display:flex;align-items:baseline;gap:var(--space-2);padding:var(--space-2) 0;flex-wrap:wrap}.ledger-row__label{display:flex;flex:1 1 auto;align-items:baseline;gap:var(--space-2);color:var(--ink-2)}.ledger-row__label:after{content:"";flex:1;border-bottom:2px dotted var(--line);min-width:1.5rem;transform:translateY(-.3em)}.ledger-row__value{margin:0;font-weight:600}.ledger-row__note{display:block;flex-basis:100%;margin:0;font-size:var(--text-sm);font-weight:400;color:var(--stamp)}.ledger-row--plain-note .ledger-row__note{color:var(--ink-2)}.ledger-row--debt .ledger-row__label,.ledger-row--debt .ledger-row__value{color:var(--stamp)}.ledger-row--total{border-top:1.5px solid var(--ink);margin-top:var(--space-2)}.ledger-row--total .ledger-row__label{color:var(--ink);font-weight:600}.ledger-row--total .ledger-row__value{font-size:var(--text-lg)}.home__money{display:flex;flex-direction:column;gap:var(--space-4)}.passbook{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}.passbook__link{display:grid;grid-template-columns:1fr auto;gap:0 var(--space-3);padding:var(--space-3) var(--space-1);color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line)}.passbook__link:hover{background:#fffdf8cc}.passbook__when{grid-column:1 / -1;font-size:var(--text-xs);color:var(--ink-3);font-variant-numeric:tabular-nums}.passbook__what{overflow-wrap:anywhere}.passbook__amount{font-weight:600;text-align:right}.passbook__ref{grid-column:1 / -1;font-size:var(--text-sm);color:var(--ink-2)}.money--in{color:var(--money-in)}.field{display:flex;flex-direction:column;gap:var(--space-1)}.field__label{font-weight:600;font-size:var(--text-sm)}.field__hint{font-size:var(--text-sm);color:var(--ink-2)}.field__input{min-height:48px;padding:var(--space-2) var(--space-3);font:inherit;color:var(--ink);background:var(--card);border:1.5px solid var(--line-input);border-radius:var(--radius-control);width:100%}.field__input:focus-visible{border-color:var(--action);outline:3px solid var(--action-ring);outline-offset:0}.field__input[aria-invalid=true]{border-color:var(--stamp)}.field__input--amount{font-size:var(--text-xl);font-weight:600;font-variant-numeric:tabular-nums}.field__input--otp{font-family:var(--font-mono);font-size:var(--text-xl);letter-spacing:.45em;text-align:center;max-width:16rem}.field__error,.error-note{color:var(--stamp);font-size:var(--text-sm);font-weight:600}.error-note{background:var(--stamp-wash);border-left:4px solid var(--stamp);padding:var(--space-2) var(--space-3);border-radius:4px;color:var(--stamp-ink)}.checks{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-1)}.checks__item{display:flex;align-items:center;gap:var(--space-2);min-height:40px}.checks__item input{width:20px;height:20px;accent-color:var(--action)}.steps{list-style:none;display:flex;gap:var(--space-2);margin:0 0 var(--space-6);padding:0;flex-wrap:wrap}.steps__item{font-size:var(--text-sm);color:var(--ink-2);padding:2px var(--space-3);border-radius:999px;border:1px solid var(--line-input);background:var(--card)}.steps__item--now{background:var(--ink);color:var(--card);border-color:var(--ink)}.sheet{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-sheet);box-shadow:var(--shadow-sheet);padding:var(--space-6)}.receipt{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-sheet) var(--radius-sheet) 0 0;padding:var(--space-6) var(--space-6) var(--space-8);box-shadow:var(--shadow-sheet)}.receipt:after{content:"";position:absolute;left:0;right:0;bottom:-9px;height:10px;background:radial-gradient(circle at 8px -2px,transparent 7px,var(--card) 8px) 0 0 / 16px 10px repeat-x}.receipt__label{color:var(--ink-2);font-weight:600}.receipt__amount{font-size:var(--text-hero);font-weight:600;line-height:1.1;overflow-wrap:anywhere}.receipt__note{margin-top:var(--space-2);overflow-wrap:anywhere}.receipt__lines{margin:var(--space-4) 0 0}.receipt__dest{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px dashed var(--line);color:var(--ink-2)}.receipt--payout{margin-bottom:var(--space-6)}.qr-sheet{display:flex;flex-direction:column;gap:var(--space-4);align-items:stretch}.qr-sheet__head{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap}.qr-sheet__amount{font-size:var(--text-xl);font-weight:600}.qr-sheet__note{color:var(--ink-2);overflow-wrap:anywhere}.qr-sheet__ref{font-size:var(--text-xs);color:var(--ink-3);text-align:center}.qr{display:block;width:min(17rem,100%);height:auto;margin:0 auto}.qr--pay{border:1px solid var(--line);border-radius:8px}.qr--enrol{width:min(12rem,70%)}.qr--link{width:min(10rem,60%)}.stack--tight{gap:var(--space-1)}.url-box{font-family:var(--font-mono);font-size:var(--text-sm);text-overflow:ellipsis}.qr__bg{fill:#fff}.qr__dot{fill:var(--ink)}.live{min-height:1.65em;font-weight:600;color:var(--money-in)}.paid{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3);padding:var(--space-4) 0}.paid__line{font-size:var(--text-lg)}.link-url{text-align:center}.callout{border-left:4px solid var(--warn);padding:var(--space-2) var(--space-3);background:var(--chip);color:var(--ink);border-radius:4px}.result{display:flex;flex-direction:column;gap:var(--space-3);align-items:flex-start}.stepup{padding:var(--space-4);border:2px solid var(--action);border-radius:var(--radius-sheet);background:var(--card)}.stepup__title{font-size:var(--text-lg);font-weight:600;margin:0;line-height:1.4}.stepup__back{align-self:center}.live-note{min-height:1.65em;font-size:var(--text-sm)}.segmented{display:inline-flex;border:1.5px solid var(--line-input);border-radius:999px;overflow:hidden;margin-bottom:var(--space-4);background:var(--card)}.segmented__item{min-height:44px;padding:0 var(--space-6);font:inherit;font-weight:600;background:none;border:0;color:var(--ink-2);cursor:pointer}.segmented__item[aria-pressed=true]{background:var(--ink);color:var(--card)}.rows{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}.row-link{display:grid;grid-template-columns:1fr auto;gap:var(--space-1) var(--space-3);align-items:center;padding:var(--space-3) var(--space-1);border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}.row-link:hover{background:#fffdf8cc}.row-link__main{display:flex;flex-direction:column;overflow-wrap:anywhere}.row-link__meta{font-size:var(--text-xs);color:var(--ink-3);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.row-link__amount{font-weight:600;text-align:right;display:flex;flex-direction:column;align-items:flex-end}.row-link__kicker{font-size:var(--text-sm);font-weight:400;color:var(--ink-2)}.row-link--static{color:var(--ink)}.row-link .stamp{grid-column:2;justify-self:end}.dev-list{list-style:none;margin:var(--space-3) 0;padding:0}.dev-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-3) 0;border-bottom:1px solid var(--line)}.dev-row__main{display:flex;flex-direction:column;min-width:0;overflow-wrap:anywhere}.once{border:2px dashed var(--money-in);border-radius:var(--radius-control);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3);background:#f2f8f4}.once__title{font-weight:600}.once__value{font-size:var(--text-sm);background:var(--card);padding:var(--space-2);border-radius:6px;border:1px solid var(--line)}.code-sample{background:var(--ink);color:var(--card);padding:var(--space-4);border-radius:var(--radius-control);white-space:pre;overflow-x:auto;font-size:var(--text-sm);margin:var(--space-3) 0 0}.gate{min-height:calc(100vh - 3rem);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-8) var(--gutter)}.gate__sheet{width:100%;max-width:26rem;background:var(--card);border:1px solid var(--line);border-left:12px solid var(--cover);border-radius:6px var(--radius-sheet) var(--radius-sheet) 6px;box-shadow:var(--shadow-sheet);padding:var(--space-8) var(--space-6);display:flex;flex-direction:column;gap:var(--space-3)}.gate__brand{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:600;letter-spacing:.06em;color:var(--ink-2)}.gate__brand-mark{font-family:var(--font-mono);background:var(--cover);color:var(--cover-ink);padding:0 var(--space-2);border-radius:4px}.gate__lead{color:var(--ink-2);margin-bottom:var(--space-3)}.gate__foot{font-size:var(--text-xs);color:var(--ink-3);text-align:center;max-width:26rem}.enrol{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-3) 0}.enrol__manual{text-align:center;font-size:var(--text-sm);color:var(--ink-2)}.enrol__secret{font-size:var(--text-base);color:var(--ink);letter-spacing:.05em}@media(max-width:1023px){html{scroll-padding-bottom:6rem}}@media(min-width:640px){.frame__main{padding:var(--space-8) var(--space-8) var(--space-12)}.vault__hero{padding:var(--space-8) var(--space-8) var(--space-6)}.vault__pending,.vault__lines{padding-left:var(--space-8);padding-right:var(--space-8)}}@media(min-width:1024px){.frame{min-height:calc(100vh - 2.5rem);display:grid;grid-template-columns:15rem minmax(0,1fr);grid-template-rows:auto 1fr;grid-template-areas:"nav head" "nav main";padding-bottom:0}.masthead{grid-area:head;padding:var(--space-4) var(--space-8)}.shop-menu{display:none}.frame__main{grid-area:main}.tabs{grid-area:nav;position:sticky;top:2.5rem;inset:auto;align-self:start;height:calc(100vh - 2.5rem);box-shadow:none;border-top:0;border-right:1px solid var(--line);background:var(--paper-deep);padding:var(--space-6) 0 var(--space-6) var(--space-4)}.tabs__list{display:flex;flex-direction:column;gap:var(--space-1);height:100%}.tabs__item--wide{display:block}.tabs__item--wide:last-child{margin-top:auto}.tabs__link{flex-direction:row;justify-content:flex-start;gap:var(--space-3);min-height:48px;padding:0 var(--space-4);font-size:var(--text-base);border-top:0;border-radius:var(--radius-control) 0 0 var(--radius-control);border-left:4px solid transparent}.tabs__link[aria-current=page]{background:var(--card);border-left-color:var(--action);box-shadow:-2px 2px 8px -6px #1c223066}.tabs__link--out{color:var(--stamp)}.home__grid{grid-template-columns:minmax(0,40rem) minmax(0,1fr);align-items:start}.btn--dock{position:static}}
