@charset "UTF-8";
:root{--paper:#f8f8f6;--ink:#202020;--muted:#656560;--line:#d1d1cc;--red:#df3e2e;--gutter:clamp(20px,4vw,72px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Helvetica Neue",Arial,"Noto Sans JP",sans-serif;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:3px solid var(--red);outline-offset:5px}::selection{background:var(--red);color:white}.skip-link{position:fixed;top:-80px;left:20px;z-index:100;background:var(--ink);color:white;padding:12px 20px}.skip-link:focus{top:10px}
.masthead{min-height:100px;margin:0 var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:32px;border-bottom:1px solid var(--ink)}.identity{font-size:26px;font-weight:500;letter-spacing:-.04em;white-space:nowrap;display:flex;align-items:baseline;gap:9px}.identity-dot{width:7px;height:7px;display:block;border-radius:50%;background:var(--red)}.discipline{font-size:12px;line-height:1.5;letter-spacing:.04em;margin-left:auto;margin-right:clamp(24px,7vw,105px)}.masthead nav{display:flex;gap:28px}.work-link{min-height:44px;display:flex;align-items:center;font-size:14px}.work-link:hover{color:var(--red)}main{padding:0 var(--gutter)}.intro{padding:29px 0 30px}.intro-label{font-size:12px;letter-spacing:.08em;display:flex;justify-content:space-between;color:var(--muted)}h1{font-size:clamp(42px,5.1vw,76px);font-weight:400;letter-spacing:-.05em;line-height:1.14;margin:24px 0 22px}.red-period{color:var(--red)}.intro-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px}.intro-bottom p{margin:0;font-size:14px}.intro-jp{font-size:14px;color:var(--muted)}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:12px 0 25px}.filters{display:flex;gap:8px}.filter{padding:8px 14px;min-height:44px;font-size:14px;background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0;transition:color .15s}.filter:first-child{padding-left:0}.filter:hover{color:var(--red)}.filter.active{border-bottom-color:var(--red);color:var(--ink)}.filter span{font-size:12px;color:var(--muted);margin-left:7px}.work-count{font-size:12px;color:var(--muted);margin:0;letter-spacing:.04em}.gallery{display:block}.work-group+.work-group{margin-top:55px}.group-header{display:flex;align-items:baseline;justify-content:space-between;gap:20px;border-top:1px solid var(--ink);padding:17px 0 21px}.group-header h2{font-size:21px;line-height:1.3;font-weight:400;letter-spacing:-.02em;margin:0}.group-header h2 span{font-size:12px;vertical-align:top;margin-left:12px;color:var(--red);font-variant-numeric:tabular-nums}.group-header p{font-size:14px;color:var(--muted);margin:0}.project-grid{display:grid;gap:25px 24px;align-items:start}.grid-web{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-banner{grid-template-columns:repeat(5,minmax(0,1fr));gap:30px 16px}.grid-logo{grid-template-columns:repeat(5,minmax(0,1fr))}.project{min-width:0}.project-button{display:block;width:100%;padding:0;background:none;border:0;text-align:left}.project-art{position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#eeeee9;aspect-ratio:1}.project.web .project-art{aspect-ratio:2.1;background:#e9e9e5}.project-art img{width:100%;height:100%;object-fit:contain;display:block;transition:transform .4s cubic-bezier(.2,.7,.1,1)}.project.web .project-art img{width:100%;height:100%}.project.logo .project-art img{width:72%;height:72%}.project-button:hover img{transform:scale(1.015)}.view-chip{position:absolute;right:10px;bottom:10px;display:flex;align-items:center;justify-content:center;min-height:32px;padding:4px 10px;background:#f8f8f6ed;color:var(--ink);font-size:12px;border:1px solid #ffffff70;opacity:0;transition:opacity .15s}.project-button:hover .view-chip,.project-button:focus-visible .view-chip{opacity:1}.project-caption{padding:11px 0 0}.project-title{font-size:18px;font-weight:400;letter-spacing:-.015em;line-height:1.5;margin:0}.project-sub{font-size:14px;color:var(--muted);line-height:1.5;margin:3px 0 0}.banner .project-title,.logo .project-title{font-size:14px;letter-spacing:0;line-height:1.55}.banner .project-sub{font-size:12px;margin-top:1px}.about{margin-top:65px;padding-top:30px;border-top:1px solid var(--ink);display:grid;grid-template-columns:1fr 2fr;gap:30px}.about h2{font-size:21px;font-weight:400;line-height:1.3;margin:0;letter-spacing:-.02em}.about-copy p{font-size:16px;line-height:1.9;margin:0 0 16px}.about-copy .about-name{font-size:20px;line-height:1.5}.about-name span{display:inline-block;margin-left:18px;font-size:14px;color:var(--muted)}.about-copy .about-credit{font-size:14px;color:var(--muted);margin-bottom:0}footer{margin:65px var(--gutter) 0;padding:25px 0;border-top:1px solid var(--line)}.footer-name{font-size:20px;font-weight:400;letter-spacing:-.025em}.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:24px;font-size:12px;color:var(--muted);margin-top:20px}.footer-bottom a{font-size:14px;color:var(--ink);min-height:44px;display:flex;align-items:center}.footer-bottom a:hover{color:var(--red)}
dialog{padding:0;border:0;width:min(1100px,calc(100% - 40px));max-height:calc(100dvh - 48px);background:var(--paper);color:var(--ink)}dialog::backdrop{background:#151515c4;backdrop-filter:blur(4px)}.dialog-shell{position:relative}.dialog-header{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:24px;background:var(--paper);border-bottom:1px solid var(--line);padding:20px 28px}.dialog-header>div{min-width:0}.dialog-category{font-size:12px;color:var(--muted);letter-spacing:.07em}.dialog-header h2{font-size:22px;font-weight:400;line-height:1.4;margin:4px 0 0;overflow-wrap:anywhere}.close-dialog{display:flex;align-items:center;gap:12px;min-height:44px;padding:7px 12px;flex-shrink:0;white-space:nowrap;background:none;border:1px solid var(--line);font-size:14px}.close-dialog span{font-size:24px;line-height:1}.detail-tools{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 28px;border-bottom:1px solid var(--line);font-size:14px}.detail-tools #detail-hint{color:var(--muted)}.zoom-controls{display:flex;gap:5px;flex-shrink:0}.zoom-controls button{min-height:44px;background:transparent;border:1px solid var(--line);padding:8px 12px;font-size:14px}.zoom-controls button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:white}.dialog-art{display:flex;justify-content:flex-start;padding:28px;overflow:auto;background:#eeeee9}.dialog-art img{max-width:100%;height:auto;display:block;object-fit:contain;margin:auto;transition:opacity .15s}.dialog-art img.loading{opacity:.35}.dialog-art.actual-size img{max-width:none;flex:none;margin:0 auto}.dialog-footer{display:flex;justify-content:space-between;gap:20px;padding:20px 28px;font-size:14px;color:var(--muted)}body.modal-open{overflow:hidden}
@media(min-width:1900px){body{max-width:2000px;margin:0 auto}}
@media(max-width:1199px){.grid-banner{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-logo{grid-template-columns:repeat(4,minmax(0,1fr))}.discipline{margin-right:20px}.project-grid{gap:23px 18px}.project-title{font-size:17px}}
@media(max-width:850px){.masthead{min-height:90px;gap:20px}.identity{font-size:23px}.discipline{display:none}.grid-banner,.grid-logo{grid-template-columns:repeat(3,minmax(0,1fr))}.intro-jp{font-size:14px}.project-title{font-size:16px}.about{grid-template-columns:1fr 2fr}}
@media(max-width:600px){.masthead{min-height:80px;gap:12px}.identity{font-size:21px;letter-spacing:-.035em;gap:6px}.identity-dot{width:5px;height:5px}.masthead nav{gap:16px}.work-link{font-size:14px}.intro{padding:23px 0 25px}.intro-label{font-size:12px}h1{font-size:clamp(37px,10.2vw,58px);line-height:1.17;margin:22px 0 20px;letter-spacing:-.045em}.intro-bottom{align-items:flex-start;flex-direction:column;gap:6px}.intro-bottom p{font-size:14px}.intro-jp{font-size:14px}.toolbar{padding:10px 0 20px}.filters{gap:4px}.filter{padding-left:12px;padding-right:12px}.work-count{display:block}.group-header{padding:15px 0 17px}.group-header h2{font-size:20px}.group-header p{font-size:13px}.grid-web{grid-template-columns:minmax(0,1fr);gap:27px}.grid-banner,.grid-logo{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 12px}.project.web .project-art{aspect-ratio:2.08}.project-title{font-size:18px}.banner .project-title,.logo .project-title{font-size:14px}.project-sub{font-size:14px}.banner .project-sub{font-size:12px}.project-caption{padding-top:9px}.view-chip{opacity:1;right:7px;bottom:7px;min-height:28px;padding:3px 7px;font-size:12px}.banner .view-chip,.logo .view-chip{display:none}.work-group+.work-group{margin-top:39px}.about{grid-template-columns:1fr;margin-top:48px;gap:22px;padding-top:25px}.about-name span{display:block;margin:6px 0 0}.about-copy .about-name{font-size:20px}.about-copy p{font-size:16px}footer{margin-top:45px;padding-top:22px}.footer-bottom{flex-wrap:wrap;gap:15px;margin-top:18px}.footer-bottom span:last-child{flex-basis:100%}dialog{width:calc(100% - 20px);max-height:calc(100dvh - 20px)}.dialog-header{padding:15px;gap:12px}.dialog-header h2{font-size:18px}.close-dialog{padding:6px 9px;gap:8px}.detail-tools{align-items:flex-start;flex-direction:column;padding:12px 15px;gap:9px}.zoom-controls{width:100%}.zoom-controls button{flex:1}.dialog-art{padding:12px}.dialog-footer{padding:15px;font-size:14px;line-height:1.6}}
@media(max-width:360px){.identity{font-size:19px}.masthead nav{gap:12px}.work-link{font-size:13px}.masthead{gap:9px}.group-header p{font-size:12px}.group-header{gap:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
/* Subtle drafting guides: restricted to margins and the intro's empty area. */
body::before,body::after{content:"";position:fixed;top:0;bottom:0;width:1px;background:rgba(32,32,32,.045);pointer-events:none;z-index:-1}body::before{left:calc(var(--gutter)/2)}body::after{right:calc(var(--gutter)/2)}.intro{position:relative;isolation:isolate}.intro::before{content:"";position:absolute;z-index:-1;right:0;top:46px;bottom:33px;width:35%;background-image:linear-gradient(to right,rgba(32,32,32,.055) 1px,transparent 1px),linear-gradient(to bottom,rgba(32,32,32,.035) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(to right,transparent,#000);pointer-events:none}.intro::after{content:"";position:absolute;right:48px;top:94px;width:13px;height:13px;background:linear-gradient(var(--red),var(--red)) center/1px 13px no-repeat,linear-gradient(var(--red),var(--red)) center/13px 1px no-repeat;opacity:.28;pointer-events:none}.intro-label,.intro h1,.intro-bottom{position:relative}.about{position:relative}.about::after{content:"";position:absolute;left:0;bottom:0;width:26px;height:26px;background:radial-gradient(circle,rgba(32,32,32,.13) 1px,transparent 1.2px) 0 0/8px 8px;pointer-events:none}
@media(max-width:850px){.intro::before{width:28%;background-size:40px 40px}.intro::after{right:40px;top:90px;opacity:.2}}
@media(max-width:600px){body::before,body::after{display:none}.intro::before{width:32px;height:32px;left:auto;right:0;top:auto;bottom:27px;background:radial-gradient(circle,rgba(32,32,32,.13) 1px,transparent 1.3px) 0 0/10px 10px;mask-image:none}.intro::after{display:none}.about::after{left:auto;right:0;top:27px;bottom:auto;width:19px;height:19px;opacity:.6}}
/* Artwork-first composition with a quiet, usable left rail. */
:root{--rail:190px;--gutter:clamp(24px,3vw,56px);--rail-bg:#eaeae5}body{max-width:none}body::before{left:0;width:calc(var(--rail) + var(--gutter)*2);background:var(--rail-bg);border-right:1px solid #d3d3cd;z-index:-1}body::after{display:none}.masthead{position:fixed;left:var(--gutter);top:40px;bottom:28px;width:var(--rail);min-height:0;margin:0;border:0;padding:0;display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:23px;overflow-y:auto}.identity{white-space:normal;font-size:27px;font-weight:500;letter-spacing:-.035em;line-height:1.16;max-width:160px;display:block}.identity-dot{display:inline-block;margin-left:5px;width:6px;height:6px;vertical-align:baseline}.discipline{display:block;margin:0;font-size:12px;letter-spacing:.02em;line-height:1.6;color:var(--muted)}.masthead .side-navigation{display:flex;flex-direction:column;gap:0;width:100%;margin-top:13px}.nav-heading{display:flex;align-items:center;min-height:44px;font-size:15px;margin-bottom:4px}.filters{display:flex;flex-direction:column;gap:0;width:100%}.filter,.filter:first-child{display:flex;align-items:center;justify-content:flex-start;text-align:left;min-height:44px;padding:8px 12px;font-size:15px;border:0;border-left:2px solid transparent}.filter.active{border-left-color:var(--red);background:#ffffff65}.filter span{margin-left:auto;margin-right:12px;font-size:12px}.filter:hover{background:#ffffff55}.about-link{margin-top:25px;font-size:15px;min-height:44px}.rail-note{margin-top:auto;padding-top:35px;margin-bottom:0;font-size:11px;letter-spacing:.035em;color:var(--muted)}main{margin-left:calc(var(--rail) + var(--gutter)*2);padding:0 var(--gutter);min-width:0}.intro{padding:33px 0 29px}.intro h1{font-size:38px;line-height:1.2;letter-spacing:-.04em;font-weight:400;margin:0 0 13px}.intro-bottom{align-items:center;flex-direction:row;gap:16px}.intro-jp{font-size:13px}.intro-bottom .work-count{font-size:12px;display:block;white-space:nowrap}.intro::before{width:31%;top:16px;bottom:18px;background-image:linear-gradient(to right,rgba(32,32,32,.11) 1px,transparent 1px),linear-gradient(to bottom,rgba(32,32,32,.065) 1px,transparent 1px);background-size:32px 32px;mask-image:linear-gradient(to right,transparent,#000)}.intro::after{display:none}.group-header{padding-top:15px;padding-bottom:18px}.group-header h2{font-size:19px}.group-header p{font-size:13px}.project-grid{gap:25px 19px}.grid-web{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-web .project{grid-column:span 3}.grid-web .format-sp{grid-column:span 2}.grid-banner,.grid-logo{grid-template-columns:repeat(4,minmax(0,1fr));gap:26px 14px}.project.web.format-sp .project-art{aspect-ratio:9/16;align-items:flex-start;border:1px solid #cecec8;border-radius:5px;background:#ecece7}.project.web.format-sp .project-art img{width:100%;height:auto;max-width:100%;object-fit:cover;object-position:top;align-self:flex-start}.project.web.format-sp .project-title{font-size:16px}.project.web.format-sp .project-sub{font-size:13px}.view-chip{font-size:12px;min-height:30px}.project-title{font-size:17px}.banner .project-title,.logo .project-title{font-size:14px}.banner .project-sub{font-size:13px}.about::after{display:none}footer{margin-left:calc(var(--rail) + var(--gutter)*3);margin-right:var(--gutter)}
@media(min-width:1440px){.grid-banner,.grid-logo{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(min-width:1100px) and (max-width:1250px){:root{--rail:158px;--gutter:28px}.identity{font-size:25px}.intro h1{font-size:35px}.intro-jp{font-size:13px}}
@media(max-width:1099px){:root{--gutter:clamp(20px,4vw,40px)}body::before{display:none}.masthead{position:static;width:auto;min-height:0;margin:0 var(--gutter);padding:24px 0 12px;border-bottom:1px solid var(--ink);display:grid;grid-template-columns:1fr auto;gap:16px 20px;overflow:visible}.identity{max-width:none;font-size:25px;grid-column:1;grid-row:1;white-space:nowrap}.discipline,.nav-heading,.rail-note{display:none}.masthead .side-navigation{display:contents;margin:0}.filters{grid-column:1/-1;grid-row:2;flex-direction:row;gap:5px;width:auto}.filter,.filter:first-child{justify-content:center;padding:8px 13px;border-left:0;border-bottom:2px solid transparent;font-size:14px}.filter.active{border-bottom-color:var(--red);background:transparent}.filter span{margin-left:7px;margin-right:0}.about-link{grid-column:2;grid-row:1;margin:0;font-size:14px;min-height:44px}.intro{padding:26px 0 25px}.intro h1{font-size:38px;margin-bottom:12px}main{margin-left:0;padding:0 var(--gutter)}footer{margin-left:var(--gutter);margin-right:var(--gutter)}.grid-banner,.grid-logo{grid-template-columns:repeat(4,minmax(0,1fr))}.intro::before{width:25%}.grid-web .format-sp{grid-column:span 2}}
@media(max-width:850px){.grid-banner,.grid-logo{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-web .format-sp{grid-column:span 2}.project.web.format-sp .project-title{font-size:15px}}
@media(max-width:600px){.masthead{padding-top:20px;padding-bottom:10px;gap:10px}.identity{font-size:23px;letter-spacing:-.035em}.intro{padding:23px 0}.intro h1{font-size:32px;line-height:1.2;margin:0 0 12px}.intro-bottom{align-items:flex-start;gap:8px}.intro-jp{font-size:13px}.intro-bottom .work-count{font-size:11px;padding-top:2px}.intro::before{width:24px;height:24px;top:24px;right:0;bottom:auto;opacity:.55;background:repeating-linear-gradient(to right,rgba(32,32,32,.2) 0 1px,transparent 1px 8px);mask-image:none}.intro::after{display:none}.grid-web{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 14px}.grid-web .project{grid-column:span 2}.grid-web .format-sp{grid-column:span 1}.grid-banner,.grid-logo{grid-template-columns:repeat(2,minmax(0,1fr));gap:23px 12px}.project.web.format-sp .project-title{font-size:14px}.project.web.format-sp .project-sub{font-size:12px}.project.web.format-sp .view-chip{font-size:11px;min-height:26px;right:5px;bottom:5px}.project.web.format-sp .project-art{border-radius:4px}.filter,.filter:first-child{padding-left:13px;padding-right:13px}.group-header h2{font-size:19px}.group-header p{font-size:13px}.banner .project-sub{font-size:12px}.about{margin-top:45px}.about::after{display:none}}
@media(max-width:360px){.identity{font-size:21px}.intro h1{font-size:30px}.intro-jp{font-size:12px}.intro-bottom .work-count{font-size:10px}.intro::before{width:18px}.filter,.filter:first-child{padding-left:10px;padding-right:10px}}
body{background:linear-gradient(to right,var(--rail-bg) 0,var(--rail-bg) calc(var(--rail) + var(--gutter)*2),var(--paper) calc(var(--rail) + var(--gutter)*2),var(--paper) 100%)}
@media(max-width:1099px){body{background:var(--paper)}}
.detail-meta{display:flex;flex-direction:column;align-items:flex-start;gap:9px;min-width:0}.variant-picker{display:flex;align-items:center;gap:10px;font-size:14px}.variant-picker[hidden]{display:none}.variant-picker select{max-width:100%;min-height:44px;padding:8px 34px 8px 10px;font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:0}.variant-picker select:focus-visible{outline:3px solid var(--red);outline-offset:3px}
@media(min-width:1440px){.grid-web .format-sp{grid-column:span 2}}
@media(max-width:600px){.detail-meta{width:100%}.variant-picker{width:100%}.variant-picker select{min-width:0;flex:1}}
@media(min-width:1100px){.grid-web{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-web .project{grid-column:span 6}.grid-web .format-sp{grid-column:span 3}.project.web.format-sp .project-title{font-size:15px}.project.web.format-sp .project-sub{font-size:13px}}
.project.web.format-pc .project-art{aspect-ratio:8/5}.project.web.format-sp .project-art{aspect-ratio:9/16}.project.web.format-sp .project-art img{height:100%;object-fit:cover;object-position:top center}.project.web .project-art img{transition:none}.project.web .project-button:hover img{transform:none}
/* Let the work speak first; labels appear only on intent. */
.sr-only,.group-header{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}main{padding-top:40px}.work-group+.work-group{margin-top:35px}.project{position:relative}.project-caption{position:absolute;left:12px;right:12px;bottom:12px;z-index:2;padding:10px 12px;margin:0;border:0;background:rgba(248,248,246,.97);color:var(--ink);opacity:0;transform:translateY(5px);transition:opacity .16s ease,transform .16s ease;pointer-events:none}.project:focus-within .project-caption{opacity:1;transform:translateY(0)}.project-caption .project-title{font-size:15px;font-weight:400;line-height:1.45;letter-spacing:0}.project-caption .project-sub{font-size:12px;line-height:1.5;margin-top:3px;color:var(--muted)}.view-chip{display:none!important}.rail-note{display:none}.filter span{color:var(--muted)}.project-grid{row-gap:20px}.grid-banner{row-gap:14px}.about{margin-top:60px}
@media(hover:hover){.project:hover .project-caption{opacity:1;transform:translateY(0)}}
@media(max-width:1099px){main{padding-top:25px}.work-group+.work-group{margin-top:28px}}
@media(max-width:600px){main{padding-top:19px}.project-caption{left:7px;right:7px;bottom:7px;padding:8px 10px}.project-caption .project-title{font-size:14px}.project-caption .project-sub{font-size:12px}.grid-web{row-gap:16px}.grid-banner{row-gap:12px}.work-group+.work-group{margin-top:25px}.about{margin-top:42px}}
.dialog-art{min-height:180px}.dialog-art img[hidden],.image-feedback[hidden],#retry-image[hidden]{display:none}.image-feedback{max-width:420px;margin:auto;padding:25px 12px;text-align:center}.image-feedback p{font-size:14px;line-height:1.8;margin:0}.image-feedback button{min-height:44px;margin-top:16px;padding:8px 18px;border:1px solid var(--line);background:var(--paper);font:inherit;font-size:14px}.zoom-controls button:disabled{opacity:.4;cursor:default}.sr-only .work-count{display:block!important}

/* Artwork-colored, edge-to-edge hover treatment; no floating caption card. */
.project-caption{inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:clamp(12px,2vw,30px);background:var(--overlay-color,#202020e6);color:#fff;text-align:center;transform:none;transition:opacity .2s ease;border-radius:0;overflow:hidden}
.project-caption .project-title{color:#fff;font-size:clamp(14px,1.25vw,19px);line-height:1.6;font-weight:500;overflow-wrap:anywhere}
.project-caption .project-sub{color:#fff;font-size:12px;line-height:1.6;margin:0}
.project.web.format-sp .project-caption{border-radius:4px}
.project-button:hover img{transform:none}
@media(prefers-reduced-motion:reduce){.project-caption{transition:none}}
/* One continuous canvas, including the navigation rail. */
:root{--rail-bg:var(--paper)}
body{background:var(--paper)}
body::before{display:none}
.masthead{border:0;background:transparent}
.filter.active,.filter:hover{background:transparent}
/* Light geometric Latin, open tracking, and calm Japanese text. */
@font-face{font-family:Manrope;src:url('assets/fonts/Manrope.ttf') format('truetype');font-style:normal;font-weight:200 800;font-display:swap}
body{font-family:Manrope,"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;font-weight:400;letter-spacing:.02em}
.identity{font-size:25px;font-weight:300;letter-spacing:.045em;line-height:1.4;max-width:190px}
.discipline{font-size:10px;line-height:1.9;letter-spacing:.16em;font-weight:500}
.nav-heading,.about-link{font-size:12px;letter-spacing:.16em;font-weight:500;text-transform:uppercase}
.filter,.filter:first-child{font-size:12px;letter-spacing:.12em;font-weight:500}
.filter span{font-size:10px;letter-spacing:.06em}
.about h2,.footer-name{font-weight:300;letter-spacing:.05em}
.about-copy p{font-weight:400;letter-spacing:.02em;line-height:2}
.project-caption .project-title{font-weight:400;letter-spacing:.035em}
.project-caption .project-sub{font-weight:400;letter-spacing:.06em}
.dialog-header h2{font-weight:400;letter-spacing:.025em}
@media(max-width:1099px){.identity{max-width:none;font-size:24px}.about-link{font-size:12px}.filter,.filter:first-child{font-size:12px}}
@media(max-width:600px){.identity{font-size:20px;letter-spacing:.025em}.filter,.filter:first-child{padding-left:11px;padding-right:11px;letter-spacing:.08em}.about-link{letter-spacing:.1em}}
@media(max-width:360px){.identity{font-size:18px}}
/* Quiet artwork depth, without section divider rules. */
.about,footer{border-top:0}
.project-art{box-shadow:0 2px 5px rgba(20,20,20,.045),0 7px 19px rgba(20,20,20,.055)}

/* Reveal once on entering the viewport, with a small upward drift. */
@media(prefers-reduced-motion:no-preference){
 .project{opacity:1;transform:translateY(0);transition:opacity .7s ease,transform .8s cubic-bezier(.2,.65,.25,1);transition-delay:var(--reveal-delay,0ms)}
 .project.reveal-pending{opacity:0;transform:translateY(28px);transition-delay:0ms}
 .project:focus-within{opacity:1;transform:none;transition-delay:0ms}
}
/* A quiet, sequenced rail entrance and responsive editorial accents. */
@keyframes rail-enter{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}
.masthead .identity,.masthead .discipline,.masthead .nav-heading,.masthead .filter,.masthead .about-link{animation:rail-enter .65s cubic-bezier(.2,.65,.25,1) backwards;animation-delay:var(--rail-delay,0ms)}
.masthead .identity{--rail-delay:40ms}.masthead .discipline{--rail-delay:110ms}.masthead .nav-heading{--rail-delay:180ms}.masthead .filter:nth-child(1){--rail-delay:230ms}.masthead .filter:nth-child(2){--rail-delay:280ms}.masthead .filter:nth-child(3){--rail-delay:330ms}.masthead .filter:nth-child(4){--rail-delay:380ms}.masthead .about-link{--rail-delay:430ms}
.masthead .filter,.masthead .about-link,.masthead .nav-heading{position:relative;transition:transform .25s cubic-bezier(.2,.65,.25,1),color .2s ease}
.masthead .filter::after,.masthead .about-link::after,.masthead .nav-heading::after{content:"";position:absolute;left:12px;bottom:5px;width:18px;height:1px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .25s ease;pointer-events:none}
.masthead .about-link::after,.masthead .nav-heading::after{left:0}
.masthead .filter.active::after{transform:scaleX(1)}
.masthead .identity-dot{transition:transform .3s cubic-bezier(.2,.65,.25,1)}
@media(hover:hover) and (pointer:fine){
 .masthead .filter:hover,.masthead .about-link:hover,.masthead .nav-heading:hover{transform:translateX(4px);color:var(--red)}
 .masthead .filter:hover::after,.masthead .about-link:hover::after,.masthead .nav-heading:hover::after{transform:scaleX(1)}
 .masthead .identity:hover .identity-dot{transform:translateY(-3px)}
}
.masthead :focus-visible{animation:none;opacity:1;translate:none}
.masthead .filter:focus-visible::after,.masthead .about-link:focus-visible::after,.masthead .nav-heading:focus-visible::after{transform:scaleX(1)}
@media(max-width:1099px){.masthead .filter::after{display:none}.masthead .about-link{--rail-delay:110ms}}
@media(prefers-reduced-motion:reduce){.masthead *{animation:none!important;transition:none!important;translate:none!important;transform:none!important}.masthead .filter::after,.masthead .about-link::after,.masthead .nav-heading::after{transition:none!important}}

.masthead{padding:6px;margin:-6px;box-sizing:content-box}
@media(max-width:1099px){.masthead{box-sizing:border-box;margin:0 var(--gutter);padding:24px 0 12px}}
@media(max-width:600px){.masthead{padding-top:20px;padding-bottom:10px}}

/* One shared image moves to its exact final position; modal bounds stay stable. */
html{scrollbar-gutter:stable}
#work-dialog{height:calc(100dvh - 48px);max-height:calc(100dvh - 48px);background:transparent;overflow:visible}
#work-dialog .dialog-shell{background:var(--paper);height:100%;min-height:100%;overflow:auto;scrollbar-gutter:stable}
#work-dialog.is-morphing{overflow:visible}
#work-dialog.is-morphing .dialog-shell{height:100%;overflow:hidden;pointer-events:none}
#work-dialog.is-morphing #dialog-image{visibility:hidden}
#work-dialog.is-morphing .close-dialog{pointer-events:auto}
.modal-image-flight{position:fixed;z-index:10;pointer-events:none;overflow:hidden;margin:0;padding:0}
.modal-image-flight img{position:absolute;display:block;max-width:none;max-height:none;object-fit:fill;margin:0;padding:0}
.project-art.is-modal-source{visibility:hidden}
.project:has(.is-modal-source) .project-caption{opacity:0!important}
#work-dialog::backdrop{transition:background .38s ease,backdrop-filter .38s ease}
#work-dialog.is-closing::backdrop{background:transparent;backdrop-filter:blur(0)}
@media(max-width:600px){#work-dialog{height:calc(100dvh - 20px);max-height:calc(100dvh - 20px)}}
@media(prefers-reduced-motion:reduce){#work-dialog::backdrop{transition:none}}

/* Banner fit uses the available image area; the modal exterior is unchanged. */
#work-dialog.is-banner .dialog-shell{height:100%;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto}
#work-dialog.is-banner .dialog-art{min-height:0;min-width:0;align-items:center;justify-content:center;padding:clamp(16px,3vw,40px)}
#work-dialog.is-banner .dialog-art:not(.actual-size) img{width:90%;height:90%;max-width:760px;max-height:100%;min-width:0;min-height:0;object-fit:contain;margin:auto;flex:0 1 auto}
#work-dialog.is-banner .dialog-art.actual-size{align-items:flex-start;justify-content:flex-start}
#work-dialog.is-banner .dialog-art.actual-size img{width:auto;height:auto;max-height:none;max-width:none;flex:none;margin:0 auto}
@media(max-height:500px){#work-dialog.is-banner .dialog-header{padding:8px 15px}#work-dialog.is-banner .dialog-header h2{font-size:16px}#work-dialog.is-banner .detail-tools{padding:5px 15px;flex-direction:row;align-items:center}#work-dialog.is-banner .detail-meta{display:none}#work-dialog.is-banner .dialog-footer{padding:6px 15px;font-size:12px}#work-dialog.is-banner .dialog-art{padding:10px}}

/* Stage the first paint before entering the top layer; avoid blur-layer flashes. */
#work-dialog::backdrop{background:rgba(21,21,21,.77);backdrop-filter:none;transition:background-color .38s ease}
#work-dialog.is-preparing::backdrop,#work-dialog.is-closing::backdrop{background:rgba(21,21,21,0);backdrop-filter:none}
#work-dialog.is-preparing .dialog-shell{opacity:0;pointer-events:none}
@media(prefers-reduced-motion:reduce){#work-dialog::backdrop{transition:none}}

/* Compact profile: scope is explicit without competing with the gallery. */
.about-copy{min-width:0;max-width:780px}
.about-copy .about-intro{font-size:15px;line-height:2;overflow-wrap:anywhere}
.about-details{margin:28px 0 25px;display:grid;gap:17px}
.about-details>div{display:grid;grid-template-columns:90px minmax(0,1fr);gap:18px}
.about-details dt{font-size:12px;line-height:1.9;color:var(--muted);font-weight:400;letter-spacing:.04em}
.about-details dd{margin:0;font-size:14px;line-height:1.85;overflow-wrap:anywhere}
.about-copy .about-credit{font-size:12px;line-height:1.8}
@media(max-width:600px){.about-details>div{grid-template-columns:1fr;gap:3px}.about-details{gap:18px;margin-top:24px}.about-copy .about-intro{font-size:14px}.about-details dd{font-size:13px}}

/* Work context lives inside the detail view, leaving the gallery image-first. */
#work-dialog .dialog-shell,#work-dialog.is-banner .dialog-shell{display:grid;grid-template-columns:minmax(0,1fr) 290px;grid-template-rows:auto auto minmax(0,1fr) auto;overflow:hidden;scrollbar-gutter:auto}
#work-dialog .dialog-header{grid-column:1/-1;grid-row:1}
#work-dialog .detail-tools{grid-column:1/-1;grid-row:2}
#work-dialog .dialog-art{grid-column:1;grid-row:3;min-height:0;min-width:0;overflow:auto;align-items:flex-start}
#work-dialog:not(.is-banner) .dialog-art img{flex:0 0 auto;margin:0 auto}
#work-dialog .dialog-footer{grid-column:1/-1;grid-row:4;align-items:center}
.work-notes{grid-column:2;grid-row:3;min-height:0;min-width:0;overflow:auto;padding:25px 23px;background:var(--paper);border-left:1px solid var(--line)}
.notes-eyebrow{margin:0 0 24px;font-size:10px;letter-spacing:.16em;color:var(--muted)}
.work-explanation{display:grid;gap:20px;margin:0}
.work-explanation dt{font-size:11px;color:var(--muted);margin:0 0 5px}
.work-explanation dd{font-size:13px;line-height:1.85;overflow-wrap:anywhere;margin:0}
.tone-section{margin-top:28px}.tone-section h3{font-weight:400;font-size:12px;margin:0 0 21px}
.tone-axis+.tone-axis{margin-top:21px}.tone-labels{display:flex;justify-content:space-between;gap:12px;font-size:10px;color:var(--muted);margin-bottom:10px}
.tone-track{height:2px;background:#d7d7d1;position:relative;margin:0 5px}
.tone-track::before{content:'';position:absolute;left:50%;top:-2px;width:1px;height:6px;background:#c3c3bc}
.tone-marker{position:absolute;left:var(--tone-position);top:50%;width:9px;height:9px;border-radius:50%;background:var(--red);transform:translate(-50%,-50%)}
.tone-disclaimer,.notes-draft{font-size:10px;line-height:1.7;color:var(--muted);margin:20px 0 0}
.notes-draft{margin-top:28px}.notes-toggle{display:none;min-height:40px;padding:7px 10px;background:transparent;border:1px solid var(--line);font:inherit;color:var(--ink);white-space:nowrap}
@media(max-width:800px){
 #work-dialog .dialog-shell,#work-dialog.is-banner .dialog-shell{grid-template-columns:minmax(0,1fr)}
 .work-notes{display:none;grid-column:1;grid-row:3;border:0;padding:24px;}
 #work-dialog.is-notes-open .work-notes{display:block}
 #work-dialog.is-notes-open .dialog-art{visibility:hidden;pointer-events:none}
 .notes-toggle{display:block;margin-left:auto}
 #work-dialog .dialog-footer{gap:10px;padding:10px 15px;font-size:11px}
 #dialog-role{max-width:45%;font-size:10px;line-height:1.5}
 .work-explanation dd{font-size:14px}.tone-section{max-width:380px}
}

.work-notes:focus-visible{outline:2px solid var(--red);outline-offset:-3px}

.dialog-art:focus-visible{outline:2px solid var(--red);outline-offset:-3px}
@media(max-height:500px){
 #work-dialog .dialog-header{padding:8px 15px}#work-dialog .dialog-header h2{font-size:16px}
 #work-dialog .detail-tools{padding:5px 15px;flex-direction:row;align-items:center}
 #work-dialog .detail-meta{display:none}#work-dialog .dialog-footer{padding:6px 15px;font-size:12px}
 #work-dialog .dialog-art{padding:10px}
}

/* Editorial detail view: a quiet image stage and a readable margin. */
#work-dialog{width:min(1180px,calc(100% - 48px));color:#252525}
#work-dialog .dialog-shell,#work-dialog.is-banner .dialog-shell{background:#fbfbf9;grid-template-columns:minmax(0,1fr) 320px}
#work-dialog .dialog-header{padding:18px 26px 12px;gap:24px;border:0;background:#fbfbf9;min-width:0}
.dialog-category{font-size:10px;letter-spacing:.15em;color:#787874}
#work-dialog .dialog-header h2{font-size:18px;font-weight:400;letter-spacing:.015em;line-height:1.55;margin:4px 0 0}
#work-dialog .close-dialog{width:44px;height:44px;min-height:44px;padding:0;border:0;justify-content:center;border-radius:50%;background:transparent;transition:background .18s,color .18s}
#work-dialog .close-dialog span{font-size:28px;line-height:1;font-weight:300}
#work-dialog .close-dialog:hover{background:#eeeee9;color:#111}
#work-dialog .detail-tools{padding:0 26px 12px;border:0;gap:20px;min-height:44px;background:#fbfbf9}
#detail-hint{display:none}
#work-dialog .detail-meta{gap:0}
.variant-picker{font-size:11px;gap:10px;color:#757570}
.variant-picker select{border:0;border-radius:0;background:transparent;min-height:40px;font-size:12px;padding:6px 25px 6px 0;color:#333;cursor:pointer}
.zoom-controls{gap:15px;margin-left:auto}
#work-dialog .zoom-controls button{min-height:40px;border:0;border-bottom:1px solid transparent;padding:6px 0;background:transparent;color:#797974;font-size:12px}
#work-dialog .zoom-controls button[aria-pressed=true]{background:transparent;color:#202020;border-bottom-color:#202020}
#work-dialog .dialog-art{background:#f0f0ed;padding:26px;border:0;scrollbar-width:thin;scrollbar-color:#c8c8c1 transparent}
#work-dialog.is-banner .dialog-art{padding:clamp(20px,3.5vw,48px)}
.work-notes{padding:30px 29px 26px;background:#fbfbf9;border:0;scrollbar-width:thin;scrollbar-color:#c8c8c1 transparent}
.work-explanation{gap:25px}
.work-explanation dt{font-size:10px;color:#74746e;letter-spacing:.08em;margin-bottom:9px}
.work-explanation dd{font-size:13px;line-height:1.95;letter-spacing:.01em;color:#353532}
.work-explanation>div:first-child dd{font-size:14px;color:#252525;line-height:1.9}
.tone-section{margin-top:35px}
.tone-section h3{font-size:10px;color:#74746e;letter-spacing:.08em;margin-bottom:23px}
.tone-labels{font-size:11px;color:#64645f;margin-bottom:12px}
.tone-axis+.tone-axis{margin-top:25px}
.tone-track{height:1px;background:#d2d2cb;margin:0 2px}
.tone-track::before{height:5px;top:-2px;background:#d2d2cb}
.tone-marker{width:9px;height:9px;border-radius:50%;background:var(--red)}
.notes-draft{margin-top:32px;font-size:10px;line-height:1.8;color:#777771}
.notes-draft summary{cursor:pointer;min-height:32px;display:flex;align-items:center;list-style:none;text-decoration:underline;text-underline-offset:4px;text-decoration-color:#c9c9c1}
.notes-draft summary::-webkit-details-marker{display:none}
.notes-draft p{margin:6px 0 0}
#work-dialog .dialog-footer{padding:8px 26px;min-height:32px;border:0;background:#fbfbf9}
#dialog-role{display:none}
#dialog-index{margin-left:auto;font-size:10px;letter-spacing:.1em;color:#777771;font-variant-numeric:tabular-nums}
.notes-toggle{border:0;border-bottom:1px solid #b9b9b1;padding:6px 0;font-size:12px;color:#333}
@media(max-width:800px){
 #work-dialog{width:calc(100% - 20px)}
 #work-dialog .dialog-shell,#work-dialog.is-banner .dialog-shell{grid-template-columns:minmax(0,1fr)}
 #work-dialog .dialog-header{padding:15px 18px 7px;gap:14px}
 #work-dialog .dialog-header h2{font-size:16px;line-height:1.5}
 #work-dialog .detail-tools{padding:0 18px 10px;flex-direction:row;align-items:center;gap:12px}
 #work-dialog .detail-meta{width:auto;flex:1;min-width:0}
 .variant-picker{gap:6px}.variant-picker select{font-size:11px;min-width:0}
 #work-dialog .zoom-controls{width:auto;gap:14px}
 #work-dialog .zoom-controls button{flex:none;font-size:11px}
 .work-notes{padding:26px clamp(24px,7vw,48px);border:0}
 .work-explanation,.tone-section,.notes-draft{max-width:460px;margin-left:auto;margin-right:auto}
 .work-explanation dd{font-size:14px}
 #work-dialog .dialog-footer{padding:7px 18px}
 .notes-toggle{margin-left:0}
 #work-dialog .dialog-art{padding:16px}
}
@media(max-height:500px){
 #work-dialog .dialog-header{padding:6px 15px 0}#work-dialog .dialog-header h2{font-size:14px;margin:0}
 .dialog-category{display:none}#work-dialog .close-dialog{height:36px;min-height:36px}
 #work-dialog .detail-tools{padding:0 15px 4px;min-height:34px}
 #work-dialog .zoom-controls button{min-height:30px}
 #work-dialog .dialog-footer{padding:3px 15px;min-height:26px}.notes-toggle{min-height:32px}
 .work-notes{padding-top:18px}
}

.tone-track::before{display:none}
.notes-draft{font-size:11px;line-height:1.85}

/* Complete, low-noise route: work → profile → inquiry. */
.profile-navigation{display:contents}
.contact-link{margin-top:2px;font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase}
.contact{margin-top:70px;padding-top:24px;display:grid;grid-template-columns:1fr 2fr;gap:30px;scroll-margin-top:24px}
.contact h2{font-size:21px;font-weight:300;letter-spacing:.05em;line-height:1.3;margin:0}
.contact-copy{min-width:0;max-width:780px}
.contact-intro{margin:0 0 13px;font-size:20px;font-weight:400}
.contact-description{font-size:14px;line-height:2;margin:0 0 24px}
.contact-action{display:inline-flex;align-items:center;gap:30px;min-height:48px;font-size:16px;border-bottom:1px solid var(--ink)}
.contact-action:hover{color:var(--red);border-bottom-color:var(--red)}
.contact-action span{font-size:20px}
.contact-address-line{display:flex;align-items:center;flex-wrap:wrap;gap:6px 18px;margin-top:12px;font-size:12px}
#contact-address{overflow-wrap:anywhere;user-select:all}
.contact-copy button,.empty-state button{min-height:44px;padding:8px 0;border:0;border-bottom:1px solid var(--line);background:transparent;font-size:12px;text-align:left}
.contact-copy button:hover,.empty-state button:hover{color:var(--red);border-bottom-color:var(--red)}
.contact-unavailable{font-size:13px;color:var(--muted);margin:24px 0}
.inquiry-guide{margin-top:28px;color:var(--muted);font-size:12px;line-height:1.9}
.inquiry-guide summary{width:fit-content;cursor:pointer;min-height:44px;display:list-item;list-style-position:inside;padding:10px 0}
.inquiry-guide ul{padding-left:19px;margin:10px 0}
.inquiry-guide p{margin:10px 0}
.contact-status{font-size:12px;line-height:1.8;margin:16px 0 0;min-height:0}
.contact-status:empty{display:none}
.manual-copy{display:block;width:100%;min-height:160px;margin-top:12px;padding:12px;background:transparent;border:1px solid var(--line);font:inherit;font-size:12px;color:var(--ink)}
.empty-state{padding:60px 0;font-size:14px;line-height:1.9;color:var(--muted)}
[hidden]{display:none!important}
summary:focus-visible,textarea:focus-visible{outline:2px solid var(--red);outline-offset:4px}
#works:focus{outline:none}
.work-explanation dd{white-space:pre-line}
#work-dialog.has-no-notes .dialog-shell{grid-template-columns:minmax(0,1fr)}
#work-dialog.has-no-notes .work-notes{display:none}
@media(max-width:1099px){
 .profile-navigation{display:flex;grid-column:2;grid-row:1;align-items:center;gap:20px}
 .profile-navigation .work-link{margin:0;font-size:11px;letter-spacing:.1em}
}
@media(max-width:600px){
 .masthead{grid-template-columns:1fr;gap:4px}
 .identity{grid-column:1;grid-row:1}
 .profile-navigation{grid-column:1;grid-row:2;gap:22px}
 .filters{grid-row:3;margin-left:-11px;flex-wrap:wrap}
 .contact{grid-template-columns:1fr;gap:22px;margin-top:46px;padding-top:20px}
 .contact-intro{font-size:18px}
 .contact-description{font-size:13px}
 .contact-address-line{align-items:flex-start;flex-direction:column;gap:3px}
 #work-dialog .zoom-controls button,.notes-toggle{min-height:44px}
}
@media(hover:none){.project:focus-within .project-caption{opacity:0}}

/* Size variants stay visible beside the image, including short/mobile viewports. */
#banner-variants{display:flex;align-items:stretch;gap:8px;flex-wrap:wrap;min-width:0;max-width:100%}
.banner-variant{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:104px;max-width:100%;min-width:0;flex:0 1 104px;min-height:76px;padding:7px 8px;border:1px solid #d5d5cf;border-radius:3px;background:transparent;color:#6a6a65;cursor:pointer}
.banner-variant img{display:block;width:48px;height:30px;object-fit:contain}
.banner-variant span{display:block;min-width:0;max-width:100%;font-size:11px;line-height:1.45;white-space:normal;overflow-wrap:anywhere;text-align:center}
.banner-variant[aria-pressed=true]{border-color:#333;background:#eeeee9;color:#252525}
.banner-variant:hover{border-color:#777}
.banner-variant:focus-visible{outline:2px solid var(--red);outline-offset:3px}
#work-dialog .detail-tools:has(#banner-variants:not([hidden])){gap:12px;flex-wrap:wrap}
#work-dialog .detail-tools:has(#banner-variants:not([hidden])) .detail-meta{display:none}
@media(max-height:500px){.banner-variant{min-height:44px;width:148px;flex-basis:148px;flex-direction:row;gap:6px;padding:5px 8px}.banner-variant img{width:32px;height:24px;flex:0 0 32px}.banner-variant span{flex:1;text-align:left}}

/* Four banner columns on desktop; keep the existing compact-screen grids. */
@media(min-width:1100px){.grid-banner,.grid-logo{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-logo{column-gap:16px}}

/* White display surface for logo cards. */
.project.logo .project-art{background:#ffffff}

.banner-variant img{flex-shrink:0}

.fullpage-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:7px 12px;border:1px solid #bdbdb7;border-radius:3px;font-size:12px;white-space:nowrap}.fullpage-link:hover{background:#eaeae5}.fullpage-link:focus-visible{outline:2px solid var(--red);outline-offset:3px}
#work-dialog .detail-tools{flex-wrap:wrap}

html[data-input-mode="touch"] :focus-visible{outline:none!important}

/* Keep the identity mark on the same line as the name. */
.masthead .identity{display:inline-flex;align-items:baseline;flex-wrap:nowrap;white-space:nowrap;max-width:100%;width:fit-content;gap:6px}
.masthead .identity-dot{display:block;flex:0 0 6px;margin-left:0}

/* Fit the identity inside the rail rather than creating a sideways scrollbar. */
@media(min-width:1100px){.masthead{overflow-x:hidden}.masthead .identity{font-size:21px;letter-spacing:.015em}}
#about-title,#contact-title{display:flex;align-items:baseline;gap:6px}
.section-dot{display:block;flex:0 0 6px;width:6px;height:6px;border-radius:50%;background:var(--red)}

/* Verified original sites sit below all explanation and tone content. */
.work-public-site{margin:28px 0 0;padding-top:18px;border-top:1px solid var(--line)}
.work-public-site a{display:inline-flex;align-items:center;min-height:40px;color:var(--muted);font-size:12px;line-height:1.7;text-decoration:underline;text-decoration-color:#c9c9c1;text-underline-offset:4px}
.work-public-site a:hover{color:var(--ink);text-decoration-color:currentColor}
.work-public-site a:focus-visible{outline:2px solid var(--red);outline-offset:4px}

/* Brief first-visit signature. No interaction blocking, no image-dependent gate. */
.opening-signature{display:none;position:fixed;inset:0;z-index:100;background:var(--paper,#f8f8f6);align-items:center;justify-content:center;flex-direction:column;gap:18px;pointer-events:none;opacity:0;visibility:hidden}
.intro-active .opening-signature{display:flex;opacity:1;visibility:visible;animation:intro-safety 3.1s both}
.intro-finished .opening-signature{display:flex;animation:intro-exit .36s cubic-bezier(.4,0,.2,1) both}
.opening-name{position:relative;display:block;margin-right:17px;font-size:clamp(25px,4vw,48px);font-weight:600;letter-spacing:-.055em}
.opening-dot{width:8px;height:8px;border-radius:50%;background:var(--red,#ed3b25);animation:intro-dot .22s ease-out both}
.opening-caption{font-size:9px;letter-spacing:.24em;color:#777}
@keyframes intro-dot{from{transform:scale(.3);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes intro-exit{from{opacity:1;visibility:visible;transform:translateY(0)}to{opacity:0;visibility:hidden;transform:translateY(-8px)}}
@keyframes intro-safety{0%,78%{opacity:1;visibility:visible}100%{opacity:0;visibility:hidden}}
@media(prefers-reduced-motion:reduce){.opening-signature,.intro-active .opening-signature,.intro-finished .opening-signature{display:none;animation:none}.opening-dot{animation:none}}

/* Reserve LP scroll width before the full image arrives, so the shared image
   keeps precisely the same width and top edge through the downward reveal. */
#work-dialog:not(.is-banner) .dialog-art{scrollbar-gutter:stable}
@supports not (scrollbar-gutter:stable){#work-dialog:not(.is-banner) .dialog-art{overflow-y:scroll}}

/* Two linked gestures: the dot writes the name, then joins the real site identity. */
.opening-word{display:block;animation:intro-write .6s .16s cubic-bezier(.4,0,.2,1) both}
.opening-dot-track{position:absolute;inset:0;pointer-events:none;animation:intro-travel .6s .16s cubic-bezier(.4,0,.2,1) both}
.opening-dot-track .opening-dot{position:absolute;left:0;bottom:.16em}
.opening-caption{animation:intro-caption .45s .62s ease-out both}
@keyframes intro-write{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes intro-travel{from{transform:translateX(0)}to{transform:translateX(calc(100% + 9px))}}
@keyframes intro-caption{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.opening-name,.opening-word,.opening-dot-track,.opening-caption{animation:none}}
#work-dialog:not(.is-banner) .dialog-art{position:relative}
.lp-reveal-mask{position:absolute;left:0;right:0;pointer-events:none;z-index:1;will-change:transform}

.opening-handoff-dot{position:fixed;z-index:110;display:block;background:var(--red,#ed3b25);border-radius:50%;pointer-events:none;transform-origin:center;will-change:transform}
.intro-handoff .opening-dot-track,.intro-handoff .identity-dot{visibility:hidden}
.intro-handoff .opening-word{animation:intro-name-depart .9s cubic-bezier(.4,0,.2,1) both}
@keyframes intro-name-depart{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-18px)}}
.intro-complete .opening-signature{display:none}
@media(prefers-reduced-motion:reduce){.opening-handoff-dot{display:none}.intro-handoff .opening-word{animation:none}}
