@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=Noto+Sans+JP:wght@400;500;600&family=Zen+Kaku+Gothic+New:wght@400;500;700&display=swap";.loading-screen[data-v-36e91036]{z-index:300;color:var(--ink);background:var(--paper);opacity:1;touch-action:none;place-items:center;padding:2rem;transition:opacity .24s;display:grid;position:fixed;inset:0}.loading-screen.is-leaving[data-v-36e91036]{opacity:0}.loading-content[data-v-36e91036]{text-align:center}.loading-label[data-v-36e91036]{letter-spacing:.2em;margin:0 0 1.5rem;font-family:IBM Plex Mono,monospace;font-size:clamp(.7rem,1.6vw,.8rem);font-weight:400;line-height:1.5}.loading-pieces[data-v-36e91036]{justify-content:center;gap:clamp(.625rem,1.8vw,1rem);display:flex}.loading-piece[data-v-36e91036]{aspect-ratio:1;width:clamp(.875rem,2.3vw,1.25rem);animation:.34s cubic-bezier(.2,.7,.2,1) both loading-piece-settle-36e91036}.loading-piece[data-v-36e91036]:first-child{background:var(--web);animation-delay:0s}.loading-piece[data-v-36e91036]:nth-child(2){background:var(--ui);animation-delay:.12s}.loading-piece[data-v-36e91036]:nth-child(3){background:var(--dtp);animation-delay:.24s}.loading-piece[data-v-36e91036]:nth-child(4){background:var(--profile);animation-delay:.36s}@keyframes loading-piece-settle-36e91036{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.page-shell.is-intro-hidden{visibility:hidden;pointer-events:none}body.loading-intro-active{top:var(--intro-scroll-top,0px);width:calc(100% - var(--intro-scrollbar-gap,0px));position:fixed;left:0;overflow:hidden}@media (prefers-reduced-motion:reduce){.loading-screen[data-v-36e91036]{transition:none}.loading-piece[data-v-36e91036]{opacity:1;animation:none;transform:none}}@media print{.loading-screen[data-v-36e91036]{display:none}.page-shell.is-intro-hidden{visibility:visible}body.loading-intro-active{position:static;top:auto;overflow:visible}}.page-top-link[data-v-3b8fd4c8]{aspect-ratio:1;width:clamp(7.5rem,12vw,8.5rem);color:var(--ink);border-radius:50%;flex-shrink:0;place-items:center;margin-top:clamp(4rem,6vw,5.5rem);text-decoration:none;display:grid}.page-top-artwork[data-v-3b8fd4c8]{grid-area:1/1;width:100%;height:100%;overflow:hidden}.page-top-ring[data-v-3b8fd4c8]{transform-origin:60px 60px;animation:40s linear infinite page-top-spin-3b8fd4c8}.page-top-text[data-v-3b8fd4c8]{fill:currentColor;white-space:pre;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:500}.page-top-arrow[data-v-3b8fd4c8]{grid-area:1/1;font-size:clamp(1.6rem,3vw,1.9rem);font-weight:400;line-height:1}.page-top-link[data-v-3b8fd4c8]:hover,.page-top-link[data-v-3b8fd4c8]:focus-visible{color:var(--profile)}.page-top-link:hover .page-top-ring[data-v-3b8fd4c8],.page-top-link:focus-visible .page-top-ring[data-v-3b8fd4c8]{animation-play-state:paused}@keyframes page-top-spin-3b8fd4c8{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.page-top-ring[data-v-3b8fd4c8]{animation:none}}.gallery-viewport[data-v-da6b388d]{overflow:hidden}.gallery-viewport.is-draggable[data-v-da6b388d]{touch-action:pan-y pinch-zoom;cursor:grab;-webkit-user-select:none;user-select:none}.gallery-viewport.is-dragging[data-v-da6b388d]{cursor:grabbing}.gallery-track[data-v-da6b388d]{transform:translate3d(calc(-100% + var(--gallery-drag-offset,0px)), 0, 0);align-items:flex-start;display:flex}.gallery-track.is-single[data-v-da6b388d]{transform:none}.gallery-track.is-settling[data-v-da6b388d]{transition:transform .24s cubic-bezier(.2,.7,.2,1)}.gallery-panel[data-v-da6b388d]{flex:0 0 100%;min-width:0}.gallery-panel[aria-hidden=true][data-v-da6b388d]{height:0;overflow:visible}@media (prefers-reduced-motion:reduce){.gallery-track.is-settling[data-v-da6b388d]{transition:none}}:root{color:#303136;font-synthesis:none;text-rendering:optimizelegibility;--paper:#e9e5df;--paper-light:#f6f3ee;--ink:#303136;--muted:#65615c;--filter-ink:#191a1e;--line:#3031363d;--web:#6e8eb1;--ui:#b289b1;--dtp:#7fbe91;--profile:#e8a735;--gutter:clamp(1.25rem, 4vw, 4.5rem);--header-height:72px;--hero-top-space:clamp(8rem, 15vh, 10rem);--section-space:88px;--rail-width:max(70px, 7.5%);background:#e9e5df;font-family:Noto Sans JP,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);min-width:320px;color:var(--ink);margin:0}body.modal-open{overflow:hidden}button,a{color:inherit;font:inherit}button{border:0}a:focus-visible,button:focus-visible{outline:3px solid var(--profile);outline-offset:4px}img{max-width:100%;display:block}.page-shell{overflow:clip}.site-header{z-index:50;height:var(--header-height);padding:0 var(--gutter);isolation:isolate;border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.site-header:before{content:"";z-index:-1;background:color-mix(in srgb, var(--paper) 90%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);pointer-events:none;position:absolute;inset:0}.wordmark{color:inherit;letter-spacing:.12em;align-items:center;gap:.85rem;font-family:IBM Plex Mono,monospace;font-size:.78rem;text-decoration:none;display:flex}.wordmark-box{width:34px;height:34px;color:var(--paper-light);background:var(--ink);place-items:center;display:grid}.site-header nav{align-items:center;gap:clamp(1.4rem,3vw,3rem);display:flex}.site-header nav a{text-transform:uppercase;font-family:IBM Plex Mono,monospace;font-size:.75rem;text-decoration:none;position:relative}.site-header nav a:after{content:"";background:currentColor;height:1px;transition:right .25s;position:absolute;bottom:-.4rem;left:0;right:100%}.site-header nav a:hover:after{right:0}.menu-button{background:0 0;display:none}.hero{grid-template-columns:var(--rail-width) minmax(0, 1.12fr) minmax(310px, .71fr);min-height:100svh;padding:var(--hero-top-space) var(--gutter) 3rem;border-bottom:1px solid var(--line);grid-template-rows:1fr auto;align-items:center;gap:2rem clamp(2rem,5vw,6rem);display:grid}.hero-index,.section-rail{border-right:1px solid var(--line);flex-direction:column;justify-content:flex-start;align-self:stretch;align-items:flex-start;min-width:0;padding:.4rem 1rem .4rem 0;display:flex}.hero-index span,.section-rail p{writing-mode:vertical-rl;margin:0;font-family:IBM Plex Mono,monospace;font-size:.7rem}.kicker{letter-spacing:.16em;margin:0 0 1.35rem;font-family:IBM Plex Mono,monospace;font-size:.72rem}.hero-copy{min-width:0;container-type:inline-size}.hero h1{letter-spacing:-.07em;flex-direction:column;gap:.2em;margin:0;font-family:Zen Kaku Gothic New,sans-serif;font-size:min(clamp(2.5rem,5.2vw,6rem),11.5cqw);font-weight:400;line-height:1.06;display:flex}.hero h1 span,.hero h1 strong{white-space:nowrap;display:block}.hero h1 strong{color:var(--ink);font-weight:700}.hero h1 strong:after{content:"";vertical-align:-.06em;background:var(--profile);width:.25em;height:.25em;margin-left:.06em;display:inline-block}.hero-lead{letter-spacing:-.01em;max-width:680px;margin:2.1rem 0 0;font-size:clamp(1rem,2.6cqw,1.12rem);line-height:2}.hero-lead>span{display:block}.primary-link{min-height:52px;color:var(--paper-light);background:var(--ink);align-items:center;margin-top:2rem;padding:0 1.4rem;text-decoration:none;transition:all .2s;display:inline-flex}.primary-link:hover{color:var(--ink);background:var(--web)}.hero-portrait{border:1px solid var(--ink);background:var(--paper-light);flex-direction:column;align-self:stretch;min-width:0;min-height:500px;margin:0;display:flex}.portrait-image{background:#e6e1db;flex:1;place-items:center;min-width:0;padding:clamp(1.25rem,3vw,2rem);display:grid}.portrait-artwork{aspect-ratio:1;isolation:isolate;width:100%;max-width:24rem;position:relative;overflow:hidden}.portrait-artwork img{object-fit:contain;width:100%;height:auto}.portrait-ring{pointer-events:none;display:none}@supports ((-webkit-mask-image:radial-gradient(circle closest-side, transparent 90.4%, #000 90.4%)) or (mask-image:radial-gradient(circle closest-side, transparent 90.4%, #000 90.4%))){.portrait-photo{clip-path:circle(45.2%)}.portrait-ring{transform-origin:50%;will-change:transform;animation:40s linear infinite portrait-ring-spin;display:block;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle closest-side,#0000 0 90.4%,#000 90.4% 100%);mask-image:radial-gradient(circle closest-side,#0000 0 90.4%,#000 90.4% 100%)}}@keyframes portrait-ring-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.portrait-caption{border-top:1px solid var(--ink);justify-content:space-between;gap:1rem;padding:1rem;font-family:IBM Plex Mono,monospace;font-size:.7rem;display:flex}.hero-facts{border-top:1px solid var(--line);grid-column:2/-1;grid-template-columns:repeat(3,1fr);margin:0;display:grid}.hero-facts div{border-right:1px solid var(--line);flex-wrap:wrap;place-content:flex-start space-between;align-items:baseline;gap:.55rem 1rem;min-width:0;padding:1.2rem 1.4rem;display:flex}.hero-facts div:first-child{border-left:1px solid var(--line)}.hero-facts dt{text-transform:uppercase;min-width:0;font-family:IBM Plex Mono,monospace;font-size:.68rem}.hero-facts .hero-experience dt{text-transform:none}.hero-facts dd{text-align:right;white-space:nowrap;min-width:0;margin:0 0 0 auto;font-size:1.05rem;font-weight:600}.section{grid-template-columns:var(--rail-width) minmax(0, 1fr);padding:var(--section-space) var(--gutter);scroll-margin-top:var(--header-height);border-bottom:1px solid var(--line);display:grid}.section-rail p{text-transform:uppercase}.section-main{min-width:0;padding-left:clamp(1.5rem,5vw,6rem)}.section-heading{grid-template-columns:1fr minmax(280px,.55fr);align-items:end;gap:3rem;display:grid}.section-heading h2,.profile-title h2{letter-spacing:-.07em;margin:0;font-family:Zen Kaku Gothic New,sans-serif;font-size:clamp(3rem,5.5vw,6.5rem);font-weight:500;line-height:1}.section-heading>p{max-width:580px;margin:0;line-height:1.9}.filters{border-top:1px solid var(--ink);border-left:1px solid var(--ink);flex-wrap:wrap;margin:3.5rem 0 2.5rem;display:flex}.filters button{text-align:left;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);cursor:pointer;background:0 0;justify-content:space-between;gap:3rem;min-width:150px;padding:.9rem 1rem;transition:all .2s;display:flex}.filters button span{font-family:IBM Plex Mono,monospace}.filters button small{font-size:.7rem}.filters button:hover,.filters button.is-active{color:var(--paper-light);background:var(--ink)}.filters button.is-active span{text-underline-offset:.3em;font-weight:500;text-decoration:underline}.filters button[data-filter=Web].is-active{color:var(--filter-ink);background:var(--web)}.filters button[data-filter=UI].is-active{color:var(--filter-ink);background:var(--ui)}.filters button[data-filter=DTP].is-active{color:var(--filter-ink);background:var(--dtp)}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2rem,4vw,4.5rem) clamp(1.25rem,2.5vw,2.5rem);display:grid}.project-card button{text-align:left;cursor:pointer;background:0 0;width:100%;padding:0}.project-image{aspect-ratio:1.414;border:1px solid var(--ink);background:#e6e1db;padding:clamp(.75rem,2vw,1.25rem);position:relative;overflow:hidden}.project-image img{object-fit:contain;width:100%;height:100%}.view-label{color:var(--paper-light);text-transform:uppercase;background:var(--ink);opacity:0;padding:.65rem .85rem;font-family:IBM Plex Mono,monospace;font-size:.68rem;transition:all .25s;position:absolute;bottom:1rem;right:1rem;transform:translateY(8px)}.project-card button:hover .view-label{opacity:1;transform:translateY(0)}.project-info{padding-top:1rem}.project-info>div{align-items:center;gap:.7rem;display:flex}.project-number{color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:.67rem}.category-label{border:2px solid;align-items:center;min-height:30px;padding:0 .65rem;font-family:IBM Plex Mono,monospace;font-size:.875rem;font-weight:500;display:inline-flex}.category-label[data-category=Web]{color:var(--web)}.category-label[data-category=UI]{color:var(--ui)}.category-label[data-category=DTP]{color:var(--dtp)}.project-info h3{margin:.7rem 0 .4rem;font-family:Zen Kaku Gothic New,sans-serif;font-size:clamp(1.35rem,2vw,1.9rem);font-weight:500}.project-info p{color:var(--muted);margin:0;font-size:.88rem}.project-list-enter-active,.project-list-leave-active{transition:opacity .25s,transform .25s}.project-list-enter-from,.project-list-leave-to{opacity:0;transform:translateY(14px)}.skills-section{background:var(--paper-light)}.skills-grid{border-top:1px solid var(--ink);border-left:1px solid var(--ink);grid-template-columns:repeat(2,minmax(0,1fr));margin-top:4rem;display:grid}.skill-card{border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:1.4rem}.skill-topline{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.skill-topline h3{margin:0;font-size:1rem;font-weight:500}.skill-topline span{font-family:IBM Plex Mono,monospace;font-size:.78rem}.skill-card p{color:var(--muted);margin:.9rem 0 0;font-size:.8rem}.profile-section{color:var(--paper-light);background:var(--ink)}.profile-section .section-rail{border-color:#ffffff40}.profile-layout{grid-template-columns:minmax(250px,.8fr) minmax(320px,1.1fr);gap:clamp(3rem,8vw,8rem);display:grid}.profile-title h2{font-size:clamp(3rem,5vw,5.5rem)}.name-en{color:#aaa;letter-spacing:.14em;margin:1rem 0 0;font-family:IBM Plex Mono,monospace;font-size:.8rem}.profile-copy{font-size:1rem;line-height:2}.profile-copy>p{margin:0 0 1.4rem}.profile-copy>.profile-experience{margin-bottom:0}.profile-lead{font-family:Zen Kaku Gothic New,sans-serif;font-size:clamp(1.215rem,1.8vw,1.8rem);font-weight:600;line-height:1.5}.profile-details{border-top:1px solid #ffffff40;margin:3rem 0 0}.profile-details div{border-bottom:1px solid #ffffff40;grid-template-columns:.35fr .65fr;align-items:center;gap:1rem;padding:1rem 0;display:grid}.profile-details dt{color:#aaa;text-transform:uppercase;font-family:IBM Plex Mono,monospace;font-size:.72rem}.profile-details dd{margin:0}.profile-note{border-top:1px solid #ffffff40;grid-column:1/-1;grid-template-columns:.35fr .65fr;align-items:center;gap:2rem;padding-top:1.5rem;display:grid}.profile-note span{color:var(--profile);text-transform:uppercase;font-family:IBM Plex Mono,monospace;font-size:.72rem}.profile-note p{margin:0;line-height:1.8}.closing{min-height:78svh;padding:6rem var(--gutter);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.closing-message{width:100%;max-width:68rem;container-type:inline-size}.closing-title{letter-spacing:.015em;white-space:nowrap;margin:0;font-family:Noto Sans JP,sans-serif;font-size:min(5.4rem,8.01cqw);font-weight:400;line-height:1.3}.closing-title:after{content:"";vertical-align:baseline;background:#d56749;width:max(3px,.1em);height:max(3px,.1em);margin-left:.1em;display:inline-block}.closing-copy{letter-spacing:.16em;margin:clamp(1.25rem,2.5vw,1.75rem) 0 0;font-size:clamp(.875rem,2.6vw,1.25rem);font-weight:400;line-height:1.8}.closing-copy span{white-space:nowrap;display:block}footer{padding:1.2rem var(--gutter);color:var(--paper-light);background:var(--ink);grid-template-columns:1fr auto 1fr;gap:1rem;font-family:IBM Plex Mono,monospace;font-size:.65rem;display:grid}footer span:last-child{text-align:right}.modal-backdrop{--modal-inset:clamp(.7rem, 3vw, 2rem);z-index:100;padding:var(--modal-inset);-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#141415d1;position:fixed;inset:0;overflow:hidden}.project-modal{width:min(1160px,100%);max-height:calc(100dvh - 2 * var(--modal-inset));background:var(--paper);flex-direction:column;margin:0 auto;display:flex;overflow:hidden;box-shadow:0 30px 100px #00000059}.modal-body{overscroll-behavior:contain;min-height:0;overflow-y:auto}.modal-toolbar{z-index:4;min-height:58px;color:var(--paper-light);background:var(--ink);flex-shrink:0;justify-content:space-between;align-items:center;padding:0 1rem;font-family:IBM Plex Mono,monospace;font-size:.72rem;display:flex;position:relative}.modal-toolbar button{color:inherit;cursor:pointer;background:0 0;border:1px solid #ffffff73;padding:.55rem .8rem}.modal-toolbar button:hover{color:var(--ink);background:var(--paper-light)}.modal-visual{background:#e6e1db;padding:clamp(1rem,3vw,2rem)}.gallery-slide{grid-template-columns:minmax(0,1fr);gap:1.25rem;display:grid}.gallery-slide[data-layout=pair]{grid-template-columns:repeat(2,minmax(0,1fr));max-width:52rem;margin:0 auto}.gallery-item{text-align:center;min-width:0;margin:0}.gallery-item img{object-fit:contain;width:100%;height:clamp(12rem,100dvh - 22rem,34rem)}.gallery-item figcaption{color:var(--ink);margin-top:.6rem;font-size:.875rem;line-height:1.6}.gallery-position{text-align:center;min-width:5.2rem;font-family:IBM Plex Mono,monospace;font-size:.8rem}.gallery-views{gap:.5rem;margin-top:.8rem;padding:.25rem .25rem .6rem;display:flex;overflow-x:auto}.gallery-views button{min-height:36px;color:var(--ink);background:var(--paper-light);border:1px solid var(--line);cursor:pointer;flex:none;padding:.4rem .7rem;font-size:.8rem}.gallery-views button:first-child{margin-inline-start:auto}.gallery-views button:last-child{margin-inline-end:auto}.gallery-views button[aria-pressed=true]{color:var(--paper-light);background:var(--ink);text-underline-offset:.25em;text-decoration:underline}.modal-image-controls{justify-content:center;align-items:center;gap:.7rem;margin-top:1rem;display:flex}.modal-image-controls button{background:var(--paper-light);border:1px solid var(--ink);cursor:pointer;min-height:42px;padding:0 1rem}.modal-image-controls button:hover{color:var(--paper-light);background:var(--ink)}.modal-content{grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:clamp(2rem,6vw,6rem);padding:clamp(2rem,6vw,5rem);display:grid}.modal-content>*{min-width:0}.modal-title-block{overflow-wrap:anywhere;align-self:start;min-width:0;container-type:inline-size}.modal-title-block h2{font-family:Zen Kaku Gothic New,sans-serif;font-size:min(clamp(1.75rem, 3.8vw, 3.5rem), calc(100cqw / var(--title-line-length)));text-wrap:balance;letter-spacing:-.04em;margin:1rem 0 0;font-weight:500;line-height:1.25}.company-title-part{white-space:pre;display:inline-block}.modal-client{color:var(--muted)}.modal-copy section{border-top:1px solid var(--line);padding:1.2rem 0}.modal-copy h3{text-transform:uppercase;margin:0 0 .6rem;font-family:IBM Plex Mono,monospace;font-size:.72rem}.modal-copy p{margin:0;line-height:1.85}.modal-copy ul{flex-wrap:wrap;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.modal-copy li{background:var(--paper-light);border:1px solid var(--line);padding:.4rem .6rem;font-size:.76rem}.external-link{min-height:46px;color:var(--paper-light);background:var(--ink);align-items:center;margin-top:1rem;padding:0 1rem;text-decoration:none;display:inline-flex}.external-link:hover{color:var(--ink);background:var(--profile)}.modal-enter-active,.modal-leave-active{transition:opacity .25s}.modal-enter-active .project-modal,.modal-leave-active .project-modal{transition:transform .3s cubic-bezier(.2,.7,.2,1)}.modal-enter-from,.modal-leave-to{opacity:0}.modal-enter-from .project-modal,.modal-leave-to .project-modal{transform:translateY(22px)}@media (width>=981px){.hero-portrait{align-self:center;min-height:0}.portrait-image{aspect-ratio:1;flex:none}.gallery-slide{--gallery-image-height:clamp(12rem, calc(100dvh - 22rem), 34rem)}.gallery-item{grid-template-rows:var(--gallery-image-height) auto;display:grid}.gallery-item img{width:calc(100% * var(--desktop-image-scale,1));height:calc(var(--gallery-image-height) * var(--desktop-image-scale,1));align-self:center;margin-inline:auto}}@media (width<=980px){:root{--section-space:clamp(48px, 8vw, 72px)}.hero{grid-template-columns:70px minmax(0,1fr)}.hero-portrait{grid-column:2;min-height:460px}.hero-facts{grid-column:2}.hero-facts div{flex-direction:column;place-content:stretch flex-start;align-items:flex-start;gap:.6rem}.hero-facts dd{margin-left:auto}.section-heading,.profile-layout{grid-template-columns:1fr}.profile-note{grid-column:auto;grid-template-columns:1fr}.modal-content{grid-template-columns:minmax(0,1fr)}}@media (width<=700px){:root{--header-height:64px;--hero-top-space:8.5rem}.menu-button{z-index:2;cursor:pointer;padding:.6rem;font-family:IBM Plex Mono,monospace;font-size:.72rem;display:block;position:relative}.site-header nav{z-index:1;height:100dvh;padding:5.5rem var(--gutter) 2rem;visibility:hidden;opacity:0;background:var(--paper);pointer-events:none;flex-direction:column;justify-content:safe center;transition:opacity .2s,transform .25s,visibility 0s linear .25s;position:fixed;inset:0;overflow-y:auto;transform:translateY(-2%)}.site-header nav.is-open{visibility:visible;opacity:1;pointer-events:auto;transition-delay:0s;transform:translateY(0)}.site-header nav a{font-size:1.6rem}.hero{grid-template-rows:auto;grid-template-columns:1fr;gap:2.5rem;min-height:auto}.hero-index{display:none}.hero h1{font-size:min(clamp(2.4rem,12vw,4.25rem),11.5cqw)}.hero-portrait{grid-column:auto;min-height:0}.portrait-image{padding:clamp(1.25rem,7vw,2rem)}.hero-facts{grid-column:auto;grid-template-columns:1fr}.hero-facts div{flex-direction:row;justify-content:space-between;align-items:baseline}.hero-facts dd{margin-left:auto}.hero-facts div{border-left:1px solid var(--line);border-bottom:1px solid var(--line)}.section{grid-template-columns:1fr}.section-rail{border-right:0;border-bottom:1px solid var(--line);flex-direction:row;min-height:auto;padding:0 0 1rem}.section-rail p{writing-mode:horizontal-tb}.section-main{padding:2rem 0 0}.filters{margin-right:calc(var(--gutter) * -1);padding-right:var(--gutter);scrollbar-width:none;border-left:0;flex-wrap:nowrap;overflow-x:auto}.filters::-webkit-scrollbar{display:none}.filters button{border-left:1px solid var(--ink);flex:none}.project-grid,.skills-grid{grid-template-columns:1fr}.project-grid{gap:3.2rem}.profile-section .section-rail{border-color:#ffffff40}.profile-details div{grid-template-columns:1fr;gap:.4rem}.modal-backdrop{--modal-inset:0px}.project-modal{min-height:100svh}footer{grid-template-columns:1fr auto}footer span:nth-child(2){display:none}}.hero-facts small{text-align:left;white-space:normal;grid-template-columns:auto minmax(0,1fr);column-gap:.3em;max-width:14em;margin-top:.4rem;font-size:.72rem;font-weight:400;line-height:1.6;display:grid}.project-info>div{flex-wrap:wrap}.project-type{color:var(--muted);font-size:.72rem}.skills-note{max-width:60em;color:var(--muted);margin:2rem 0 0;font-size:.85rem;line-height:1.8}.skills-grid{margin-top:1.5rem}.skill-topline{flex-wrap:wrap}.skill-topline span{color:var(--muted)}.skill-card p{line-height:1.9}.profile-achievement{border-top:1px solid #ffffff40;margin-top:2rem;padding:1.4rem 0}.profile-achievement h3{margin:0 0 .75rem;font-size:1rem;font-weight:500}.profile-achievement p{margin:0}.profile-achievement .achievement-note{color:#c5c1bb;margin-top:.7rem;font-size:.8rem;line-height:1.8}.project-meta{border-top:1px solid var(--line);margin:1.5rem 0 0}.project-meta div{border-bottom:1px solid var(--line);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:1rem;padding:.8rem 0;display:grid}.project-meta dt,.project-meta dd{margin:0;font-size:.85rem;line-height:1.7}.project-meta dt{color:var(--muted)}.modal-copy .project-deliverables{gap:.5rem;padding-left:1.25rem;list-style:outside;display:grid}.modal-copy .project-deliverables li{background:0 0;border:0;padding:0;font-size:1rem;line-height:1.85}.modal-copy .project-source-note{color:var(--muted);margin-top:1rem;font-size:.8rem;line-height:1.8}@media (width<=600px){.gallery-item img{height:auto;max-height:max(16rem,100dvh - 18rem)}.modal-image-controls{gap:.4rem}.modal-image-controls button{white-space:nowrap;padding:0 .75rem}.gallery-position{min-width:4.5rem;font-size:.75rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.portrait-ring{will-change:auto;animation:none}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}[data-reveal]{--reveal-duration:.65s;--reveal-distance:16px;--reveal-easing:cubic-bezier(.2, .7, .2, 1)}[data-reveal][data-reveal-mode=scroll]{--reveal-duration:.95s;--reveal-distance:24px;--reveal-easing:cubic-bezier(.22, .61, .36, 1)}.primary-link[data-reveal]{transition-property:color,background-color}[data-reveal][data-reveal-state=pending]{opacity:0;transform:translate3d(0, var(--reveal-distance), 0);pointer-events:none}[data-reveal][data-reveal-state=revealing]{animation:content-fade-up var(--reveal-duration) var(--reveal-easing) var(--reveal-delay,0s) both}.hero h1 strong[data-hero-mark=pending]:after{opacity:0;transform:scale(.75)}.hero h1 strong[data-hero-mark=revealing]:after{transform-origin:0 100%;animation:.22s ease-out both hero-mark-in}@keyframes content-fade-up{0%{opacity:0;transform:translate3d(0, var(--reveal-distance), 0)}to{opacity:1;transform:none}}@keyframes hero-mark-in{0%{opacity:0;transform:scale(.75)}to{opacity:1;transform:scale(1)}}@media (width<=980px){[data-reveal]{--reveal-duration:.6s;--reveal-distance:12px}[data-reveal][data-reveal-mode=scroll]{--reveal-duration:.85s;--reveal-distance:20px}}@media (width<=700px){[data-reveal]{--reveal-duration:.55s}[data-reveal][data-reveal-mode=scroll]{--reveal-duration:.8s}}@media (height<=500px){[data-reveal]{--reveal-duration:.5s;--reveal-distance:10px}[data-reveal][data-reveal-mode=scroll]{--reveal-duration:.7s;--reveal-distance:16px}}@media (prefers-reduced-motion:reduce),print{[data-reveal]{opacity:1!important;pointer-events:auto!important;transition:none!important;animation:none!important;transform:none!important}.hero h1 strong:after{opacity:1!important;animation:none!important;transform:none!important}}
