@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-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,base,components;@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.block{display:block}.contents{display:contents}.grid{display:grid}.hidden{display:none}.inline{display:inline}.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}.border{border-style:var(--tw-border-style);border-width:1px}.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,)}}:root{box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);--ink:#14233a;--ink-soft:#3b4a60;--paper:#fff8f0;--accent:#b4531f;--line:#14233a2e}html{scroll-padding-top:env(safe-area-inset-top,0px)}*,:before,:after{box-sizing:inherit}body{color:var(--ink);-webkit-font-smoothing:antialiased;background:#1d1713;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5}.bg{z-index:-1;background:#cce8ff;position:fixed;inset:0}.bg:before{content:"";inset:var(--shift,0px) 0 0 0;background:var(--bg-d) 50% 8%/cover no-repeat;position:absolute}@media (max-aspect-ratio:4/5),(max-width:700px){.bg:before{background-image:var(--bg-m);background-position:50%;-webkit-mask-image:linear-gradient(#0000 0,#000 90px);mask-image:linear-gradient(#0000 0,#000 90px)}}.bg:after{content:"";background:linear-gradient(#fff0 0% 45%,#140e0a40 100%);position:absolute;inset:0}header{justify-content:space-between;align-items:flex-start;gap:16px;padding:clamp(16px,3vw,32px) clamp(18px,4vw,48px);display:flex}.id{flex-direction:column;gap:clamp(14px,2vw,22px);min-width:0;display:flex}.name{align-items:flex-end;gap:clamp(10px,2vw,28px);line-height:0;display:flex}.name img{width:auto;height:clamp(60px,7.6vw,112px);display:block}.id p{max-width:27em;color:var(--ink);margin:0;font-size:clamp(.95rem,1.7vw,1.4rem);line-height:1.4}.side{flex-direction:column;flex:none;align-items:center;gap:12px;display:flex}.portrait{aspect-ratio:1;border:3px solid var(--paper);object-fit:cover;border-radius:50%;width:clamp(140px,24vw,340px);display:block;box-shadow:0 4px 18px #14233a4d}.social{gap:10px;display:flex}.social a{aspect-ratio:1;border:1px solid var(--line);width:calc(1.5*clamp(.95rem,1.4vw,1.15rem) + 22px);color:var(--ink);background:#fff8f0d1;border-radius:50%;place-items:center;display:grid}.social a:hover{background:var(--paper)}.social svg{fill:currentColor;width:50%;height:50%}nav{flex-wrap:wrap;gap:8px;display:flex}nav a{color:var(--ink);-webkit-backdrop-filter:blur(6px);border:1px solid var(--line);background:#fff8f0d1;border-radius:999px;padding:10px 16px;font-size:clamp(.95rem,1.4vw,1.15rem);font-weight:600;text-decoration:none}nav a:hover{background:var(--paper)}a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.top{min-height:100svh}[hidden]{display:none!important}.page{padding:clamp(16px,3vw,32px) clamp(18px,4vw,48px) 56px}.panel{-webkit-backdrop-filter:blur(10px);background:#fff8f0e6;border-radius:14px;max-width:1100px;margin:0 auto;padding:clamp(20px,3vw,36px)}.doc{max-width:860px}.topbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.back,.next,.dl{font:inherit;cursor:pointer;border-radius:999px;padding:8px 16px;font-size:.95rem;font-weight:600;line-height:1.5;text-decoration:none;display:inline-block}.back,.next{color:var(--ink);border:1px solid var(--line);background:#ffffffa6}.back:hover,.next:hover{background:#fff}.dl{color:#fff;background:var(--ink);border:1px solid var(--ink)}.dl:hover{background:#25395a}.doc-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:8px;display:flex}.doc-head h2{margin:0 0 6px;font-size:1.8rem}.contact{color:var(--ink-soft);flex-wrap:wrap;gap:4px 18px;margin:0;display:flex}.contact a,.sub2 a{color:var(--ink)}.doc section{margin-top:22px}.doc h3{border-bottom:2px solid var(--ink);margin:0 0 10px;padding-bottom:6px;font-size:1.05rem}.entry{margin-bottom:16px}.entry .row{flex-wrap:wrap;justify-content:space-between;gap:4px 16px;display:flex}.entry .when{color:var(--ink-soft);white-space:nowrap}.sub2{color:var(--ink-soft);margin-bottom:4px;font-size:.95rem}.entry ul{margin:6px 0 0;padding-left:1.15rem}.entry li{margin-bottom:4px;line-height:1.45}.note{color:var(--ink-soft);margin:0;line-height:1.5}.skills{grid-template-columns:max-content 1fr;gap:6px 18px;margin:0;display:grid}.skills dt{font-weight:600}.skills dd{color:var(--ink-soft);margin:0}@media (max-width:560px){.skills{grid-template-columns:1fr;gap:0}.skills dd{margin-bottom:8px}}.pg-head h2{margin:0 0 6px;font-size:1.8rem}.pg-head p{color:var(--ink-soft);max-width:60ch;margin:0;line-height:1.5}.filters{flex-wrap:wrap;gap:8px;margin:18px 0 20px;display:flex}.chip{font:inherit;border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff9;border-radius:999px;padding:8px 16px;font-size:.95rem;font-weight:600;line-height:1.5}.chip:hover{background:#fff}.chip[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}.pgrid{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:16px;display:grid}.pcard{border:1px solid var(--line);color:var(--ink);background:#ffffffb3;border-radius:12px;flex-direction:column;gap:10px;padding:18px;text-decoration:none;display:flex}a.pcard{transition:transform .15s,box-shadow .15s}a.pcard:hover{background:#fff;transform:translateY(-2px);box-shadow:0 8px 20px #14233a29}.pcard .kind{color:var(--accent);font-size:.82rem;font-weight:600}.pcard-img{aspect-ratio:16/10;object-fit:cover;background:#e9e2d8;border-radius:12px 12px 0 0;width:calc(100% + 36px);max-width:none;margin:-18px -18px 2px;display:block}.pcard h3{margin:0;font-size:1.2rem;line-height:1.25}.pcard p{color:var(--ink-soft);margin:0;font-size:.95rem;line-height:1.45}.tags{flex-wrap:wrap;gap:6px;margin:auto 0 0;padding:6px 0 0;list-style:none;display:flex}.tags li{background:#14233a14;border-radius:999px;padding:3px 10px;font-size:.78rem}.pcard .more{text-underline-offset:3px;font-size:.92rem;font-weight:600;text-decoration:underline}.pcard.soon{background:#ffffff73;border-style:dashed}.pcard .soonmsg{color:var(--ink-soft);font-size:.88rem;font-style:italic}.project .kind{color:var(--accent);margin:0 0 4px;font-size:.85rem;font-weight:600}.project h2{margin:0 0 8px;font-size:1.9rem;line-height:1.15}.lede{max-width:60ch;margin:0 0 16px;font-size:1.1rem;line-height:1.5}.facts{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px 24px;margin:0 0 20px;padding:14px 0;display:grid}.facts dt{color:var(--ink-soft);margin-bottom:2px;font-size:.8rem;font-weight:600}.facts dd{margin:0;font-size:.95rem;line-height:1.4}.facts a{color:var(--ink)}.facts.facts-sm{border-bottom:0;margin:12px 0 0;padding:10px 0 0}.pgal{grid-template-columns:1fr 1fr;gap:12px;margin:0 0 4px;display:grid}.pgal-item{cursor:default;font:inherit;background:#e9e2d8;border:0;border-radius:12px;padding:0;display:block;overflow:hidden}.pgal-item:first-child{grid-column:1/-1}.pgal-item img{aspect-ratio:3/2;object-fit:cover;width:100%;height:100%;transition:filter .15s;display:block}.pgal-item:first-child img{aspect-ratio:16/9}.pgal-item:hover img{filter:brightness(1.06)}.pgal.one .pgal-item:first-child img{aspect-ratio:auto;height:auto;max-height:520px}@media (max-width:560px){.pgal{grid-template-columns:1fr}}.media{border:2px dashed var(--line);text-align:center;min-height:170px;color:var(--ink-soft);border-radius:12px;place-items:center;padding:16px;font-size:.95rem;display:grid}.hl{margin:0;padding-left:1.15rem}.hl li{margin-bottom:6px;line-height:1.5}.flow{counter-reset:step;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.flow li{border:1px solid var(--line);counter-increment:step;background:#ffffffb3;border-radius:10px;padding:12px 12px 12px 46px;position:relative}.flow li:before{content:counter(step);background:var(--ink);color:#fff;border-radius:50%;place-items:center;width:24px;height:24px;font-size:.8rem;font-weight:700;display:grid;position:absolute;top:12px;left:12px}.flow .via{color:var(--accent);margin-bottom:2px;font-size:.78rem;font-weight:600;display:block}.flow strong{font-size:.95rem;line-height:1.3;display:block}.flow .d{color:var(--ink-soft);margin-top:4px;font-size:.85rem;line-height:1.4;display:block}.dive{border:1px solid var(--line);background:#ffffff8c;border-radius:10px;margin-top:22px}.dive summary{cursor:pointer;justify-content:space-between;align-items:center;padding:12px 16px;font-weight:700;list-style:none;display:flex}.dive summary::-webkit-details-marker{display:none}.dive summary:after{content:"+";font-size:1.3rem;line-height:1}.dive[open] summary:after{content:"−"}.dive .inner{padding:0 16px 14px}.dive ul{margin:0;padding-left:1.15rem}.dive li{margin-bottom:6px;line-height:1.5}.ph{color:var(--ink-soft);margin:0;font-style:italic}@media (max-width:620px){header{grid-template-columns:1fr auto;align-items:start;gap:12px 14px;display:grid}.id{display:contents}.who{grid-area:1/1}.name{gap:8px}.name img{height:min(64px,23.1481vw - clamp(18px,4vw,48px)/2.16 - 5.09259px - max(140px,24vw)/4.32)}nav{grid-area:2/1;gap:6px}nav a{padding:8px 13px;font-size:.92rem}.side{grid-area:1/2/span 2;gap:10px}.social a{width:calc(1.38rem + 18px)}.id p{grid-area:3/1/auto/-1;max-width:none;font-size:1.02rem}}.bg{--bg-d:url(/images/hero-desktop.jpg);--bg-m:url(/images/hero-mobile.jpg);width:100vw;right:auto}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-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}
