/*! tailwindcss v4.3.0 | 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-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:"Geist", ui-sans-serif, system-ui, sans-serif;--font-mono:"Geist Mono", ui-monospace, monospace;--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);--color-accent:#22d3a8}}@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%;-moz-tab-size:4;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;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]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance: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}.absolute{position:absolute}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,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))}}html,body,#root{background:var(--bg);color:var(--ink);min-height:100vh;margin:0;padding:0}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}.bento:hover{transform:none!important}}:root{--bg:#0a0b0e;--bg-2:#0d0f14;--ink:#f4f5f7;--ink-2:#b5bac6;--ink-3:#7c8497;--line:#ffffff12;--line-2:#ffffff1f;--card:#ffffff09;--card-2:#ffffff0f;--accent:#22d3a8;--gap:14px;--blur:16px;--radius:28px;--ease:cubic-bezier(.32,.72,.18,1)}*{box-sizing:border-box}html,body,#root{background:var(--bg);height:100%;color:var(--ink);margin:0;padding:0}body{-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-family:Geist,ui-sans-serif,system-ui,sans-serif}button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;padding:0}a{color:inherit;text-decoration:none}input,textarea{font-family:inherit}.portfolio{width:100%;height:100dvh;min-height:100vh;color:var(--ink);background:radial-gradient(1100px 700px at 18% 8%,#22d3a812,#0000 60%),radial-gradient(900px 600px at 95% 100%,#ffffff08,#0000 55%),linear-gradient(#0a0b0e,#07080b);grid-template-rows:auto 1fr auto;gap:clamp(12px,1.8vh,24px);padding:clamp(14px,2vh,28px) clamp(20px,4vw,56px);display:grid;position:relative;overflow:hidden}.portfolio.is-compact{padding:22px 36px}.portfolio.is-editorial{padding:32px 48px 36px}.topbar{grid-template-columns:auto 1fr auto;align-items:center;padding:4px;display:grid}.topnav{color:var(--ink-2);justify-self:center;gap:28px;font-size:14px;display:flex}.topnav button:hover{color:var(--ink)}.topbar-right{justify-self:end;align-items:center;gap:12px;display:flex}.wordmark{letter-spacing:-.02em;font-feature-settings:"ss01";font-weight:700}.wordmark .dot{color:var(--accent)}.lang-toggle{border:1px solid var(--line);background:#ffffff05;border-radius:999px;gap:0;padding:3px;font-family:Geist Mono,ui-monospace,monospace;font-size:12px;display:flex}.lang-toggle button{color:var(--ink-3);letter-spacing:.04em;border-radius:999px;padding:5px 10px}.lang-toggle button.on{background:var(--ink);color:#0a0a0c}.pillbtn{border:1px solid var(--line-2);color:var(--ink);transition:background .25s,border-color .25s,transform .25s var(--ease);background:#ffffff0a;border-radius:999px;align-items:center;gap:8px;padding:9px 16px;font-size:13px;font-weight:500;display:inline-flex}.pillbtn:hover{border-color:var(--line-2);background:#ffffff17}.pillbtn.is-primary{font-weight:600}.bento-grid{gap:var(--gap);min-height:0;display:grid}.bento{border:1px solid var(--line);background:var(--card);-webkit-backdrop-filter:blur(var(--blur)) saturate(1.2);border-radius:var(--radius);text-align:left;color:var(--ink);cursor:pointer;transition:transform .35s var(--ease),background .35s,border-color .35s,box-shadow .35s;flex-direction:column;min-width:0;min-height:0;padding:clamp(12px,1.6vh,20px) clamp(14px,1.8vw,22px);display:flex;position:relative;overflow:hidden}.bento:before{content:"";pointer-events:none;opacity:.6;background:linear-gradient(140deg,#ffffff0d,#0000 35%);position:absolute;top:0;right:0;bottom:0;left:0}.bento:hover{background:var(--card-2);border-color:var(--line-2);transform:translateY(-2px);box-shadow:0 18px 40px #00000073,inset 0 0 0 1px #ffffff05}.bento .eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-bottom:6px;font-family:Geist Mono,ui-monospace,monospace;font-size:11px;display:inline-block}.bento .bento-h{letter-spacing:-.02em;margin:0;font-size:clamp(18px,2vw,30px);font-weight:700;line-height:1.05}.bento .bento-h.h-display{font-size:clamp(28px,3.2vw + 1vh,56px)}.bento-top{flex-direction:column;gap:0;margin-bottom:clamp(6px,1vh,12px);display:flex}.open-arrow{background:var(--ink);color:#0a0a0c;width:32px;height:32px;transition:transform .3s var(--ease);border-radius:999px;place-items:center;display:grid;position:absolute;bottom:16px;right:16px}.bento:hover .open-arrow{transform:rotate(-25deg)scale(1.05)}.bento-about .bento-bio{color:var(--ink-2);-webkit-line-clamp:5;line-clamp:5;-webkit-box-orient:vertical;max-width:28ch;margin:clamp(6px,1vh,12px) 0 0;font-size:clamp(12px,.9vw + .3vh,15px);line-height:1.5;display:-webkit-box;overflow:hidden}.bento-hero{background:var(--card-2);justify-content:space-between;min-height:0;overflow:hidden}.hero-stack{letter-spacing:-.035em;color:var(--ink);flex-direction:column;min-height:0;font-size:clamp(24px,2.4vw + 1vh,64px);font-weight:700;line-height:.98;display:flex;overflow:hidden}.hero-foot-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:auto;display:flex}.hero-gallery-chip{border:1px solid var(--line-2);color:var(--ink);transition:background .2s,border-color .2s,transform .2s var(--ease);background:#ffffff0a;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:clamp(10px,.7vw,12px);font-weight:500;display:inline-flex}.hero-gallery-chip:hover{border-color:var(--accent);color:var(--accent);background:#22d3a81f;transform:translateY(-1px)}.is-editorial .hero-stack{font-size:clamp(56px,6vw,110px)}.hero-line.accent{color:var(--accent)}.hero-foot{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);align-items:center;gap:8px;font-family:Geist Mono,ui-monospace,monospace;font-size:11px;display:inline-flex}.bento-icon{color:var(--ink-2);justify-content:center;align-items:center;padding:0}.bento-icon:hover{color:var(--accent)}.bento-icon .open-arrow{display:none}.mini-skills-grid{flex:1 1 0;grid-template-columns:repeat(auto-fit,minmax(clamp(48px,5vw,72px),1fr));align-content:start;gap:clamp(6px,.8vw,10px);min-height:0;margin-top:auto;display:grid;overflow:hidden}.mini-skill{color:var(--ink);aspect-ratio:1;min-width:0;transition:transform .25s var(--ease),background .25s;background:#ffffff0a;border-radius:clamp(10px,1vw,16px);place-items:center;display:grid}.mini-skill svg{width:clamp(14px,1.1vw + .4vh,22px);height:clamp(14px,1.1vw + .4vh,22px)}.bento-skills:hover .mini-skill{background:#ffffff0f}.bento-projects{padding-bottom:12px}.projects-stack-bg{pointer-events:none;place-items:center;display:grid;position:absolute;top:56px;right:0;bottom:50%;left:0;overflow:hidden}.proj-ghosts{letter-spacing:-.04em;white-space:nowrap;color:#ffffff0d;text-transform:uppercase;font-family:Geist;font-size:clamp(48px,5.6vw,96px);font-weight:800}.projects-stack{flex:1;justify-content:center;align-self:stretch;align-items:flex-end;gap:18px;min-height:0;margin-top:auto;padding-top:24px;display:flex;position:relative}.proj-thumb-mini{border:1px solid var(--line-2);max-width:36%;height:100%;max-height:78%;transform:translateY(calc(var(--i) * -8px)) rotate(calc(var(--i) * -2deg - 1deg));transition:transform .4s var(--ease);border-radius:14px;flex:1 1 0;align-self:flex-end;overflow:hidden;box-shadow:0 14px 40px #00000080}.proj-thumb-mini:nth-child(2){z-index:2;max-height:92%;transform:translateY(0)rotate(0)}.proj-thumb-mini:nth-child(3){transform:translateY(-6px)rotate(2deg)}.bento-projects:hover .proj-thumb-mini{transform:translateY(-10px)rotate(0)}.bento-projects:hover .proj-thumb-mini:first-child{transform:translate(-12px)translateY(-10px)rotate(-4deg)}.bento-projects:hover .proj-thumb-mini:nth-child(3){transform:translate(12px)translateY(-10px)rotate(4deg)}.bento-agents{overflow:hidden}.agent-mini-grid{flex:1 1 0;grid-template-columns:repeat(auto-fit,minmax(clamp(64px,6.5vw,104px),1fr));align-content:stretch;gap:clamp(3px,.45vw,6px);min-height:0;margin-top:auto;display:grid;overflow:hidden}.agent-mini{border:1px solid var(--line);color:var(--ink-2);background:#ffffff0a;border-radius:8px;align-items:center;gap:4px;min-width:0;min-height:0;padding:clamp(3px,.45vh,6px) clamp(5px,.65vw,8px);font-size:clamp(8.5px,.55vw + .22vh,10.5px);display:flex;overflow:hidden}.agent-mini span{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.agent-mini svg{flex-shrink:0}.gallery-strip-mini{grid-template-columns:repeat(4,1fr);gap:8px;height:60%;min-height:110px;margin-top:auto;display:grid}.gthumb-mini{border:1px solid var(--line);transition:transform .35s var(--ease);border-radius:14px;overflow:hidden}.bento-gallery:hover .gthumb-mini{transform:translateY(-3px)}.contact-mini{margin-top:auto}.contact-mail{color:var(--ink);margin-bottom:8px;font-family:Geist Mono,ui-monospace,monospace;font-size:clamp(14px,1.3vw,18px)}.contact-dot{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);align-items:center;gap:8px;font-family:Geist Mono,ui-monospace,monospace;font-size:11px;display:inline-flex}.footer{color:var(--ink-3);grid-template-columns:auto 1fr auto;align-items:center;gap:24px;padding:4px;display:grid}.footer-row{justify-self:center;gap:22px;font-size:clamp(10px,.7vw,12px);display:flex}.footer-note{letter-spacing:.04em;font-family:Geist Mono,ui-monospace,monospace;font-size:clamp(9px,.6vw,11px)}.footer-row a:hover{color:var(--ink)}.overlay-scrim{-webkit-backdrop-filter:blur(8px);z-index:30;background:#08090d8c;position:absolute;top:0;right:0;bottom:0;left:0}.overlay-card{z-index:31;border:1px solid var(--line-2);background:#0e1015;border-radius:32px;width:92%;height:92%;position:fixed;top:4%;left:4%;overflow:hidden;box-shadow:0 40px 100px #000000b3}.overlay-scrim{position:fixed}.overlay-card-phone{border-radius:0;width:100%;height:100%;top:0;left:0}.detail-body{flex-direction:column;gap:22px;padding:36px 44px;display:flex;position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto}.detail-header{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.detail-title{letter-spacing:-.025em;margin:6px 0 0;font-size:clamp(32px,3vw,52px);font-weight:700;line-height:1}.detail-body .eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-family:Geist Mono,ui-monospace,monospace;font-size:11px;display:inline-block}.iconbtn{width:36px;height:36px;color:var(--ink);border:1px solid var(--line);background:#ffffff0f;border-radius:999px;place-items:center;transition:background .25s;display:grid}.iconbtn:hover{background:#ffffff1a}.iconbtn.lg{width:42px;height:42px}.btn{border:1px solid var(--line-2);color:var(--ink);background:#ffffff0d;border-radius:999px;align-items:center;gap:8px;padding:11px 18px;font-size:13px;font-weight:500;transition:background .25s,transform .25s;display:inline-flex}.btn.primary{font-weight:600}.btn.ghost:hover{background:#ffffff17}.btn.mt{align-self:flex-start;margin-top:14px}.back-link{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);align-items:center;gap:6px;font-family:Geist Mono,ui-monospace,monospace;font-size:11px;display:inline-flex}.back-link:hover{color:var(--ink)}.chip{border:1px solid var(--line);color:var(--ink-2);background:#ffffff0a;border-radius:999px;align-items:center;padding:7px 13px;font-size:12px;transition:background .2s,color .2s,border-color .2s;display:inline-flex}.chip:hover{color:var(--ink);background:#ffffff14}.chips-row{flex-wrap:wrap;gap:8px;display:flex}.section-label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin:12px 0 6px;font-family:Geist Mono,ui-monospace,monospace;font-size:11px}.lede{color:var(--ink);max-width:56ch;margin:0;font-size:16px;line-height:1.55}.muted{color:var(--ink-2);margin:0;font-size:14px;line-height:1.55}.tech-pill{border:1px solid var(--line);color:var(--ink);background:#ffffff0d;border-radius:999px;align-items:center;gap:6px;padding:6px 11px;font-size:12px;transition:background .25s;display:inline-flex}.tech-pill:hover{background:#ffffff1a}.tech-pill.static{pointer-events:none}.tech-row{flex-wrap:wrap;gap:8px;display:flex}.mini-pill{border:1px solid var(--line);color:var(--ink-2);background:#ffffff0a;border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-family:Geist Mono,ui-monospace,monospace;font-size:11px;display:inline-flex}.about-cols{grid-template-columns:280px 1fr;align-items:start;gap:36px;display:grid}.about-left{flex-direction:column;gap:10px;display:flex}.about-left .profile-photo{aspect-ratio:4/5;object-fit:cover;background:#15171f;border-radius:26px;width:100%;display:block;overflow:hidden}.meta-row{color:var(--ink-2);align-items:center;gap:8px;font-size:13px;display:inline-flex}.meta-link{transition:color .2s var(--ease);text-decoration:none}.meta-link:hover{color:var(--accent)}.meta-link span{word-break:break-word}.timeline{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.timeline li{border-top:1px solid var(--line);grid-template-columns:130px 1fr auto;align-items:baseline;gap:14px;padding:6px 0;display:grid}.t-year{color:var(--ink-3);letter-spacing:.04em;font-family:Geist Mono,ui-monospace,monospace;font-size:11px}.t-role{color:var(--ink);font-size:14px}.t-place{color:var(--ink-3);font-family:Geist Mono,ui-monospace,monospace;font-size:12px}.skills-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.skills-grid-notes{grid-template-columns:repeat(3,1fr)}.skill-note-card{text-align:left;border:1px solid var(--line);color:var(--ink);transition:border-color .25s,background .25s,transform .25s var(--ease);background:#ffffff0a;border-radius:18px;flex-direction:column;gap:10px;padding:16px;display:flex}.skill-note-card:hover{background:#ffffff12;transform:translateY(-2px)}.skill-note-head{align-items:center;gap:12px;display:flex}.skill-note-title{flex-direction:column;min-width:0;display:flex}.skill-note-meta{color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase;margin-top:2px;font-family:Geist Mono,ui-monospace,monospace;font-size:10.5px}.skill-note-body{color:var(--ink-2);margin:0;font-size:12.5px;line-height:1.5}.vp-tablet .skills-grid-notes{grid-template-columns:repeat(2,1fr)}.vp-phone .skills-grid-notes{grid-template-columns:1fr}.skill-card{text-align:left;border:1px solid var(--line);color:var(--ink);background:#ffffff0a;border-radius:18px;align-items:center;gap:14px;padding:14px 16px;transition:border-color .25s,background .25s;display:flex}.skill-card:hover{background:#ffffff12}.skill-glyph{background:#ffffff0d;border-radius:12px;flex-shrink:0;place-items:center;width:44px;height:44px;display:grid}.skill-meta{flex:1;min-width:0}.skill-name{font-size:14px;font-weight:600}.skill-bar{background:#ffffff14;border-radius:999px;height:4px;margin:6px 0;overflow:hidden}.skill-bar span{height:100%;transition:width .5s var(--ease);border-radius:999px;display:block}.skill-bottom{color:var(--ink-3);letter-spacing:.04em;justify-content:space-between;font-family:Geist Mono,ui-monospace,monospace;font-size:10px;display:flex}.related-strip{margin-top:8px}.rel-cards{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.rel-card{border:1px solid var(--line);text-align:left;color:var(--ink);background:#ffffff08;border-radius:16px;grid-template-columns:84px 1fr auto;align-items:center;gap:14px;padding:8px;transition:background .25s;display:grid}.rel-card:hover{background:#ffffff12}.rel-thumb{aspect-ratio:3/2;border-radius:10px;width:84px;overflow:hidden}.rel-name{font-size:14px;font-weight:600}.rel-tag{color:var(--ink-3);font-size:12px}.projects-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.project-card{border:1px solid var(--line);text-align:left;color:var(--ink);transition:background .25s,transform .25s var(--ease);background:#ffffff0a;border-radius:22px;grid-template-columns:160px 1fr auto;align-items:center;gap:16px;padding:14px;display:grid}.project-card:hover{background:#ffffff12;transform:translateY(-2px)}.project-thumb{aspect-ratio:3/2;border-radius:14px;width:160px;overflow:hidden}.project-info{flex-direction:column;gap:6px;min-width:0;display:flex}.project-top{align-items:baseline;gap:12px;display:flex}.project-name{letter-spacing:-.01em;font-size:18px;font-weight:700}.project-year{color:var(--ink-3);font-family:Geist Mono,ui-monospace,monospace;font-size:11px}.project-tag{color:var(--ink-2);margin:0;font-size:13px}.project-techs{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.proj-hero{grid-template-columns:1.1fr 1fr;align-items:start;gap:36px;display:grid}.proj-hero-img{aspect-ratio:3/2;border:1px solid var(--line);border-radius:22px;overflow:hidden}.proj-cta-row{gap:8px;display:flex}.agents-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.agent-card{text-align:left;border:1px solid var(--line);transition:background .25s,transform .25s var(--ease),border-color .25s;color:var(--ink);background:#ffffff0a;border-radius:12px;flex-direction:column;gap:6px;padding:10px 11px;display:flex}.agent-card:hover{background:#ffffff12;transform:translateY(-2px)}.agent-top{justify-content:space-between;align-items:center;display:flex}.agent-glyph{border-radius:8px;place-items:center;width:26px;height:26px;transition:background .25s,color .25s;display:grid}.agent-glyph.lg{border-radius:16px;width:56px;height:56px}.agent-name{font-size:12px;font-weight:600}.agent-tag{color:var(--ink-3);font-size:10.5px;line-height:1.35}.agent-expand{border:1px solid var(--line-2);background:#ffffff0a;border-radius:22px;margin-top:6px;padding:22px}.agent-expand-head{align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.agent-expand-head h3{letter-spacing:-.02em;margin:4px 0 0;font-size:24px;font-weight:700}.agent-expand-titles{flex:1;min-width:0}.agent-expand-tag{color:var(--ink-2);margin:6px 0 0;font-size:13px;line-height:1.4}.agent-expand-actions{flex-shrink:0;gap:8px;display:flex}.agent-expand-grid{grid-template-columns:1fr 1fr;gap:24px;margin:8px 0 4px;display:grid}.agent-expand-grid p{color:var(--ink-2);margin:4px 0 0;font-size:14px;line-height:1.55}.agent-code{border:1px solid var(--line);background:#0a0c11;border-radius:14px;grid-template-columns:200px 1fr;gap:0;min-height:320px;display:grid;overflow:hidden}.agent-code-tree{border-right:1px solid var(--line);background:#0d1016;flex-direction:column;gap:2px;padding:10px 6px;display:flex}.agent-code-tree-head{color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid var(--line);align-items:center;gap:6px;margin-bottom:6px;padding:6px 10px 8px;font-family:Geist Mono,ui-monospace,monospace;font-size:10.5px;display:flex}.agent-code-file{color:var(--ink-2);text-align:left;border-radius:6px;align-items:center;gap:8px;padding:7px 10px;font-family:Geist Mono,ui-monospace,monospace;font-size:12px;transition:background .15s,color .15s;display:flex}.agent-code-file:hover{color:var(--ink);background:#ffffff0a}.agent-code-file.is-active{background:#22d3a814;font-weight:500}.agent-code-empty{color:var(--ink-3);margin:0;padding:8px 10px;font-family:Geist Mono,ui-monospace,monospace;font-size:11px}.agent-code-empty.pad{padding:28px 18px;font-size:13px}.agent-code-view{flex-direction:column;min-width:0;display:flex}.agent-code-tabbar{border-bottom:1px solid var(--line);background:#0b0e14;justify-content:space-between;align-items:center;padding:8px 14px;display:flex}.agent-code-tab{color:var(--ink-2);background:#ffffff0a;border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-family:Geist Mono,ui-monospace,monospace;font-size:11px;display:inline-flex}.agent-code-lang{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);font-family:Geist Mono,ui-monospace,monospace;font-size:10px}.agent-code-pre{color:#d6dae3;white-space:pre-wrap;word-wrap:break-word;flex:1;margin:0;padding:16px 18px;font-family:Geist Mono,ui-monospace,monospace;font-size:12px;line-height:1.55;overflow:auto}.agent-code-pre::-webkit-scrollbar{width:8px;height:8px}.agent-code-pre::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:999px}.vp-tablet .agent-code{grid-template-columns:170px 1fr;min-height:280px}.vp-phone .agent-code{grid-template-columns:1fr;min-height:0}.vp-phone .agent-code-tree{border-right:none;border-bottom:1px solid var(--line);flex-direction:row;overflow-x:auto}.vp-phone .agent-code-tree-head{display:none}.vp-phone .agent-code-file{white-space:nowrap;flex-shrink:0}.vp-phone .agent-expand-head{flex-direction:column}.vp-phone .agent-expand-actions{width:100%}.vp-phone .agent-expand-actions .btn{flex:1;justify-content:center}.gallery-stage{grid-template-columns:44px 1fr 44px;align-items:center;gap:14px;display:grid}.gallery-main{aspect-ratio:16/9;border:1px solid var(--line);border-radius:22px;position:relative;overflow:hidden}.gallery-caption{color:var(--ink);background:linear-gradient(#0000,#0009);align-items:baseline;gap:14px;padding:18px 22px;display:flex;position:absolute;bottom:0;left:0;right:0}.nav-arrow{border:1px solid var(--line);width:44px;height:44px;color:var(--ink);background:#ffffff0d;border-radius:999px;place-items:center;display:grid}.nav-arrow:hover{background:#ffffff1a}.gallery-strip{grid-template-columns:repeat(6,1fr);gap:8px;margin-top:12px;display:grid}.gthumb{aspect-ratio:16/11;background:0 0;border:2px solid #0000;border-radius:12px;padding:0;overflow:hidden}.gthumb.is-on{box-shadow:0 0 0 1px var(--accent)}.contact-grid{grid-template-columns:1fr 1fr;gap:36px;display:grid}.huge-mail{color:var(--ink);border-bottom:1px solid var(--line);word-break:break-all;align-items:center;gap:16px;padding:22px 0;font-family:Geist Mono,ui-monospace,monospace;font-size:clamp(22px,2.6vw,36px);display:flex}.reply-note{color:var(--ink-3);letter-spacing:.05em;text-transform:uppercase;align-items:center;gap:8px;margin-top:14px;font-family:Geist Mono,ui-monospace,monospace;font-size:11px;display:inline-flex}.socials-row{grid-template-columns:1fr 1fr;gap:8px;margin-top:22px;display:grid}.social-link{border:1px solid var(--line);color:var(--ink);background:#ffffff0a;border-radius:14px;align-items:center;gap:10px;padding:12px 14px;font-size:13px;transition:background .25s;display:inline-flex}.social-link:hover{background:#ffffff14}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field span{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-family:Geist Mono,ui-monospace,monospace;font-size:10px}.field input,.field textarea{border:1px solid var(--line);width:100%;color:var(--ink);resize:vertical;background:#ffffff0a;border-radius:14px;outline:none;padding:11px 14px;font-size:14px;transition:border-color .25s,background .25s}.field input:focus,.field textarea:focus{border-color:var(--accent);background:#ffffff0f}.is-compact .bento{padding:16px 18px}.is-compact .bento .bento-h{font-size:clamp(18px,1.9vw,26px)}.is-compact .bento .bento-h.h-display{font-size:clamp(30px,3.4vw,44px)}.is-compact .hero-stack{font-size:clamp(32px,3.6vw,56px)}.is-compact .open-arrow{width:28px;height:28px;bottom:12px;right:12px}.is-editorial .bento{padding:24px 26px}.is-editorial .bento-about .bento-bio{font-size:clamp(17px,1.5vw,22px)}.is-editorial .bento .open-arrow{width:36px;height:36px}.bento-icon{padding:8px}.detail-body::-webkit-scrollbar{width:8px}.detail-body::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:999px}.avatar-circle{object-fit:cover;background:#15171f;border-radius:50%;width:36px;height:36px;display:block;overflow:hidden}.vp-tablet{gap:18px;padding:22px 24px 26px}.vp-tablet .topnav{gap:14px;font-size:12.5px}.vp-tablet .pillbtn{padding:8px 13px;font-size:12px}.vp-tablet .hero-stack{font-size:clamp(32px,4.4vw,52px)}.vp-tablet .bento{padding:18px 20px}.vp-tablet .bento .bento-h.h-display{font-size:clamp(30px,4.2vw,44px)}.vp-tablet .bento-about .bento-bio{max-width:32ch;font-size:16px}.vp-tablet .mini-skills-grid{grid-template-columns:repeat(4,1fr)}.vp-tablet .agent-mini-grid{grid-template-columns:1fr}.vp-tablet .footer-row{gap:16px;font-size:11px}.vp-tablet .about-cols{grid-template-columns:240px 1fr;gap:28px}.vp-tablet .skills-grid{grid-template-columns:repeat(3,1fr)}.vp-tablet .agents-grid{grid-template-columns:repeat(2,1fr)}.vp-tablet .contact-grid{grid-template-columns:1fr;gap:22px}.vp-tablet .projects-grid{grid-template-columns:1fr}.vp-tablet .proj-hero{grid-template-columns:1fr;gap:22px}.vp-phone{scroll-behavior:smooth;grid-template-rows:auto 1fr;gap:14px;padding:14px 14px 22px;overflow:hidden auto}.vp-phone .topbar{z-index:5;-webkit-backdrop-filter:blur(20px)saturate(1.4);border:1px solid var(--line);background:#0a0b0eb3;border-radius:999px;grid-template-columns:auto 1fr auto;margin:4px 0 6px;padding:8px 10px;position:sticky;top:0}.vp-phone .topbar .topbar-right{gap:8px}.vp-phone .lang-toggle{padding:2px;font-size:10.5px}.vp-phone .lang-toggle button{padding:4px 7px}.vp-phone .iconbtn{width:32px;height:32px}.vp-phone .bento-grid{gap:var(--gap);grid-auto-rows:auto;grid-template-rows:none!important}.vp-phone .bento{min-height:0;padding:18px 20px}.vp-phone .bento-hero{min-height:220px}.vp-phone .hero-stack{letter-spacing:-.035em;font-size:38px}.vp-phone .bento .bento-h{font-size:22px}.vp-phone .bento .bento-h.h-display{font-size:38px}.vp-phone .bento-about{min-height:280px}.vp-phone .bento-about .bento-bio{max-width:none;font-size:17px}.vp-phone .bento-icon{min-height:92px;padding:0}.vp-phone .bento-icon svg{width:28px;height:28px}.vp-phone .bento-skills{min-height:240px}.vp-phone .mini-skills-grid{grid-template-columns:repeat(4,1fr)}.vp-phone .mini-skill{min-height:44px}.vp-phone .bento-projects{min-height:280px;padding-bottom:16px}.vp-phone .proj-thumb-mini{max-width:38%;max-height:70%}.vp-phone .proj-ghosts{font-size:56px}.vp-phone .bento-agents{min-height:320px}.vp-phone .agent-mini-grid{grid-template-columns:1fr 1fr}.vp-phone .open-arrow{width:30px;height:30px;bottom:14px;right:14px}.vp-phone .footer{text-align:center;grid-template-columns:1fr;justify-items:center;gap:10px;padding:18px 0 6px}.vp-phone .footer-row{flex-wrap:wrap;justify-content:center;gap:14px;font-size:11px}.vp-phone .footer-note{font-size:10px}.vp-phone .overlay-card.phase-open{border-radius:0;width:100%;height:100%;top:0;left:0}.vp-phone .detail-body{padding:22px 18px 32px}.vp-phone .detail-title{font-size:30px}.vp-phone .about-cols{grid-template-columns:1fr;gap:18px}.vp-phone .about-left{flex-direction:column-reverse;align-items:stretch;gap:14px}.vp-phone .about-left .profile-photo{aspect-ratio:1}.vp-phone .timeline li{grid-template-columns:90px 1fr;row-gap:2px}.vp-phone .timeline .t-place{grid-column:2;font-size:10.5px}.vp-phone .skills-grid{grid-template-columns:1fr 1fr;gap:8px}.vp-phone .skill-card{gap:10px;padding:11px 12px}.vp-phone .skill-glyph{width:38px;height:38px}.vp-phone .projects-grid{grid-template-columns:1fr}.vp-phone .project-card{grid-template-columns:110px 1fr auto;gap:12px;padding:10px}.vp-phone .project-thumb{width:110px}.vp-phone .project-name{font-size:15px}.vp-phone .proj-hero{grid-template-columns:1fr;gap:18px}.vp-phone .agents-grid{grid-template-columns:1fr}.vp-phone .agent-expand-grid{grid-template-columns:1fr;gap:14px}.vp-phone .gallery-stage{grid-template-columns:1fr;gap:12px}.vp-phone .nav-arrow{display:none}.vp-phone .gallery-strip{grid-template-columns:repeat(3,1fr)}.vp-phone .contact-grid{grid-template-columns:1fr;gap:24px}.vp-phone .huge-mail{gap:10px;padding:12px 0;font-size:15px}.vp-phone .socials-row{grid-template-columns:1fr}.vp-phone .chips-row{flex-wrap:nowrap;padding-bottom:4px;overflow-x:auto}.vp-phone .chips-row::-webkit-scrollbar{height:4px}.vp-phone .chip{white-space:nowrap;flex-shrink:0}.vp-phone:has(.overlay-card) .phone-nav-tabs{z-index:1}.vp-phone{padding-bottom:92px;flex-direction:column!important;display:flex!important}.vp-phone>.bento-grid,.vp-phone>.ph-home,.vp-phone>.footer{flex:none}.phone-nav-tabs{z-index:6;-webkit-backdrop-filter:blur(28px)saturate(1.5);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);background:#0a0c10f0;position:fixed;bottom:0;left:0;right:0}.phone-nav-tabs .phone-nav-inner{grid-template-columns:repeat(5,1fr);gap:2px;padding:10px 4px 22px;display:grid}.phone-nav-tabs .tab-btn{color:var(--ink-3);letter-spacing:.01em;transition:color .25s,transform .25s var(--ease);flex-direction:column;align-items:center;gap:3px;padding:6px 4px 2px;font-size:10.5px;display:flex;position:relative}.phone-nav-tabs .tab-btn:active{transform:scale(.92)}.phone-nav-tabs .tab-btn.is-active{font-weight:600}.phone-nav-tabs .tab-btn .tab-ind{border-radius:999px;width:26px;height:3px;position:absolute;top:-10px;left:50%;transform:translate(-50%)}.ph-home{color:var(--ink);flex-direction:column;gap:16px;padding:4px 0 18px;display:flex}.ph-dashboard .ph-d-top{justify-content:space-between;align-items:center;padding:6px 0 2px;display:flex}.ph-d-greet{align-items:center;gap:12px;display:flex}.ph-d-greet image-slot{flex-shrink:0;overflow:hidden;border-radius:50%!important;width:44px!important;height:44px!important}.ph-d-hello{color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;font-family:Geist Mono,ui-monospace,monospace;font-size:11px}.ph-d-name{font-size:17px;font-weight:600}.ph-d-actions{gap:8px;display:flex}.ph-d-title{letter-spacing:-.025em;text-wrap:balance;margin:4px 0 6px;font-size:28px;font-weight:700;line-height:1.05}.ph-d-chips{gap:6px;margin:0 -14px;padding:0 14px 4px;display:flex;overflow-x:auto}.ph-d-chips::-webkit-scrollbar{display:none}.ph-d-chip{border:1px solid var(--line);color:var(--ink-2);background:#ffffff0a;border-radius:999px;flex-shrink:0;padding:8px 14px;font-size:12px;font-weight:500;transition:background .25s}.ph-d-chip:active{background:#ffffff14}.ph-d-feat{text-align:left;border:1px solid var(--line);width:100%;color:var(--ink);transition:background .25s,transform .25s var(--ease);background:#ffffff0a;border-radius:22px;padding:0;display:block;overflow:hidden}.ph-d-feat:active{transform:scale(.99)}.ph-d-feat-thumb{aspect-ratio:16/10;border-bottom:1px solid var(--line);position:relative;overflow:hidden}.ph-d-feat-pill{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0a0c10b3;border-radius:999px;padding:4px 10px;font-family:Geist Mono,ui-monospace,monospace;font-size:11px;font-weight:600;position:absolute;top:12px;right:12px}.ph-d-feat-meta{padding:14px 16px 16px}.ph-d-feat-tag{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);gap:6px;font-family:Geist Mono,ui-monospace,monospace;font-size:10px;display:flex}.ph-d-feat-name{letter-spacing:-.02em;margin:6px 0 4px;font-size:20px;font-weight:700}.ph-d-feat-desc{color:var(--ink-2);margin-bottom:10px;font-size:13px}.ph-d-feat-stack{flex-wrap:wrap;gap:6px;display:flex}.ph-d-feat-tech{color:var(--ink-2);background:#ffffff0a;border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-family:Geist Mono,ui-monospace,monospace;font-size:11px;display:inline-flex}.ph-d-section{flex-direction:column;gap:10px;display:flex}.ph-d-sec-head{justify-content:space-between;align-items:center;display:flex}.ph-d-sec-head h3{letter-spacing:-.01em;margin:0;font-size:16px;font-weight:600}.ph-d-link{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);align-items:center;gap:4px;font-family:Geist Mono,ui-monospace,monospace;font-size:10.5px;display:inline-flex}.ph-d-link:active{color:var(--ink)}.ph-d-list{flex-direction:column;gap:8px;display:flex}.ph-d-row{border:1px solid var(--line);text-align:left;color:var(--ink);background:#ffffff08;border-radius:16px;grid-template-columns:52px 1fr auto;align-items:center;gap:12px;padding:10px;display:grid}.ph-d-row-thumb{aspect-ratio:1;border-radius:10px;width:52px;overflow:hidden}.ph-d-row-name{font-size:14px;font-weight:600}.ph-d-row-tag{color:var(--ink-3);margin-top:2px;font-size:11px;line-height:1.3}.ph-d-row-status{letter-spacing:.04em;text-transform:uppercase;font-family:Geist Mono,ui-monospace,monospace;font-size:10px}.ph-d-agents{grid-template-columns:1fr 1fr;gap:8px;display:grid}.ph-d-agent{border:1px solid var(--line);text-align:left;color:var(--ink);background:#ffffff08;border-radius:14px;align-items:center;gap:10px;padding:10px;display:flex}.ph-d-agent-ico{border-radius:10px;flex-shrink:0;place-items:center;width:32px;height:32px;display:grid}.ph-d-agent-name{font-size:12px;font-weight:500;line-height:1.2}.ph-welcome{text-align:center;flex:1;align-items:center;padding:4px 0 24px;position:relative;overflow:hidden}.ph-w-top{justify-content:space-between;align-items:center;width:100%;padding:6px 0;display:flex}.ph-w-status{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);align-items:center;gap:8px;font-family:Geist Mono,ui-monospace,monospace;font-size:10px;display:inline-flex}.ph-w-status .dot{border-radius:50%;width:8px;height:8px;box-shadow:0 0 8px}.ph-w-deco{z-index:0;pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0}.ph-w-blob{filter:blur(40px);opacity:.6;border-radius:50%;width:280px;height:280px;position:absolute;top:18%;left:-60px}.ph-w-blob-b{background:radial-gradient(circle,#7c5cff59,#0000 65%);inset:auto -80px 18% auto}.ph-w-photo{z-index:1;margin:18px 0 16px;position:relative}.ph-w-photo image-slot{border:3px solid #ffffff14;overflow:hidden;box-shadow:0 16px 40px #00000080;border-radius:50%!important;width:140px!important;height:140px!important}.ph-w-brand{z-index:1;letter-spacing:-.04em;margin:0;font-size:56px;font-weight:700;line-height:1;position:relative}.ph-w-tag{z-index:1;color:var(--ink-2);letter-spacing:.05em;text-transform:uppercase;gap:10px;margin:8px 0 0;font-family:Geist Mono,ui-monospace,monospace;font-size:12px;display:inline-flex;position:relative}.ph-w-bio{z-index:1;color:var(--ink-2);text-wrap:balance;max-width:30ch;margin:14px 12px 18px;font-size:14px;line-height:1.5;position:relative}.ph-w-stats{z-index:1;grid-template-columns:repeat(3,1fr);gap:8px;width:100%;margin-bottom:18px;display:grid;position:relative}.ph-w-stat{border:1px solid var(--line);color:var(--ink);background:#ffffff0a;border-radius:16px;padding:12px 8px;transition:background .25s}.ph-w-stat:active{background:#ffffff14}.ph-w-stat-n{letter-spacing:-.02em;font-size:24px;font-weight:700}.ph-w-stat-l{color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;margin-top:2px;font-family:Geist Mono,ui-monospace,monospace;font-size:10.5px}.ph-w-cta{z-index:1;transition:transform .2s var(--ease);border-radius:999px;align-items:center;gap:8px;margin-bottom:12px;padding:14px 32px;font-size:14px;font-weight:600;display:inline-flex;position:relative;box-shadow:0 14px 36px #22d3a84d}.ph-w-cta:active{transform:scale(.97)}.ph-w-quick{z-index:1;flex-wrap:wrap;justify-content:center;gap:10px;display:flex;position:relative}.ph-w-quick button{border:1px solid var(--line);color:var(--ink-2);background:#ffffff0a;border-radius:999px;align-items:center;gap:6px;padding:8px 12px;font-size:11.5px;display:inline-flex}.ph-schedule .ph-s-top{justify-content:space-between;align-items:center;padding:6px 0;display:flex}.ph-s-top image-slot{overflow:hidden;border-radius:50%!important;width:40px!important;height:40px!important}.ph-s-title{letter-spacing:-.03em;margin:8px 0 0;font-size:30px;font-weight:700;line-height:1.05}.ph-s-month{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin:4px 0;font-family:Geist Mono,ui-monospace,monospace;font-size:11px}.ph-s-years{gap:6px;margin:0 -14px;padding:4px 14px;display:flex;overflow-x:auto}.ph-s-years::-webkit-scrollbar{display:none}.ph-s-year{border:1px solid var(--line);width:64px;color:var(--ink-2);transition:background .25s,transform .25s var(--ease);background:#ffffff0a;border-radius:14px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;padding:10px 4px;display:flex}.ph-s-year:active{transform:scale(.95)}.ph-s-year-n{letter-spacing:-.01em;font-size:16px;font-weight:700}.ph-s-year-l{color:var(--ink-3);margin-top:2px;font-family:Geist Mono,ui-monospace,monospace;font-size:10px}.ph-s-year.is-on .ph-s-year-l{color:#0a0b0eb3}.ph-s-cards{flex-direction:column;gap:10px;display:flex}.ph-s-card{text-align:left;border:1px solid var(--line);color:var(--ink);background:#ffffff0a;border-radius:18px;padding:16px;transition:background .25s;display:block}.ph-s-card:active{background:#ffffff14}.ph-s-card-head{align-items:center;gap:10px;margin-bottom:8px;display:flex}.ph-s-card-no{width:32px;height:32px;color:var(--ink-2);background:#ffffff0f;border-radius:50%;place-items:center;font-family:Geist Mono,ui-monospace,monospace;font-size:11px;display:grid}.ph-s-card-name{flex:1;font-size:16px;font-weight:600}.ph-s-card-pill{letter-spacing:.04em;border:1px solid;border-radius:999px;padding:3px 9px;font-family:Geist Mono,ui-monospace,monospace;font-size:10px}.ph-s-card-desc{color:var(--ink-2);margin:0 0 10px;font-size:12.5px;line-height:1.5}.ph-s-card-techs{flex-wrap:wrap;gap:6px;display:flex}.ph-s-section{flex-direction:column;gap:10px;display:flex}.ph-s-hscroll{gap:10px;margin:0 -14px;padding:4px 14px;display:flex;overflow-x:auto}.ph-s-hscroll::-webkit-scrollbar{display:none}.ph-s-cont{border:1px solid var(--line);text-align:left;width:160px;color:var(--ink);background:#ffffff0a;border-radius:16px;flex-direction:column;flex-shrink:0;gap:8px;padding:14px;display:flex}.ph-s-cont-ico{border-radius:12px;place-items:center;width:36px;height:36px;display:grid}.ph-s-cont-name{font-size:13px;font-weight:600}.ph-s-cont-tag{color:var(--ink-3);font-size:11px;line-height:1.3}.ph-compact{gap:14px}.ph-c-top{justify-content:space-between;align-items:center;padding:6px 0 2px;display:flex}.ph-c-greet{align-items:center;gap:10px;display:flex}.ph-c-greet image-slot{flex-shrink:0;overflow:hidden;border-radius:50%!important;width:36px!important;height:36px!important}.ph-c-hi{color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;font-family:Geist Mono,ui-monospace,monospace;font-size:10px}.ph-c-name{font-size:15px;font-weight:600;line-height:1.1}.ph-c-tools{gap:6px;display:flex}.ph-c-tools .iconbtn.sm,.iconbtn.sm{width:32px;height:32px}.ph-c-kpis{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.ph-c-kpi{border:1px solid var(--line);text-align:center;background:#ffffff0a;border-radius:14px;padding:10px 4px 8px}.ph-c-kpi-n{letter-spacing:-.02em;font-size:16px;font-weight:700}.ph-c-kpi-l{color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;margin-top:2px;font-family:Geist Mono,ui-monospace,monospace;font-size:9.5px}.ph-c-feat{border:1px solid var(--line);text-align:left;color:var(--ink);background:#ffffff0a;border-radius:16px;grid-template-columns:64px 1fr auto;align-items:center;gap:12px;padding:10px;display:grid}.ph-c-feat:active{background:#ffffff12}.ph-c-feat-thumb{aspect-ratio:1;border-radius:12px;width:64px;overflow:hidden}.ph-c-feat-tag{letter-spacing:.06em;text-transform:uppercase;font-family:Geist Mono,ui-monospace,monospace;font-size:10px}.ph-c-feat-name{margin-top:2px;font-size:14px;font-weight:600}.ph-c-feat-desc{color:var(--ink-3);margin-top:1px;font-size:11.5px;line-height:1.35}.ph-c-tabs{gap:6px;display:flex}.ph-c-tab{border:1px solid var(--line);color:var(--ink-2);background:#ffffff08;border-radius:10px;flex:1;padding:8px 4px;font-size:11.5px;font-weight:500}.ph-c-list{flex-direction:column;gap:4px;display:flex}.ph-c-row{text-align:left;color:var(--ink);background:#ffffff06;border:1px solid #ffffff0a;border-radius:12px;grid-template-columns:8px auto 1fr auto auto;align-items:center;gap:10px;padding:11px 12px;display:grid}.ph-c-row:active{background:#ffffff0f}.ph-c-dot{border-radius:50%;width:8px;height:8px}.ph-c-row-name{font-size:13px;font-weight:600}.ph-c-row-cat{color:var(--ink-3);font-size:11px}.ph-c-row-year{color:var(--ink-3);letter-spacing:.04em;font-family:Geist Mono,ui-monospace,monospace;font-size:10.5px}.ph-c-quick{grid-template-columns:repeat(4,1fr);gap:6px;margin-top:4px;display:grid}.ph-c-quick-btn{border:1px solid var(--line);color:var(--ink-2);background:#ffffff08;border-radius:14px;flex-direction:column;align-items:center;gap:6px;padding:12px 4px 10px;font-size:11px;display:flex}.ph-c-quick-ico{border-radius:10px;place-items:center;width:32px;height:32px;display:grid}.ph-widgets{gap:12px}.ph-w2-top{justify-content:space-between;align-items:center;padding:6px 0 0;display:flex}.ph-w2-greet{align-items:center;gap:10px;display:flex}.ph-w2-greet .avatar-circle{border-radius:50%;flex-shrink:0;width:36px;height:36px;overflow:hidden}.w-card{border:1px solid var(--line);color:var(--ink);text-align:left;transition:background .25s,transform .25s var(--ease);background:#ffffff0a;border-radius:20px;flex-direction:column;padding:14px;display:flex;overflow:hidden}.w-card:active{transform:scale(.985)}.w-head{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);align-items:center;gap:6px;font-family:Geist Mono,ui-monospace,monospace;font-size:11px;display:inline-flex}.w-big{justify-content:flex-end;height:200px;padding:0;position:relative}.w-big-bg{position:absolute;top:0;right:0;bottom:0;left:0}.w-big-overlay{z-index:2;background:linear-gradient(#0000,#0a0c10d9 70%);padding:14px 16px;position:relative}.w-tag{letter-spacing:.05em;text-transform:uppercase;margin-bottom:4px;font-family:Geist Mono,ui-monospace,monospace;font-size:10.5px}.w-big-name{letter-spacing:-.02em;font-size:22px;font-weight:700}.w-big-tag{color:var(--ink-2);margin-top:2px;font-size:12px}.w-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.w-row-uneven{grid-template-columns:1.9fr 1fr}.w-med{gap:8px;padding:14px}.w-big-n{letter-spacing:-.025em;margin-top:4px;font-size:36px;font-weight:700;line-height:1}.w-mini-icons{gap:4px;margin-top:auto;padding-top:12px;display:flex}.w-mini-ico{width:26px;height:26px;color:var(--ink-2);background:#ffffff0d;border-radius:8px;place-items:center;display:grid}.w-wide{gap:8px;padding:16px}.w-recent-list{flex-direction:column;gap:8px;margin-top:6px;display:flex}.w-recent-row{grid-template-columns:8px 1fr auto;align-items:center;gap:8px;font-size:12px;display:grid}.w-recent-dot{border-radius:50%;width:8px;height:8px}.w-recent-y{color:var(--ink-3);font-family:Geist Mono,ui-monospace,monospace;font-size:10px}.w-small{border:none;justify-content:center;align-items:center;gap:4px;padding:14px}.w-small-n{letter-spacing:-.04em;font-size:32px;font-weight:800;line-height:1}.w-small-l{font-size:11px;font-weight:600}.w-shortcuts{gap:6px;display:flex}.w-shortcut{border:1px solid var(--line);color:var(--ink-2);background:#ffffff08;border-radius:12px;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px 8px;font-size:11.5px;display:inline-flex}.ph-workspace{font-feature-settings:"tnum";gap:12px}.ph-ws-top{justify-content:space-between;align-items:center;padding:6px 0 2px;display:flex}.ph-ws-brand{align-items:center;gap:10px;display:flex}.ph-ws-logo{color:#0a0a0c;border-radius:10px;place-items:center;width:32px;height:32px;font-size:14px;font-weight:800;display:grid}.ph-ws-team{font-size:13px;font-weight:600}.ph-ws-date{color:var(--ink-3);letter-spacing:.03em;font-family:Geist Mono,ui-monospace,monospace;font-size:11px}.ph-ws-tools{gap:6px;display:flex}.ph-ws-tabs{border-bottom:1px solid var(--line);gap:4px;padding:2px 0;display:flex}.ph-ws-tab{color:var(--ink-3);border-bottom:2px solid #0000;align-items:center;gap:8px;margin-bottom:-1px;padding:8px 12px 10px;font-size:12.5px;font-weight:500;display:inline-flex}.ph-ws-tab.is-on{color:var(--ink);border-bottom-color:var(--accent)}.ph-ws-count{color:var(--ink-3);background:#ffffff0f;border-radius:999px;padding:2px 7px;font-family:Geist Mono,ui-monospace,monospace;font-size:10px}.ph-ws-list{flex-direction:column;display:flex}.ph-ws-row{border-bottom:1px solid var(--line);text-align:left;color:var(--ink);grid-template-columns:10px 56px 1fr auto auto;align-items:center;gap:10px;padding:11px 8px;display:grid}.ph-ws-row:active{background:#ffffff08}.ph-ws-status{border-radius:50%;width:10px;height:10px;box-shadow:0 0 6px}.ph-ws-id{color:var(--ink-3);letter-spacing:.04em;font-family:Geist Mono,ui-monospace,monospace;font-size:10px}.ph-ws-name{font-size:13.5px;font-weight:600}.ph-ws-techs{gap:4px;display:flex}.ph-ws-tag{color:var(--ink-2);background:#ffffff0f;border-radius:6px;padding:2px 7px;font-family:Geist Mono,ui-monospace,monospace;font-size:10px}.ph-ws-year{color:var(--ink-3);letter-spacing:.04em;font-family:Geist Mono,ui-monospace,monospace;font-size:10.5px}.ph-ws-divider{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);align-items:center;gap:10px;margin:4px 0 0;font-family:Geist Mono,ui-monospace,monospace;font-size:10px;display:flex}.ph-ws-divider:before,.ph-ws-divider:after{content:"";background:var(--line);flex:1;height:1px}.ph-ws-activity{flex-direction:column;gap:8px;display:flex}.ph-ws-act-row{grid-template-columns:28px 1fr auto;align-items:center;gap:10px;font-size:12.5px;display:grid}.ph-ws-act-ico{border-radius:10px;place-items:center;width:28px;height:28px;display:grid}.ph-ws-act-when{color:var(--ink-3);font-family:Geist Mono,ui-monospace,monospace;font-size:10px}.cta-modal-scrim{z-index:60;-webkit-backdrop-filter:blur(6px);background:#08090da6;place-items:center;padding:16px;display:grid;position:fixed;top:0;right:0;bottom:0;left:0}.cta-modal-card{background:#0e1015;border:1px solid #ffffff14;border-radius:16px;flex-direction:column;gap:14px;width:100%;max-width:460px;padding:20px;display:flex;box-shadow:0 20px 60px #00000080}.cta-modal-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.cta-modal-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-size:11px}.cta-modal-title{margin:4px 0 0;font-size:18px}.cta-modal-close{color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:4px}.cta-modal-close:hover{color:var(--ink);background:#ffffff0a}.cta-modal-error{color:#f87171;font-size:13px}.cta-modal-success{text-align:center;color:var(--ink);flex-direction:column;align-items:center;gap:10px;padding:20px 0;display:flex}.rich-text{font-size:inherit;color:inherit;line-height:1.55}.rich-text p{margin:0 0 .5em}.rich-text p:last-child{margin-bottom:0}.rich-text strong,.rich-text b{color:var(--ink);font-weight:700}.rich-text em,.rich-text i{font-style:italic}.rich-text s,.rich-text del{opacity:.7;text-decoration:line-through}.rich-text h2{color:var(--ink);margin:.6em 0 .3em;font-size:1.15em;font-weight:600}.rich-text h3{color:var(--ink);margin:.6em 0 .3em;font-size:1.05em;font-weight:600}.rich-text ul,.rich-text ol{margin:0 0 .5em;padding-left:1.25rem}.rich-text ul{list-style:outside}.rich-text ol{list-style:decimal}.rich-text li{margin:.15em 0}.rich-text blockquote{border-left:3px solid var(--line-2);color:var(--ink-2);margin:.5em 0;padding-left:.75rem;font-style:italic}.rich-text a{color:var(--color-accent,#22d3a8);text-underline-offset:2px;text-decoration:underline}.rich-text code{font-family:var(--font-mono);background:#ffffff0f;border-radius:4px;padding:.05em .3em;font-size:.9em}.proj-shots{margin-top:30px}.proj-shots-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-top:12px;display:grid}.proj-shot{aspect-ratio:16/10;border:1px solid var(--line);background:var(--card);border-radius:14px;display:block;overflow:hidden}.proj-shot img{object-fit:cover;width:100%;height:100%;transition:transform .3s var(--ease);display:block}.proj-shot:hover img{transform:scale(1.04)}.vp-phone .proj-shots-grid{grid-template-columns:1fr;gap:10px}.ref-list{flex-direction:column;gap:14px;margin-top:6px;display:flex}.ref-card{border:1px solid var(--line);background:var(--card);border-radius:18px;padding:16px}.ref-head{align-items:center;gap:12px;margin-bottom:10px;display:flex}.ref-photo{object-fit:cover;border:1px solid var(--line-2);border-radius:50%;flex-shrink:0;width:44px;height:44px}.ref-photo-blank{background:var(--card-2);color:var(--ink-3);justify-content:center;align-items:center;display:flex}.ref-id{min-width:0}.ref-name{color:var(--ink);font-size:14px;font-weight:600}.ref-role{color:var(--ink-3);margin-top:1px;font-size:12px}.ref-text{color:var(--ink-2);font-size:13.5px;line-height:1.6}.ref-contact{flex-wrap:wrap;gap:14px;margin-top:12px;display:flex}.ref-contact a{color:var(--ink-3);transition:color .2s var(--ease);align-items:center;gap:6px;font-size:12px;text-decoration:none;display:inline-flex}.ref-contact a:hover{color:var(--accent)}@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-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}
