@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:var(--font-sans), -apple-system, system-ui, "Segoe UI", sans-serif;--font-serif:var(--font-sans), -apple-system, system-ui, "Segoe UI", sans-serif;--font-mono:var(--font-mono), ui-monospace, "SF Mono", monospace;--spacing:.25rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans), -apple-system, system-ui, "Segoe UI", sans-serif;--default-mono-font-family:var(--font-mono), ui-monospace, "SF Mono", monospace;--font-thai:var(--font-thai), "IBM Plex Sans Thai", sans-serif}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-12{margin-top:calc(var(--spacing) * 12)}.mt-16{margin-top:calc(var(--spacing) * 16)}.mt-24{margin-top:calc(var(--spacing) * 24)}.mb-10{margin-bottom:calc(var(--spacing) * 10)}.mb-12{margin-bottom:calc(var(--spacing) * 12)}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.h-7{height:calc(var(--spacing) * 7)}.h-9{height:calc(var(--spacing) * 9)}.h-\[16px\]{height:16px}.h-\[22px\]{height:22px}.h-full{height:100%}.min-h-dvh{min-height:100dvh}.w-9{width:calc(var(--spacing) * 9)}.w-\[16px\]{width:16px}.w-full{width:100%}.max-w-\[42rem\]{max-width:42rem}.max-w-\[55ch\]{max-width:55ch}.max-w-\[73\.75rem\]{max-width:73.75rem}.max-w-\[80rem\]{max-width:80rem}.flex-1{flex:1}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-\[6\.5rem_1fr\]{grid-template-columns:6.5rem 1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing) * 1)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-px{gap:1px}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.rounded-\[var\(--r-md\)\]{border-radius:var(--r-md)}.rounded-\[var\(--r-sm\)\]{border-radius:var(--r-sm)}.rounded-full{border-radius:3.40282e38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-border{border-color:var(--border)}.bg-bg{background-color:var(--bg)}.bg-bg-elev{background-color:var(--bg-elev)}.bg-border{background-color:var(--border)}.bg-fg{background-color:var(--fg)}.p-6{padding:calc(var(--spacing) * 6)}.p-\[2px\]{padding:2px}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-7{padding-block:calc(var(--spacing) * 7)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-16{padding-block:calc(var(--spacing) * 16)}.font-mono{font-family:var(--font-mono), ui-monospace, "SF Mono", monospace}.font-sans,.font-serif{font-family:var(--font-sans), -apple-system, system-ui, "Segoe UI", sans-serif}.text-\[1\.2rem\]{font-size:1.2rem}.text-\[1\.4rem\]{font-size:1.4rem}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14\.5px\]{font-size:14.5px}.text-\[14px\]{font-size:14px}.text-\[15\.5px\]{font-size:15.5px}.text-\[16px\]{font-size:16px}.text-\[17px\]{font-size:17px}.text-\[clamp\(1\.05rem\,1\.8vw\,1\.2rem\)\]{font-size:clamp(1.05rem,1.8vw,1.2rem)}.text-\[clamp\(1\.5rem\,2\.8vw\,2rem\)\]{font-size:clamp(1.5rem,2.8vw,2rem)}.text-\[clamp\(2\.25rem\,5vw\,3\.25rem\)\]{font-size:clamp(2.25rem,5vw,3.25rem)}.leading-\[0\.95\]{--tw-leading:.95;line-height:.95}.leading-\[1\.2\]{--tw-leading:1.2;line-height:1.2}.leading-\[1\.3\]{--tw-leading:1.3;line-height:1.3}.leading-\[1\.06\]{--tw-leading:1.06;line-height:1.06}.leading-\[1\.6\]{--tw-leading:1.6;line-height:1.6}.leading-\[1\.25\]{--tw-leading:1.25;line-height:1.25}.leading-\[1\.55\]{--tw-leading:1.55;line-height:1.55}.leading-\[1\.65\]{--tw-leading:1.65;line-height:1.65}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[-0\.03em\]{--tw-tracking:-.03em;letter-spacing:-.03em}.tracking-\[-0\.025em\]{--tw-tracking:-.025em;letter-spacing:-.025em}.tracking-\[0\.06em\]{--tw-tracking:.06em;letter-spacing:.06em}.tracking-\[0\.14em\]{--tw-tracking:.14em;letter-spacing:.14em}.tracking-\[0\.22em\]{--tw-tracking:.22em;letter-spacing:.22em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.text-bg{color:var(--bg)}.text-fg{color:var(--fg)}.text-fg-faint{color:var(--fg-faint)}.text-fg-muted{color:var(--fg-muted)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.decoration-border-strong{-webkit-text-decoration-color:var(--border-strong);-webkit-text-decoration-color:var(--border-strong);-webkit-text-decoration-color:var(--border-strong);text-decoration-color:var(--border-strong)}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-100{opacity:1}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.sepia{--tw-sepia:sepia(100%);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,)}.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,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-\[var\(--dur-2\)\]{--tw-duration:var(--dur-2);transition-duration:var(--dur-2)}.ease-\[var\(--ease-quiet\)\]{--tw-ease:var(--ease-quiet);transition-timing-function:var(--ease-quiet)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}@media (hover:hover){.group-hover\:text-\[var\(--shu-iro\)\]:is(:where(.group):hover *){color:var(--shu-iro)}.hover\:border-fg-muted:hover{border-color:var(--fg-muted)}.hover\:bg-bg-sunk:hover{background-color:var(--bg-sunk)}.hover\:text-fg:hover{color:var(--fg)}.hover\:decoration-\[var\(--shu-iro\)\]:hover{-webkit-text-decoration-color:var(--shu-iro);-webkit-text-decoration-color:var(--shu-iro);-webkit-text-decoration-color:var(--shu-iro);text-decoration-color:var(--shu-iro)}.hover\:decoration-fg:hover{-webkit-text-decoration-color:var(--fg);-webkit-text-decoration-color:var(--fg);-webkit-text-decoration-color:var(--fg);text-decoration-color:var(--fg)}}@media (min-width:40rem){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:48rem){.md\:inline{display:inline}.md\:grid-cols-\[7\.5rem_1fr_auto\]{grid-template-columns:7.5rem 1fr auto}.md\:grid-cols-\[7rem_1fr\]{grid-template-columns:7rem 1fr}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:gap-6{gap:calc(var(--spacing) * 6)}.md\:gap-8{gap:calc(var(--spacing) * 8)}.md\:p-7{padding:calc(var(--spacing) * 7)}.md\:px-8{padding-inline:calc(var(--spacing) * 8)}.md\:py-20{padding-block:calc(var(--spacing) * 20)}}@media (min-width:64rem){.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}}.resume-root{--rs-fs-13:13px;--rs-fs-14:14px;--rs-fs-16:16px;--rs-fs-18:18px;--rs-fs-24:24px;--rs-fs-32:32px;--rs-fs-48:48px;--rs-ls-tight-lg:-1.2px;--rs-ls-tight:-.8px;--rs-ls-tight-sm:-.4px;--rs-ls-loose:.04em;--rs-ease:cubic-bezier(.2, 0, 0, 1);--rs-bd:1px solid var(--border);--rs-bd-2:1px solid var(--border-strong)}.resume-root,.resume-root *{box-sizing:border-box}html:has(.resume-root){scroll-behavior:smooth}.resume-root ::selection{background:var(--shu-iro);color:var(--washi)}.resume-root .nav{z-index:50;background:var(--bg);position:fixed;top:0;left:0;right:0}@supports (color:color-mix(in lab, red, red)){.resume-root .nav{background:color-mix(in oklab, var(--bg) 92%, transparent)}}.resume-root .nav{-webkit-backdrop-filter:blur(8px);border-bottom:var(--rs-bd)}.resume-root .nav-inner{max-width:var(--max-w-page);padding:var(--s-4) var(--s-8);justify-content:space-between;align-items:center;gap:var(--s-8);margin:0 auto;display:flex}.resume-root .nav-brand{align-items:center;gap:var(--s-3);color:var(--fg);text-decoration:none;display:flex}.resume-root .nav-brand .mark{width:22px;height:22px}.resume-root .nav-brand .wordmark{font-family:var(--font-sans);letter-spacing:var(--rs-ls-tight);font-weight:500;font-size:var(--rs-fs-16)}.resume-root .nav-links{align-items:center;gap:var(--s-6);display:flex}.resume-root .nav-links a{font-size:var(--rs-fs-13);color:var(--fg-muted);padding:var(--s-1) 0;transition:color var(--dur-2) var(--rs-ease);text-decoration:none;position:relative}.resume-root .nav-links a:hover,.resume-root .nav-links a.active{color:var(--fg)}.resume-root .nav-links a.active:after{content:"";background:var(--shu-iro);height:2px;position:absolute;bottom:-4px;left:0;right:0}.resume-root .nav-meta{font-family:var(--font-mono);font-size:var(--rs-fs-13);color:var(--fg-faint);font-feature-settings:"tnum" 1, "lnum" 1}.resume-root .page{z-index:1;max-width:var(--max-w-page);padding:0 var(--s-8);margin:0 auto;position:relative}.resume-root .section{padding:96px 0;position:relative}.resume-root .section+.section{border-top:var(--rs-bd)}.resume-root .section-head{align-items:baseline;gap:var(--s-4);margin-bottom:var(--s-12);display:flex}.resume-root .section-num{font-family:var(--font-mono);font-size:var(--rs-fs-13);color:var(--fg-faint);font-feature-settings:"tnum" 1, "lnum" 1;letter-spacing:var(--rs-ls-loose);min-width:48px}.resume-root .section-num .marker{color:var(--shu-iro);margin-right:var(--s-1)}.resume-root .section-title{font-size:var(--rs-fs-24);letter-spacing:var(--rs-ls-tight-sm);color:var(--fg);font-weight:500}.resume-root .section-rule{background:var(--border);flex:1;height:1px}.resume-root [data-reveal]{opacity:0;transition:opacity .7s var(--rs-ease), transform .7s var(--rs-ease), clip-path .8s var(--rs-ease);will-change:opacity, transform;transform:translateY(16px)}.resume-root [data-reveal].is-in{opacity:1;transform:none}.resume-root [data-reveal][data-stagger="1"]{transition-delay:80ms}.resume-root [data-reveal][data-stagger="2"]{transition-delay:.16s}.resume-root [data-reveal][data-stagger="3"]{transition-delay:.24s}.resume-root [data-reveal][data-stagger="4"]{transition-delay:.32s}.resume-root [data-reveal][data-stagger="5"]{transition-delay:.4s}.resume-root .split{display:inline-block}.resume-root .split-char{opacity:0;animation:rs-split-in .72s var(--rs-ease) forwards;display:inline-block;transform:translateY(.45em)}@keyframes rs-split-in{to{opacity:1;transform:none}}.resume-root .section-head{overflow:visible}.resume-root .section-head .section-num,.resume-root .section-head .section-title{opacity:0;transition:opacity .6s var(--rs-ease), transform .6s var(--rs-ease);transform:translateY(8px)}.resume-root .section-head .section-rule{transform-origin:0;transition:transform .9s var(--rs-ease) .24s;transform:scaleX(0)}.resume-root .section-head.is-in .section-num{opacity:1;transition-delay:40ms;transform:none}.resume-root .section-head.is-in .section-title{opacity:1;transition-delay:.14s;transform:none}.resume-root .section-head.is-in .section-rule{transform:scaleX(1)}.resume-root .skills-col li{opacity:0;transition:opacity .5s var(--rs-ease), transform .5s var(--rs-ease);transform:translateY(6px)}.resume-root .skills-col.is-in li:first-child{opacity:1;transition-delay:60ms;transform:none}.resume-root .skills-col.is-in li:nth-child(2){opacity:1;transition-delay:.14s;transform:none}.resume-root .skills-col.is-in li:nth-child(3){opacity:1;transition-delay:.22s;transform:none}.resume-root .skills-col.is-in li:nth-child(4){opacity:1;transition-delay:.3s;transform:none}.resume-root .skills-col.is-in li:nth-child(5){opacity:1;transition-delay:.38s;transform:none}.resume-root .skills-col.is-in li:nth-child(6){opacity:1;transition-delay:.46s;transform:none}.resume-root .about-grid .body p{opacity:0;transition:opacity .6s var(--rs-ease), transform .6s var(--rs-ease);transform:translateY(8px)}.resume-root .about-grid .body.is-in p:first-of-type{opacity:1;transition-delay:80ms;transform:none}.resume-root .about-grid .body.is-in p:nth-of-type(2){opacity:1;transition-delay:.24s;transform:none}.resume-root .about-grid .body.is-in p:nth-of-type(3){opacity:1;transition-delay:.4s;transform:none}.resume-root .contact .links li{opacity:0;transition:opacity .5s var(--rs-ease), transform .5s var(--rs-ease);transform:translateY(8px)}.resume-root .contact .links.is-in li:first-child{opacity:1;transition-delay:80ms;transform:none}.resume-root .contact .links.is-in li:nth-child(2){opacity:1;transition-delay:.2s;transform:none}.resume-root .contact .links.is-in li:nth-child(3){opacity:1;transition-delay:.32s;transform:none}.resume-root .contact .links.is-in li:nth-child(4){opacity:1;transition-delay:.44s;transform:none}.resume-root .stats .stat{opacity:0;transition:opacity .6s var(--rs-ease), transform .6s var(--rs-ease);transform:translateY(10px)}.resume-root .stats.is-in .stat:first-child{opacity:1;transition-delay:80ms;transform:none}.resume-root .stats.is-in .stat:nth-child(2){opacity:1;transition-delay:.2s;transform:none}.resume-root .stats.is-in .stat:nth-child(3){opacity:1;transition-delay:.32s;transform:none}.resume-root .stats.is-in .stat:nth-child(4){opacity:1;transition-delay:.44s;transform:none}.resume-root .proj-card{overflow:hidden}.resume-root .top-prog{background:var(--shu-iro);z-index:60;pointer-events:none;width:0%;height:2px;transition:width 80ms linear;position:fixed;top:0;left:0}.resume-root .hero{min-height:calc(100vh - var(--rs-topbar-h,64px));flex-direction:column;justify-content:center;padding:40px 0 80px;display:flex;position:relative}.resume-root .hero-eyebrow{font-family:var(--font-mono);font-size:var(--rs-fs-13);color:var(--fg-faint);margin-bottom:var(--s-6);align-items:center;gap:var(--s-2);font-feature-settings:"tnum" 1, "lnum" 1;display:flex}.resume-root .hero-hanko{top:var(--s-10);right:var(--s-2);color:var(--shu-iro);letter-spacing:0;white-space:pre;-webkit-user-select:none;user-select:none;pointer-events:none;transform-origin:50%;margin:0;padding:0;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:14px;line-height:1;position:absolute;transform:rotate(-2deg)}.resume-root .hero-eyebrow .pulse{background:var(--matsu);border-radius:9999px;width:6px;height:6px;display:inline-block;position:relative}.resume-root .hero-eyebrow .pulse:after{content:"";border:1px solid var(--matsu);opacity:.4;border-radius:9999px;animation:2.2s ease-out infinite rs-pulse-out;position:absolute;inset:-3px}@keyframes rs-pulse-out{0%{opacity:.5;transform:scale(.6)}to{opacity:0;transform:scale(2.4)}}.resume-root .hero-name{letter-spacing:-2px;color:var(--fg);margin:0;font-size:clamp(48px,9vw,96px);font-weight:500;line-height:.98}.resume-root .hero-name .last{color:var(--fg-muted)}.resume-root .hero-sub{margin-top:var(--s-8);font-size:var(--rs-fs-24);color:var(--fg-muted);letter-spacing:var(--rs-ls-tight-sm);min-height:1.5em;font-weight:400}.resume-root .hero-sub .caret{background:var(--shu-iro);vertical-align:-.16em;width:10px;height:1.05em;margin-left:2px;animation:1s steps(2,start) infinite rs-caret-blink;display:inline-block}@keyframes rs-caret-blink{to{opacity:0}}.resume-root .hero-meta{margin-top:var(--s-12);gap:var(--s-8) var(--s-12);font-family:var(--font-mono);font-size:var(--rs-fs-13);color:var(--fg-faint);font-feature-settings:"tnum" 1, "lnum" 1;flex-wrap:wrap;display:flex}.resume-root .hero-meta .item{align-items:baseline;gap:var(--s-2);display:flex}.resume-root .hero-meta .k{color:var(--fg-faint)}.resume-root .hero-meta .v{color:var(--fg)}.resume-root .hero-scroll-cue{bottom:var(--s-8);font-family:var(--font-mono);font-size:var(--rs-fs-13);color:var(--fg-faint);align-items:center;gap:var(--s-2);display:flex;position:absolute;left:0}.resume-root .hero-scroll-cue .arrow{background:var(--fg-faint);width:1px;height:24px;animation:rs-scroll-cue 2s var(--rs-ease) infinite;display:inline-block;position:relative}@keyframes rs-scroll-cue{0%,to{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(4px)}}.resume-root .about-grid{grid-template-columns:1fr 1.4fr;align-items:start;gap:64px;display:grid}.resume-root .about-grid .meta{font-family:var(--font-mono);font-size:var(--rs-fs-13);color:var(--fg-faint);font-feature-settings:"tnum" 1, "lnum" 1;gap:var(--s-2) var(--s-6);grid-template-columns:max-content 1fr;display:grid}.resume-root .about-grid .meta .k{color:var(--fg-faint)}.resume-root .about-grid .meta .v{color:var(--fg)}.resume-root .about-grid .body{font-size:var(--rs-fs-18);color:var(--fg);max-width:56ch;margin:0;line-height:1.65}.resume-root .about-grid .body p{margin:0}.resume-root .about-grid .body p+p{margin-top:var(--s-4)}.resume-root .stats{border-top:var(--rs-bd);border-bottom:var(--rs-bd);margin-top:var(--s-12);grid-template-columns:repeat(4,1fr);gap:0;display:grid}.resume-root .stat{padding:var(--s-8) var(--s-4);border-right:var(--rs-bd);gap:var(--s-2);flex-direction:column;display:flex}.resume-root .stat:last-child{border-right:0}.resume-root .stat .n{font-family:var(--font-mono);font-size:var(--rs-fs-48);letter-spacing:var(--rs-ls-tight);font-feature-settings:"tnum" 1, "lnum" 1;color:var(--fg);font-weight:500;line-height:1}.resume-root .stat .l{font-size:var(--rs-fs-13);color:var(--fg-faint)}.resume-root .stat .u{font-family:var(--font-mono);font-size:var(--rs-fs-13);color:var(--fg-faint)}.resume-root .section-kicker{font-family:var(--font-mono);font-size:var(--rs-fs-13);letter-spacing:var(--rs-ls-loose);color:var(--fg-faint);margin-left:var(--s-4);white-space:nowrap;text-transform:lowercase;opacity:0;transition:opacity .6s var(--rs-ease), transform .6s var(--rs-ease);transform:translateY(8px)}.resume-root .section-head.is-in .section-kicker{opacity:1;transition-delay:.32s;transform:none}.resume-root .jr-list{margin:0;padding:0;list-style:none}.resume-root .jr-band{gap:var(--s-10);padding:var(--s-12) var(--s-4) var(--s-12) var(--s-4);border-top:var(--rs-bd);opacity:0;transition:opacity .6s var(--rs-ease), transform .6s var(--rs-ease), padding-left var(--dur-3) var(--rs-ease);will-change:opacity, transform;grid-template-columns:180px 1fr;display:grid;position:relative;transform:translateY(12px)}.resume-root .jr-band:last-child{border-bottom:var(--rs-bd)}.resume-root .jr-band.is-first{padding-top:72px}.resume-root .jr-band.is-in{opacity:1;transform:none}.resume-root .jr-band .jr-when{clip-path:inset(0 0 100%);transition:clip-path .7s var(--rs-ease) .12s}.resume-root .jr-band.is-in .jr-when{clip-path:inset(0)}.resume-root .jr-band:before{content:"";background:var(--shu-iro);transform-origin:top;opacity:0;width:1px;transition:transform .32s var(--rs-ease), opacity .2s var(--rs-ease);position:absolute;top:0;bottom:0;left:0;transform:scaleY(0)}.resume-root .jr-band.is-active:before{opacity:1;transform:scaleY(1)}.resume-root .jr-band.is-active{padding-left:var(--s-6)}.resume-root .jr-when{gap:var(--s-1);flex-direction:column;align-items:flex-start;padding-top:4px;display:flex}.resume-root .jr-date{font-family:var(--font-sans);font-size:var(--display-md);letter-spacing:-.025em;color:var(--fg);font-feature-settings:"tnum" 1, "lnum" 1;font-weight:500;line-height:1.05}.resume-root .jr-now{font-family:var(--font-mono);letter-spacing:var(--rs-ls-loose);color:var(--shu-iro);text-transform:lowercase;margin-top:var(--s-1);font-size:11px}.resume-root .jr-what{gap:var(--s-3);flex-direction:column;min-width:0;display:flex}.resume-root .jr-org{font-family:var(--font-mono);font-size:var(--rs-fs-13);color:var(--fg-faint);letter-spacing:var(--rs-ls-loose)}.resume-root .jr-role{font-family:var(--font-sans);font-size:var(--rs-fs-24);letter-spacing:var(--rs-ls-tight-sm);color:var(--fg);margin:0;font-weight:500;line-height:1.2}.resume-root .jr-desc{font-size:var(--rs-fs-16);color:var(--fg-muted);max-width:56ch;margin:0;line-height:1.65}.resume-root .jr-tags{gap:var(--s-2);margin-top:var(--s-2);flex-wrap:wrap;display:flex}.resume-root .jr-tag{font-family:var(--font-mono);color:var(--fg-muted);border:var(--rs-bd);border-radius:var(--r-sm);letter-spacing:var(--rs-ls-loose);background:0 0;padding:2px 8px;font-size:11px}.resume-root .skills{border-top:var(--rs-bd);grid-template-columns:repeat(4,1fr);gap:0;display:grid}.resume-root .skills-col{padding:var(--s-6);border-right:var(--rs-bd)}.resume-root .skills-col:first-child{padding-left:0}.resume-root .skills-col:last-child{border-right:0;padding-right:0}.resume-root .skills-col .label{font-family:var(--font-mono);font-size:var(--rs-fs-13);color:var(--fg-faint);letter-spacing:var(--rs-ls-loose);margin-bottom:var(--s-4)}.resume-root .skills-col ul{gap:var(--s-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.resume-root .skills-col li{font-size:var(--rs-fs-16);color:var(--fg);font-family:var(--font-mono);font-feature-settings:"tnum" 1, "lnum" 1}.resume-root .education{gap:var(--s-8);padding-bottom:var(--s-6);border-bottom:var(--rs-bd);grid-template-columns:200px 1fr auto;align-items:baseline;display:grid}.resume-root .education .when{font-family:var(--font-mono);font-size:var(--rs-fs-13);color:var(--fg-faint);font-feature-settings:"tnum" 1, "lnum" 1}.resume-root .education .what .deg{font-size:var(--rs-fs-18);margin:0 0 var(--s-1) 0;letter-spacing:var(--rs-ls-tight-sm);color:var(--fg);font-weight:500}.resume-root .education .what .place{color:var(--fg-muted);font-size:var(--rs-fs-16)}.resume-root .education .what .extra{margin-top:var(--s-3);color:var(--fg-faint);font-size:var(--rs-fs-13);font-family:var(--font-mono);font-feature-settings:"tnum" 1, "lnum" 1}.resume-root .education .gpa{font-family:var(--font-mono);font-size:var(--rs-fs-32);letter-spacing:var(--rs-ls-tight-sm);font-feature-settings:"tnum" 1, "lnum" 1;color:var(--shu-iro);font-weight:500}.resume-root .projects-teaser{gap:var(--s-6);grid-template-columns:repeat(3,1fr);display:grid}.resume-root .proj-card{border:var(--rs-bd);background:var(--bg);color:var(--fg);transition:background var(--dur-2) var(--rs-ease), border-color var(--dur-2) var(--rs-ease), transform var(--dur-3) var(--rs-ease);flex-direction:column;text-decoration:none;display:flex;overflow:hidden}.resume-root .proj-card:hover{background:var(--bg-sunk);border-color:var(--fg-faint)}.resume-root .proj-card .thumb{aspect-ratio:4/3;background:var(--sumi);position:relative;overflow:hidden}.resume-root .proj-card .thumb svg{width:100%;height:100%;display:block}.resume-root .proj-card .body{padding:var(--s-5) var(--s-5) var(--s-6);justify-content:space-between;align-items:flex-end;gap:var(--s-3);display:flex}.resume-root .proj-card .body .text .name{font-size:var(--rs-fs-18);letter-spacing:var(--rs-ls-tight-sm);margin-bottom:var(--s-1);color:var(--fg);font-weight:500}.resume-root .proj-card .body .text .tag{font-family:var(--font-mono);font-size:var(--rs-fs-13);color:var(--fg-faint);background:0 0;border:0;padding:0}.resume-root .proj-card .arrow{border:var(--rs-bd);width:32px;height:32px;color:var(--fg);transition:background var(--dur-2) var(--rs-ease), border-color var(--dur-2) var(--rs-ease), transform var(--dur-3) var(--rs-ease), color var(--dur-2) var(--rs-ease);border-radius:9999px;flex:0 0 32px;justify-content:center;align-items:center;display:flex}.resume-root .proj-card:hover .arrow{background:var(--shu-iro);border-color:var(--shu-iro);color:var(--washi);transform:rotate(45deg)}.resume-root .proj-card .arrow svg{width:14px;height:14px}.resume-root .see-all{margin-top:var(--s-8);align-items:center;gap:var(--s-2);color:var(--fg);font-family:var(--font-mono);font-size:var(--rs-fs-13);letter-spacing:var(--rs-ls-loose);border-bottom:1px solid var(--border-strong);padding-bottom:2px;text-decoration:none;display:inline-flex}.resume-root .see-all:hover{border-bottom-color:var(--shu-iro)}.resume-root .projects-grid{gap:var(--s-6);grid-template-columns:repeat(auto-fill,minmax(330px,1fr));display:grid}.resume-root .proj-grid-card{border:var(--rs-bd);background:var(--bg);transition:background var(--dur-2) var(--rs-ease), border-color var(--dur-2) var(--rs-ease), opacity .7s var(--rs-ease), transform .7s var(--rs-ease);flex-direction:column;display:flex;overflow:hidden}.resume-root .proj-grid-card:hover{background:var(--bg-sunk);border-color:var(--fg-faint)}.resume-root .proj-grid-card .thumb{aspect-ratio:4/3;background:var(--sumi);overflow:hidden}.resume-root .proj-grid-card .thumb svg{width:100%;height:100%;transition:transform var(--dur-3) var(--rs-ease);will-change:transform;display:block}.resume-root .proj-grid-card:hover .thumb svg{transform:scale(1.04)}.resume-root .proj-grid-body{align-items:flex-start;gap:var(--s-3);padding:var(--s-5);flex-direction:column;flex:1;display:flex}.resume-root .proj-grid-head .name{font-size:var(--rs-fs-18);letter-spacing:var(--rs-ls-tight-sm);color:var(--fg);padding-bottom:3px;font-weight:500;display:inline-block;position:relative}.resume-root .proj-grid-head .name:after{content:"";background:var(--shu-iro);transform-origin:0;width:100%;height:1.5px;transition:transform .24s var(--rs-ease);position:absolute;bottom:0;left:0;transform:scaleX(0)}.resume-root .proj-grid-card:hover .proj-grid-head .name:after{transform:scaleX(1)}.resume-root .proj-grid-head .meta{margin-top:var(--s-2);font-family:var(--font-mono);font-size:var(--rs-fs-13);color:var(--fg-faint);letter-spacing:var(--rs-ls-loose);display:block}.resume-root .proj-grid-card .summary{font-family:var(--font-serif);font-size:var(--rs-fs-14);color:var(--fg-muted);line-height:1.6}.resume-root .proj-grid-card .stack{gap:var(--s-2);margin:var(--s-1) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.resume-root .proj-grid-card .stack li{font-family:var(--font-mono);letter-spacing:var(--rs-ls-loose);color:var(--fg-faint);border:var(--rs-bd);padding:3px var(--s-2);font-size:11px}.resume-root .proj-grid-card .repo-link{align-items:center;gap:var(--s-2);padding-top:var(--s-3);color:var(--fg);font-family:var(--font-mono);font-size:var(--rs-fs-13);letter-spacing:var(--rs-ls-loose);margin-top:auto;text-decoration:none;display:inline-flex}.resume-root .proj-grid-card .repo-link svg{width:13px;height:13px;transition:transform var(--dur-3) var(--rs-ease)}.resume-root .proj-grid-card:hover .repo-link svg{transform:translate(4px)}.resume-root .proj-grid-card .repo-none{padding-top:var(--s-3);font-family:var(--font-mono);font-size:var(--rs-fs-13);letter-spacing:var(--rs-ls-loose);color:var(--fg-faint);margin-top:auto}@media (max-width:560px){.resume-root .projects-grid{grid-template-columns:1fr}}.resume-root .contact{grid-template-columns:1fr 1fr;align-items:start;gap:64px;display:grid}.resume-root .contact .pitch{font-size:var(--rs-fs-32);letter-spacing:var(--rs-ls-tight);max-width:14ch;color:var(--fg);font-weight:500;line-height:1.2}.resume-root .contact .links{border-top:var(--rs-bd);margin:0;padding:0;list-style:none}.resume-root .contact .links li{border-bottom:var(--rs-bd)}.resume-root .contact .links li.static{gap:var(--s-4);padding:var(--s-4) 0;color:var(--fg);grid-template-columns:100px 1fr 24px;align-items:baseline;display:grid}.resume-root .contact .links a{gap:var(--s-4);padding:var(--s-4) 0;color:var(--fg);transition:padding-left var(--dur-3) var(--rs-ease), color var(--dur-2) var(--rs-ease);grid-template-columns:100px 1fr 24px;align-items:baseline;text-decoration:none;display:grid}.resume-root .contact .links a:hover{padding-left:var(--s-3);color:var(--shu-iro)}.resume-root .contact .links a:hover .arrow{color:var(--shu-iro)}.resume-root .contact .links .k{font-family:var(--font-mono);font-size:var(--rs-fs-13);color:var(--fg-faint);letter-spacing:var(--rs-ls-loose)}.resume-root .contact .links .v{font-size:var(--rs-fs-18);letter-spacing:var(--rs-ls-tight-sm);font-weight:500}.resume-root .contact .links .arrow{text-align:right;color:var(--fg-faint);font-family:var(--font-mono)}.resume-root .foot{padding:var(--s-12) 0;border-top:var(--rs-bd);justify-content:space-between;gap:var(--s-6);font-family:var(--font-mono);font-size:var(--rs-fs-13);color:var(--fg-faint);font-feature-settings:"tnum" 1, "lnum" 1;flex-wrap:wrap;display:flex}.resume-root .kbd-help{background:var(--sumi);position:fixed;inset:0}@supports (color:color-mix(in lab, red, red)){.resume-root .kbd-help{background:color-mix(in oklab, var(--sumi) 40%, transparent)}}.resume-root .kbd-help{z-index:100;opacity:0;pointer-events:none;transition:opacity var(--dur-3) var(--rs-ease);justify-content:center;align-items:center;display:flex}.resume-root .kbd-help.is-on{opacity:1;pointer-events:auto}.resume-root .kbd-help .panel{background:var(--bg);border:1px solid var(--fg);padding:var(--s-8);width:90%;max-width:480px;color:var(--fg)}.resume-root .kbd-help .panel h3{margin:0 0 var(--s-6);font-size:var(--rs-fs-18);font-weight:500}.resume-root .kbd-help table{border-collapse:collapse;width:100%}.resume-root .kbd-help td{padding:var(--s-2) 0;border-bottom:var(--rs-bd);font-size:var(--rs-fs-14)}.resume-root .kbd-help kbd{font-family:var(--font-mono);font-size:var(--rs-fs-13);background:var(--bg-sunk);border:var(--rs-bd);border-radius:var(--r-sm);margin-right:4px;padding:2px 8px}@media (max-width:880px){.resume-root .nav-meta{display:none}.resume-root .nav-inner{padding:var(--s-3) var(--s-5)}.resume-root .page{padding:0 var(--s-5)}.resume-root .section{padding:64px 0}.resume-root .about-grid,.resume-root .contact{gap:var(--s-8);grid-template-columns:1fr}.resume-root .stats{grid-template-columns:repeat(2,1fr)}.resume-root .stat:nth-child(2){border-right:0}.resume-root .stat:first-child,.resume-root .stat:nth-child(2){border-bottom:var(--rs-bd)}.resume-root .skills{grid-template-columns:repeat(2,1fr)}.resume-root .skills-col:nth-child(2){border-right:0}.resume-root .skills-col:first-child,.resume-root .skills-col:nth-child(2){border-bottom:var(--rs-bd)}.resume-root .skills-col{padding:var(--s-5) var(--s-4)}.resume-root .skills-col:nth-child(odd){padding-left:0}.resume-root .skills-col:nth-child(2n){padding-right:0}.resume-root .education{gap:var(--s-3);grid-template-columns:1fr}.resume-root .education .gpa{font-size:var(--rs-fs-48)}.resume-root .projects-teaser{grid-template-columns:1fr}.resume-root .section-kicker{display:none}.resume-root .jr-band{gap:var(--s-4);padding:var(--s-10) var(--s-4);grid-template-columns:1fr}.resume-root .jr-band.is-first{padding-top:var(--s-12)}.resume-root .jr-band.is-active{padding-left:var(--s-4)}.resume-root .jr-when{align-items:baseline;gap:var(--s-3);flex-direction:row;padding-top:0}}@media (max-width:640px){.resume-root{font-size:var(--rs-fs-14)}.resume-root .nav-inner{padding:10px var(--s-4);gap:var(--s-3)}.resume-root .nav-brand .wordmark{display:none}.resume-root .nav-links{gap:var(--s-4)}.resume-root .nav-links a{font-size:12px}.resume-root .page{padding:0 var(--s-4)}.resume-root .section{padding:48px 0}.resume-root .section-head{gap:var(--s-2) var(--s-3);margin-bottom:var(--s-6);flex-wrap:wrap}.resume-root .section-num{min-width:0;font-size:11px}.resume-root .section-title{font-size:var(--rs-fs-18)}.resume-root .section-rule{margin-top:var(--s-2);flex:100%}.resume-root .hero{min-height:calc(100vh - 56px);padding:48px 0 64px}.resume-root .hero-eyebrow{margin-bottom:var(--s-4);font-size:11px;line-height:1.5}.resume-root .hero-name{letter-spacing:-1.2px;line-height:.96;font-size:48px!important}.resume-root .hero-sub{font-size:var(--rs-fs-18);margin-top:var(--s-5);line-height:1.4}.resume-root .hero-sub .caret{width:7px}.resume-root .hero-meta{margin-top:var(--s-8);gap:6px var(--s-4);grid-template-columns:max-content 1fr;font-size:11px;display:grid}.resume-root .hero-meta .item{display:contents}.resume-root .hero-meta .item .k{grid-column:1}.resume-root .hero-meta .item .v{text-align:right;grid-column:2}.resume-root .hero-scroll-cue{bottom:var(--s-4);font-size:11px}.resume-root .hero-hanko{display:none}.resume-root .about-grid{gap:var(--s-6)}.resume-root .about-grid .meta{gap:4px var(--s-4);padding:var(--s-4);background:var(--bg-sunk);border:var(--rs-bd);grid-template-columns:max-content 1fr;font-size:11px}.resume-root .about-grid .body{font-size:var(--rs-fs-16)}.resume-root .stat{padding:var(--s-5) var(--s-3)}.resume-root .stat .n{font-size:var(--rs-fs-32)}.resume-root .stat .l{font-size:11px}.resume-root .stat .u{font-size:10px}.resume-root .jr-band{padding:var(--s-8) var(--s-3);gap:var(--s-3)}.resume-root .jr-when{gap:var(--s-2)}.resume-root .jr-date{font-size:clamp(22px,6vw,32px)}.resume-root .jr-now{font-size:10px}.resume-root .jr-org{font-size:11px}.resume-root .jr-role{font-size:var(--rs-fs-18)}.resume-root .jr-desc{font-size:var(--rs-fs-14)}.resume-root .jr-tag{padding:2px 6px;font-size:10px}.resume-root .skills-col .label{font-size:11px}.resume-root .skills-col li{font-size:var(--rs-fs-14)}.resume-root .skills-col ul{gap:6px}.resume-root .education .when{font-size:11px}.resume-root .education .what .deg{font-size:var(--rs-fs-16)}.resume-root .education .what .place{font-size:var(--rs-fs-14)}.resume-root .education .what .extra{font-size:11px}.resume-root .education .gpa{font-size:var(--rs-fs-32)}.resume-root .projects-teaser{flex-direction:column;gap:0;display:flex}.resume-root .proj-card .body{padding:var(--s-4)}.resume-root .proj-card .body .text .name{font-size:var(--rs-fs-16)}.resume-root .proj-card .body .text .tag{font-size:11px}.resume-root .proj-card .arrow{flex-basis:28px;width:28px;height:28px}.resume-root .contact{gap:var(--s-6)}.resume-root .contact .pitch{font-size:var(--rs-fs-24)}.resume-root .contact .links a,.resume-root .contact .links li.static{gap:var(--s-2);padding:var(--s-3) 0;grid-template-columns:60px 1fr 16px}.resume-root .contact .links .k{font-size:11px}.resume-root .contact .links .v{font-size:var(--rs-fs-14);word-break:break-all}.resume-root .foot{padding:var(--s-8) 0;gap:var(--s-2);flex-direction:column;font-size:11px}.resume-root .now-reading{left:var(--s-4);gap:6px;padding:5px 8px;font-size:10px;top:54px;bottom:auto;right:auto}.resume-root .now-reading .dot{width:5px;height:5px}.resume-root .top-prog{height:3px}.resume-root .kbd-help{display:none!important}}@media (max-width:400px){.resume-root .hero-name{font-size:40px!important}.resume-root .stats{grid-template-columns:1fr 1fr}.resume-root .stat .n{font-size:var(--rs-fs-24)}.resume-root .nav-links{gap:var(--s-3)}.resume-root .now-reading .title{text-overflow:ellipsis;white-space:nowrap;max-width:80px;overflow:hidden}}@media (prefers-reduced-motion:reduce){.resume-root *,.resume-root :before,.resume-root :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--washi:#f5f4ef;--sumi:#1a1a1a;--shu-iro:#d04428;--matsu:#2d5f3f;--sumi-90:#1a1a1ae6;--sumi-72:#1a1a1ab8;--sumi-60:#1a1a1a99;--sumi-40:#1a1a1a66;--sumi-24:#1a1a1a3d;--sumi-12:#1a1a1a1f;--sumi-08:#1a1a1a14;--washi-deep:#eeebe1;--washi-edge:#d5d2c5;--washi-soft:#faf9f4;--bg:var(--washi);--bg-elev:var(--washi-soft);--bg-sunk:var(--washi-deep);--fg:var(--sumi);--fg-muted:var(--sumi-72);--fg-faint:var(--sumi-40);--border:var(--washi-edge);--border-strong:var(--sumi-24);--accent:var(--shu-iro);--accent-fg:var(--washi);--accent-2:var(--matsu);--selection:#d0442829;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--s-10:40px;--s-12:48px;--s-16:64px;--r-sm:2px;--r-md:4px;--r-lg:8px;--ease-quiet:cubic-bezier(.2, 0, 0, 1);--dur-1:80ms;--dur-2:.16s;--dur-3:.24s;--dur-4:.4s;--max-w-prose:65ch;--max-w-page:1180px;--display-xl:clamp(40px, 7.4vw, 112px);--display-lg:clamp(40px, 6vw, 80px);--display-md:clamp(28px, 3.6vw, 44px)}[data-theme=dark]{--bg:#1f1b17;--bg-elev:#26211b;--bg-sunk:#1a1713;--fg:#d6d2c6;--fg-muted:#d6d2c6b3;--fg-faint:#d6d2c66b;--border:#d6d2c61f;--border-strong:#d6d2c63d;--accent:#e5694a;--accent-fg:#1f1b17;--accent-2:#6ca88a;--selection:#e5694a38}html{background:var(--bg);color:var(--fg);font-feature-settings:"kern", "ss01";text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scrollbar-gutter:stable}body{font-family:var(--font-sans);background:var(--bg);color:var(--fg);font-size:16px;font-weight:400;line-height:1.65}:lang(th),[lang=th]{font-family:var(--font-thai);letter-spacing:0;line-height:1.85}::selection{background:var(--selection);color:var(--fg)}:focus-visible{box-shadow:0 0 0 2px var(--bg), 0 0 0 3px var(--fg);border-radius:var(--r-sm);outline:none}.tnum,code,kbd,samp,pre,[class*=font-mono]{font-feature-settings:"tnum" 1, "lnum" 1}::view-transition-old(root){animation-duration:var(--dur-3);animation-timing-function:var(--ease-quiet)}::view-transition-new(root){animation-duration:var(--dur-3);animation-timing-function:var(--ease-quiet)}::view-transition-old(root){animation-name:tb-fade-out}::view-transition-new(root){animation-name:tb-fade-in}@keyframes tb-fade-out{to{opacity:0}}@keyframes tb-fade-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){::view-transition-old(root){animation:none}::view-transition-new(root){animation:none}}.prose-reader{max-width:var(--max-w-prose);font-family:var(--font-sans);color:var(--fg);font-feature-settings:"kern", "liga", "onum";font-size:18px;line-height:1.75}.prose-reader[lang=th]{font-family:var(--font-thai);font-size:17px;line-height:1.95}.prose-reader>*+*{margin-top:1.45em}.prose-reader h1,.prose-reader h2,.prose-reader h3,.prose-reader h4{font-family:var(--font-serif);letter-spacing:-.005em;color:var(--fg);margin-top:2.2em;margin-bottom:.6em;font-weight:500;line-height:1.2}.prose-reader[lang=th] h1,.prose-reader[lang=th] h2,.prose-reader[lang=th] h3,.prose-reader[lang=th] h4{font-family:var(--font-thai);letter-spacing:0;font-weight:500;line-height:1.45}.prose-reader h2{font-size:1.55em}.prose-reader h3{font-size:1.22em}.prose-reader h4{font-size:1.05em}.prose-reader p{text-wrap:pretty}.prose-reader strong{color:var(--fg);font-weight:500}.prose-reader em{color:var(--fg);font-style:italic}.prose-reader ul,.prose-reader ol{padding-left:1.4em}.prose-reader ul{list-style:outside}.prose-reader ol{list-style:decimal}.prose-reader li::marker{color:var(--fg-faint)}.prose-reader li+li{margin-top:.4em}.prose-reader li>p{margin-top:0}.prose-reader figure{margin:2em 0}.prose-reader img{border:1px solid var(--border);border-radius:var(--r-md)}.prose-reader figcaption{font-family:var(--font-mono);color:var(--fg-faint);letter-spacing:0;margin-top:.6em;font-size:12px}.prose-reader a{color:var(--fg);text-decoration:underline;-webkit-text-decoration-color:var(--border-strong);-webkit-text-decoration-color:var(--border-strong);-webkit-text-decoration-color:var(--border-strong);text-decoration-color:var(--border-strong);text-underline-offset:4px;transition:text-decoration-color var(--dur-2)}.prose-reader a:hover{-webkit-text-decoration-color:var(--shu-iro);-webkit-text-decoration-color:var(--shu-iro);-webkit-text-decoration-color:var(--shu-iro);text-decoration-color:var(--shu-iro)}.prose-reader blockquote{border-left:2px solid var(--shu-iro);font-family:var(--font-serif);color:var(--fg-muted);margin:1.75em 0;padding:.25em 1.25em;font-style:italic}.prose-reader :not(pre)>code{border-radius:var(--r-sm);background:var(--bg-sunk);font-family:var(--font-mono);color:var(--fg);padding:.125em .375em;font-size:.9em}.prose-reader pre{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-sunk);font-family:var(--font-mono);margin:1.5em 0;padding:1rem 1.25rem;font-size:13.5px;line-height:1.7;overflow-x:auto}.prose-reader hr{border:0;border-top:1px solid var(--border);margin:3em 0}.prose-reader [data-rehype-pretty-code-figure] pre{padding:1rem 1.25rem}.prose-reader [data-rehype-pretty-code-figure] [data-line]{padding:0 1px}.prose-reader [data-rehype-pretty-code-figure] [data-highlighted-line]{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.prose-reader [data-rehype-pretty-code-figure] [data-highlighted-line]{background:color-mix(in srgb, var(--accent) 8%, transparent)}}.prose-reader [data-rehype-pretty-code-figure] [data-highlighted-line]{border-left:2px solid var(--accent);margin-left:-1rem;padding-left:calc(1rem - 2px)}[data-theme=dark] .prose-reader pre [data-line] span{color:var(--shiki-dark)!important}[data-theme=dark] .prose-reader pre{background:var(--shiki-dark-bg)!important}[data-theme=light][data-light=washi]{--bg:#f5f4ef;--bg-elev:#faf9f4;--bg-sunk:#eeebe1;--fg:#1a1a1a;--fg-muted:#1a1a1ab8;--fg-faint:#1a1a1a6b;--border:#d5d2c5;--border-strong:#1a1a1a1f;--accent:#c03e22;--accent-2:#2d5f3f;--accent-fg:#f5f4ef}[data-theme=light][data-light=paper]{--bg:#faf6ec;--bg-elev:#fcf9f1;--bg-sunk:#f1ecdc;--fg:#2a2112;--fg-muted:#2a2112b8;--fg-faint:#2a21126b;--border:#d8d0bb;--border-strong:#2a211224;--accent:#b8401e;--accent-2:#2f6442;--accent-fg:#faf6ec}[data-theme=light][data-light=sepia]{--bg:#f2e8d2;--bg-elev:#f6eedb;--bg-sunk:#ebdfc1;--fg:#3c2a12;--fg-muted:#3c2a12b8;--fg-faint:#3c2a126b;--border:#cfbe9a;--border-strong:#3c2a122e;--accent:#a33912;--accent-2:#2f6442;--accent-fg:#f2e8d2}[data-theme=dark][data-dark=warm]{--bg:#221d17;--bg-elev:#2a241d;--bg-sunk:#1c1812;--fg:#d8cfc0;--fg-muted:#d8cfc0b3;--fg-faint:#d8cfc06b;--border:#d8cfc01f;--border-strong:#d8cfc033;--accent:#e76b4a;--accent-2:#7fb58e;--accent-fg:#221d17}[data-theme=dark][data-dark=cool]{--bg:#1c2129;--bg-elev:#232932;--bg-sunk:#181d24;--fg:#c9cfd6;--fg-muted:#c9cfd6b3;--fg-faint:#c9cfd66b;--border:#c9cfd61f;--border-strong:#c9cfd633;--accent:#f08566;--accent-2:#8fc5a0;--accent-fg:#1c2129}[data-theme=dark][data-dark=amber]{--bg:#241c12;--bg-elev:#2c2316;--bg-sunk:#1f1810;--fg:#d4b987;--fg-muted:#d4b987b3;--fg-faint:#d4b9876b;--border:#d4b98724;--border-strong:#d4b9873d;--accent:#f08f5c;--accent-2:#b4c68a;--accent-fg:#241c12}:root{--reading-size:18px;--reading-body:var(--font-sans)}[data-bodyfont=sans]{--reading-body:var(--font-sans)}[data-bodyfont=serif]{--reading-body:var(--font-serif)}[data-bodyfont=hyperlegible]{--reading-body:"Atkinson Hyperlegible", var(--font-sans)}html,body{transition:background-color .36s var(--ease-quiet), color .36s var(--ease-quiet), border-color .36s var(--ease-quiet)}.tb-page{max-width:1100px;margin:0 auto;padding:0 max(28px,5vw);position:relative}.tb-top{padding:96px 0 32px;position:relative}.tb-page>.tb-top+.tb-block{padding-top:56px}.tb-mast{flex-direction:column;gap:28px;display:flex}.tb-mast-eyebrow{font-family:var(--font-mono);letter-spacing:.16em;color:var(--fg-faint);text-transform:lowercase;align-items:center;gap:12px;margin:0;font-size:11px;display:inline-flex}.tb-mast-eyebrow .tb-mast-sep{background:var(--fg-faint);opacity:.7;border-radius:50%;width:3px;height:3px}.tb-mast-word-stack{flex-direction:column;gap:.02em;margin:0;padding-bottom:.06em;display:flex}.tb-mast-word-wrap{line-height:.95;display:block;overflow:hidden}.tb-mast-word{font-family:var(--font-sans);font-weight:600;font-size:var(--display-xl);letter-spacing:-.035em;color:var(--fg);will-change:transform;line-height:.95;display:inline-block;transform:translateY(0)}.tb-mast-word[lang=th]{font-family:var(--font-thai);letter-spacing:-.01em;font-weight:500;line-height:1.05}@keyframes tb-mast-word-rise{0%{transform:translateY(105%)}to{transform:translateY(0)}}html.tb-js-ready .tb-mast-word{animation-name:tb-mast-word-rise;animation-duration:.52s;animation-timing-function:var(--ease-quiet);animation-fill-mode:both}.tb-mast-belief{font-family:var(--font-serif);color:var(--fg-muted);text-wrap:balance;max-width:32ch;margin:0;font-size:clamp(17px,1.6vw,22px);font-style:italic;font-weight:400;line-height:1.45}.tb-mast-belief[lang=th]{font-family:var(--font-thai);max-width:36ch;font-size:clamp(16px,1.4vw,19px);font-style:normal;line-height:1.6}@media (prefers-reduced-motion:reduce){html.tb-js-ready .tb-mast-word{transition:none!important;animation:none!important;transform:none!important}}.tb-block{padding:80px 0}.tb-block+.tb-block{border-top:1px solid var(--border)}.tb-section-head{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:28px;display:flex}.tb-section-head h2{font-family:var(--font-sans);letter-spacing:.22em;color:var(--fg-faint);white-space:nowrap;text-transform:lowercase;align-items:center;gap:8px;margin:0;font-size:12px;font-weight:500;display:inline-flex}.tb-section-head .tb-right{font-family:var(--font-mono);letter-spacing:.05em;color:var(--fg-faint);font-size:11px}.tb-chips{flex-wrap:wrap;gap:6px;margin-bottom:28px;display:flex}.tb-chip{font-family:var(--font-sans);letter-spacing:.06em;color:var(--fg-faint);border:1px solid var(--border);cursor:pointer;transition:color var(--dur-2), border-color var(--dur-2), background var(--dur-2), transform var(--dur-1) var(--ease-quiet);background:0 0;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:500}.tb-chip:hover{color:var(--fg);border-color:var(--fg-muted)}.tb-chip:active{transform:scale(.96)}.tb-chip.is-active{color:var(--bg);background:var(--fg);border-color:var(--fg)}.tb-view-toggle{border:1px solid var(--border);background:var(--bg-elev);vertical-align:middle;border-radius:999px;gap:2px;margin-right:10px;padding:2px;display:inline-flex}.tb-vt{font-family:var(--font-sans);letter-spacing:.08em;color:var(--fg-faint);cursor:pointer;transition:color var(--dur-2), background var(--dur-2);background:0 0;border:0;border-radius:999px;padding:3px 9px;font-size:10px;font-weight:500}.tb-vt:hover{color:var(--fg)}.tb-vt.is-on{color:var(--bg);background:var(--fg)}.tb-sh-sep{background:var(--fg-faint);vertical-align:middle;border-radius:50%;width:2px;height:2px;margin:0 8px 2px;display:inline-block}.tb-posts{flex-direction:column;display:flex}.tb-post-row{border-bottom:1px solid var(--border);text-align:left;color:inherit;cursor:pointer;font:inherit;width:100%;transition:background var(--dur-2) var(--ease-quiet);background:0 0;border-top:0;border-left:0;border-right:0;grid-template-columns:1fr auto;align-items:start;gap:20px;padding:22px 28px 22px 0;text-decoration:none;display:grid;position:relative}.tb-posts .tb-post-row:first-of-type{border-top:1px solid var(--border)}.tb-post-row:hover{background:var(--bg-elev)}@supports (color:color-mix(in lab, red, red)){.tb-post-row:hover{background:color-mix(in oklab, var(--bg-elev) 50%, transparent)}}.tb-post-body{min-width:0;max-width:72ch}.tb-post-meta{font-family:var(--font-mono);letter-spacing:.06em;color:var(--fg-faint);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;font-size:11px;display:flex}.tb-post-meta .tb-cat{font-family:var(--font-sans);color:var(--accent);letter-spacing:.04em;font-weight:500}.tb-post-meta .tb-dot{background:var(--fg-faint);opacity:.7;border-radius:50%;width:2px;height:2px}.tb-post-meta .tb-tag{font-family:var(--font-sans);letter-spacing:.1em;color:var(--accent-fg);background:var(--accent);text-transform:lowercase;border-radius:2px;padding:1px 6px;font-size:10px;font-weight:500}.tb-post-title{font-family:var(--font-serif);letter-spacing:-.4px;color:var(--fg);text-wrap:balance;transition:color var(--dur-2) var(--ease-quiet);margin:0 0 8px;font-size:22px;font-weight:400;line-height:1.2}.tb-post-title[lang=th]{font-family:var(--font-thai);letter-spacing:0;line-height:1.4}.tb-post-row:hover .tb-post-title{color:var(--accent)}.tb-post-dek{font-family:var(--font-serif);color:var(--fg-muted);text-wrap:pretty;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:15px;font-style:italic;line-height:1.5;display:-webkit-box;overflow:hidden}.tb-post-dek[lang=th]{font-style:normal;font-family:var(--font-thai)}.tb-post-row.is-current{padding:28px 28px 28px 0}.tb-post-row.is-current .tb-post-title{letter-spacing:-.7px;font-size:30px;line-height:1.12}.tb-post-row.is-current .tb-post-dek{-webkit-line-clamp:3;font-size:16px}.tb-post-arrow{color:var(--fg-faint);opacity:0;transition:opacity var(--dur-2), transform var(--dur-3) var(--ease-quiet), color var(--dur-2);position:absolute;top:50%;right:0;transform:translate(8px,-50%)}.tb-post-row:hover .tb-post-arrow,.tb-post-row:focus-visible .tb-post-arrow{opacity:1;color:var(--accent);transform:translateY(-50%)}.tb-post-arrow svg{width:16px;height:16px}.tb-archive{font-family:var(--font-sans);color:var(--fg-muted);border-bottom:1px solid var(--accent);transition:gap var(--dur-2) var(--ease-quiet), color var(--dur-2);align-items:center;gap:8px;margin:32px 0 0;padding-bottom:2px;font-size:12px;font-weight:500;text-decoration:none;display:inline-flex}.tb-archive:hover{color:var(--accent);gap:12px}.tb-archive svg{width:13px;height:13px}.tb-post-cards{grid-template-columns:repeat(2,1fr);gap:18px;margin-bottom:4px;display:grid}@media (max-width:560px){.tb-post-cards{grid-template-columns:1fr;gap:14px}}.tb-post-card{background:var(--bg-elev);border:1px solid var(--border);text-align:left;cursor:pointer;color:inherit;font:inherit;transition:transform var(--dur-3) var(--ease-quiet), border-color var(--dur-2) var(--ease-quiet);border-radius:4px;flex-direction:column;padding:0;display:flex;position:relative;overflow:hidden}.tb-post-card:hover{border-color:var(--fg-muted);transform:translateY(-2px)}.tb-pc-body{flex-direction:column;gap:10px;padding:18px;display:flex}.tb-pc-top{font-family:var(--font-mono);letter-spacing:.08em;color:var(--fg-faint);align-items:center;gap:8px;font-size:10px;display:inline-flex}.tb-pc-cat{font-family:var(--font-sans);letter-spacing:.1em;color:var(--accent);text-transform:lowercase;font-size:10px;font-weight:500}.tb-pc-new{font-family:var(--font-sans);letter-spacing:.1em;color:var(--accent-fg);background:var(--accent);border-radius:2px;padding:1px 6px;font-size:10px;font-weight:500}.tb-pc-read{font-family:var(--font-mono);letter-spacing:.06em;color:var(--fg-faint);margin-left:auto;font-size:10px}.tb-pc-title{font-family:var(--font-serif);letter-spacing:-.4px;color:var(--fg);text-wrap:balance;transition:color var(--dur-2);margin:0;font-size:20px;font-weight:400;line-height:1.2}.tb-pc-title[lang=th]{font-family:var(--font-thai);letter-spacing:0;line-height:1.4}.tb-post-card:hover .tb-pc-title{color:var(--accent)}.tb-pc-dek{font-family:var(--font-serif);color:var(--fg-faint);text-wrap:pretty;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:14px;font-style:italic;line-height:1.5;display:-webkit-box;overflow:hidden}.tb-pc-dek[lang=th]{font-style:normal;font-family:var(--font-thai)}.tb-pc-foot{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;margin-top:4px;padding-top:12px;display:flex}.tb-pc-date{font-family:var(--font-mono);letter-spacing:.06em;color:var(--fg-faint);font-size:10px}.tb-pc-go{font-family:var(--font-sans);letter-spacing:.04em;color:var(--fg-muted);transition:color var(--dur-2), gap var(--dur-2);align-items:center;gap:5px;font-size:11px;font-weight:500;display:inline-flex}.tb-post-card:hover .tb-pc-go{color:var(--accent);gap:8px}.tb-sh{padding-top:88px;padding-bottom:88px}.tb-sh-more{font-family:var(--font-mono);letter-spacing:.1em;color:var(--fg-muted);text-transform:lowercase;border-bottom:1px solid var(--border);transition:color var(--dur-2) var(--ease-quiet), gap var(--dur-2) var(--ease-quiet), border-color var(--dur-2) var(--ease-quiet);align-items:center;gap:8px;padding-bottom:4px;font-size:11px;text-decoration:none;display:inline-flex}.tb-sh-more:hover{color:var(--accent);border-color:var(--accent);gap:12px}.tb-sh-more svg{width:12px;height:12px}.tb-sh-grid{grid-template-columns:1fr 1.2fr .9fr;align-items:end;gap:28px;display:grid}.tb-sh-card{--thumb-h:140px;--card-tint:var(--bg-elev);background:var(--bg);border:1px solid var(--border);text-align:left;color:inherit;font:inherit;cursor:pointer;min-width:0;transition:border-color var(--dur-2) var(--ease-quiet), background var(--dur-2) var(--ease-quiet);border-radius:4px;flex-direction:column;padding:0;text-decoration:none;display:flex;position:relative}.tb-sh-card:hover{border-color:var(--fg-muted);background:var(--bg-elev)}.tb-sh-card--1{--thumb-h:120px}.tb-sh-card--2{--thumb-h:184px}.tb-sh-card--3{--thumb-h:100px}.tb-sh-card[data-room=engineering]{--card-tint:var(--fg)}@supports (color:color-mix(in lab, red, red)){.tb-sh-card[data-room=engineering]{--card-tint:color-mix(in oklab, var(--fg) 6%, var(--bg-sunk))}}.tb-sh-card[data-room=investing]{--card-tint:var(--accent-2)}@supports (color:color-mix(in lab, red, red)){.tb-sh-card[data-room=investing]{--card-tint:color-mix(in oklab, var(--accent-2) 12%, var(--bg-sunk))}}.tb-sh-card[data-room=books]{--card-tint:var(--bg-sunk)}.tb-sh-card[data-room=life]{--card-tint:var(--accent)}@supports (color:color-mix(in lab, red, red)){.tb-sh-card[data-room=life]{--card-tint:color-mix(in oklab, var(--accent) 9%, var(--bg-sunk))}}.tb-sh-thumb{width:100%;height:var(--thumb-h);background:var(--card-tint);border-bottom:1px solid var(--border);transition:transform .28s var(--ease-quiet);display:block;position:relative;overflow:hidden}.tb-sh-thumb:after{content:"";background:var(--card-tint);width:44%;height:44%;position:absolute;bottom:-18px;right:-18px}@supports (color:color-mix(in lab, red, red)){.tb-sh-thumb:after{background:color-mix(in oklab, var(--card-tint) 70%, var(--fg) 10%)}}.tb-sh-thumb:after{transform-origin:0 0;transition:transform .28s var(--ease-quiet)}.tb-sh-card:hover .tb-sh-thumb:after{transform:translate(-8px,-8px)}.tb-sh-body{flex-direction:column;gap:12px;min-width:0;padding:20px 22px 22px;display:flex}.tb-sh-room{font-family:var(--font-mono);letter-spacing:.18em;color:var(--fg-faint);text-transform:lowercase;font-size:10px}.tb-sh-card[data-room=investing] .tb-sh-room{color:var(--accent-2)}.tb-sh-card[data-room=life] .tb-sh-room{color:var(--accent)}.tb-sh-title{font-family:var(--font-serif);letter-spacing:-.018em;color:var(--fg);text-wrap:balance;word-break:break-word;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;-webkit-line-clamp:3;transition:font-weight var(--dur-2) var(--ease-quiet), color var(--dur-2) var(--ease-quiet);-webkit-box-orient:vertical;margin:0;font-size:clamp(20px,1.7vw,26px);font-weight:500;line-height:1.18;display:-webkit-box;overflow:hidden}.tb-sh-title[lang=th]{font-family:var(--font-thai);letter-spacing:0;font-weight:500;line-height:1.35}.tb-sh-card:hover .tb-sh-title{color:var(--fg);font-weight:600}.tb-sh-card[lang=th]:hover .tb-sh-title,.tb-sh-card:hover .tb-sh-title[lang=th]{font-weight:600}.tb-sh-dek{font-family:var(--font-serif);color:var(--fg-muted);-webkit-line-clamp:2;text-wrap:pretty;-webkit-box-orient:vertical;margin:0;font-size:14px;font-style:italic;line-height:1.5;display:-webkit-box;overflow:hidden}.tb-sh-dek[lang=th]{font-style:normal;font-family:var(--font-thai)}.tb-sh-foot{border-top:1px solid var(--border);font-family:var(--font-mono);letter-spacing:.06em;justify-content:space-between;align-items:center;gap:10px;margin-top:6px;padding-top:12px;font-size:11px;display:flex}.tb-sh-date{color:var(--fg-faint)}.tb-sh-go{color:var(--fg-muted);transition:color var(--dur-2) var(--ease-quiet), gap var(--dur-2) var(--ease-quiet);align-items:center;gap:6px;display:inline-flex}.tb-sh-go svg{width:11px;height:11px}.tb-sh-card:hover .tb-sh-go{color:var(--accent);gap:9px}.tb-sh-card:after{content:"";background:var(--accent);transform-origin:0;width:100%;height:2px;transition:transform .24s var(--ease-quiet);position:absolute;bottom:0;left:0;transform:scaleX(0)}.tb-sh-card:hover:after,.tb-sh-card:focus-visible:after{transform:scaleX(1)}@media (max-width:960px){.tb-sh-grid{grid-template-columns:1fr 1fr;gap:20px}.tb-sh-card--1{--thumb-h:130px}.tb-sh-card--2{--thumb-h:160px;grid-column:1/-1}.tb-sh-card--3{--thumb-h:110px}}@media (max-width:640px){.tb-sh{padding-top:56px;padding-bottom:56px}.tb-sh-grid{grid-template-columns:1fr;gap:16px}.tb-sh-card--1,.tb-sh-card--2,.tb-sh-card--3{--thumb-h:110px}.tb-sh-card--2{grid-column:auto}.tb-sh-body{padding:18px 18px 20px}}@media (prefers-reduced-motion:reduce){.tb-sh-card,.tb-sh-thumb,.tb-sh-thumb:after,.tb-sh-title,.tb-sh-go,.tb-sh-more,.tb-sh-card:after{transition:none!important}}.tb-arc{flex-direction:column;gap:40px;display:flex}.tb-arc-chips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.tb-arc-chip-sep{background:var(--border);width:1px;height:16px;margin:0 6px;display:inline-block}.tb-arc-chip{font-family:var(--font-sans);letter-spacing:.04em;color:var(--fg-muted);border:1px solid var(--border);cursor:pointer;text-transform:lowercase;transition:color var(--dur-2) var(--ease-quiet), border-color var(--dur-2) var(--ease-quiet), background var(--dur-2) var(--ease-quiet), font-weight var(--dur-2) var(--ease-quiet);background:0 0;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:11.5px;font-weight:500;display:inline-flex}.tb-arc-chip:hover{color:var(--fg);border-color:var(--fg-muted);font-weight:600}.tb-arc-chip.is-on{color:var(--bg);background:var(--fg);border-color:var(--fg);font-weight:600}.tb-arc-chip-n{font-family:var(--font-mono);letter-spacing:.04em;color:var(--fg-faint);font-feature-settings:"tnum" 1;font-size:10px}.tb-arc-chip.is-on .tb-arc-chip-n{color:var(--bg)}@supports (color:color-mix(in lab, red, red)){.tb-arc-chip.is-on .tb-arc-chip-n{color:color-mix(in oklab, var(--bg) 70%, var(--fg-faint))}}.tb-arc-empty{text-align:center;font-family:var(--font-serif);color:var(--fg-muted);border:1px dashed var(--border);border-radius:var(--r-md);padding:64px 0;font-size:16px;font-style:italic}.tb-arc-stack{flex-direction:column;gap:56px;display:flex}.tb-arc-year-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:20px;padding-bottom:14px;display:flex}.tb-arc-year-num{font-family:var(--font-sans);letter-spacing:-.02em;color:var(--fg);font-feature-settings:"tnum" 1;margin:0;font-size:22px;font-weight:600}.tb-arc-year-count{font-family:var(--font-mono);letter-spacing:.1em;color:var(--fg-faint);text-transform:lowercase;font-size:11px}.tb-arc-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px;margin:0;padding:0;list-style:none;display:grid}.tb-arc-card{--card-tint:var(--bg-elev);background:var(--bg);border:1px solid var(--border);color:inherit;min-height:168px;transition:border-color var(--dur-2) var(--ease-quiet), background var(--dur-2) var(--ease-quiet);border-radius:4px;flex-direction:column;gap:12px;padding:22px 24px 24px;text-decoration:none;display:flex;position:relative}.tb-arc-card:hover{border-color:var(--fg-muted);background:var(--bg-elev)}.tb-arc-card:before{content:"";background:var(--card-tint);width:32%;height:2px;transition:width .28s var(--ease-quiet);position:absolute;top:-1px;left:0}.tb-arc-card[data-room=engineering]{--card-tint:var(--fg-muted)}.tb-arc-card[data-room=investing]{--card-tint:var(--accent-2)}.tb-arc-card[data-room=books]{--card-tint:var(--fg)}.tb-arc-card[data-room=life]{--card-tint:var(--accent)}.tb-arc-card:hover:before{width:100%}.tb-arc-meta{font-family:var(--font-mono);letter-spacing:.08em;color:var(--fg-faint);text-transform:lowercase;flex-wrap:wrap;align-items:center;gap:8px;font-size:10.5px;display:inline-flex}.tb-arc-room{font-family:var(--font-sans);letter-spacing:.16em;color:var(--card-tint);font-size:10px;font-weight:500}.tb-arc-card[data-room=engineering] .tb-arc-room,.tb-arc-card[data-room=books] .tb-arc-room{color:var(--fg-muted)}.tb-arc-dot{background:var(--fg-faint);opacity:.7;border-radius:50%;width:2px;height:2px}.tb-arc-date{font-feature-settings:"tnum" 1}.tb-arc-lang{font-family:var(--font-sans);letter-spacing:.12em;color:var(--fg-faint);margin-left:auto;font-weight:500}.tb-arc-title{font-family:var(--font-serif);letter-spacing:-.015em;color:var(--fg);text-wrap:balance;transition:font-weight var(--dur-2) var(--ease-quiet), color var(--dur-2) var(--ease-quiet);margin:0;font-size:19px;font-weight:400;line-height:1.25}.tb-arc-title[lang=th]{font-family:var(--font-thai);letter-spacing:0;font-weight:500;line-height:1.4}.tb-arc-card:hover .tb-arc-title{font-weight:600}.tb-arc-dek{font-family:var(--font-serif);color:var(--fg-muted);-webkit-line-clamp:2;text-wrap:pretty;-webkit-box-orient:vertical;margin:0;font-size:14px;font-style:italic;line-height:1.5;display:-webkit-box;overflow:hidden}.tb-arc-dek[lang=th]{font-style:normal;font-family:var(--font-thai)}@media (max-width:640px){.tb-arc-grid{grid-template-columns:1fr;gap:12px}.tb-arc-card{min-height:0;padding:18px 18px 20px}.tb-arc-stack{gap:40px}}@media (prefers-reduced-motion:reduce){.tb-arc-card,.tb-arc-card:before,.tb-arc-title,.tb-arc-chip{transition:none!important}}.tb-rooms{padding-top:88px;padding-bottom:88px}.tb-rooms-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.tb-rooms-item{border-top:1px solid var(--border)}.tb-rooms-item:last-child{border-bottom:1px solid var(--border)}.tb-room-band{--indent:0px;color:inherit;transition:background var(--dur-2) var(--ease-quiet), padding-left var(--dur-3) var(--ease-quiet);grid-template-columns:48px minmax(260px,38%) 1fr 28px;align-items:center;gap:24px;padding:32px 4px;text-decoration:none;display:grid;position:relative}.tb-room-band:hover{background:var(--bg-elev)}@supports (color:color-mix(in lab, red, red)){.tb-room-band:hover{background:color-mix(in oklab, var(--bg-elev) 70%, transparent)}}.tb-room-band:hover{--indent:12px;padding-left:calc(4px + var(--indent))}.tb-room-index{font-family:var(--font-mono);letter-spacing:.08em;color:var(--fg-faint);font-feature-settings:"tnum" 1;font-size:11px}.tb-room-title-wrap{padding-bottom:6px;display:inline-block;position:relative}.tb-room-title{font-family:var(--font-sans);letter-spacing:-.03em;color:var(--fg);transition:font-weight var(--dur-2) var(--ease-quiet), color var(--dur-2);text-transform:lowercase;white-space:nowrap;font-size:clamp(34px,4.4vw,60px);font-weight:500;line-height:1;display:inline-block}.tb-room-title[lang=th]{font-family:var(--font-thai);letter-spacing:-.005em;line-height:1.1}.tb-room-band:hover .tb-room-title{color:var(--fg);font-weight:600}.tb-room-title-wrap:after{content:"";background:var(--accent);transform-origin:0;height:2px;transition:transform .28s var(--ease-quiet);position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.tb-room-band:hover .tb-room-title-wrap:after,.tb-room-band:focus-visible .tb-room-title-wrap:after{transform:scaleX(1)}.tb-room-band[data-room=investing] .tb-room-title-wrap:after{background:var(--accent-2)}.tb-room-meta{flex-direction:column;gap:10px;min-width:0;display:flex}.tb-room-manifesto{font-family:var(--font-serif);color:var(--fg-muted);text-wrap:balance;font-size:clamp(15px,1.3vw,18px);font-style:italic;font-weight:400;line-height:1.45}.tb-room-manifesto[lang=th]{font-style:normal;font-family:var(--font-thai);line-height:1.6}.tb-room-rep{align-items:baseline;gap:14px;min-width:0;font-size:13.5px;display:flex}.tb-room-rep-k{font-family:var(--font-mono);letter-spacing:.18em;color:var(--fg-faint);text-transform:lowercase;flex-shrink:0;font-size:10px}.tb-room-rep-v{font-family:var(--font-sans);color:var(--fg);letter-spacing:-.005em;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-weight:500;overflow:hidden}.tb-room-rep-v[lang=th]{font-family:var(--font-thai);font-weight:500}.tb-room-rep-v.is-empty{color:var(--fg-faint);font-style:italic;font-weight:400}.tb-room-arrow{width:28px;height:28px;color:var(--fg-faint);transition:transform var(--dur-3) var(--ease-quiet), color var(--dur-2) var(--ease-quiet);place-items:center;display:grid}.tb-room-arrow svg{width:16px;height:16px}.tb-room-band:hover .tb-room-arrow{color:var(--accent);transform:translate(4px)}.tb-room-band[data-room=investing]:hover .tb-room-arrow{color:var(--accent-2)}@media (max-width:880px){.tb-room-band{grid-template-rows:auto auto;grid-template-columns:36px 1fr 22px;gap:4px 18px;padding:26px 4px}.tb-room-index{grid-area:1/1}.tb-room-title-wrap{grid-area:1/2}.tb-room-meta{grid-area:2/2;margin-top:10px}.tb-room-arrow{grid-area:1/3;align-self:start;margin-top:6px}}@media (max-width:560px){.tb-rooms{padding-top:56px;padding-bottom:56px}.tb-room-rep{flex-direction:column;gap:4px}.tb-room-rep-v{white-space:normal}}@media (prefers-reduced-motion:reduce){.tb-room-band,.tb-room-title,.tb-room-arrow,.tb-room-title-wrap:after{transition:none!important}.tb-room-band:hover{--indent:0px;padding-left:4px}}.tb-block--now{padding-top:56px;padding-bottom:56px}.tb-now-strip{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:28px 36px;margin:0;padding:0;list-style:none;display:grid;position:relative}.tb-now-strip:before{content:"";background:var(--border);height:1px;position:absolute;inset:-20px 0 auto}.tb-now-cell{flex-direction:column;gap:8px;min-width:0;display:flex}.tb-now-k{font-family:var(--font-mono);letter-spacing:.18em;color:var(--fg-faint);text-transform:lowercase;align-items:center;gap:7px;font-size:10px;display:inline-flex}.tb-now-v{font-family:var(--font-sans);color:var(--fg);letter-spacing:-.005em;text-wrap:balance;flex-direction:column;gap:2px;font-size:16px;font-weight:500;line-height:1.35;display:flex}.tb-now-v[lang=th]{font-family:var(--font-thai);letter-spacing:0;font-weight:500}.tb-now-sub{font-family:var(--font-serif);color:var(--fg-faint);letter-spacing:0;font-size:13px;font-style:italic;font-weight:400}.tb-now-live{background:var(--accent-2);width:6px;height:6px;box-shadow:0 0 0 0 var(--accent-2);border-radius:50%;display:inline-block}@supports (color:color-mix(in lab, red, red)){.tb-now-live{box-shadow:0 0 0 0 color-mix(in oklab, var(--accent-2) 50%, transparent)}}.tb-now-live{animation:2.8s ease-in-out infinite tb-now-live-pulse}@keyframes tb-now-live-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in oklab, var(--accent-2) 35%, transparent)}50%{box-shadow:0 0 0 5px color-mix(in oklab, var(--accent-2) 0%, transparent)}}.tb-section-head h2 .tb-now-dot{background:var(--accent);flex-shrink:0;width:6px;height:1px;margin-right:2px;display:inline-block}@media (prefers-reduced-motion:reduce){.tb-now-live{box-shadow:none;animation:none}}@media (max-width:560px){.tb-now-strip{gap:22px 24px}.tb-now-v{font-size:15px}}.tb-about{max-width:60ch}.tb-about p{font-family:var(--font-serif);color:var(--fg);margin:0 0 14px;font-size:18px;line-height:1.65}.tb-about p:last-of-type{margin-bottom:0}.tb-about p .tb-accent{color:var(--accent)}.tb-about p a{text-decoration:underline;-webkit-text-decoration-color:var(--border);-webkit-text-decoration-color:var(--border);-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border);text-underline-offset:3px;transition:text-decoration-color var(--dur-2)}.tb-about p a:hover{-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.tb-about .tb-quote{font-family:var(--font-serif);color:var(--fg-muted);border-left:2px solid var(--accent);margin-top:22px;padding-left:14px;font-size:15px;font-style:italic}.tb-about .tb-quote .tb-by{font-style:normal;font-family:var(--font-mono);letter-spacing:.08em;color:var(--fg-faint);margin-top:6px;font-size:11px;display:block}.tb-bot{text-align:center;border-top:1px solid var(--border);margin-top:24px;padding:56px 0 72px}.tb-bot .tb-links{font-family:var(--font-sans);flex-wrap:wrap;justify-content:center;gap:22px;margin-bottom:14px;font-size:12px;font-weight:500;display:inline-flex}.tb-bot .tb-links a,.tb-bot .tb-links button{color:var(--fg-muted);cursor:pointer;font:inherit;transition:color var(--dur-2) var(--ease-quiet), font-weight var(--dur-2) var(--ease-quiet);background:0 0;border:0;align-items:center;gap:5px;padding:0 0 4px;font-weight:400;text-decoration:none;display:inline-flex;position:relative}.tb-bot .tb-links a:after,.tb-bot .tb-links button:after{content:"";background:var(--accent);transform-origin:0;height:1px;transition:transform .24s var(--ease-quiet);position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.tb-bot .tb-links a:hover,.tb-bot .tb-links button:hover{color:var(--fg);font-weight:500}.tb-bot .tb-links a:hover:after,.tb-bot .tb-links button:hover:after{transform:scaleX(1)}.tb-bot .tb-links svg{width:13px;height:13px}.tb-bot .tb-credit{font-family:var(--font-mono);letter-spacing:.06em;color:var(--fg-faint);font-size:11px}.tb-bot .tb-credit .tb-mark{color:var(--accent)}.tb-section-head h2 .tb-pulse{background:var(--accent);border-radius:50%;flex-shrink:0;width:5px;height:5px;animation:3.2s ease-in-out infinite tb-pulse-quiet;display:inline-block}@keyframes tb-pulse-quiet{0%,60%,to{opacity:.35}30%{opacity:1}}.tb-reveal{opacity:1;transform:none}html.tb-js-ready .tb-reveal{opacity:0;transition:opacity var(--dur-4) var(--ease-quiet), transform var(--dur-4) var(--ease-quiet);transform:translateY(8px)}html.tb-js-ready .tb-reveal.is-in{opacity:1;transform:translateY(0)}@keyframes tb-row-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}html.tb-js-ready .tb-posts .tb-post-row,html.tb-js-ready .tb-post-cards .tb-post-card{animation:tb-row-in var(--dur-4) var(--ease-quiet) both}html.tb-js-ready .tb-posts .tb-post-row:first-child,html.tb-js-ready .tb-post-cards .tb-post-card:first-child{animation-delay:0s}html.tb-js-ready .tb-posts .tb-post-row:nth-child(2),html.tb-js-ready .tb-post-cards .tb-post-card:nth-child(2){animation-delay:40ms}html.tb-js-ready .tb-posts .tb-post-row:nth-child(3),html.tb-js-ready .tb-post-cards .tb-post-card:nth-child(3){animation-delay:80ms}html.tb-js-ready .tb-posts .tb-post-row:nth-child(4),html.tb-js-ready .tb-post-cards .tb-post-card:nth-child(4){animation-delay:.12s}html.tb-js-ready .tb-posts .tb-post-row:nth-child(5),html.tb-js-ready .tb-post-cards .tb-post-card:nth-child(5){animation-delay:.16s}html.tb-js-ready .tb-posts .tb-post-row:nth-child(n+6),html.tb-js-ready .tb-post-cards .tb-post-card:nth-child(n+6){animation-delay:.2s}@media (prefers-reduced-motion:reduce){html.tb-js-ready .tb-reveal,html.tb-js-ready .tb-posts .tb-post-row,html.tb-js-ready .tb-post-cards .tb-post-card{opacity:1!important;transition:none!important;animation:none!important;transform:none!important}}.tb-modal-root{z-index:90;animation:tb-modal-fade-in .24s var(--ease-quiet) both;justify-content:center;align-items:stretch;display:flex;position:fixed;inset:0}@keyframes tb-modal-fade-in{0%{opacity:0}to{opacity:1}}.tb-modal-scrim{cursor:pointer;background:#14120e6b;position:absolute;inset:0}[data-theme=dark] .tb-modal-scrim{background:#0000009e}.tb-modal-panel{background:var(--bg);border:1px solid var(--border);width:100%;max-width:1080px;animation:tb-modal-rise .32s var(--ease-quiet) both;border-radius:4px;flex-direction:column;max-height:calc(100vh - 72px);margin:36px max(16px,3vw);display:flex;position:relative;overflow:hidden}@keyframes tb-modal-rise{0%{transform:translateY(12px)}to{transform:translateY(0)}}.tb-modal-progress{border-bottom:1px solid var(--border);background:0 0;height:2px;position:relative}.tb-modal-progress-fill{background:var(--accent);transform-origin:0;transition:transform .12s linear;position:absolute;inset:0;transform:scaleX(0)}.tb-modal-head{border-bottom:1px solid var(--border);background:var(--bg-elev);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 22px;display:flex}.tb-modal-crumb{font-family:var(--font-mono);letter-spacing:.06em;color:var(--fg-faint);align-items:center;gap:8px;font-size:11px;display:inline-flex}.tb-modal-crumb-mark{color:var(--accent);font-size:13px;line-height:1}.tb-modal-crumb-sep{color:var(--fg-faint);opacity:.6}.tb-modal-head-right{align-items:center;gap:6px;display:inline-flex}.tb-iconbtn{width:30px;height:30px;color:var(--fg-muted);cursor:pointer;transition:color var(--dur-2), border-color var(--dur-2), background var(--dur-2);background:0 0;border:1px solid #0000;border-radius:2px;place-items:center;display:grid;position:relative}.tb-iconbtn:hover{color:var(--fg);border-color:var(--border);background:var(--bg)}.tb-iconbtn svg{width:14px;height:14px}.tb-iconbtn-tip{white-space:nowrap;font-family:var(--font-mono);letter-spacing:.08em;color:var(--accent-2);opacity:0;pointer-events:none;transition:opacity var(--dur-2), transform var(--dur-2);font-size:10px;position:absolute;top:50%;right:calc(100% + 6px);transform:translate(4px,-50%)}.tb-iconbtn-tip.is-show{opacity:1;transform:translateY(-50%)}.tb-modal-scroll{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex:1;overflow-y:auto}.tb-article{--col-main:600px;--col-side:200px;--col-gap:56px;max-width:calc(var(--col-main) + var(--col-gap) + var(--col-side));margin:0 auto;padding:56px max(24px,4vw) 88px;position:relative}.tb-art-head{max-width:var(--col-main)}.tb-art-meta{font-family:var(--font-mono);letter-spacing:.06em;color:var(--fg-faint);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:18px;font-size:11px;display:flex}.tb-art-meta-cat{font-family:var(--font-sans);color:var(--accent);letter-spacing:.04em;font-weight:500}.tb-art-meta-dot{background:var(--fg-faint);opacity:.6;border-radius:50%;width:2px;height:2px}.tb-art-title{font-family:var(--font-serif);font-weight:600;font-size:var(--display-lg);letter-spacing:-.03em;color:var(--fg);text-wrap:balance;margin:0 0 18px;line-height:1.04}.tb-art-title[lang=th]{font-family:var(--font-thai);letter-spacing:-.005em;font-weight:500;line-height:1.25}.tb-art-dek{font-family:var(--font-serif);color:var(--fg-muted);text-wrap:pretty;margin:0;font-size:19px;font-style:italic;line-height:1.5}.tb-art-dek[lang=th]{font-style:normal;font-family:var(--font-thai)}.tb-art-divider{background:var(--accent);width:56px;height:1px;margin:36px 0 28px}.tb-art-body{max-width:var(--col-main);font-family:var(--reading-body);font-size:var(--reading-size);color:var(--fg);line-height:1.75}.tb-art-body[lang=th]{font-family:var(--font-thai);line-height:1.95}.tb-art-body.prose-reader{max-width:var(--col-main);font-family:var(--reading-body);font-size:var(--reading-size)}.tb-art-foot{max-width:var(--col-main);margin-top:48px}.tb-art-foot-rule{background:var(--border);height:1px;margin:0 0 28px}.tb-art-sign{font-family:var(--font-serif);color:var(--fg-muted);margin-bottom:36px;font-size:16px}.tb-art-sign .tb-art-sign-name{color:var(--accent);letter-spacing:-.3px;margin-right:4px;font-size:22px;font-style:italic}.tb-art-sign .tb-art-sign-place{font-family:var(--font-mono);letter-spacing:.06em;color:var(--fg-faint);font-size:11px}.tb-art-nav{background:var(--border);border:1px solid var(--border);border-radius:2px;grid-template-columns:1fr 1fr;gap:1px;margin-bottom:28px;display:grid;overflow:hidden}.tb-art-nav-btn{background:var(--bg);text-align:left;cursor:pointer;font:inherit;color:inherit;transition:background var(--dur-2);border:0;flex-direction:column;gap:8px;min-height:88px;padding:18px 20px;display:flex}.tb-art-nav-btn:hover{background:var(--bg-elev)}.tb-art-nav-btn:hover .tb-art-nav-t{transform:translate(2px)}.tb-art-nav-btn.is-right{text-align:right;align-items:flex-end}.tb-art-nav-btn.is-right:hover .tb-art-nav-t{transform:translate(-2px)}.tb-art-nav-btn.is-empty{cursor:default;color:var(--fg-faint);font-family:var(--font-mono);letter-spacing:.06em;align-items:center;font-size:11px;display:flex}.tb-art-nav-btn.is-empty.is-right{justify-content:flex-end}.tb-art-nav-k{font-family:var(--font-mono);letter-spacing:.06em;color:var(--fg-faint);align-items:center;gap:6px;font-size:11px;display:inline-flex}.tb-art-nav-k svg{width:12px;height:12px}.tb-art-nav-t{font-family:var(--font-serif);color:var(--fg);text-wrap:balance;transition:color var(--dur-2) var(--ease-quiet), font-weight var(--dur-2) var(--ease-quiet), transform var(--dur-3) var(--ease-quiet);font-size:17px;font-weight:400;line-height:1.3}.tb-art-nav-t[lang=th]{font-family:var(--font-thai)}.tb-art-nav-btn:hover .tb-art-nav-t{color:var(--accent);font-weight:500}.tb-art-hint{font-family:var(--font-mono);letter-spacing:.06em;color:var(--fg-faint);flex-wrap:wrap;gap:24px;font-size:11px;display:flex}.tb-art-hint kbd{font-family:var(--font-mono);border:1px solid var(--border);color:var(--fg-muted);background:var(--bg-elev);border-bottom-width:2px;border-radius:2px;margin-right:2px;padding:1px 5px;font-size:10px;line-height:1;display:inline-block}.tb-help-root{z-index:100;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.tb-help-panel{background:var(--bg);border:1px solid var(--border);border-radius:4px;width:100%;max-width:420px;margin:16px;padding:22px 24px 20px;position:relative}.tb-help-head{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.tb-help-head h3{font-family:var(--font-sans);letter-spacing:.22em;color:var(--fg-faint);text-transform:lowercase;margin:0;font-size:12px;font-weight:500}.tb-help-list{flex-direction:column;gap:12px;margin:0;display:flex}.tb-help-list>div{grid-template-columns:92px 1fr;align-items:baseline;gap:14px;display:grid}.tb-help-list dt{flex-wrap:wrap;gap:4px;margin:0;display:flex}.tb-help-list dt kbd{font-family:var(--font-mono);border:1px solid var(--border);color:var(--fg);background:var(--bg-elev);border-bottom-width:2px;border-radius:2px;padding:2px 6px;font-size:11px;line-height:1;display:inline-block}.tb-help-list dd{font-family:var(--font-serif);color:var(--fg-muted);margin:0;font-size:14px}.tb-help-foot{border-top:1px solid var(--border);font-family:var(--font-serif);color:var(--fg-faint);text-align:center;margin:18px 0 0;padding-top:14px;font-size:13px;font-style:italic}.tb-tweaks{z-index:80;position:fixed;top:16px;right:16px}.tb-tweaks-toggle{font-family:var(--font-mono);letter-spacing:.1em;color:var(--fg-muted);background:var(--bg-elev);border:1px solid var(--border);cursor:pointer;transition:color var(--dur-2), border-color var(--dur-2);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:11px;display:inline-flex}.tb-tweaks-toggle:hover{color:var(--fg);border-color:var(--fg-muted)}.tb-tweaks-toggle svg{width:12px;height:12px}.tb-tweaks-panel{background:var(--bg);border:1px solid var(--border);border-radius:4px;flex-direction:column;gap:14px;width:280px;padding:16px;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 8px 32px #0000002e}.tb-tweaks-row{grid-template-columns:84px 1fr;align-items:center;gap:10px;display:grid}.tb-tweaks-row .tb-label{font-family:var(--font-mono);letter-spacing:.14em;color:var(--fg-faint);text-transform:lowercase;font-size:10px}.tb-tweaks-section{font-family:var(--font-sans);letter-spacing:.2em;color:var(--fg-faint);text-transform:lowercase;border-bottom:1px solid var(--border);margin-top:6px;padding-bottom:4px;font-size:10px;font-weight:500}.tb-tweaks-section:first-child{margin-top:0}.tb-seg{border:1px solid var(--border);background:var(--bg-elev);border-radius:999px;padding:2px;display:inline-flex}.tb-seg button{font-family:var(--font-sans);letter-spacing:.06em;color:var(--fg-faint);cursor:pointer;text-transform:lowercase;transition:color var(--dur-2), background var(--dur-2);background:0 0;border:0;border-radius:999px;padding:3px 9px;font-size:10px;font-weight:500}.tb-seg button:hover{color:var(--fg)}.tb-seg button.is-on{color:var(--bg);background:var(--fg)}.tb-palette{gap:4px;display:inline-flex}.tb-palette button{cursor:pointer;border:1px solid var(--border);width:36px;height:22px;transition:transform var(--dur-2), border-color var(--dur-2);border-radius:4px;padding:0;display:inline-flex;position:relative;overflow:hidden}.tb-palette button:hover{transform:scale(1.05)}.tb-palette button.is-on{border-color:var(--fg)}.tb-palette button>span{flex:1;display:block}.tb-tweaks-slider{font-family:var(--font-mono);letter-spacing:.06em;color:var(--fg-muted);align-items:center;gap:8px;font-size:10px;display:flex}.tb-tweaks-slider input[type=range]{appearance:none;background:var(--border);outline:none;flex:1;height:1px;margin:0}.tb-tweaks-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);cursor:pointer;border:0;border-radius:50%;width:12px;height:12px}.tb-tweaks-slider input[type=range]::-moz-range-thumb{background:var(--accent);cursor:pointer;border:0;border-radius:50%;width:12px;height:12px}.tb-topbar{z-index:50;background:var(--bg);border-bottom:1px solid var(--border);position:sticky;top:0}.tb-progress{pointer-events:none;z-index:51;background:0 0;height:2px;position:absolute;bottom:-1px;left:0;right:0;overflow:hidden}.tb-progress-fill{background:var(--accent);transform-origin:0;will-change:transform;width:100%;height:100%;transition:transform .12s linear;transform:scaleX(0)}@media (prefers-reduced-motion:reduce){.tb-progress-fill{transition:none}.tb-topbar-brand,.tb-topbar-brand .tb-topbar-mark,.tb-topbar-navlink,.tb-topbar-navlink:after,.tb-bot .tb-links a,.tb-bot .tb-links button,.tb-bot .tb-links a:after,.tb-bot .tb-links button:after{transition:none!important}.tb-topbar-brand:hover{letter-spacing:.12em;font-weight:400}.tb-topbar-brand:hover .tb-topbar-mark{transform:none}.tb-topbar-navlink:hover,.tb-bot .tb-links a:hover,.tb-bot .tb-links button:hover{font-weight:400}}.tb-topbar-inner{justify-content:space-between;align-items:center;gap:16px;max-width:1100px;margin:0 auto;padding:12px max(20px,5vw);display:flex}.tb-topbar-left{align-items:center;gap:28px;min-width:0;display:inline-flex}.tb-topbar-brand{font-family:var(--font-mono);letter-spacing:.12em;color:var(--fg);white-space:nowrap;transition:color var(--dur-2) var(--ease-quiet), font-weight var(--dur-2) var(--ease-quiet), letter-spacing var(--dur-2) var(--ease-quiet);align-items:center;gap:6px;font-size:12px;font-weight:400;text-decoration:none;display:inline-flex}.tb-topbar-brand:hover{color:var(--accent);letter-spacing:.14em;font-weight:500}.tb-topbar-brand .tb-topbar-mark{color:var(--accent);transition:transform var(--dur-3) var(--ease-quiet);font-size:16px;line-height:1}.tb-topbar-brand:hover .tb-topbar-mark{transform:scale(1.4)}.tb-topbar-nav{align-items:center;gap:22px;display:none}.tb-topbar-navlink{font-family:var(--font-mono);letter-spacing:.12em;color:var(--fg-muted);text-transform:lowercase;transition:color var(--dur-2) var(--ease-quiet), font-weight var(--dur-2) var(--ease-quiet);padding:6px 0;font-size:11px;font-weight:400;text-decoration:none;position:relative}.tb-topbar-navlink:after{content:"";background:var(--accent);transform-origin:0;height:1px;transition:transform .24s var(--ease-quiet);position:absolute;bottom:2px;left:0;right:0;transform:scaleX(0)}.tb-topbar-navlink:hover{color:var(--fg);font-weight:500}.tb-topbar-navlink:hover:after{transform:scaleX(1)}.tb-topbar-navlink.is-active{color:var(--fg);font-weight:500}.tb-topbar-navlink.is-active:after{transform:scaleX(1)}.tb-topbar-right{align-items:center;gap:8px;display:inline-flex}.tb-topbar-links{color:var(--fg-muted);align-items:center;gap:14px;display:inline-flex}.tb-topbar-links a,.tb-topbar-links button{width:28px;height:28px;color:inherit;cursor:pointer;transition:color var(--dur-2), background var(--dur-2);background:0 0;border:0;border-radius:999px;place-items:center;padding:0;text-decoration:none;display:inline-grid}.tb-topbar-links a:hover,.tb-topbar-links button:hover{color:var(--fg);background:var(--bg-elev)}.tb-topbar-links svg{width:14px;height:14px}.tb-topbar-sep{background:var(--border);width:1px;height:14px;margin:0 2px;display:inline-block}.tb-topbar-mode{color:var(--fg-muted)}.tb-topbar-burger{width:40px;height:40px;color:var(--fg-muted);cursor:pointer;transition:color var(--dur-2), background var(--dur-2);background:0 0;border:0;border-radius:999px;place-items:center;padding:0;display:inline-grid}.tb-topbar-burger:hover{color:var(--fg);background:var(--bg-elev)}.tb-burger-bars{flex-direction:column;justify-content:center;gap:4px;width:16px;height:16px;display:inline-flex}.tb-burger-bars span{transform-origin:50%;width:100%;height:1.5px;transition:transform var(--dur-3) var(--ease-quiet), opacity var(--dur-2) var(--ease-quiet);background:currentColor;display:block}.tb-topbar-burger[aria-expanded=true] .tb-burger-bars span:first-child{transform:translateY(5.5px)rotate(45deg)}.tb-topbar-burger[aria-expanded=true] .tb-burger-bars span:nth-child(2){opacity:0;transform:scaleX(.2)}.tb-topbar-burger[aria-expanded=true] .tb-burger-bars span:nth-child(3){transform:translateY(-5.5px)rotate(-45deg)}.tb-mobile-nav{background:var(--bg);border-bottom:1px solid var(--border);z-index:49;opacity:0;pointer-events:none;transition:opacity var(--dur-3) var(--ease-quiet), transform var(--dur-3) var(--ease-quiet);position:absolute;top:100%;left:0;right:0;transform:translateY(-6px);box-shadow:0 12px 28px -16px #0000002e}.tb-mobile-nav.is-open{opacity:1;pointer-events:auto;transform:translateY(0)}.tb-mobile-nav-inner{max-width:1100px;margin:0 auto;padding:6px max(20px,5vw) 18px}.tb-mobile-nav-links{flex-direction:column;display:flex}.tb-mobile-navlink{font-family:var(--font-serif);letter-spacing:-.2px;color:var(--fg);border-bottom:1px solid var(--border);transition:color var(--dur-2) var(--ease-quiet), padding-left var(--dur-2) var(--ease-quiet);justify-content:space-between;align-items:center;min-height:48px;padding:14px 4px;font-size:18px;text-decoration:none;display:flex}.tb-mobile-navlink:hover,.tb-mobile-navlink:focus-visible,.tb-mobile-navlink.is-active{color:var(--accent)}.tb-mobile-navlink-arrow{font-family:var(--font-mono);color:var(--fg-faint);opacity:0;transition:opacity var(--dur-2), transform var(--dur-2) var(--ease-quiet), color var(--dur-2);font-size:14px;transform:translate(-4px)}.tb-mobile-navlink:hover .tb-mobile-navlink-arrow,.tb-mobile-navlink:focus-visible .tb-mobile-navlink-arrow,.tb-mobile-navlink.is-active .tb-mobile-navlink-arrow{opacity:1;color:var(--accent);transform:translate(0)}.tb-mobile-meta{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;margin-top:18px;padding-top:16px;display:flex}.tb-mobile-icons{color:var(--fg-muted);align-items:center;gap:4px;display:inline-flex}.tb-mobile-icons a{width:40px;height:40px;color:inherit;transition:color var(--dur-2), background var(--dur-2);border-radius:999px;place-items:center;text-decoration:none;display:inline-grid}.tb-mobile-icons a:hover{color:var(--fg);background:var(--bg-elev)}.tb-mobile-icons svg{width:16px;height:16px}.tb-mobile-mode{border:1px solid var(--border);height:36px;font-family:var(--font-mono);letter-spacing:.1em;text-transform:lowercase;color:var(--fg-muted);cursor:pointer;transition:color var(--dur-2), border-color var(--dur-2);background:0 0;border-radius:999px;align-items:center;gap:8px;padding:0 14px;font-size:11px;display:inline-flex}.tb-mobile-mode:hover{color:var(--fg);border-color:var(--fg-muted)}.tb-mobile-mode svg{width:14px;height:14px}@media (min-width:760px){.tb-topbar-nav{display:inline-flex}.tb-topbar-burger,.tb-mobile-nav{display:none}}@media (max-width:759px){.tb-topbar-links{display:none}}@media (prefers-reduced-motion:reduce){.tb-mobile-nav,.tb-burger-bars span{transition:none!important}}.tb-pp-page{padding:48px 28px 96px;position:relative}.tb-pp-shell{max-width:760px;margin:0 auto}.tb-pp-main{width:100%;min-width:0;max-width:720px;margin:0 auto}.tb-pp-aside{z-index:10;scrollbar-width:thin;scrollbar-color:var(--border) transparent;width:210px;max-height:min(72vh,640px);position:fixed;top:50%;left:max(20px,2vw);overflow-y:auto;transform:translateY(-50%)}.tb-pp-aside::-webkit-scrollbar{width:4px}.tb-pp-aside::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}@media (max-width:1180px){.tb-pp-aside{display:none}}.tb-pp-back{font-family:var(--font-sans);color:var(--fg-muted);letter-spacing:.02em;min-height:36px;transition:color var(--dur-2), gap var(--dur-2);align-items:center;gap:8px;margin-left:-4px;padding:8px 4px;font-size:12px;font-weight:500;text-decoration:none;display:inline-flex}.tb-pp-back:hover{color:var(--accent);gap:10px}.tb-pp-back>span{font-family:var(--font-mono)}.tb-pp-head{margin-top:32px}.tb-pp-meta{font-family:var(--font-mono);letter-spacing:.06em;color:var(--fg-faint);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:18px;font-size:11px;display:flex}.tb-pp-meta-cat{font-family:var(--font-sans);color:var(--accent);letter-spacing:.04em;text-transform:lowercase;font-weight:500}.tb-pp-meta-dot{background:var(--fg-faint);opacity:.6;border-radius:50%;width:2px;height:2px}.tb-pp-meta-link{color:var(--fg-muted);text-decoration:underline;-webkit-text-decoration-color:var(--border-strong);-webkit-text-decoration-color:var(--border-strong);-webkit-text-decoration-color:var(--border-strong);text-decoration-color:var(--border-strong);text-underline-offset:3px;transition:text-decoration-color var(--dur-2), color var(--dur-2)}.tb-pp-meta-link:hover{color:var(--fg);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.tb-pp-title{font-family:var(--font-serif);font-weight:600;font-size:var(--display-lg);letter-spacing:-.03em;color:var(--fg);text-wrap:balance;margin:0 0 18px;line-height:1.04}.tb-pp-title[lang=th]{font-family:var(--font-thai);letter-spacing:-.005em;font-weight:500;line-height:1.25}.tb-pp-dek{font-family:var(--font-serif);color:var(--fg-muted);text-wrap:pretty;margin:0;font-size:18px;font-style:italic;line-height:1.5}.tb-pp-dek[lang=th]{font-style:normal;font-family:var(--font-thai)}.tb-pp-divider{background:var(--accent);width:56px;height:1px;margin:32px 0 24px}.tb-pp-article{font-family:var(--reading-body);font-size:var(--reading-size);color:var(--fg);line-height:1.75}.tb-pp-article[lang=th]{font-family:var(--font-thai);line-height:1.95}.tb-pp-article>:first-child{margin-top:0}.tb-pp-article h2,.tb-pp-article h3{scroll-margin-top:84px}.tb-pp-foot{border-top:1px solid var(--border);margin-top:56px;padding-top:24px}.prose-reader blockquote[data-callout]{--cl-tint:var(--fg-muted)}.prose-reader blockquote[data-callout=tip],.prose-reader blockquote[data-callout=success],.prose-reader blockquote[data-callout=check],.prose-reader blockquote[data-callout=done]{--cl-tint:var(--accent-2)}.prose-reader blockquote[data-callout=warning],.prose-reader blockquote[data-callout=caution],.prose-reader blockquote[data-callout=attention],.prose-reader blockquote[data-callout=danger],.prose-reader blockquote[data-callout=error],.prose-reader blockquote[data-callout=failure],.prose-reader blockquote[data-callout=fail],.prose-reader blockquote[data-callout=missing],.prose-reader blockquote[data-callout=bug]{--cl-tint:var(--accent)}.prose-reader blockquote[data-callout]{border:1px solid var(--cl-tint);margin:1.75em 0;padding:14px 18px 16px}@supports (color:color-mix(in lab, red, red)){.prose-reader blockquote[data-callout]{border:1px solid color-mix(in oklab, var(--cl-tint) 28%, var(--border))}}.prose-reader blockquote[data-callout]{border-left:3px solid var(--cl-tint);background:var(--cl-tint);border-radius:0 4px 4px 0}@supports (color:color-mix(in lab, red, red)){.prose-reader blockquote[data-callout]{background:color-mix(in oklab, var(--cl-tint) 5%, var(--bg-elev))}}.prose-reader blockquote[data-callout]{font-family:var(--font-sans);color:var(--fg);font-style:normal}.prose-reader blockquote[data-callout] .callout-title{font-family:var(--font-sans);letter-spacing:.08em;text-transform:lowercase;color:var(--cl-tint);align-items:center;gap:8px;margin-bottom:6px;font-size:12px;font-weight:500;display:flex}.prose-reader blockquote[data-callout] .callout-title-icon{color:var(--cl-tint);flex-shrink:0;align-items:center;display:inline-flex}.prose-reader blockquote[data-callout] .callout-title-icon svg{width:14px;height:14px;display:block}.prose-reader blockquote[data-callout] .callout-title-text{color:var(--fg);letter-spacing:0;text-transform:none;font-size:13px;font-weight:500}.prose-reader blockquote[data-callout=note] .callout-title:not(:has(.callout-title-text)):after{content:"note"}.prose-reader blockquote[data-callout=abstract] .callout-title:not(:has(.callout-title-text)):after{content:"summary"}.prose-reader blockquote[data-callout=summary] .callout-title:not(:has(.callout-title-text)):after{content:"summary"}.prose-reader blockquote[data-callout=tldr] .callout-title:not(:has(.callout-title-text)):after{content:"summary"}.prose-reader blockquote[data-callout=info] .callout-title:not(:has(.callout-title-text)):after{content:"info"}.prose-reader blockquote[data-callout=tip] .callout-title:not(:has(.callout-title-text)):after{content:"tip"}.prose-reader blockquote[data-callout=hint] .callout-title:not(:has(.callout-title-text)):after{content:"tip"}.prose-reader blockquote[data-callout=success] .callout-title:not(:has(.callout-title-text)):after{content:"done"}.prose-reader blockquote[data-callout=check] .callout-title:not(:has(.callout-title-text)):after{content:"done"}.prose-reader blockquote[data-callout=done] .callout-title:not(:has(.callout-title-text)):after{content:"done"}.prose-reader blockquote[data-callout=warning] .callout-title:not(:has(.callout-title-text)):after{content:"warning"}.prose-reader blockquote[data-callout=caution] .callout-title:not(:has(.callout-title-text)):after{content:"warning"}.prose-reader blockquote[data-callout=attention] .callout-title:not(:has(.callout-title-text)):after{content:"warning"}.prose-reader blockquote[data-callout=danger] .callout-title:not(:has(.callout-title-text)):after{content:"danger"}.prose-reader blockquote[data-callout=error] .callout-title:not(:has(.callout-title-text)):after{content:"danger"}.prose-reader blockquote[data-callout=bug] .callout-title:not(:has(.callout-title-text)):after{content:"bug"}.prose-reader blockquote[data-callout=example] .callout-title:not(:has(.callout-title-text)):after{content:"example"}.prose-reader blockquote[data-callout=quote] .callout-title:not(:has(.callout-title-text)):after{content:"quote"}.prose-reader blockquote[data-callout=cite] .callout-title:not(:has(.callout-title-text)):after{content:"quote"}.prose-reader blockquote[data-callout=question] .callout-title:not(:has(.callout-title-text)):after{content:"question"}.prose-reader blockquote[data-callout=help] .callout-title:not(:has(.callout-title-text)):after{content:"question"}.prose-reader blockquote[data-callout=faq] .callout-title:not(:has(.callout-title-text)):after{content:"question"}.prose-reader blockquote[data-callout] .callout-content{color:var(--fg-muted);font-size:15px;line-height:1.65}.prose-reader blockquote[data-callout] .callout-content>:first-child{margin-top:0}.prose-reader blockquote[data-callout] .callout-content>:last-child{margin-bottom:0}.prose-reader blockquote[data-callout] .callout-content>*+*{margin-top:.6em}.prose-reader a[data-wikilink=true]{text-decoration-style:dashed;-webkit-text-decoration-color:var(--accent-2);-webkit-text-decoration-color:var(--accent-2);-webkit-text-decoration-color:var(--accent-2);text-decoration-color:var(--accent-2)}@supports (color:color-mix(in lab, red, red)){.prose-reader a[data-wikilink=true]{-webkit-text-decoration-color:color-mix(in oklab, var(--accent-2) 60%, var(--border-strong));-webkit-text-decoration-color:color-mix(in oklab, var(--accent-2) 60%, var(--border-strong));-webkit-text-decoration-color:color-mix(in oklab, var(--accent-2) 60%, var(--border-strong));text-decoration-color:color-mix(in oklab, var(--accent-2) 60%, var(--border-strong))}}.prose-reader a[data-wikilink=true]{text-underline-offset:4px}.prose-reader a[data-wikilink=true]:hover{text-decoration-style:solid;-webkit-text-decoration-color:var(--accent-2);-webkit-text-decoration-color:var(--accent-2);-webkit-text-decoration-color:var(--accent-2);text-decoration-color:var(--accent-2)}.tb-toc{flex-direction:column;gap:14px;display:flex}.tb-toc-head{font-family:var(--font-sans);letter-spacing:.22em;color:var(--fg-faint);text-transform:lowercase;border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:8px;padding-bottom:6px;font-size:11px;font-weight:500;display:flex}.tb-toc-pct{font-family:var(--font-mono);letter-spacing:.06em;color:var(--accent);font-feature-settings:"tnum" 1, "lnum" 1;font-size:11px}.tb-toc-track{padding-left:18px;position:relative}.tb-toc-rail,.tb-toc-rail-fill{border-radius:2px;width:2px;position:absolute;top:0;bottom:0;left:0}.tb-toc-rail{background:var(--border)}.tb-toc-rail-fill{background:var(--fg-muted);height:0;transition:height .28s var(--ease-quiet);z-index:1;bottom:auto}.tb-toc-list{z-index:2;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex;position:relative}.tb-toc-item a{color:var(--fg-faint);font-family:var(--font-sans);transition:color var(--dur-2) var(--ease-quiet);grid-template-columns:14px 1fr;align-items:start;gap:10px;padding:4px 0;font-size:13px;line-height:1.4;text-decoration:none;display:grid}.tb-toc-item.is-l3 a{padding-left:14px;font-size:12px}.tb-toc-tick{background:var(--bg);border:1.5px solid var(--border-strong);box-sizing:border-box;width:9px;height:9px;transition:background var(--dur-3) var(--ease-quiet), border-color var(--dur-3) var(--ease-quiet), transform var(--dur-3) var(--ease-quiet), box-shadow var(--dur-3) var(--ease-quiet);border-radius:50%;margin:6px 0 0 -23px;display:block}.tb-toc-item.is-l3 .tb-toc-tick{margin-left:-3px}.tb-toc-item.is-future a{color:var(--fg-faint)}.tb-toc-item.is-past .tb-toc-tick{background:var(--fg-muted);border-color:var(--fg-muted)}.tb-toc-item.is-past a{color:var(--fg-muted)}.tb-toc-item.is-active a{color:var(--accent);font-weight:500}.tb-toc-item.is-active .tb-toc-tick{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px var(--accent);transform:scale(1.35)}@supports (color:color-mix(in lab, red, red)){.tb-toc-item.is-active .tb-toc-tick{box-shadow:0 0 0 4px color-mix(in oklab, var(--accent) 16%, transparent)}}.tb-toc-item:hover a{color:var(--fg)}.tb-toc-item.is-future:hover .tb-toc-tick{border-color:var(--fg-muted)}.tb-toc-text{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}@media (max-width:1024px){.tb-article{--col-side:170px;--col-gap:40px}}@media (max-width:820px){.tb-article{--col-main:100%;padding:40px max(20px,4vw) 56px}.tb-art-title{letter-spacing:-.025em;font-size:clamp(32px,7vw,48px);line-height:1.06}.tb-art-dek{font-size:17px}.tb-pp-title{letter-spacing:-.025em;font-size:clamp(32px,7vw,48px);line-height:1.06}.tb-modal-panel{border-width:0;border-radius:0;max-height:100vh;margin:0}.tb-modal-head{padding:12px 16px}}@media (max-width:760px){.tb-page{padding:0 max(20px,5vw)}.tb-pp-page{padding:32px 20px 72px}.tb-section-head{flex-wrap:wrap}.tb-chip{padding:7px 12px;font-size:11.5px}.tb-post-row:active{background:var(--bg-elev)}@supports (color:color-mix(in lab, red, red)){.tb-post-row:active{background:color-mix(in oklab, var(--bg-elev) 70%, transparent)}}.tb-post-card:active{border-color:var(--fg-muted);transform:translateY(0)}}@media (max-width:640px){.tb-post-row{gap:14px;padding:18px 0}.tb-post-row.is-current{padding:22px 0}.tb-post-arrow{display:none}.tb-post-title{font-size:19px}.tb-post-row.is-current .tb-post-title{font-size:24px;line-height:1.18}.tb-post-dek{font-size:14px}.tb-post-row.is-current .tb-post-dek{font-size:15px}.tb-post-meta{gap:8px;margin-bottom:8px}.tb-archive{margin-top:24px}}@media (max-width:560px){.tb-top{padding:64px 0 24px}.tb-page>.tb-top+.tb-block{padding-top:32px}.tb-mast{gap:22px}.tb-mast-word{letter-spacing:-.025em}.tb-mast-eyebrow{flex-wrap:wrap;gap:6px 12px;font-size:10.5px}.tb-block{padding:56px 0}.tb-about p{font-size:16px}.tb-art-nav{grid-template-columns:1fr}.tb-art-nav-btn.is-right{text-align:left;align-items:flex-start}.tb-art-nav-btn.is-empty.is-right{justify-content:flex-start}.tb-tweaks{top:10px;right:10px}.tb-tweaks-toggle{justify-content:center;gap:0;width:32px;height:32px;padding:8px}.tb-tweaks-toggle-label{display:none}.tb-tweaks-panel{width:calc(100vw - 20px);right:0}.tb-section-head h2{font-size:11px}.tb-section-head .tb-right{font-size:10px}.tb-pp-title{letter-spacing:-.02em;font-size:clamp(28px,8vw,40px);line-height:1.08}.tb-pp-dek{font-size:16px}.tb-pp-divider{margin:24px 0 20px}.tb-pp-foot{margin-top:40px}.tb-help-panel{margin:12px;padding:18px 18px 16px}.tb-help-list>div{grid-template-columns:84px 1fr;gap:12px}.tb-bot{padding:40px 0 56px}}@media (max-width:380px){.tb-page{padding:0 18px}.tb-topbar-inner{padding:10px 16px}.tb-topbar-brand{letter-spacing:.08em;font-size:11px}}.tb-backlinks{border-top:1px solid var(--border);margin-top:3rem;padding-top:1.25rem}.tb-backlinks-label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-faint);font-size:11px}.tb-backlinks-list{flex-direction:column;gap:.35rem;margin:.6rem 0 0;padding:0;list-style:none;display:flex}.tb-backlinks-link{color:var(--fg-muted);transition:border-color var(--ease-quiet,.2s);border-bottom:1px solid #0000;text-decoration:none}.tb-backlinks-link:hover{border-bottom-color:currentColor}.prose-reader [data-wikilink-broken]{color:var(--fg-faint);border-bottom:1px dotted var(--fg-faint);pointer-events:none;cursor:default}.tb-jr-filters{flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:2rem;display:flex}.tb-jr-chip{font-family:var(--font-mono);border:1px solid var(--border);color:var(--fg-muted);cursor:pointer;transition:border-color var(--ease-quiet,.2s), color var(--ease-quiet,.2s);background:0 0;border-radius:4px;padding:.2rem .55rem;font-size:12px}.tb-jr-chip.is-on{color:var(--fg);border-color:var(--fg)}.tb-jr-sep{background:var(--border);width:1px;height:16px;margin:0 .35rem}.tb-jr-month{margin-bottom:2.5rem}.tb-jr-month-label{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--fg-faint);margin:0 0 1rem;font-size:11px}.tb-jr-spine{margin:0;padding:0 0 0 1.1rem;list-style:none;position:relative}.tb-jr-spine:before{content:"";background:var(--border);width:1px;position:absolute;top:5px;bottom:5px;left:3px}.tb-jr-entry{margin-bottom:1.4rem;position:relative}.tb-jr-entry:before{content:"";background:var(--bg);border:1px solid var(--fg-faint);border-radius:50%;width:7px;height:7px;position:absolute;top:6px;left:-1.1rem}.tb-jr-entry.is-link:before{background:var(--accent,#d04428);border-color:var(--accent,#d04428)}.tb-jr-meta{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.25rem;display:flex}.tb-jr-kind{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;border-radius:3px;padding:2px 6px;font-size:9.5px}.tb-jr-date,.tb-jr-tag{font-family:var(--font-mono);color:var(--fg-faint);font-size:11px}.tb-jr-body{color:var(--fg);border-bottom:1px solid #0000;line-height:1.6;text-decoration:none;display:block}.tb-jr-body:hover{border-bottom-color:var(--border)}.tb-jr-cite{font-family:var(--font-mono);color:var(--accent,#d04428);margin-top:.4rem;font-size:11px;text-decoration:none;display:inline-block}.tb-jr-empty{color:var(--fg-muted);font-style:italic}@media (prefers-reduced-motion:reduce){.tb-jr-chip,.tb-jr-body{transition:none}}.tb-rd-group{margin-bottom:3rem}.tb-rd-status{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--fg-faint);margin:0 0 1.1rem;font-size:11px}.tb-rd-grid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:1.25rem;margin:0;padding:0;list-style:none;display:grid}.tb-rd-card{color:var(--fg);flex-direction:column;gap:.4rem;text-decoration:none;display:flex}.tb-rd-cover{aspect-ratio:2/3;object-fit:cover;width:100%;transition:transform var(--ease-quiet);border-radius:3px}.tb-rd-card:hover .tb-rd-cover{transform:translateY(-3px)}.tb-rd-fallback{color:#fff;background:#4a4640;align-items:flex-end;padding:.6rem;font-size:12px;font-weight:600;line-height:1.25;display:flex}.tb-rd-fallback.room-eng{background:linear-gradient(160deg,#356b47,#234a32)}.tb-rd-fallback.room-inv{background:linear-gradient(160deg,#d8513a,#b23420)}.tb-rd-title{font-size:13px;font-weight:600;line-height:1.3}.tb-rd-author{color:var(--fg-muted);font-size:12px}@media (prefers-reduced-motion:reduce){.tb-rd-cover{transition:none}}.tb-peek{margin:3.5rem auto}.tb-peek-head{justify-content:space-between;align-items:baseline;margin-bottom:1rem;display:flex}.tb-peek-heading{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--fg-faint);margin:0;font-size:11px}.tb-peek-more{font-family:var(--font-mono);color:var(--fg-muted);font-size:11px;text-decoration:none}.tb-peek-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.tb-peek-item{border-bottom:1px solid var(--border);color:var(--fg);align-items:baseline;gap:.7rem;padding:.55rem 0;text-decoration:none;display:flex}.tb-peek-kind{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-faint);min-width:34px;font-size:9.5px}.tb-peek-title{flex:1}.tb-peek-date{font-family:var(--font-mono);color:var(--fg-faint);font-size:11px}.tb-cmdk-scrim{z-index:60;background:#1a1a1a47;justify-content:center;align-items:flex-start;padding-top:12vh;display:flex;position:fixed;inset:0}.tb-cmdk{background:var(--bg-elev,var(--bg));border:1px solid var(--border);border-radius:12px;width:min(560px,92vw);overflow:hidden;box-shadow:0 18px 50px -12px #1a1a1a59}.tb-cmdk-input{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:13px 15px;display:flex}.tb-cmdk-mag{color:var(--fg-faint);font-size:16px}.tb-cmdk-input input{color:var(--fg);background:0 0;border:0;outline:none;flex:1;font-size:16px}.tb-cmdk-esc{font-family:var(--font-mono);color:var(--fg-faint);border:1px solid var(--border);border-radius:4px;padding:2px 6px;font-size:10px}.tb-cmdk-results{max-height:52vh;margin:0;padding:6px 0;list-style:none;overflow:auto}.tb-cmdk-group{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-faint);padding:9px 15px 4px;font-size:10px}.tb-cmdk-row{cursor:pointer;align-items:center;gap:10px;padding:8px 15px;display:flex}.tb-cmdk-row.is-active{box-shadow:inset 2px 0 0 var(--accent,#d04428);background:#d0442814}.tb-cmdk-kind{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;background:var(--bg);color:var(--fg-muted);border-radius:3px;padding:2px 6px;font-size:9px}.tb-cmdk-title{color:var(--fg);flex:1;font-size:14px}.tb-cmdk-sub{font-family:var(--font-mono);color:var(--fg-faint);font-size:11px}.tb-cmdk-empty{color:var(--fg-muted);padding:18px 15px;font-style:italic}.tb-cmdk-foot{border-top:1px solid var(--border);font-family:var(--font-mono);color:var(--fg-faint);gap:16px;padding:9px 15px;font-size:10.5px;display:flex}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
