/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@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-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}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@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{.visible{visibility:visible}.fixed{position:fixed}.static{position:static}.sticky{position:sticky}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.table{display:table}.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}.italic{font-style:italic}.underline{text-decoration-line:underline}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);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}.blur{--tw-blur:blur(8px);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))}}:root{--paper:#f2eee4;--paper-light:#faf7f0;--ink:#1b1b19;--ink-soft:#5a5851;--line:#1b1b192e;--vermillion:#b83a38;--vermillion-dark:#8f2928;--blossom:#d58e9f;--moss:#536455;--serif:"Iowan Old Style", Baskerville, Georgia, serif;--sans:Inter, "Helvetica Neue", Helvetica, Arial, sans-serif;--mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--content:min(1180px, calc(100vw - 64px));--sky-color:#f2d8cd}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}html[data-layout=desktop]{min-width:1180px}body{background:var(--sky-color);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.6;transition:background-color .65s,color .65s}body::selection{background:var(--vermillion);color:#fff}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}.site-shell{min-height:100vh;position:relative;overflow:clip}.sky-cycle{z-index:-4;pointer-events:none;position:fixed;inset:0;overflow:hidden}.sun-orb{aspect-ratio:1;filter:saturate(88%);will-change:left, top, opacity;border-radius:50%;width:clamp(150px,18vw,280px);transition:background-color .65s,box-shadow .65s,filter .65s;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 90px #e1734c3d,0 0 180px #ebaa6733}.paper-noise{z-index:-2;pointer-events:none;opacity:.34;mix-blend-mode:multiply;background-image:radial-gradient(circle at 18% 22%,#ffffffa6 0 1px,#0000 1.5px),radial-gradient(circle at 76% 64%,#3f312521 0 .7px,#0000 1px);background-size:17px 19px,23px 29px;transition:opacity .65s,background-image .65s;position:fixed;inset:0}.blossom-canvas{z-index:-1;pointer-events:none;opacity:.76;position:fixed;inset:0;-webkit-mask-image:linear-gradient(90deg,#0000 0% 54%,#000000b3 70%,#000 84%);mask-image:linear-gradient(90deg,#0000 0% 54%,#000000b3 70%,#000 84%)}.petal-canvas{z-index:-1;pointer-events:none;opacity:.94;position:fixed;inset:0}.section-wrap,.site-header{width:var(--content);margin-inline:auto}.site-header{z-index:20;-webkit-backdrop-filter:blur(18px)saturate(120%);backdrop-filter:blur(18px)saturate(120%);background:#faf7f0f2;border:1px solid #1b1b1921;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;min-height:64px;padding:12px 18px;transition:background-color .65s,border-color .65s,box-shadow .65s;display:grid;position:sticky;top:18px;box-shadow:0 12px 40px #342a1f0f}.wordmark{width:fit-content;font-family:var(--serif);letter-spacing:-.025em;align-items:baseline;font-size:1.08rem;font-weight:700;display:inline-flex}.wordmark em{color:var(--vermillion);font-family:var(--mono);letter-spacing:0;font-size:.68em;font-style:normal}.main-nav{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:30px;font-size:.74rem;display:flex}.main-nav a{color:var(--ink-soft);transition:color .18s;position:relative}.main-nav a:after{content:"";background:var(--vermillion);height:1px;transition:right .22s;position:absolute;bottom:-7px;left:0;right:100%}.main-nav a:hover,.main-nav a.active{color:var(--ink)}.main-nav a:hover:after,.main-nav a.active:after{right:0}.header-link{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;justify-self:end;align-items:center;gap:6px;font-size:.74rem;display:inline-flex}.header-actions{justify-self:end;align-items:center;gap:18px;display:flex}.theme-selector{border:1px solid var(--line);background:#faf7f075;gap:2px;padding:3px;transition:background-color .65s,border-color .65s;display:inline-flex}.layout-toggle{border:1px solid var(--line);min-height:38px;color:var(--ink-soft);font-family:var(--mono);letter-spacing:.04em;cursor:pointer;background:#faf7f075;justify-content:center;align-items:center;gap:6px;padding:0 9px;font-size:.62rem;transition:background-color .35s,border-color .35s,color .35s,box-shadow .35s;display:inline-flex}.layout-toggle:hover{color:var(--ink)}.layout-toggle[aria-pressed=true]{border-color:var(--vermillion);background:var(--vermillion);color:var(--paper-light)}.layout-toggle:focus-visible{outline:2px solid var(--vermillion);outline-offset:2px}.layout-toggle span:first-child{font-size:.82rem;line-height:1}.theme-option{min-height:30px;color:var(--ink-soft);font-family:var(--mono);letter-spacing:.04em;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0 9px;font-size:.62rem;transition:background-color .35s,color .35s,box-shadow .35s;display:inline-flex}.theme-option:hover{color:var(--ink)}.theme-option[aria-pressed=true]{background:var(--ink);color:var(--paper-light)}.theme-option:focus-visible{outline:2px solid var(--vermillion);outline-offset:2px}.theme-mark{font-family:var(--sans);font-size:.74rem;line-height:1}.header-link span,.project-meta a span,.button span{transition:transform .18s;display:inline-block}.header-link:hover span,.project-meta a:hover span{transform:translate(2px,-2px)}main{position:relative}.neo-section-layout,.neo-reading-surface{display:contents}.neo-mobile-sign{display:none}.hero{background:linear-gradient(90deg,#faf7f0c7 0%,#faf7f0b8 54%,#faf7f03d 76%,#0000 94%);grid-template-columns:minmax(0,780px) minmax(180px,1fr);align-items:center;gap:48px;height:max(100vh,820px);min-height:920px;padding-block:130px 80px;transition:background .65s;display:grid;position:relative}.hero-copy{max-width:820px}.eyebrow,.section-kicker{color:var(--vermillion-dark);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:14px;margin:0;font-size:.75rem;font-weight:600;display:flex}.eyebrow-rule{background:currentColor;width:46px;height:1px}.hero h1{max-width:800px;font-family:var(--serif);letter-spacing:-.065em;text-wrap:balance;margin:30px 0 34px;font-size:clamp(4.1rem,8.3vw,8.2rem);font-weight:500;line-height:.94}.hero-deck{max-width:660px;color:var(--ink-soft);margin:0;font-size:clamp(1.05rem,1.7vw,1.3rem);line-height:1.7}.hero-actions{align-items:center;gap:30px;margin-top:42px;display:flex}.button{min-height:52px;font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--ink);justify-content:center;align-items:center;gap:18px;padding:0 20px;font-size:.75rem;font-weight:600;transition:background .18s,color .18s,transform .18s;display:inline-flex}.button-primary{background:var(--ink);color:var(--paper-light)}.button:hover{transform:translateY(-2px)}.button-primary:hover{background:var(--vermillion-dark);border-color:var(--vermillion-dark)}.text-link{font-family:var(--mono);border-bottom:1px solid var(--ink);font-size:.75rem}.project-topline,.private-label{color:var(--ink-soft);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;font-size:.67rem}.work-section,.experience-section,.about-section,.now-section,.contact-section{border-top:1px solid var(--line);isolation:isolate;padding-block:128px;position:relative}.work-section:before,.experience-section:before,.about-section:before,.now-section:before{content:"";inset:0 calc((100vw - var(--content)) / -2);z-index:-1;background:#faf7f052;position:absolute}.section-heading{grid-template-columns:minmax(160px,.42fr) 1fr;align-items:start;gap:48px;margin-bottom:64px;display:grid}.section-heading h2,.contact-section h2{font-family:var(--serif);letter-spacing:-.05em;margin:0;font-size:clamp(2.8rem,5.6vw,5.4rem);font-weight:500;line-height:1}.jp-title{display:none}.section-heading>div>p{max-width:560px;color:var(--ink-soft);margin:22px 0 0;font-size:1.02rem}.project-list{gap:20px;display:grid}.project-card{border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f2eee4d1;padding:34px;transition:transform .26s,border-color .26s,box-shadow .26s,background-color .65s}.project-card:hover{border-color:#b83a3875;transform:translateY(-4px);box-shadow:0 24px 70px #342a1f17}.project-topline{border-bottom:1px solid var(--line);justify-content:space-between;padding-bottom:24px;display:flex}.project-topline span:first-child{color:var(--vermillion-dark)}.project-main{grid-template-columns:minmax(260px,.9fr) 1fr;gap:56px;padding-block:48px;display:grid}.project-main h3{font-family:var(--serif);letter-spacing:-.055em;margin:0 0 18px;font-size:clamp(2.8rem,5vw,5rem);font-weight:500;line-height:.96}.project-title-lockup{align-items:center;gap:20px;margin-bottom:18px;display:flex}.project-title-lockup img{object-fit:contain;border-radius:20%;flex:none;width:clamp(58px,7vw,82px);height:clamp(58px,7vw,82px)}.project-title-lockup h3{margin-bottom:0}.project-summary,.project-detail{margin:0}.project-summary{max-width:500px;color:var(--ink-soft);font-size:1.02rem}.project-detail{max-width:560px;font-family:var(--serif);align-self:center;font-size:clamp(1.28rem,2.2vw,1.75rem);line-height:1.45}.project-bottom{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:56px;padding-top:28px;display:grid}.project-bottom ul{color:var(--ink-soft);gap:7px;margin:0;padding:0;font-size:.9rem;list-style:none;display:grid}.project-bottom li:before{content:"—";color:var(--vermillion);margin-right:10px}.project-meta{justify-items:end;gap:20px;display:grid}.tag-list{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.tag-list span{border:1px solid var(--line);font-family:var(--mono);padding:5px 9px;font-size:.66rem}.project-meta a{font-family:var(--mono);border-bottom:1px solid;font-size:.72rem;font-weight:600}.experience-list{border-top:1px solid var(--ink);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#f2eee4bd;transition:background-color .65s,border-color .65s}.experience-list article{border-bottom:1px solid var(--line);grid-template-columns:minmax(250px,.72fr) 1fr;gap:64px;padding-block:38px;display:grid}.experience-title,.experience-body{min-width:0}.experience-title p,.experience-body p{margin:0}.experience-date{color:var(--vermillion-dark);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;font-size:.68rem;font-weight:600;margin-bottom:12px!important}.experience-title h3{font-family:var(--serif);letter-spacing:-.035em;margin:0 0 7px;font-size:clamp(1.8rem,3vw,2.8rem);font-weight:500;line-height:1.05}.experience-title p:last-child,.experience-body{color:var(--ink-soft)}.experience-body>p:first-child{color:var(--ink);font-family:var(--serif);font-size:clamp(1.2rem,2vw,1.55rem);line-height:1.45}.experience-body ul{gap:8px;margin:22px 0 0;padding:0;font-size:.92rem;list-style:none;display:grid}.experience-body li:before{content:"—";color:var(--vermillion);margin-right:10px}.experience-list .education-row{padding-block:30px}.education-row .experience-body{align-self:end}.education-row .experience-body>p:first-child{font-family:var(--sans);font-size:1rem}.about-grid{grid-template-columns:minmax(260px,.65fr) 1fr;gap:72px;display:grid}.section-heading.compact{margin:0;display:block}.section-heading.compact h2{margin-top:28px}.about-copy{max-width:720px}.about-copy p{color:var(--ink-soft);margin:0 0 26px;font-size:1.05rem}.about-copy .about-lead{color:var(--ink);font-family:var(--serif);letter-spacing:-.035em;font-size:clamp(1.8rem,3.8vw,3.4rem);line-height:1.25}.interest-grid{border:1px solid var(--line);background:var(--line);grid-template-columns:repeat(2,1fr);gap:1px;margin-top:72px;display:grid}.interest-grid article{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#faf7f0b8;min-height:180px;padding:28px;transition:opacity .7s cubic-bezier(.2,.72,.2,1),transform .7s cubic-bezier(.2,.72,.2,1),background-color .65s}.interest-grid h3{font-family:var(--serif);margin:0 0 34px;font-size:1.55rem;font-weight:600}.interest-grid p{max-width:430px;color:var(--ink-soft);margin:0;font-size:.92rem}.interest-grid p a{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--vermillion);-webkit-text-decoration-color:var(--vermillion);-webkit-text-decoration-color:var(--vermillion);text-decoration-color:var(--vermillion);text-underline-offset:3px}.interest-grid p a:hover{color:var(--vermillion-dark)}.interest-grid article:before{content:"";background:var(--vermillion);width:28px;height:1px;margin-bottom:22px;display:block}.interest-grid h3,.interest-grid p{z-index:1;position:relative}.now-grid{grid-template-columns:1fr;gap:20px;display:grid}.now-grid article{border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f2eee4c2;grid-template-columns:minmax(180px,.8fr) minmax(260px,1.2fr);grid-template-areas:"label label""title detail";align-items:start;gap:42px clamp(36px,6vw,96px);min-height:260px;padding:clamp(32px,4vw,52px);transition:opacity .7s cubic-bezier(.2,.72,.2,1),transform .32s cubic-bezier(.2,.72,.2,1),background-color .32s,border-color .32s,box-shadow .32s;display:grid;overflow:hidden}.now-grid article[data-reveal].is-visible{transition-delay:0s}.now-label{color:var(--vermillion-dark);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;grid-area:label;align-items:center;gap:9px;margin:0;font-size:.68rem;font-weight:600;display:flex}.now-label span{background:var(--vermillion);transform-origin:50%;border-radius:50%;flex:none;width:7px;height:7px}.now-grid h3{font-family:var(--serif);grid-area:title;margin:0;font-size:clamp(2rem,3.5vw,3.5rem);font-weight:600;line-height:1}.now-card-content{grid-area:detail;align-self:start;max-width:640px}.now-card-content>p{color:var(--ink-soft);margin:0;font-size:1rem;line-height:1.7}.now-games{gap:14px;display:grid}.now-game{grid-template-columns:52px minmax(0,1fr);align-items:center;gap:14px;display:grid}.now-game-art{border-radius:8px;width:52px;height:52px;transition:transform .18s,box-shadow .18s;display:block}.now-game-art:hover,.now-game-art:focus-visible{transform:translateY(-2px);box-shadow:0 6px 16px #28231b29}.now-game-art img{object-fit:cover;border:1px solid var(--line);background:var(--paper-light);border-radius:8px;width:52px;height:52px}.now-game p{color:var(--ink-soft);margin:0;font-size:.94rem;line-height:1.52}.now-game strong{color:var(--ink);font-family:var(--mono);font-size:.76rem}.now-resources{flex-wrap:wrap;gap:10px;margin-top:24px;display:flex}.now-bandcamp{gap:7px;margin-top:22px;display:grid}.now-bandcamp iframe{border:0;width:100%;max-width:640px;height:42px;display:block}.now-bandcamp a{width:fit-content;color:var(--ink-soft);font-family:var(--mono);letter-spacing:.02em;font-size:.66rem;font-weight:600}.now-bandcamp a:hover{color:var(--vermillion)}.now-resources a{--resource-icon-detail:var(--paper-light);border:1px solid var(--line);min-height:42px;font-family:var(--mono);background:#faf7f070;align-items:center;gap:9px;padding:6px 12px 6px 7px;font-size:.69rem;font-weight:600;transition:transform .18s,border-color .18s,background-color .18s;display:inline-flex}.now-resources a:hover{border-color:var(--vermillion);background:#faf7f0c7;transform:translateY(-2px)}.now-resource-icon{color:#1db954;background:#fffffff0;border-radius:7px;place-items:center;width:28px;height:28px;padding:3px;display:grid;overflow:hidden}.now-resource-icon svg,.now-resource-icon img{object-fit:contain;width:100%;height:100%}.now-theme-picker{border:1px solid var(--line);background:#faf7f061;gap:8px;margin-top:24px;padding:5px;display:inline-flex}.now-theme-picker button{min-height:40px;color:var(--ink-soft);font-family:var(--mono);cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:8px;padding-inline:14px;font-size:.7rem;display:inline-flex}.now-theme-picker button[aria-pressed=true]{border-color:var(--vermillion);background:var(--ink);color:var(--paper-light)}html[data-theme=neotokyo] .now-resources a,html[data-theme=neotokyo] .now-theme-picker{background:#0208129e}html[data-theme=neotokyo] .now-theme-picker button[aria-pressed=true]{color:#08101a;background:#63d5de;border-color:#63d5de;box-shadow:0 0 16px #63d5de3d}@keyframes now-dot-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.48;transform:scale(1.65)}}@media (hover:hover){.now-grid article:hover{background:#faf7f0d6;border-color:#b83a387a;transform:translateY(-5px);box-shadow:0 22px 60px #342a1f1f}.now-grid article:hover .now-label span{animation:1.05s ease-in-out infinite now-dot-pulse}html[data-theme=neotokyo] .now-grid article:hover{background:#070e19f0;border-color:#f0448e94;box-shadow:0 24px 64px #0000004d,0 0 28px #f0448e1f}}.contact-section{grid-template-columns:1fr auto;align-items:end;gap:64px;display:grid}.contact-section h2{max-width:800px;margin-top:30px}.contact-section p:not(.section-kicker){max-width:650px;color:var(--ink-soft);margin:24px 0 0;font-size:1.05rem}.contact-links{align-items:center;gap:24px;margin-bottom:7px;display:flex}.site-footer{border-top:1px solid var(--line);color:var(--ink-soft);font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;justify-content:space-between;padding-block:32px 42px;font-size:.68rem;display:flex}.site-footer div{gap:24px;display:flex}.site-footer a:hover{color:var(--ink)}html[data-theme=neotokyo]{--paper:#080d18;--paper-light:#eaf7fa;--ink:#e8f3f5;--ink-soft:#9cb1bb;--line:#63d5de38;--vermillion:#f0448e;--vermillion-dark:#ff72ae;--blossom:#f0448e;--moss:#63d5de;--sky-color:#050a11;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.neo-scene{z-index:-4;pointer-events:none;background:#050a11;position:fixed;inset:0;overflow:hidden}.neo-scene-plane{width:max(100vw,150vh);height:max(100vh,66.6667vw);position:absolute;top:0;left:50%;transform:translate(-50%)}.neo-street-plate,.street-shade,.neo-sign-stage{position:absolute;inset:0}.neo-street-plate{background-image:url(/neo-tokyo-shopfronts-front-facing-v2.webp);background-position:top;background-size:100% 100%}.street-shade{background:linear-gradient(90deg,#02060c75 0%,#02060c33 40%,#0000 72%),linear-gradient(#02060c05 35%,#02060c6b 100%)}.neo-rain-canvas{width:100%;height:100%;position:absolute;inset:0}.neo-section-sign{--sign-rgb:240, 68, 142;--sign-tube:#f0448e;--sign-core:#ffe1ef;color:var(--sign-tube);font-family:var(--sans);opacity:.72;filter:brightness(.46)saturate(.25);transform-origin:50%;place-items:center;transition:opacity .85s,filter .85s;display:grid;position:absolute}.neo-sign-intro{--sign-rgb:255, 111, 86;--sign-tube:#ff6f56;--sign-core:#fff1ea}.neo-sign-about{--sign-rgb:80, 213, 222;--sign-tube:#50d5de;--sign-core:#e6fdff}.neo-sign-now{--sign-rgb:255, 188, 82;--sign-tube:#ffbc52;--sign-core:#fff3d6}.neo-sign-work{--sign-rgb:184, 137, 255;--sign-tube:#b889ff;--sign-core:#f4edff}.neo-sign-experience{--sign-rgb:106, 222, 153;--sign-tube:#6ade99;--sign-core:#e8fff4}.neo-sign-contact{--sign-rgb:255, 91, 157;--sign-tube:#ff5b9d;--sign-core:#ffe9f3}.neo-section-sign:after{content:"";z-index:-1;background:radial-gradient(ellipse at center, rgba(var(--sign-rgb), .34) 0%, rgba(var(--sign-rgb), .12) 34%, transparent 70%);opacity:0;filter:blur(18px);border-radius:50%;width:270%;height:250%;transition:opacity .85s;position:absolute}.neo-sign-board{z-index:1;background:linear-gradient(108deg,#ffffff09,#0000 28%),#080d11;border:5px solid #11171b;outline:1px solid #a1acb152;flex-direction:column;justify-content:center;align-items:center;gap:7px;width:100%;height:100%;padding:12px 14px;transition:border-color .85s,background .85s,box-shadow .85s;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 0 0 2px #000000c2,0 7px 12px #00000080}.neo-sign-board:before{content:"";border:1px solid rgba(var(--sign-rgb), .28);opacity:.42;transition:border-color .85s,box-shadow .85s,opacity .85s;position:absolute;inset:7px}.neo-sign-board:after{content:"";pointer-events:none;opacity:.7;background:linear-gradient(96deg,#0000 0 42%,#ffffff09 43% 44%,#0000 45%),radial-gradient(circle at 18% 23%,#a0a9ac29 0 1px,#0000 2px),radial-gradient(circle at 79% 72%,#a0a9ac1f 0 1px,#0000 2px);position:absolute;inset:0}.neo-sign-perspective-frame{display:none}.neo-sign-edge{z-index:2;background:rgba(var(--sign-rgb), .28);opacity:.42;transform-origin:0;border-radius:999px;height:2px;transition:background .85s,box-shadow .85s,opacity .85s;position:absolute}.neo-sign-eyebrow,.neo-sign-detail{z-index:1;color:#a0acb19e;font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;font-size:.46rem;line-height:1;transition:color .85s,text-shadow .85s;position:relative}.neo-sign-label{z-index:1;color:rgba(var(--sign-rgb), .5);letter-spacing:.13em;-webkit-text-stroke:.4px #101618c7;font-size:clamp(1rem,1.9vw,1.65rem);font-weight:700;line-height:1;transition:color .85s,text-shadow .85s,-webkit-text-stroke-color .85s;position:relative}.neo-sign-bracket{z-index:0;background:#141b1e;border-block:1px solid #7c878b8f;width:34px;height:7px;position:absolute;top:46%;left:-30px;box-shadow:0 3px 5px #0009}.neo-sign-bracket:before,.neo-sign-bracket:after{content:"";background:#0d1316;width:17px;height:3px;position:absolute;left:2px}.neo-sign-bracket:before{top:-10px;transform:rotate(-31deg)}.neo-sign-bracket:after{bottom:-10px;transform:rotate(31deg)}.neo-section-sign.is-lit{opacity:1;filter:brightness()saturate()}.neo-section-sign.is-lit:after{opacity:.78}.neo-section-sign.is-lit .neo-sign-board{box-shadow:inset 0 0 18px rgba(var(--sign-rgb), .12), 0 0 8px rgba(var(--sign-rgb), .72), 0 0 25px rgba(var(--sign-rgb), .34), 0 9px 14px #0000008a;background:linear-gradient(108deg,#ffffff0f,#0000 28%),#070d11f5;border-color:#151b1f}.neo-section-sign.is-lit .neo-sign-board:before{border-color:var(--sign-core);opacity:.94;box-shadow:0 0 4px var(--sign-core), 0 0 10px var(--sign-tube), inset 0 0 8px rgba(var(--sign-rgb), .56)}.neo-section-sign.is-lit .neo-sign-edge{background:var(--sign-core);opacity:.94;box-shadow:0 0 4px var(--sign-core), 0 0 10px var(--sign-tube), 0 0 18px rgba(var(--sign-rgb), .56)}.neo-section-sign.is-lit .neo-sign-label{color:var(--sign-core);-webkit-text-stroke-color:var(--sign-core);text-shadow:0 0 2px #fff, 0 0 6px var(--sign-core), 0 0 12px var(--sign-tube), 0 0 24px rgba(var(--sign-rgb), .8)}.neo-section-sign.is-lit .neo-sign-eyebrow,.neo-section-sign.is-lit .neo-sign-detail{color:#eff9fae0;text-shadow:0 0 6px rgba(var(--sign-rgb), .76)}.neo-sign-intro{width:10.417%;height:14.757%;top:2.915%;left:77.018%;right:auto;transform:none}.neo-sign-intro .neo-sign-board{border-width:7px;border-radius:50%}.neo-sign-intro .neo-sign-board:before{border-radius:50%;inset:9px}.neo-sign-intro .neo-sign-eyebrow{font-size:.4rem}.neo-sign-intro .neo-sign-label{font-size:clamp(1.25rem,2.4vw,2rem)}.neo-sign-intro .neo-sign-bracket{left:auto;right:-30px;transform:rotate(180deg)}.neo-sign-about{width:2.821%;height:18.989%;top:19.363%;left:74.924%;right:auto;transform:none}.neo-sign-about .neo-sign-label,.neo-sign-work .neo-sign-label{writing-mode:vertical-rl;text-orientation:upright;white-space:nowrap;word-break:keep-all;overflow-wrap:normal;letter-spacing:.18em;flex:none}.neo-sign-about .neo-sign-eyebrow,.neo-sign-about .neo-sign-detail,.neo-sign-work .neo-sign-eyebrow,.neo-sign-work .neo-sign-detail{letter-spacing:.08em;font-size:.4rem}.neo-sign-about .neo-sign-board{border-radius:3px}.neo-sign-now{width:13.817%;height:13.455%;top:8.898%;left:23.398%}.neo-sign-now .neo-sign-board{border-radius:18px 3px}.neo-sign-now .neo-sign-board:before{border-radius:2px}.neo-sign-work{width:2.894%;height:13.021%;top:29.818%;left:62.811%;right:auto}.neo-sign-work .neo-sign-bracket,.neo-sign-about .neo-sign-bracket,.neo-sign-contact .neo-sign-bracket{left:auto;right:-30px;transform:rotate(180deg)}.neo-sign-experience{width:13.166%;height:13.346%;top:39.176%;left:11.126%}.neo-sign-experience .neo-sign-board{border-top-width:10px;border-bottom-width:10px}.neo-sign-experience .neo-sign-board:before{inset:5px 9px}.neo-sign-contact{width:12.442%;height:9.657%;top:49.224%;left:77.438%;right:auto}.neo-sign-contact .neo-sign-board{border-radius:7px}.neo-sign-contact .neo-sign-board:before{border-width:2px;border-radius:2px}.neo-sign-stage .neo-section-sign{opacity:.18;filter:brightness(.5)saturate(.2)}.neo-sign-stage .neo-section-sign.is-lit{opacity:1;filter:brightness()saturate()}.neo-sign-stage .neo-section-sign:after{z-index:0;mix-blend-mode:screen;width:320%;height:300%}.neo-sign-stage .neo-sign-bracket{display:none}.neo-sign-stage .neo-sign-board{box-shadow:none;transform:var(--sign-face-transform,none);transform-origin:50%;background:0 0;border:0;outline:0;padding:8%}.neo-sign-stage .neo-sign-board:before{border-width:2px;inset:5%}.neo-sign-stage .neo-sign-board:after{display:none}.neo-sign-stage .neo-section-sign.is-lit .neo-sign-board{box-shadow:0 0 16px rgba(var(--sign-rgb), .5), 0 0 46px rgba(var(--sign-rgb), .28);background:0 0;border:0}.neo-sign-stage .neo-sign-label{white-space:nowrap;word-break:keep-all;overflow-wrap:normal;mix-blend-mode:screen;font-size:clamp(1.3rem,2.4vw,2.3rem)}.neo-sign-stage .neo-sign-board:before{mix-blend-mode:screen}.neo-sign-stage .neo-sign-intro .neo-sign-label{font-size:clamp(1.05rem,1.7vw,1.65rem)}.neo-sign-stage .neo-sign-about .neo-sign-label{font-size:clamp(1.15rem,1.8vw,1.75rem)}.neo-sign-stage .neo-sign-work .neo-sign-label{font-size:clamp(.8rem,1.15vw,1.1rem)}.neo-sign-stage .neo-sign-work .neo-sign-board{flex-direction:row;gap:2px;padding:10px 4px}.neo-sign-stage .neo-sign-work .neo-sign-eyebrow{display:none}.neo-sign-stage .neo-sign-work .neo-sign-detail{writing-mode:vertical-rl;text-orientation:upright;letter-spacing:.08em;font-size:.34rem;display:block}.neo-sign-stage .neo-sign-intro,.neo-sign-stage .neo-sign-about{--sign-face-transform:none}.neo-sign-stage .neo-sign-now{--sign-face-transform:none;--sign-content-transform:none}.neo-sign-stage .neo-sign-work{--sign-face-transform:none}.neo-sign-stage .neo-sign-experience,.neo-sign-stage .neo-sign-contact{--sign-face-transform:none;--sign-content-transform:none}.neo-sign-stage .neo-section-sign :is(.neo-sign-eyebrow,.neo-sign-label,.neo-sign-detail){transform:var(--sign-content-transform,none)}.neo-sign-stage :is(.neo-sign-now,.neo-sign-experience,.neo-sign-contact) .neo-sign-board:before{display:block}.neo-sign-stage :is(.neo-sign-about,.neo-sign-now,.neo-sign-experience,.neo-sign-contact).is-lit .neo-sign-board{box-shadow:none}.neo-sign-stage :is(.neo-sign-now,.neo-sign-experience,.neo-sign-contact) .neo-sign-perspective-frame{display:none}.neo-sign-stage .neo-sign-contact .neo-sign-label{font-size:clamp(1rem,1.7vw,1.65rem)}.neo-sign-stage .neo-sign-about .neo-sign-board{gap:4px;padding-block:5%}.neo-sign-stage .neo-sign-about .neo-sign-eyebrow,.neo-sign-stage .neo-sign-about .neo-sign-detail{letter-spacing:.04em;font-size:clamp(.34rem,.46vw,.46rem)}.street-location{color:#dbeff294;font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:10px;font-size:.56rem;display:flex;position:absolute;bottom:24px;right:clamp(16px,3vw,46px)}.street-location span:first-child{color:#ff6babcc;font-family:var(--sans);border-right:1px solid #f0448e80;padding-right:10px;font-size:.68rem}html[data-theme=neotokyo] .paper-noise{display:none}html[data-theme=neotokyo] .site-header{-webkit-backdrop-filter:none;backdrop-filter:none;border-color:#63d5de57;background:#050a13e6;border-inline:0;box-shadow:0 12px 42px #00000052}html[data-theme=neotokyo] .main-nav{justify-self:center}html[data-theme=neotokyo] .theme-selector{background:#0208127a}html[data-theme=neotokyo] .layout-toggle{background:#0208128f;border-color:#63d5de4d}html[data-theme=neotokyo] .layout-toggle[aria-pressed=true]{color:#08101a;background:#63d5de;border-color:#63d5de;box-shadow:0 0 16px #63d5de40}html[data-theme=neotokyo] .theme-option[aria-pressed=true]{background:var(--vermillion);color:#08101a;box-shadow:0 0 16px #f0448e47}html[data-theme=neotokyo] .wordmark{font-family:var(--sans);letter-spacing:-.04em;font-weight:750}html[data-theme=neotokyo] .wordmark em{color:#63d5de}html[data-theme=neotokyo] .hero{background:0 0;grid-template-columns:minmax(0,700px) minmax(220px,330px);justify-content:space-between;align-items:end;height:auto;min-height:100vh;padding-block:210px 86px}html[data-theme=neotokyo] .hero-copy{border-left:3px solid var(--vermillion);background:#040912d1;border-bottom:1px solid #63d5de52;padding:36px 40px 40px;position:relative}html[data-theme=neotokyo] .hero-copy:before{content:"東京 / 夜";color:#63d5dea3;font-family:var(--mono);letter-spacing:.14em;font-size:.58rem;position:absolute;top:15px;right:18px}html[data-theme=neotokyo] .hero h1{max-width:640px;font-family:var(--sans);letter-spacing:-.07em;margin-block:25px 28px;font-size:clamp(4rem,7.2vw,7.2rem);font-weight:760;line-height:.9}html[data-theme=neotokyo] .section-heading h2,html[data-theme=neotokyo] .contact-section h2,html[data-theme=neotokyo] .project-main h3,html[data-theme=neotokyo] .experience-title h3,html[data-theme=neotokyo] .interest-grid h3,html[data-theme=neotokyo] .now-grid h3{font-family:var(--sans);letter-spacing:-.045em;font-weight:720}html[data-theme=neotokyo] .work-section:before,html[data-theme=neotokyo] .experience-section:before,html[data-theme=neotokyo] .about-section:before,html[data-theme=neotokyo] .now-section:before{display:none}html[data-theme=neotokyo] .work-section,html[data-theme=neotokyo] .experience-section,html[data-theme=neotokyo] .about-section,html[data-theme=neotokyo] .now-section,html[data-theme=neotokyo] .contact-section{min-height:100vh;padding-block:clamp(130px,16vh,190px)}html[data-theme=neotokyo] .hero{display:flex}html[data-theme=neotokyo] .neo-section-layout{z-index:1;width:min(70%,826px);display:block;position:relative}html[data-theme=neotokyo] .neo-layout-left{margin-right:auto}html[data-theme=neotokyo] .neo-layout-right{margin-left:auto}html[data-theme=neotokyo] .work-section .neo-section-layout{width:min(62%,732px)}html[data-theme=neotokyo] .work-section .project-main{grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:48px}html[data-theme=neotokyo] .work-section .project-title-lockup{flex-direction:column;align-items:flex-start;gap:14px}html[data-theme=neotokyo] .now-section .neo-section-layout{width:min(66%,760px)}html[data-theme=neotokyo] .about-section .neo-section-layout{width:min(78%,920px)}html[data-theme=neotokyo] .neo-reading-surface{background:#040912ed;border:1px solid #63d5de38;padding:clamp(34px,4vw,54px);display:block;position:relative;box-shadow:0 28px 80px #0000006b}html[data-theme=neotokyo] .about-section .neo-reading-surface{padding:clamp(46px,5vw,68px)}html[data-theme=neotokyo] .neo-layout-left>.neo-reading-surface{border-right-color:#f0448e80;box-shadow:24px 0 64px #0006,0 28px 80px #0000005c}html[data-theme=neotokyo] .neo-layout-right>.neo-reading-surface{border-left-color:#63d5de8a;box-shadow:-24px 0 64px #0006,0 28px 80px #0000005c}html[data-theme=neotokyo] .neo-hero-layout{align-self:end}html[data-theme=neotokyo] .hero .neo-reading-surface{box-shadow:none;background:0 0;border:0;gap:18px;padding:0;display:grid}html[data-theme=neotokyo] .contact-section .neo-reading-surface{gap:46px;display:grid}html[data-theme=neotokyo] .contact-section{display:block}html[data-theme=neotokyo] .section-heading{border-top:1px solid #63d5de52;grid-template-columns:minmax(120px,.28fr) 1fr;padding-top:22px}html[data-theme=neotokyo] .section-heading.compact{padding-top:22px}html[data-theme=neotokyo] .section-heading h2,html[data-theme=neotokyo] .contact-section h2{box-shadow:none;color:#f5f8f9;text-shadow:0 0 12px #f0448e2e;background:0 0;border:0;padding:0;line-height:.94;display:block}html[data-theme=neotokyo] .title-en{min-width:0}html[data-theme=neotokyo] .jp-title{display:none}html[data-theme=neotokyo] .project-card,html[data-theme=neotokyo] .experience-list,html[data-theme=neotokyo] .interest-grid article,html[data-theme=neotokyo] .now-grid article{-webkit-backdrop-filter:none;backdrop-filter:none;background:#050b15e6;border-color:#63d5de38}html[data-theme=neotokyo] .interest-grid{background:0 0;border:0;grid-template-columns:repeat(6,1fr);gap:10px}html[data-theme=neotokyo] .interest-grid article{border:1px solid #63d5de38;grid-column:span 3}html[data-theme=neotokyo] .project-card{border-left:3px solid var(--vermillion)}html[data-theme=neotokyo] .project-card:hover{border-color:#f0448e8a;box-shadow:0 22px 64px #0000003d,0 0 24px #f0448e14}html[data-theme=neotokyo] .button-primary{border-color:var(--vermillion);background:var(--vermillion);color:#08101a}html[data-theme=neotokyo] .button-primary:hover{background:#63d5de;border-color:#63d5de}html[data-theme=neotokyo] .tag-list span{background:#63d5de0d}html[data-theme=pokemon]{--pokemon-route-content:min(1060px, calc(100vw - 160px));--paper:#e9f2d2;--paper-light:#fffdf0;--ink:#173f36;--ink-soft:#4d6d61;--line:#173f3640;--vermillion:#e54b38;--vermillion-dark:#b82f31;--blossom:#f4cb47;--moss:#348b48;--sky-color:#86d7e5}html[data-theme=pokemon] body{background:linear-gradient(#86d7e5 0,#b8e9df 32vh,#dceea9 62vh,#b7d86f 100%)}html[data-theme=pokemon] .site-shell{isolation:isolate}html[data-theme=pokemon] .section-wrap{width:var(--pokemon-route-content)}html[data-theme=pokemon] main,html[data-theme=pokemon] .site-footer{z-index:1;position:relative}.pokemon-route-scene{display:contents}.pokemon-world{z-index:-4;pointer-events:none;background:linear-gradient(#73cee2 0 44%,#b9e9db 44% 58%,#0000 58%),#a8cf68;position:fixed;inset:0;overflow:hidden}.pokemon-world:after{content:"";opacity:.32;mix-blend-mode:soft-light;background-color:#0000;background-image:linear-gradient(90deg,#ffffff1f 1px,#0000 1px),linear-gradient(#ffffff1a 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:8px 8px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:absolute;inset:0}.pokemon-sprite-pair{isolation:isolate;flex:none;place-items:center;display:inline-grid;position:relative}.pokemon-sprite-pair img{object-fit:contain;width:100%;height:100%;image-rendering:pixelated;filter:drop-shadow(3px 4px #173f362e);grid-area:1/1;transition:opacity .16s steps(2,end),transform .22s steps(3,end),filter .22s}.pokemon-sprite-shiny,.pokemon-side-encounter[data-shiny=true] .pokemon-sprite-normal{opacity:0}.pokemon-side-encounter[data-shiny=true] .pokemon-sprite-shiny{opacity:1}.pokemon-cloud{background:#fffff4eb;width:128px;height:34px;animation:34s linear infinite pokemon-cloud-drift;position:absolute;box-shadow:24px -18px #fffff4eb,56px -10px #fffff4eb,96px 7px #fffff4eb,16px 20px #ebfaeec7}.pokemon-cloud-one{top:12%;left:-180px}.pokemon-cloud-two{animation-duration:43s;animation-delay:-23s;top:28%;left:42%;scale:.68}.pokemon-cloud-three{animation-duration:29s;animation-delay:-12s;top:7%;left:78%;scale:.46}.pokemon-distant-trees{filter:saturate(.9);opacity:.9;background:radial-gradient(circle at 5% 72%,#579e4d 0 36px,#0000 37px),radial-gradient(circle at 13% 58%,#4d9747 0 52px,#0000 53px),radial-gradient(circle at 24% 72%,#65aa50 0 42px,#0000 43px),radial-gradient(circle at 37% 52%,#4e9747 0 62px,#0000 63px),radial-gradient(circle at 52% 67%,#67aa51 0 48px,#0000 49px),radial-gradient(circle at 66% 54%,#4c9344 0 64px,#0000 65px),radial-gradient(circle at 81% 70%,#64a94f 0 46px,#0000 47px),radial-gradient(circle at 95% 56%,#4e9847 0 58px,#0000 59px),linear-gradient(#0000 58%,#4d9447 58%);height:130px;position:absolute;bottom:39%;left:-3%;right:-3%}.pokemon-route-ground{background-color:#7fbc55;background-image:linear-gradient(45deg,#307f3a33 25%,#0000 25% 75%,#307f3a33 75%),linear-gradient(45deg,#ffffff1a 25%,#0000 25% 75%,#ffffff1a 75%),none;background-position:0 0,8px 8px;background-repeat:repeat,repeat,repeat;background-size:16px 16px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;border-top:8px solid #508f46;position:absolute;inset:58% 0 0;overflow:hidden}.pokemon-route-path{background-color:#efd18b;background-image:linear-gradient(90deg,#9c703e1f 1px,#0000 1px),linear-gradient(#9c703e1f 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:14px 14px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;border-inline:8px solid #d4b26c;width:28%;height:132%;position:absolute;top:-12%;left:38%;transform:perspective(360px)rotateX(16deg)}.pokemon-route-water{background-color:#6bc4d7;background-image:linear-gradient(135deg,#fff6 12%,#0000 12% 48%,#ffffff40 48% 60%,#0000 60%),none;background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:28px 18px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;border:7px solid #5a9dc4;width:38%;height:76%;animation:2.8s steps(4,end) infinite pokemon-water-shift;position:absolute;bottom:-10%;right:-5%;transform:skew(-8deg)}.pokemon-grass-patch{transform-origin:bottom;background:linear-gradient(65deg,#0000 38%,#2f813f 39% 51%,#0000 52%) 0 0/20px 48px,linear-gradient(115deg,#0000 38%,#3f9547 39% 51%,#0000 52%) 10px 6px/22px 46px;width:96px;height:54px;animation:1.8s steps(3,end) infinite pokemon-grass-sway;position:absolute}.pokemon-grass-one{top:18%;left:8%}.pokemon-grass-two{animation-delay:-.8s;top:58%;left:23%}.pokemon-grass-three{animation-delay:-1.3s;top:20%;right:8%}.pokemon-route-sign{top:118px;left:max(26px, calc((100vw - var(--content)) / 2 + 14px));z-index:-1;color:#173f36;width:162px;font-family:var(--mono);pointer-events:none;background:#fff8cf;border:4px solid #173f36;border-radius:8px;padding:14px 16px 12px;line-height:1;display:grid;position:fixed;transform:rotate(-2deg);box-shadow:inset 0 0 0 3px #efb83d,7px 8px #173f3647}.pokemon-route-sign:before,.pokemon-route-sign:after{content:"";background:#765437;width:8px;height:40px;position:absolute;top:100%}.pokemon-route-sign:before{left:28px}.pokemon-route-sign:after{right:28px}.pokemon-route-sign span{letter-spacing:.24em;font-size:.58rem}.pokemon-route-sign strong{color:#d94338;letter-spacing:-.09em;margin-top:5px;font-size:2.7rem}.pokemon-route-sign small{letter-spacing:.08em;border-top:2px solid #173f3633;margin-top:5px;padding-top:8px;font-size:.46rem}.pokemon-side-encounter{--encounter-size:clamp(70px, 7vw, 128px);--attack-x:26px;--attack-rotate:8deg;--move-animation:pokemon-move-endeavor;--move-duration:.82s;--move-rotate:12deg;--move-return-x:-42px;--move-x:62px;--pokemon-cursor:url(/pokemon/poke-ball.png) 15 15;--recovery-x:6px;--recovery-rotate:2deg;--sprite-scale:1;--windup-x:-8px;--windup-rotate:-3deg;z-index:2;width:var(--encounter-size);aspect-ratio:1;opacity:.78;pointer-events:auto;cursor:var(--pokemon-cursor), pointer;filter:saturate(.94);place-items:center;display:grid;position:fixed;top:56%}.pokemon-side-encounter[data-side=left]{left:max(4px, calc((100vw - var(--pokemon-route-content)) / 2 - var(--encounter-size) - 8px));animation:.62s steps(7,end) both pokemon-enter-left}.pokemon-side-encounter[data-side=right]{--attack-x:-26px;--attack-rotate:-8deg;--move-rotate:-12deg;--move-return-x:42px;--move-x:-62px;--recovery-x:-6px;--recovery-rotate:-2deg;--windup-x:8px;--windup-rotate:3deg;right:max(4px, calc((100vw - var(--pokemon-route-content)) / 2 - var(--encounter-size) - 8px));animation:.62s steps(7,end) both pokemon-enter-right}.pokemon-side-encounter[data-move=phantom-force]{--move-animation:pokemon-move-phantom-force;--move-duration:.98s}.pokemon-side-encounter[data-move=volt-switch]{--move-animation:pokemon-move-volt-switch;--move-duration:.9s}.pokemon-side-encounter[data-move=splash]{--move-animation:pokemon-move-splash;--move-duration:.96s}.pokemon-side-encounter[data-move=dig]{--move-animation:pokemon-move-dig;--move-duration:1.08s}.pokemon-side-encounter[data-move=fly]{--move-animation:pokemon-move-fly;--move-duration:1.25s}.pokemon-side-encounter[data-move=phantom-force] .pokemon-attack-burst{border-color:#9a6ccdd1}.pokemon-side-encounter[data-move=volt-switch] .pokemon-attack-burst{border-color:#ffe049e6}.pokemon-side-encounter[data-move=splash] .pokemon-attack-burst{border-color:#4ab0dcd6}.pokemon-side-encounter[data-move=dig] .pokemon-attack-burst{border-color:#99693bd1}.pokemon-side-encounter[data-move=fly] .pokemon-attack-burst{border-color:#dcf8ffeb}.pokemon-side-encounter[data-species=torchic],.pokemon-side-encounter[data-species=feebas]{top:58%}.pokemon-side-encounter[data-species=torchic]{--sprite-scale:1.1}.pokemon-side-encounter[data-species=feebas]{--sprite-scale:1.22}.pokemon-side-encounter[data-species=aegislash]{--sprite-scale:.82;top:35%}.pokemon-side-encounter[data-species=rotom]{--sprite-scale:.82;top:48%}.pokemon-side-encounter[data-species=sylveon]{--sprite-scale:.8;top:39%}.pokemon-side-encounter[data-species=rayquaza]{--sprite-scale:.82;top:45%}.pokemon-side-encounter .pokemon-sprite-pair{width:100%;height:100%;scale:var(--sprite-scale)}.pokemon-side-encounter .pokemon-sprite-pair img{object-fit:contain;filter:drop-shadow(0 8px #173f361f)drop-shadow(5px 7px #173f362e)}.pokemon-side-encounter[data-motion=bob] .pokemon-sprite-pair{animation:2.1s steps(6,end) infinite pokemon-idle-bob}.pokemon-side-encounter[data-motion=float] .pokemon-sprite-pair{animation:2.8s steps(8,end) infinite pokemon-idle-float}.pokemon-side-encounter[data-motion=sway] .pokemon-sprite-pair{animation:2.4s steps(7,end) infinite pokemon-idle-sway}.pokemon-side-encounter[data-animation=gif] .pokemon-sprite-pair{animation:none}.pokemon-side-encounter:focus-visible{outline-offset:5px;border-radius:50%;outline:3px dashed #173f36ad}.pokemon-attack-burst{z-index:-1;aspect-ratio:1;opacity:0;border:9px double #f4cb47db;border-radius:50%;width:66%;position:absolute;scale:.2}.pokemon-capture-ball{--capture-ball:url(/pokemon/poke-ball.png);--capture-arc-x:50vw;--capture-arc-y:calc(50vh - 76px);--capture-start-x:50vw;--capture-start-y:50vh;--capture-target-x:50vw;--capture-target-y:50vh;z-index:60;aspect-ratio:1;background:var(--capture-ball) center / contain no-repeat;width:30px;image-rendering:pixelated;pointer-events:none;filter:drop-shadow(0 4px #173f3638)drop-shadow(3px 5px #173f362e);animation:1.28s steps(16,end) both pokemon-capture-throw;position:fixed;top:0;left:0}.pokemon-capture-ball:before,.pokemon-capture-ball:after{aspect-ratio:1;content:"";opacity:0;pointer-events:none;border-radius:50%;position:absolute;top:50%;left:50%}.pokemon-capture-ball:before{border:5px double #ef4340;width:34px;animation:1.28s steps(10,end) both pokemon-capture-flash;box-shadow:0 0 0 5px #fffdf0d1,0 0 0 10px #ef434038}.pokemon-capture-ball:after{background:#fffdf0;width:8px;animation:1.28s steps(8,end) both pokemon-capture-sparks;box-shadow:-18px 0 #f4cb47,18px 0 #f4cb47,0 -18px #fffdf0,0 18px #fffdf0}.pokemon-runaway-poof{z-index:4;pointer-events:none;position:absolute;inset:0}.pokemon-runaway-poof:before{content:"";opacity:0;background:#fffdf0;border:2px solid #4d6d61;border-radius:3px;width:20px;height:16px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.2);box-shadow:-24px 3px 0 -1px #fffdf0,-24px 3px 0 1px #4d6d61,24px 2px 0 -1px #fffdf0,24px 2px 0 1px #4d6d61,-11px -17px 0 -1px #fffdf0,-11px -17px 0 1px #4d6d61,11px -15px 0 -1px #fffdf0,11px -15px 0 1px #4d6d61,-9px 17px 0 -1px #fffdf0,-9px 17px 0 1px #4d6d61,13px 16px 0 -1px #fffdf0,13px 16px 0 1px #4d6d61}.pokemon-runaway-poof i{--poof-delay:0s;--poof-x:-42px;--poof-y:-36px;aspect-ratio:1;opacity:0;background:#fff8cf;border:2px solid #4d6d61;width:9px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.2)}.pokemon-runaway-poof i:nth-child(2){--poof-delay:35ms;--poof-x:45px;--poof-y:-32px;width:12px}.pokemon-runaway-poof i:nth-child(3){--poof-delay:70ms;--poof-x:-55px;--poof-y:2px;width:7px}.pokemon-runaway-poof i:nth-child(4){--poof-delay:20ms;--poof-x:53px;--poof-y:8px;width:8px}.pokemon-runaway-poof i:nth-child(5){--poof-delay:90ms;--poof-x:-36px;--poof-y:40px;width:11px}.pokemon-runaway-poof i:nth-child(6){--poof-delay:55ms;--poof-x:34px;--poof-y:44px;width:7px}.pokemon-runaway-poof i:nth-child(7){--poof-delay:.105s;--poof-x:-7px;--poof-y:-52px;width:8px}.pokemon-runaway-poof i:nth-child(8){--poof-delay:75ms;--poof-x:8px;--poof-y:54px;width:10px}.pokemon-shiny-burst{z-index:2;pointer-events:none;position:absolute;inset:0}.pokemon-side-encounter[data-side=right] .pokemon-shiny-burst{transform:translate(-20px)}.pokemon-shiny-burst i{--star-delay:0s;--star-x:-50px;--star-y:-42px;aspect-ratio:1;opacity:0;clip-path:polygon(50% 0,61% 36%,100% 50%,61% 63%,50% 100%,39% 63%,0 50%,39% 36%);filter:drop-shadow(2px 2px #d9892b)drop-shadow(-1px -1px #fffdf0);width:13px;animation:pokemon-shiny-star .88s steps(7, end) var(--star-delay) both;background:#fff06a;position:absolute;top:50%;left:50%}.pokemon-shiny-burst i:nth-child(2){--star-delay:55ms;--star-x:45px;--star-y:-35px;width:10px}.pokemon-shiny-burst i:nth-child(3){--star-delay:90ms;--star-x:-58px;--star-y:2px;width:9px}.pokemon-shiny-burst i:nth-child(4){--star-delay:.125s;--star-x:50px;--star-y:10px;width:14px}.pokemon-shiny-burst i:nth-child(5){--star-delay:.155s;--star-x:-35px;--star-y:48px;width:11px}.pokemon-shiny-burst i:nth-child(6){--star-delay:.185s;--star-x:29px;--star-y:53px;width:8px}.pokemon-shiny-burst i:nth-child(7){--star-delay:.215s;--star-x:-8px;--star-y:-57px;width:8px}.pokemon-shiny-burst i:nth-child(8){--star-delay:.245s;--star-x:5px;--star-y:60px;width:12px}html[data-theme=pokemon] .paper-noise{opacity:.32;mix-blend-mode:soft-light;background-image:radial-gradient(circle,#173f3638 0 1px,#0000 1px),linear-gradient(90deg,#0000 0 75%,#ffffff24 75%);background-size:7px 7px,12px 12px}html[data-theme=pokemon] .site-header{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fffdf0f5;border:3px solid #173f36;border-radius:12px;min-height:68px;top:14px;box-shadow:0 6px #173f364d}html[data-theme=pokemon] .wordmark{font-family:var(--sans);letter-spacing:-.055em;font-weight:900}html[data-theme=pokemon] .wordmark em{color:#e54b38;font-family:var(--mono);font-weight:800}html[data-theme=pokemon] .main-nav{gap:24px;font-weight:800}html[data-theme=pokemon] .main-nav a:after{background:#e54b38;height:3px;bottom:-5px}html[data-theme=pokemon] .theme-selector,html[data-theme=pokemon] .layout-toggle{background:#eef4d9;border:2px solid #173f36;border-radius:8px}html[data-theme=pokemon] .layout-toggle[aria-pressed=true]{color:#173f36;background:#f4cb47;border-color:#173f36}html[data-theme=pokemon] .theme-option{border-radius:5px;font-weight:800}html[data-theme=pokemon] .theme-option[aria-pressed=true]{color:#fffdf0;background:#e54b38;box-shadow:inset 0 -3px #711b1d4d}html[data-theme=pokemon] .hero{background:0 0;grid-template-columns:minmax(0,780px) minmax(180px,1fr);gap:48px;height:max(100vh,820px);min-height:920px}html[data-theme=pokemon] .hero .neo-reading-surface{display:block}html[data-theme=pokemon] .hero-copy{background:#fffdf0f5;border:4px solid #173f36;border-radius:15px;max-width:690px;padding:clamp(34px,5vw,58px);position:relative;box-shadow:inset 0 0 0 4px #e1ebca,12px 14px #173f3645}html[data-theme=pokemon] .hero-copy:before{content:"TRAINER CARD · ID 0386";color:#fffdf0;width:fit-content;font-family:var(--mono);letter-spacing:.09em;background:#173f36;border-radius:5px;margin-bottom:24px;padding:6px 9px;font-size:.55rem;font-weight:800;display:block}html[data-theme=pokemon] .hero h1{font-family:var(--sans);letter-spacing:-.075em;text-shadow:3px 3px #f4cb47;margin-block:20px 28px;font-size:clamp(4rem,7vw,6.9rem);font-weight:950;line-height:.9}html[data-theme=pokemon] .eyebrow,html[data-theme=pokemon] .section-kicker{color:#b82f31;font-weight:800}html[data-theme=pokemon] .button,html[data-theme=pokemon] .text-link{font-weight:800}html[data-theme=pokemon] .button-primary{color:#fffdf0;background:#e54b38;border:3px solid #173f36;border-radius:8px;box-shadow:0 5px #8f2d30}html[data-theme=pokemon] .button-primary:hover{color:#173f36;background:#f4cb47;border-color:#173f36;box-shadow:0 2px #a58225}html[data-theme=pokemon] .work-section,html[data-theme=pokemon] .experience-section,html[data-theme=pokemon] .about-section,html[data-theme=pokemon] .now-section,html[data-theme=pokemon] .contact-section{border-top:4px solid #173f368f;padding-block:clamp(128px,15vh,180px)}html[data-theme=pokemon] .work-section:before,html[data-theme=pokemon] .experience-section:before,html[data-theme=pokemon] .about-section:before,html[data-theme=pokemon] .now-section:before{background:linear-gradient(45deg,#348b4814 25%,#0000 25% 75%,#348b4814 75%) 0 0/18px 18px,#fffdf0bd}html[data-theme=pokemon] .section-heading h2,html[data-theme=pokemon] .contact-section h2,html[data-theme=pokemon] .project-main h3,html[data-theme=pokemon] .experience-title h3,html[data-theme=pokemon] .interest-grid h3,html[data-theme=pokemon] .now-grid h3{font-family:var(--sans);letter-spacing:-.055em;font-weight:900}html[data-theme=pokemon] .section-heading h2,html[data-theme=pokemon] .contact-section h2{color:#173f36;text-shadow:3px 3px #f4cb47d1}html[data-theme=pokemon] .section-heading>.section-kicker{color:#173f36;background:#f4cb47;border:2px solid #173f36;border-radius:6px;width:fit-content;padding:7px 10px}html[data-theme=pokemon] .project-card,html[data-theme=pokemon] .experience-list,html[data-theme=pokemon] .interest-grid article,html[data-theme=pokemon] .now-grid article{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fffdf0f5;border:3px solid #173f36;border-radius:12px;box-shadow:7px 8px #173f362e}html[data-theme=pokemon] .interest-grid{background:0 0;border:0;gap:14px}html[data-theme=pokemon] .interest-grid article{position:relative;overflow:hidden}html[data-theme=pokemon] .interest-grid article:before{background:#e54b38;border-radius:999px;width:42px;height:6px;box-shadow:14px 0 #f4cb47}html[data-theme=pokemon] .now-label span{background:linear-gradient(#e54b38 0 45%,#173f36 45% 55%,#fffdf0 55%);border:2px solid #173f36}html[data-theme=pokemon] .now-resources a,html[data-theme=pokemon] .now-theme-picker{background:#eef4d9;border-width:2px;border-color:#173f36;border-radius:8px}html[data-theme=pokemon] .now-theme-picker button{border-radius:5px;font-weight:800}html[data-theme=pokemon] .now-theme-picker button[aria-pressed=true]{color:#fffdf0;background:#e54b38;border-color:#173f36}html[data-theme=pokemon] .project-card{overflow:hidden}html[data-theme=pokemon] .project-topline{color:#fffdf0;background:#348b48;border-bottom:3px solid #173f36;margin:-34px -34px 0;padding:15px 34px}html[data-theme=pokemon] .project-topline span:first-child{color:#f4cb47}html[data-theme=pokemon] .project-title-lockup img{image-rendering:pixelated;background:#fffdf0;border:3px solid #173f36;box-shadow:3px 3px #173f363d}html[data-theme=pokemon] .tag-list span{background:#eef4d9;border:2px solid #173f36;border-radius:999px;font-weight:700}html[data-theme=pokemon] .experience-list{overflow:hidden}html[data-theme=pokemon] .experience-list article{border-bottom:2px dashed #173f3659;padding-inline:34px;transition:background .18s steps(2,end),transform .18s steps(2,end)}html[data-theme=pokemon] .experience-list article:last-child{border-bottom:0}html[data-theme=pokemon] .site-footer{color:#173f36;border-top:3px solid #173f36;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;font-weight:700;display:grid}.pokemon-fan-note{color:#4d6d61;text-align:center;justify-self:center;font-size:.54rem}@media (hover:hover){.pokemon-side-encounter:not([data-animation=gif]):hover .pokemon-sprite-pair{animation:var(--move-animation) var(--move-duration) steps(8, end) infinite}.pokemon-side-encounter:not([data-animation=gif]):hover .pokemon-attack-burst{animation:pokemon-attack-burst var(--move-duration) steps(7, end) infinite}html[data-theme=pokemon] .project-card:hover,html[data-theme=pokemon] .interest-grid article:hover,html[data-theme=pokemon] .now-grid article:hover{background:#fffdf0;border-color:#173f36;transform:translate(4px,4px);box-shadow:3px 4px #173f3647}html[data-theme=pokemon] .experience-list article:hover{background:#fff4be;transform:translate(7px)}}.pokemon-side-encounter:not([data-animation=gif]):focus-visible .pokemon-sprite-pair{animation:var(--move-animation) var(--move-duration) steps(8, end) 1 both}.pokemon-side-encounter:not([data-animation=gif]):focus-visible .pokemon-attack-burst{animation:pokemon-attack-burst var(--move-duration) steps(7, end) 1 both}.pokemon-side-encounter[data-state=capturing],.pokemon-side-encounter[data-state=captured]{pointer-events:none;animation:none}.pokemon-side-encounter[data-state=capturing] .pokemon-sprite-pair{animation:.72s steps(8,end) both pokemon-capture-target}.pokemon-side-encounter[data-state=captured] .pokemon-sprite-pair{opacity:0;animation:none}.pokemon-side-encounter[data-state=capturing] .pokemon-attack-burst,.pokemon-side-encounter[data-state=capturing] .pokemon-shiny-burst,.pokemon-side-encounter[data-state=capturing] .pokemon-runaway-poof,.pokemon-side-encounter[data-state=captured] .pokemon-attack-burst,.pokemon-side-encounter[data-state=captured] .pokemon-shiny-burst,.pokemon-side-encounter[data-state=captured] .pokemon-runaway-poof{display:none}.pokemon-side-encounter[data-state=exiting]{pointer-events:none;animation:none}.pokemon-side-encounter[data-state=exiting] .pokemon-sprite-pair{animation:.48s steps(6,end) both pokemon-run-away}.pokemon-side-encounter[data-state=exiting] .pokemon-attack-burst,.pokemon-side-encounter[data-state=exiting] .pokemon-shiny-burst{display:none}.pokemon-side-encounter[data-state=exiting] .pokemon-runaway-poof:before{animation:.52s steps(6,end) both pokemon-runaway-poof-core}.pokemon-side-encounter[data-state=exiting] .pokemon-runaway-poof i{animation:pokemon-runaway-poof-particle .42s steps(5, end) var(--poof-delay) both}@keyframes pokemon-cloud-drift{0%{transform:translate(0)}to{transform:translate(calc(100vw + 360px))}}@keyframes pokemon-capture-throw{0%{opacity:1;transform:translate3d(calc(var(--capture-start-x) - 15px), calc(var(--capture-start-y) - 15px), 0) rotate(0) scale(.72)}20%{opacity:1;transform:translate3d(calc(var(--capture-arc-x) - 15px), calc(var(--capture-arc-y) - 15px), 0) rotate(300deg) scale(.9)}38%{opacity:1;transform:translate3d(calc(var(--capture-target-x) - 15px), calc(var(--capture-target-y) - 15px), 0) rotate(540deg) scale(1)}46%{transform:translate3d(calc(var(--capture-target-x) - 15px), calc(var(--capture-target-y) - 29px), 0) rotate(570deg) scale(1.06)}54%,66%{opacity:1;transform:translate3d(calc(var(--capture-target-x) - 15px), calc(var(--capture-target-y) - 15px), 0) rotate(600deg) scale(1)}73%{transform:translate3d(calc(var(--capture-target-x) - 20px), calc(var(--capture-target-y) - 15px), 0) rotate(580deg) scale(1)}81%{transform:translate3d(calc(var(--capture-target-x) - 10px), calc(var(--capture-target-y) - 15px), 0) rotate(620deg) scale(1)}89%{transform:translate3d(calc(var(--capture-target-x) - 18px), calc(var(--capture-target-y) - 15px), 0) rotate(588deg) scale(1)}96%{opacity:1;transform:translate3d(calc(var(--capture-target-x) - 13px), calc(var(--capture-target-y) - 15px), 0) rotate(608deg) scale(.94)}to{opacity:0;transform:translate3d(calc(var(--capture-target-x) - 15px), calc(var(--capture-target-y) - 15px), 0) rotate(600deg) scale(.72)}}@keyframes pokemon-capture-flash{0%,36%{opacity:0;transform:translate(-50%,-50%)scale(.2)}43%{opacity:1;transform:translate(-50%,-50%)scale(.7)}58%{opacity:.92;transform:translate(-50%,-50%)scale(2.15)}68%,to{opacity:0;transform:translate(-50%,-50%)scale(2.8)}}@keyframes pokemon-capture-sparks{0%,39%{opacity:0;transform:translate(-50%,-50%)rotate(0)scale(.2)}48%{opacity:1;transform:translate(-50%,-50%)rotate(45deg)scale(1.2)}63%{opacity:0;transform:translate(-50%,-50%)rotate(90deg)scale(2.2)}to{opacity:0}}@keyframes pokemon-capture-target{0%,36%{opacity:1;filter:brightness()saturate();transform:translateY(0)scale(1)}46%{opacity:1;filter:brightness(4.5)saturate(0);transform:translateY(0)scale(1.12)}62%{opacity:.9;filter:brightness(5)saturate(0);transform:translateY(5px)scale(.34)}72%,to{opacity:0;filter:brightness(5)saturate(0);transform:translateY(8px)scale(.02)}}@keyframes pokemon-run-away{0%{opacity:1;transform:translateY(0)scale(1)}24%{opacity:1;transform:translateY(4px)scale(1.08,.88)}46%{opacity:0;transform:translateY(12px)scale(.18)}to{opacity:0;transform:translateY(12px)scale(.18)}}@keyframes pokemon-runaway-poof-core{0%{opacity:0;transform:translate(-50%,-50%)scale(.2)}22%{opacity:1;transform:translate(-50%,-50%)scale(.72)}58%{opacity:1;transform:translate(-50%,-50%)scale(1.12)}to{opacity:0;transform:translate(-50%,-50%)scale(1.48)}}@keyframes pokemon-runaway-poof-particle{0%{opacity:0;transform:translate(-50%,-50%)scale(.2)}28%{opacity:1;transform:translate(-50%,-50%)scale(1)}78%{opacity:.9;transform:translate(calc(-50% + var(--poof-x)), calc(-50% + var(--poof-y))) scale(.85)}to{opacity:0;transform:translate(calc(-50% + var(--poof-x)), calc(-50% + var(--poof-y))) scale(.45)}}@keyframes pokemon-enter-left{0%{opacity:0;transform:translate(-72px,22px)scale(.62)}72%{opacity:.88;transform:translate(8px,-4px)scale(1.04)}to{opacity:.78;transform:none}}@keyframes pokemon-enter-right{0%{opacity:0;transform:translate(72px,22px)scale(.62)}72%{opacity:.88;transform:translate(-8px,-4px)scale(1.04)}to{opacity:.78;transform:none}}@keyframes pokemon-idle-bob{0%,to{transform:translateY(0)}42%{transform:translateY(-7px)scale(1.02,.98)}65%{transform:translateY(1px)scale(.98,1.02)}}@keyframes pokemon-idle-float{0%,to{transform:translate(0)rotate(-2deg)}50%{transform:translate(3px,-9px)rotate(3deg)}}@keyframes pokemon-idle-sway{0%,to{transform-origin:50% 82%;transform:rotate(-2deg)translateY(0)}50%{transform-origin:50% 82%;transform:rotate(3deg)translateY(-4px)}}@keyframes pokemon-water-shift{0%{background-position:0 0}to{background-position:28px 0}}@keyframes pokemon-grass-sway{0%,to{transform:skew(-3deg)}50%{transform:skew(5deg)}}@keyframes pokemon-move-endeavor{0%,to{transform:translate(0)rotate(0)scale(1)}16%{transform:translate(var(--move-return-x), 5px) rotate(var(--windup-rotate)) scale(.9, 1.08)}34%{transform:translate(var(--move-x), -7px) rotate(var(--move-rotate)) scale(1.14, .9)}50%{transform:translate(var(--move-return-x), 2px) rotate(var(--windup-rotate)) scale(.94, 1.05)}66%{transform:translate(var(--move-x), -4px) rotate(var(--move-rotate)) scale(1.1, .93)}82%{transform:translate(var(--recovery-x), 1px) rotate(var(--recovery-rotate)) scale(.98, 1.02)}}@keyframes pokemon-move-phantom-force{0%,to{opacity:1;transform:translate(0)rotate(0)scale(1)}20%{opacity:0;transform:translateY(-5px)rotate(-10deg)scale(.55)}48%{opacity:0;transform:translate(var(--move-return-x), -18px) rotate(var(--move-rotate)) scale(.7)}62%{opacity:1;transform:translate(var(--move-x), -4px) rotate(var(--move-rotate)) scale(1.2, .88)}80%{transform:translate(var(--recovery-x), 1px) rotate(var(--recovery-rotate)) scale(.98, 1.04)}}@keyframes pokemon-move-volt-switch{0%,to{opacity:1;transform:translate(0)rotate(0)scale(1)}18%{transform:translate(var(--move-x), -22px) rotate(var(--move-rotate)) scale(.88)}34%{transform:translate(var(--move-return-x), 14px) rotate(var(--windup-rotate)) scale(1.08)}48%{opacity:0;transform:translate(var(--move-x), -74px) rotate(var(--move-rotate)) scale(.45)}62%{opacity:0;transform:translate(var(--move-return-x), 48px) rotate(var(--windup-rotate)) scale(.55)}78%{opacity:1;transform:translateY(-12px)scale(1.16)}}@keyframes pokemon-move-splash{0%,to{transform:translateY(0)rotate(0)scale(1)}25%{transform:translateY(-70px)rotate(-12deg)scale(.94,1.06)}42%{transform:translateY(5px)rotate(5deg)scale(1.15,.82)}64%{transform:translateY(-38px)rotate(10deg)scale(.97,1.03)}80%{transform:translateY(3px)rotate(-3deg)scale(1.08,.9)}}@keyframes pokemon-move-dig{0%,to{opacity:1;transform:translateY(0)scale(1)}18%{transform:translateY(14px)scale(1.08,.86)}36%{opacity:0;transform:translateY(72px)scale(.32)}62%{opacity:0;transform:translateY(72px)scale(.32)}74%{opacity:0;transform:translateY(-52px)scale(.72)}84%{opacity:1;transform:translateY(-14px)scale(1.14)}}@keyframes pokemon-move-fly{0%,to{opacity:1;transform:translate(0)rotate(0)scale(1)}18%{transform:translate(var(--move-x), -48px) rotate(var(--move-rotate)) scale(.92)}36%{opacity:0;transform:translate(var(--move-x), -190px) rotate(var(--move-rotate)) scale(.58)}56%{opacity:0;transform:translate(var(--move-return-x), 130px) rotate(var(--windup-rotate)) scale(.62)}74%{opacity:1;transform:translate(var(--move-return-x), -28px) rotate(var(--windup-rotate)) scale(1.18)}88%{transform:translateY(4px)scale(.96,1.04)}}@keyframes pokemon-attack-burst{0%{opacity:0;transform:scale(.2)rotate(-35deg)}52%{opacity:.9;transform:scale(1.06)rotate(10deg)}to{opacity:0;transform:scale(1.34)rotate(48deg)}}@keyframes pokemon-shiny-star{0%,14%{opacity:0;transform:translate(-50%,-50%)rotate(-25deg)scale(.15)}34%{opacity:1;transform:translate(-50%,-50%)rotate(5deg)scale(1.5)}72%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--star-x)), calc(-50% + var(--star-y))) rotate(100deg) scale(.35)}}[data-reveal]{opacity:0;transition:opacity .7s cubic-bezier(.2,.72,.2,1),transform .7s cubic-bezier(.2,.72,.2,1);transform:translateY(22px)}[data-reveal].is-visible{opacity:1;transform:translateY(0)}.project-card:nth-child(2),.interest-grid article:nth-child(2){transition-delay:80ms}.interest-grid article:nth-child(3){transition-delay:.16s}.now-grid article:nth-child(2){transition-delay:80ms}.now-grid article:nth-child(3){transition-delay:.16s}@media (width<=900px){:root{--content:min(100% - 36px, 720px)}.site-header{grid-template-columns:1fr auto}.header-actions{gap:10px}.main-nav{display:none}.hero{grid-template-columns:1fr;align-content:center;height:auto;min-height:850px;padding-block:160px 90px}.hero-copy{max-width:680px}.hero h1{max-width:650px}.section-heading,.about-grid{grid-template-columns:1fr;gap:26px}.project-main,.project-bottom,.experience-list article{grid-template-columns:1fr;gap:30px}.project-meta{justify-items:start}.tag-list{justify-content:flex-start}.now-grid article{grid-template-columns:1fr;grid-template-areas:"label""title""detail";row-gap:22px;min-height:260px}.now-grid h3{margin-top:18px}.contact-section{grid-template-columns:1fr;align-items:start}.contact-links{margin-bottom:0}html[data-theme=neotokyo] .site-header{grid-template-columns:1fr auto}html[data-theme=neotokyo] .hero{grid-template-columns:1fr;align-content:end;min-height:100vh;padding-block:170px 72px}html[data-theme=neotokyo] .section-heading{grid-template-columns:1fr}html[data-theme=neotokyo] .neo-sign-stage{display:none}html[data-theme=neotokyo] .hero{flex-direction:column;justify-content:flex-end}html[data-theme=neotokyo] .neo-section-layout{width:100%;margin-inline:0}html[data-theme=neotokyo] .now-section .neo-section-layout,html[data-theme=neotokyo] .work-section .neo-section-layout,html[data-theme=neotokyo] .about-section .neo-section-layout{width:100%}html[data-theme=neotokyo] .neo-mobile-sign{align-items:center;min-height:clamp(170px,28vw,220px);margin-bottom:24px;display:flex}html[data-theme=neotokyo] .neo-layout-left>.neo-mobile-sign{justify-content:flex-end;padding-right:clamp(10px,8vw,60px)}html[data-theme=neotokyo] .neo-layout-right>.neo-mobile-sign{justify-content:flex-start;padding-left:clamp(10px,8vw,60px)}html[data-theme=neotokyo] .neo-mobile-sign .neo-inline-shop-sign{opacity:1;filter:brightness()saturate();transform-origin:50%;position:relative;inset:auto;transform:scale(.9)rotate(-1deg)}html[data-theme=neotokyo] .neo-mobile-sign .neo-sign-bracket{display:none}html[data-theme=neotokyo] .neo-mobile-sign .neo-sign-label{white-space:nowrap;word-break:keep-all;overflow-wrap:normal}html[data-theme=neotokyo] .neo-mobile-sign .neo-sign-intro{width:clamp(100px,18vw,126px);height:clamp(100px,18vw,126px)}html[data-theme=neotokyo] .neo-mobile-sign .neo-sign-intro .neo-sign-label{font-size:clamp(.9rem,2.1vw,1.15rem)}html[data-theme=neotokyo] .neo-mobile-sign .neo-sign-about{width:clamp(74px,12vw,94px);height:clamp(164px,25vw,210px)}html[data-theme=neotokyo] .neo-mobile-sign .neo-sign-now{width:clamp(174px,34vw,226px);height:clamp(70px,13vw,90px)}html[data-theme=neotokyo] .neo-mobile-sign .neo-sign-work{width:clamp(70px,11vw,86px);height:clamp(154px,24vw,198px)}html[data-theme=neotokyo] .neo-mobile-sign .neo-sign-experience{width:clamp(190px,39vw,270px);height:clamp(74px,14vw,98px)}html[data-theme=neotokyo] .neo-mobile-sign .neo-sign-contact{width:clamp(158px,31vw,210px);height:clamp(66px,12vw,84px)}html[data-theme=neotokyo] .neo-reading-surface{padding:clamp(28px,6vw,46px)}html[data-theme=neotokyo] .about-section .neo-reading-surface{padding:clamp(32px,7vw,50px)}html[data-theme=neotokyo] .hero .neo-reading-surface{padding:0}}@media (width<=620px){:root{--content:calc(100% - 28px)}.site-header{gap:10px;min-height:58px;padding:10px 13px;top:10px}.header-link{display:none}.theme-option{min-height:28px;padding-inline:7px;font-size:.57rem}.header-actions{gap:6px}.layout-toggle{min-height:36px;padding-inline:7px;font-size:.57rem}.hero{min-height:790px;padding-top:130px}.hero h1{margin-block:24px 26px;font-size:clamp(3.35rem,17vw,5rem);line-height:.96}.hero-deck{max-width:94%;font-size:1rem;line-height:1.65}.hero-actions{flex-direction:column;align-items:flex-start;gap:22px;margin-top:34px}.work-section,.experience-section,.about-section,.now-section,.contact-section{padding-block:92px}.section-heading{margin-bottom:42px}.section-heading h2,.contact-section h2{font-size:clamp(2.65rem,14vw,4rem)}.project-card{padding:22px}.project-topline{gap:18px}.project-main{padding-block:34px}.project-main h3{font-size:3rem}.project-detail{font-size:1.28rem}.interest-grid{grid-template-columns:1fr}.interest-grid article,.interest-grid article:last-child{grid-column:auto}.contact-section{gap:34px}.contact-links{flex-direction:column;align-items:flex-start}.contact-links .button{width:100%}.site-footer{flex-direction:column;align-items:flex-start;gap:14px}.site-footer div{flex-wrap:wrap;gap:10px 20px}.blossom-canvas{opacity:.52;-webkit-mask-image:linear-gradient(90deg,#0000 0% 44%,#000 72%);mask-image:linear-gradient(90deg,#0000 0% 44%,#000 72%)}.petal-canvas{opacity:.72}.site-header,.interest-grid article{-webkit-backdrop-filter:none;backdrop-filter:none}html[data-theme=neotokyo] .street-location{display:none}html[data-theme=neotokyo] .neo-rain-canvas{opacity:.78}html[data-theme=neotokyo] .neo-street-plate{background-position:59%}html[data-theme=neotokyo] .neo-mobile-sign{min-height:158px;margin-bottom:18px}html[data-theme=neotokyo] .neo-mobile-sign .neo-inline-shop-sign{transform:scale(.78)rotate(-1deg)}html[data-theme=neotokyo] .hero{min-height:100svh;padding-block:126px 48px}html[data-theme=neotokyo] .hero-copy{padding:30px 24px 28px}html[data-theme=neotokyo] .hero h1{font-size:clamp(3.25rem,15vw,5rem);line-height:.92}html[data-theme=neotokyo] .work-section,html[data-theme=neotokyo] .experience-section,html[data-theme=neotokyo] .about-section,html[data-theme=neotokyo] .now-section,html[data-theme=neotokyo] .contact-section{padding-block:100px}html[data-theme=neotokyo] .interest-grid{grid-template-columns:1fr}html[data-theme=neotokyo] .interest-grid article,html[data-theme=neotokyo] .interest-grid article:last-child{grid-column:auto}}@media (width<=900px){html[data-theme=pokemon] .hero{grid-template-columns:1fr;height:auto;min-height:850px;padding-block:150px 100px}html[data-theme=pokemon] .hero-copy{justify-self:stretch;max-width:680px}.pokemon-route-sign{display:none}html[data-theme=pokemon] .site-footer{grid-template-columns:1fr auto}.pokemon-fan-note{text-align:left;grid-area:2/1/auto/-1;justify-self:start}}@media (width<=620px){html[data-theme=pokemon] .section-wrap{width:var(--content)}html[data-theme=pokemon] .pokemon-cloud,html[data-theme=pokemon] .pokemon-route-water,html[data-theme=pokemon] .pokemon-grass-patch{animation:none}.pokemon-side-encounter{display:none}html[data-theme=pokemon] .site-header{border-width:2px;border-radius:9px;min-height:60px;top:8px;box-shadow:0 4px #173f3647}html[data-theme=pokemon] .theme-option{min-height:32px}html[data-theme=pokemon] .hero{min-height:790px;padding-block:130px 90px}html[data-theme=pokemon] .hero-copy{border-width:3px;padding:30px 24px 34px;box-shadow:inset 0 0 0 3px #e1ebca,7px 8px #173f3645}html[data-theme=pokemon] .hero h1{font-size:clamp(3.25rem,15vw,4.9rem)}html[data-theme=pokemon] .work-section,html[data-theme=pokemon] .experience-section,html[data-theme=pokemon] .about-section,html[data-theme=pokemon] .now-section,html[data-theme=pokemon] .contact-section{border-top-width:3px;padding-block:96px}html[data-theme=pokemon] .project-card,html[data-theme=pokemon] .experience-list,html[data-theme=pokemon] .interest-grid article,html[data-theme=pokemon] .now-grid article{border-width:2px;border-radius:9px;box-shadow:4px 5px #173f362e}html[data-theme=pokemon] .project-topline{border-bottom-width:2px;margin:-22px -22px 0;padding-inline:22px}html[data-theme=pokemon] .experience-list article{padding-inline:22px}html[data-theme=pokemon] .site-footer{align-items:flex-start;display:flex}.pokemon-fan-note{max-width:320px}}@media (width<=420px){.theme-mark{display:none}.theme-option{padding-inline:5px}.layout-toggle span:last-child{display:none}.layout-toggle{min-width:34px;padding-inline:6px}}@media (width<=360px){.wordmark em,.layout-toggle{display:none}.theme-selector{gap:1px;padding:2px}.theme-option{padding-inline:4px}}@media (hover:none){.pokemon-side-encounter{pointer-events:none;animation:none}.pokemon-side-encounter .pokemon-sprite-pair{animation:none}.pokemon-shiny-burst i{opacity:0;animation:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}[data-reveal]{opacity:1;transform:none}}@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-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}.curei-site{--paper:#f4eee2;--ink:#f4eee2;--teal:#1f4e5f;--deep-teal:#102d36;--night:#081b22;--gold:#e4a43b;--rust:#c9643b;--green:#6b8f71;min-height:100vh;color:var(--ink);background:radial-gradient(circle at 84% 8%, #e4a43b1f, transparent 30rem), radial-gradient(circle at 12% 34%, #1f4e5f99, transparent 42rem), var(--night);font-family:Arial,Helvetica,sans-serif}.curei-site *{box-sizing:border-box}.curei-site a{color:inherit;text-decoration:none}.curei-nav{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#081b22b8;border-bottom:1px solid #f4eee229;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;min-height:86px;padding:16px clamp(22px,5vw,72px);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;display:grid}.curei-brand{align-items:center;gap:12px;font-family:Georgia,serif;font-size:18px;font-weight:700;line-height:1.05;display:flex}.curei-brand small{letter-spacing:.28em;margin-bottom:4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px;font-weight:500;display:block}.curei-nav nav{gap:30px;display:flex}.curei-nav nav a,.back-link{opacity:.65;transition:opacity .2s}.curei-nav nav a:hover,.back-link:hover{opacity:1}.back-link{justify-self:end}.curei-hero{border-bottom:1px solid #f4eee226;grid-template-columns:minmax(0,1.7fr) minmax(250px,.65fr);align-items:end;gap:8vw;min-height:680px;padding:clamp(72px,10vw,140px) clamp(22px,7vw,110px);display:grid}.curei-kicker{color:var(--gold);text-transform:uppercase;letter-spacing:.2em;margin:0 0 22px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.curei-hero h1,.curei-section h2{letter-spacing:-.045em;font-family:Georgia,serif;font-weight:600}.curei-hero h1{max-width:980px;margin:0;font-size:clamp(52px,7.2vw,112px);line-height:.94}.hero-lede{max-width:720px;margin:36px 0 0;font-size:clamp(18px,1.7vw,24px);line-height:1.55}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:36px;display:flex}.source-note{opacity:.58;letter-spacing:.04em;align-items:center;padding:0 8px;font:10px ui-monospace,SFMono-Regular,Menlo,monospace;display:inline-flex}.button{border:1.5px solid #f4eee2b3;border-radius:999px;padding:12px 20px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;display:inline-flex}.button.solid{color:var(--night);border-color:var(--gold);background:var(--gold)}.hero-facts{border-top:2px solid var(--ink);padding:22px 0 4px}.hero-facts p{opacity:.55;letter-spacing:.18em;margin:20px 0 5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px}.hero-facts strong{font-family:Georgia,serif;font-size:20px;font-weight:600}.curei-section{border-bottom:1px solid #f4eee226;padding:clamp(80px,10vw,150px) clamp(22px,7vw,110px)}.section-intro{max-width:760px}.section-intro.horizontal{grid-template-columns:1.2fr .8fr;align-items:end;gap:8vw;max-width:none;display:grid}.section-intro.horizontal>p{margin:0;font-size:18px;line-height:1.65}.curei-section h2{margin:0;font-size:clamp(42px,5.3vw,80px);line-height:.98}.section-intro>p:last-child{max-width:640px;margin:28px 0 0;font-size:18px;line-height:1.65}.workflow-grid{border-top:1px solid #f4eee280;border-bottom:1px solid #f4eee280;grid-template-columns:repeat(4,1fr);margin:72px 0 0;padding:0;list-style:none;display:grid}.workflow-grid li{border-right:1px solid #f4eee22e;min-height:280px;padding:22px}.workflow-grid li:last-child{border:0}.workflow-grid span,.screen-notes span{color:var(--gold);letter-spacing:.18em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px}.workflow-grid h3,.screen-notes h3,.tech-columns h3{margin:64px 0 14px;font-family:Georgia,serif;font-size:24px}.workflow-grid p,.screen-notes p,.tech-columns p{margin:0;line-height:1.6}.ingestion-map{background:#f4eee209;border:1px solid #f4eee229;border-radius:22px;grid-template-columns:minmax(0,1.45fr) minmax(100px,.3fr) minmax(220px,.65fr);align-items:center;gap:28px;margin-top:76px;padding:clamp(32px,5vw,66px);display:grid;overflow:hidden;box-shadow:inset 0 1px #ffffff0d}.document-stack{outline:none;min-height:440px;position:relative}.sample-document{transform-origin:50% 88%;background:#f4eee2;border:1px solid #2a262240;border-radius:7px;width:clamp(220px,43%,340px);height:390px;margin:0;padding:10px 10px 34px;transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .5s;position:absolute;top:50%;left:50%;overflow:hidden;box-shadow:0 24px 55px #0000005c}.sample-document img{object-fit:cover;object-position:top;border:1px solid #2a262214;width:100%;height:100%;display:block}.sample-document figcaption{color:#2a2622;letter-spacing:.08em;text-transform:uppercase;font:8px ui-monospace,SFMono-Regular,Menlo,monospace;position:absolute;bottom:10px;left:14px;right:14px}.sample-messy{z-index:1;transform:translate(-64%,-48%)rotate(-8deg)}.sample-vanguard{z-index:3;transform:translate(-48%,-51%)rotate(1deg)}.sample-wealthfront{z-index:2;transform:translate(-31%,-47%)rotate(8deg)}.document-stack:hover .sample-messy,.document-stack:focus-visible .sample-messy{transform:translate(-92%,-48%)rotate(-15deg);box-shadow:0 30px 60px #0000006b}.document-stack:hover .sample-vanguard,.document-stack:focus-visible .sample-vanguard{transform:translate(-48%,-56%)rotate(0);box-shadow:0 34px 70px #00000073}.document-stack:hover .sample-wealthfront,.document-stack:focus-visible .sample-wealthfront{transform:translate(-6%,-45%)rotate(15deg);box-shadow:0 30px 60px #0000006b}.sample-wealthfront img{object-fit:cover;object-position:left top}.ingestion-arrow{align-items:center;height:100%;display:flex}.ingestion-arrow i{background:linear-gradient(90deg,#e4a43b33,var(--gold));width:100%;height:1px;display:block;position:relative}.ingestion-arrow i:after{content:"";border-top:1px solid var(--gold);border-right:1px solid var(--gold);width:12px;height:12px;position:absolute;top:-6px;right:0;transform:rotate(45deg)}.demo-document{color:#2a2622;background:#f4eee2;border:1px solid #2a262233;border-radius:6px;width:min(290px,54%);min-height:320px;padding:18px;position:absolute;overflow:hidden;box-shadow:0 20px 42px #00000040}.demo-document:first-child{z-index:1;top:38px;left:0;transform:rotate(-6deg)}.demo-document:nth-child(2){z-index:3;top:0;left:26%;transform:rotate(2deg)}.demo-document:nth-child(3){z-index:2;top:48px;right:0;transform:rotate(7deg)}.document-type{color:#1f4e5f;letter-spacing:.14em;margin-bottom:18px;font:700 8px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;display:block}.phone-bar{gap:4px;margin-bottom:26px;display:flex}.phone-bar i{background:#c9643b;border-radius:50%;width:6px;height:6px}.phone-bar i:nth-child(2){background:#e4a43b}.phone-bar i:nth-child(3){background:#6b8f71}.screenshot-document>p{opacity:.55;margin:0 0 3px;font-size:11px}.screenshot-document>strong{margin-bottom:28px;font:600 28px/1 Georgia,serif;display:block}.holding-line{border-top:1px solid #2a26221f;justify-content:space-between;padding:8px 0;font:10px ui-monospace,SFMono-Regular,Menlo,monospace;display:flex}.statement-brand{color:#1f4e5f;letter-spacing:.18em;margin:0 0 40px;font:700 9px ui-monospace,SFMono-Regular,Menlo,monospace}.scan-document h3{margin:0 0 4px;font:600 23px Georgia,serif}.scan-document small{opacity:.55;font:9px ui-monospace,SFMono-Regular,Menlo,monospace}.scan-rule{background:#2a2622;height:2px;margin:18px 0}.scan-lines{opacity:.18;background:repeating-linear-gradient(#2a2622 0 1px,#0000 1px 15px);height:80px}.statement-total{border-top:1px solid #2a26224d;justify-content:space-between;margin-top:18px;padding-top:12px;font-size:10px;display:flex}.statement-total strong{font-size:12px}.csv-document{background:#edf1e9;padding-inline:12px}.csv-row{border-bottom:1px solid #2a262226;grid-template-columns:1.2fr .9fr 1fr;font:9px/34px ui-monospace,SFMono-Regular,Menlo,monospace;display:grid}.csv-row>*{border-right:1px solid #2a26221f;padding:0 4px}.csv-row>:last-child{text-align:right;border:0}.csv-head{color:#f4eee2;background:#1f4e5f}.ingestion-arrows{flex-direction:column;justify-content:space-around;height:300px;display:flex}.ingestion-arrows i{transform-origin:100%;background:#e4a43ba6;height:1px;display:block;position:relative}.ingestion-arrows i:first-child{transform:rotate(16deg)}.ingestion-arrows i:last-child{transform:rotate(-16deg)}.ingestion-arrows i:after{content:"";border-top:1px solid var(--gold);border-right:1px solid var(--gold);width:8px;height:8px;position:absolute;top:-4px;right:-1px;transform:rotate(45deg)}.curei-ingest{text-align:center}.ingest-halo{background:radial-gradient(circle,#e4a43b29,#0000 66%);border:1px solid #e4a43b73;border-radius:50%;place-items:center;width:150px;height:150px;margin:0 auto 25px;display:grid;box-shadow:0 0 70px #e4a43b1a}.curei-ingest p{color:var(--gold);letter-spacing:.18em;margin:0 0 8px;font:9px ui-monospace,SFMono-Regular,Menlo,monospace}.curei-ingest strong{font:600 24px Georgia,serif;display:block}.curei-ingest>span{opacity:.55;margin-top:8px;font:9px ui-monospace,SFMono-Regular,Menlo,monospace;display:block}.screens-section{color:#2a2622;background:#e8dfcf}.screens-section .curei-kicker{color:var(--teal)}.chart-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:68px;display:grid}.chart-card{background:#ffffff7a;border:1px solid #2a26222e;border-radius:16px;min-height:480px;padding:clamp(22px,3vw,34px);box-shadow:0 16px 45px #2a262214}.chart-card:first-child{grid-row:span 2}.chart-heading{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.chart-heading span{opacity:.5;letter-spacing:.16em;font:9px ui-monospace,SFMono-Regular,Menlo,monospace}.chart-heading h3{margin:5px 0 0;font:600 clamp(24px,2.4vw,36px) Georgia,serif}.chart-heading>b{opacity:.6;letter-spacing:.1em;border:1px solid #2a262233;border-radius:99px;padding:5px 8px;font:8px ui-monospace,SFMono-Regular,Menlo,monospace}.donut-wrap{place-items:center;min-height:310px;display:grid}.donut-chart{background:conic-gradient(#1f4e5f 0 70%,#c9643b 70% 89.4%,#e4a43b 89.4% 95.2%,#6b8f71 95.2%);border-radius:50%;place-items:center;width:235px;height:235px;display:grid}.donut-chart:before{content:"";background:#f1e9dc;border-radius:50%;grid-area:1/1;width:142px;height:142px}.donut-chart span{z-index:1;text-align:center;grid-area:1/1}.donut-chart strong{font:600 26px ui-monospace,SFMono-Regular,Menlo,monospace;display:block}.donut-chart small{opacity:.5;text-transform:uppercase;letter-spacing:.12em;font:9px ui-monospace,SFMono-Regular,Menlo,monospace}.chart-legend{margin:0;padding:0;list-style:none}.chart-legend li{border-bottom:1px dashed #2a26222e;grid-template-columns:10px 1fr auto;align-items:center;gap:10px;padding:8px 2px;font-size:12px;display:grid}.chart-legend i{border-radius:2px;width:9px;height:9px}.chart-legend .teal{background:#1f4e5f}.chart-legend .rust{background:#c9643b}.chart-legend .gold{background:#e4a43b}.chart-legend .green{background:#6b8f71}.chart-legend b{font:600 11px ui-monospace,SFMono-Regular,Menlo,monospace}.line-card,.holdings-card{min-height:365px}.line-chart{border-bottom:1px solid #2a262233;border-left:1px solid #2a262233;height:205px;margin-top:28px;position:relative}.grid-line{border-top:1px dashed #2a262224;height:1px;position:absolute;left:0;right:0}.grid-line.one{top:0}.grid-line.two{top:50%}.grid-line.three{bottom:0}.axis-label{opacity:.45;font:8px ui-monospace,SFMono-Regular,Menlo,monospace;position:absolute;left:-36px}.axis-label.top{top:-4px}.axis-label.middle{top:48%}.axis-label.bottom{bottom:-4px}.line-fill,.line-stroke{clip-path:polygon(0 88%,10% 76%,20% 81%,30% 58%,40% 63%,50% 43%,60% 52%,70% 30%,80% 36%,90% 15%,100% 4%,100% 100%,0 100%);position:absolute;inset:12px 0 18px 8px}.line-fill{background:linear-gradient(#1f4e5f4d,#0000)}.line-stroke{clip-path:polygon(0 88%,10% 76%,20% 81%,30% 58%,40% 63%,50% 43%,60% 52%,70% 30%,80% 36%,90% 15%,100% 4%,100% calc(4% + 3px),90% calc(15% + 3px),80% calc(36% + 3px),70% calc(30% + 3px),60% calc(52% + 3px),50% calc(43% + 3px),40% calc(63% + 3px),30% calc(58% + 3px),20% calc(81% + 3px),10% calc(76% + 3px),0 calc(88% + 3px));background:#1f4e5f;height:4px;top:auto;bottom:18px}.line-dot{background:#c9643b;border:2px solid #e8dfcf;border-radius:50%;width:9px;height:9px;position:absolute;top:13px;right:-4px}.month-labels{opacity:.45;justify-content:space-between;font:8px ui-monospace,SFMono-Regular,Menlo,monospace;display:flex;position:absolute;bottom:-20px;left:0;right:0}.chart-foot{align-items:baseline;gap:10px;margin:28px 0 0;display:flex}.chart-foot strong{font:600 20px ui-monospace,SFMono-Regular,Menlo,monospace}.chart-foot span{opacity:.5;font-size:11px}.holding-bars{margin-top:32px}.holding-bars>div{grid-template-columns:48px 1fr 58px;align-items:center;gap:10px;margin:15px 0;display:grid}.holding-bars span,.holding-bars b{font:10px ui-monospace,SFMono-Regular,Menlo,monospace}.holding-bars b{text-align:right}.holding-bars i{background:#2a262214;height:14px;position:relative}.holding-bars i:before{content:"";width:var(--bar);background:linear-gradient(90deg,#1f4e5f,#31748a);position:absolute;inset:0 auto 0 0}.synthetic-note{opacity:.5;letter-spacing:.08em;margin:18px 0 0;font:9px ui-monospace,SFMono-Regular,Menlo,monospace}.app-shot{background:#f4eee2;border:1px solid #2a26224d;border-radius:14px;margin:68px 0 0;overflow:hidden;box-shadow:0 28px 80px #2a26222b}.window-bar{background:#ffffff73;border-bottom:1px solid #2a262229;align-items:center;gap:7px;height:42px;padding:0 14px;display:flex}.window-bar i{background:var(--rust);border-radius:50%;width:10px;height:10px}.window-bar i:nth-child(2){background:var(--gold)}.window-bar i:nth-child(3){background:var(--green)}.window-bar span{opacity:.45;margin-left:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px}.app-shot img{width:100%;height:auto;display:block}.app-shot figcaption{opacity:.55;padding:11px 16px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px}.screen-notes{background:#2a262233;border:1px solid #2a262233;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:44px;display:grid}.screen-notes article{background:var(--paper);min-height:255px;padding:28px}.screen-notes h3{margin-top:50px}.tech-section{color:var(--paper);background:#143b46}.tech-section .curei-kicker{color:var(--gold)}.data-path{border-top:1px solid #f4eee280;border-bottom:1px solid #f4eee280;justify-content:space-between;align-items:center;gap:12px;margin:72px 0;padding:28px 0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;display:flex}.data-path b{color:var(--gold)}.tech-columns{grid-template-columns:repeat(3,1fr);gap:50px;display:grid}.tech-columns h3{color:var(--gold);margin:0 0 18px}.tech-columns p+p{opacity:.68;margin-top:14px}.curei-footer{grid-template-columns:1fr 1fr 1fr;align-items:center;gap:24px;padding:42px clamp(22px,5vw,72px);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;display:grid}.curei-footer>div{align-items:center;gap:10px;display:flex}.curei-footer p{text-align:center;opacity:.55}.curei-footer>div:last-child{justify-content:flex-end;gap:22px}@media (width<=850px){.curei-nav{grid-template-columns:1fr auto}.curei-nav nav{display:none}.curei-hero{grid-template-columns:1fr;min-height:auto}.hero-facts{grid-template-columns:1fr 1fr;column-gap:20px;margin-top:30px;display:grid}.workflow-grid{grid-template-columns:1fr 1fr}.workflow-grid li:nth-child(2){border-right:0}.workflow-grid li:nth-child(-n+2){border-bottom:1px solid #2a262240}.ingestion-map{grid-template-columns:1fr}.ingestion-arrow{justify-content:center;height:70px}.ingestion-arrow i{width:90px;transform:rotate(90deg)}.chart-grid{grid-template-columns:1fr}.chart-card:first-child{grid-row:auto}.section-intro.horizontal,.screen-notes,.tech-columns{grid-template-columns:1fr}.section-intro.horizontal>p{margin-top:25px}.data-path{flex-direction:column;align-items:flex-start}.data-path b{transform:rotate(90deg)}.curei-footer{grid-template-columns:1fr}.curei-footer p{text-align:left}.curei-footer>div:last-child{flex-wrap:wrap;justify-content:flex-start}}@media (width<=520px){.curei-nav{padding-inline:18px}.back-link{font-size:0}.back-link:after{content:"Portfolio ↗";font-size:11px}.curei-hero,.curei-section{padding-inline:20px}.curei-hero h1{font-size:48px}.workflow-grid{grid-template-columns:1fr}.workflow-grid li,.workflow-grid li:nth-child(2){border-bottom:1px solid #2a262240;border-right:0;min-height:230px}.workflow-grid li:last-child{border-bottom:0}.app-shot{border-radius:8px;margin-inline:-12px}.app-shot img{width:150%;max-width:none}.hero-facts{grid-template-columns:1fr}.ingestion-map{margin-inline:-8px;padding:26px 14px}.document-stack{min-height:360px}.sample-document{width:210px;height:310px}.sample-messy{transform:translate(-67%,-46%)rotate(-8deg)}.sample-vanguard{transform:translate(-49%,-50%)rotate(1deg)}.sample-wealthfront{transform:translate(-31%,-45%)rotate(8deg)}.document-stack:hover .sample-messy,.document-stack:focus-visible .sample-messy{transform:translate(-77%,-45%)rotate(-12deg)}.document-stack:hover .sample-vanguard,.document-stack:focus-visible .sample-vanguard{transform:translate(-49%,-53%)}.document-stack:hover .sample-wealthfront,.document-stack:focus-visible .sample-wealthfront{transform:translate(-21%,-44%)rotate(12deg)}.demo-document{width:62%;min-height:278px;padding:13px}.demo-document:nth-child(2){left:19%}.donut-chart{width:205px;height:205px}.donut-chart:before{width:126px;height:126px}.chart-card{padding:20px}}
