@import url("assets/fonts/fonts.css");
/* nori portfolio: approved v3, source photographs and accessible HTML. */
:root{
  --mold-version: 9;
  /* font-preset: clean */--paper:#F7F8F6;--surface:#fff;--ink:#1E2629;--muted:#5C676B;--line:#DCE2DF;--accent:#0C6F64;--accent-soft:#E3F1EE;--mark:#F2C230;--font-head:"Zen Kaku Gothic New",sans-serif;--font-body: "Noto Sans JP", sans-serif;--font-label:"Figtree",sans-serif;--font-display: "Zen Kaku Gothic New", sans-serif;--font-en: "Jost", sans-serif;--fw-display: 700;--fw-body: 400;--fw-strong: 700;--ls-display: .01em;--ls-body: .02em;--ls-en: .06em;--lh-display: 1.38;--lh-body: 1.90;--bg:var(--paper);--text:var(--ink);--text-muted:var(--muted);--border:var(--line);--gold:var(--accent);--reveal-duration:400ms}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.9;letter-spacing:.02em}h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0}h1,h2,h3{font-family:var(--font-display);font-weight:700;color:var(--ink);letter-spacing:.01em}h2{font-size:32px;line-height:1.5}h3{font-size:20px;line-height:1.6}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}img{display:block;max-width:100%;height:auto}picture{display:block}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.shell{width:calc(100% - 128px);max-width:1360px;margin-inline:auto}.skip-link{position:fixed;left:16px;top:-100px;z-index:30;background:#fff;padding:12px 20px}.skip-link:focus{top:12px}.portfolio-header{height:96px;display:flex;align-items:center;justify-content:space-between;gap:32px}.portfolio-header .wordmark{font-family:var(--font-label);font-size:38px;line-height:1.2;font-weight:600;letter-spacing:.035em}.portfolio-header nav{display:flex;align-items:center;gap:28px;font-size:14px;font-weight:500}.portfolio-header nav a{display:block;padding:10px 0;flex-shrink:0}.portfolio-header nav a:hover{color:var(--accent);text-decoration:underline;text-underline-offset:6px}.portfolio-hero{container-type:inline-size;position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;height:clamp(620px,49vw,752px);padding:0}.hero-copy{position:relative;padding-top:104px;min-width:0;z-index:2}.hero-identity{font-size:18px;color:var(--muted);letter-spacing:.04em}.hero-copy h1{font-size:clamp(28px,4cqw,56px);line-height:1.4;margin-top:22px;text-wrap:normal}.hero-lead{font-size:clamp(13px,1.35cqw,18px);line-height:1.9;margin-top:30px;letter-spacing:0;word-break:normal}.media-labels{display:flex;gap:12px;flex-wrap:wrap;list-style:none;margin-top:32px;padding:0}.media-labels li,.kind-label{display:inline-block;padding:5px 13px;background:var(--accent-soft);color:var(--accent);border-radius:4px;font-size:13px;font-weight:500;line-height:1.7}.media-labels li{font-size:14px;padding:9px 18px;color:var(--ink)}.hero-down{position:absolute;left:4px;bottom:88px;display:inline-flex;align-items:center;gap:24px;color:var(--accent);padding-bottom:7px;border-bottom:1px solid var(--accent);font-size:16px}.hero-down:hover{border-bottom-width:2px}.hero-collage{position:relative;min-width:0;height:100%;isolation:isolate}.hero-collage img{position:absolute;max-width:none;height:auto;object-fit:contain}.hero-goods{width:78%;left:1%;top:3%;z-index:1}.hero-potato{width:62%;left:0%;top:50%;z-index:3}.hero-flyer{width:37%;right:0;top:20%;z-index:2;transform:rotate(4deg);filter:drop-shadow(0 8px 10px #1e262918)}.section{padding:120px 0 0}.real-works{padding-top:0}.section__head{margin-bottom:34px;display:block}.section-title{display:flex;align-items:center;gap:25px}.section-title h2{flex-shrink:0}.section-rule{height:1px;background:var(--line);flex:1}.section-intro{color:var(--muted);font-size:15px;max-width:850px;margin-top:10px}.case-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:center;border:1px solid var(--line);background:var(--surface);margin-top:28px;overflow:hidden;border-radius:4px}.case-row:nth-of-type(odd) .case-media{order:2}.case-row:nth-of-type(odd) .case-copy{order:1}.case-media{display:block;overflow:hidden;min-width:0;background:white}.case-media img{width:100%;max-height:600px;object-fit:contain;transition:transform .3s}.case-media:hover img{transform:scale(1.03)}.case-copy{padding:32px;min-width:0}.case-copy h3{margin:12px 0 24px}.case-copy h3 a:hover{text-decoration:underline;text-underline-offset:5px}.work-date{color:var(--muted);font-size:13px;margin-top:8px}.case-copy dl{font-size:15px}.case-copy dl>div+div{margin-top:19px}.case-copy dt{font-weight:700;display:flex;gap:8px;align-items:center}.case-copy dt:first-letter{color:inherit}.case-copy dl>div:first-child dt:before{content:"";width:8px;height:8px;background:var(--mark);flex-shrink:0}.case-copy dd{margin-top:6px;color:var(--muted)}.case-row:hover{border-color:var(--accent)}.personal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.work-card{min-width:0;background:#fff;border:1px solid var(--line);border-radius:4px;overflow:hidden}.work-card-image{display:block;aspect-ratio:4/3;overflow:hidden;background:#fff}.work-card-image picture{height:100%}.work-card-image img{width:100%;height:100%;object-fit:contain;transition:transform .3s}.work-card-image:hover img{transform:scale(1.03)}.work-card-copy{padding:24px}.work-card h3{margin:12px 0}.work-card p{font-size:15px}.work-card .ai-note{font-size:12px;color:var(--muted);margin-top:18px}.study-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:24px}.study-item{min-width:0}.study-open{position:relative;display:block;width:100%;border:1px solid var(--line);padding:0;background:#fff;aspect-ratio:4/5;cursor:zoom-in;overflow:hidden;margin-bottom:16px}.study-open picture{height:100%}.study-open img{width:100%;height:100%;object-fit:contain}.study-open:hover{border-color:var(--accent)}.zoom-symbol{position:absolute;right:8px;bottom:8px;background:var(--paper);color:var(--accent);width:32px;height:32px;line-height:32px;border-radius:50%}.study-item h3{font-size:15px;margin-top:8px}.process-list{list-style:none;padding:0}.process-list li{display:grid;grid-template-columns:75px 1fr;gap:24px;border-top:1px solid var(--line);padding:28px 0}.process-list li:last-child{border-bottom:1px solid var(--line)}.process-number{font-family:var(--font-label);color:var(--accent);font-size:30px}.process-list h3{margin-bottom:8px}.process-list p{max-width:850px}.profile-grid{display:grid;grid-template-columns:280px minmax(0,1fr);gap:64px;margin-top:36px}.profile-photo{align-self:start}.profile-photo img{width:100%;border-radius:4px}.profile-copy>h3:first-child{font-family:var(--font-label);font-size:36px}.profile-role{color:var(--muted);margin:8px 0 24px}.profile-copy>p{max-width:850px}.small-heading{margin:38px 0 18px}.career-list{list-style:none;padding:0}.career-list li{border-top:1px solid var(--line);padding:17px 0}.career-year{color:var(--accent);font-family:var(--font-label);font-size:14px;font-weight:600}.career-list li p+ p{font-size:15px;margin-top:4px}.portfolio-footer{margin-top:120px;padding:40px 0;border-top:1px solid var(--line);color:var(--muted);font-size:13px}.portfolio-footer p{margin-top:8px}.portfolio-footer nav{display:flex;gap:20px;flex-wrap:wrap;margin-top:24px}.portfolio-footer nav a:hover{text-decoration:underline}.detail-main{padding-top:40px}.back-link{font-size:14px;color:var(--accent);text-decoration:underline;text-underline-offset:4px}.detail-heading{padding:36px 0 48px;border-bottom:1px solid var(--line)}.detail-heading h1{font-size:clamp(28px,3.2vw,46px);line-height:1.5;margin-top:20px;max-width:1040px}.detail-media{font-size:14px;color:var(--muted);margin-top:8px}.detail-body{max-width:920px;margin:0 auto}.detail-section{display:grid;grid-template-columns:190px 1fr;gap:35px;padding:34px 0;border-bottom:1px solid var(--line)}.detail-section h2{font-size:19px}.detail-section p{min-width:0}.detail-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;padding:64px 0}.detail-gallery figure{border:1px solid var(--line);background:#fff;padding:20px;display:grid;place-items:center}.detail-gallery figure:first-child{grid-column:1/-1}.detail-gallery img{max-height:1200px;width:auto;max-width:100%;object-fit:contain}.detail-gallery figure:first-child img{max-height:900px}.detail-notes{border-top:1px solid var(--line);padding-top:28px;color:var(--muted);font-size:14px}.detail-notes h2{font-size:20px;margin-bottom:10px}.detail-notes p+p{margin-top:10px}.adjacent-works{display:grid;grid-template-columns:1fr auto 1fr;gap:32px;padding:40px 0;margin-top:55px;border-top:1px solid var(--line);font-size:14px}.adjacent-works a:last-child{text-align:right}.adjacent-works span{display:block;color:var(--accent);font-size:12px;margin-bottom:8px}.adjacent-works a:hover{text-decoration:underline;text-underline-offset:4px}.study-dialog{max-width:min(96vw,1450px);max-height:94vh;padding:0;border:0;border-radius:4px;background:var(--paper);color:var(--ink)}.study-dialog::backdrop{background:#1e2629cc}.dialog-toolbar{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:15px 20px;background:var(--paper);border-bottom:1px solid var(--line);z-index:2}.dialog-toolbar h2{font-size:16px}.dialog-close{flex-shrink:0;border:1px solid var(--accent);background:#fff;padding:8px 16px;border-radius:4px;cursor:pointer;color:var(--accent)}.dialog-image-wrap{padding:24px;overflow:auto}.dialog-image-wrap img{max-width:100%;max-height:none;width:auto;margin:0 auto}.dialog-open{overflow:hidden}[data-reveal]{opacity:1!important;transform:none!important;filter:none!important;clip-path:none!important;transition:none!important}
/* The single approved reveal is activated after static visual verification. */
@media(min-width:1700px){.portfolio-hero{height:752px}}
@media(max-width:1200px){.shell{width:calc(100% - 80px)}.portfolio-header nav{gap:20px}.hero-identity{font-size:15px}.hero-copy{padding-top:110px}.media-labels{gap:8px}.media-labels li{padding:7px 12px;font-size:12px}.hero-down{bottom:80px}.case-row{gap:24px}.case-copy{padding:24px}.hero-lead{font-size:clamp(12px,1.35cqw,18px)}}
@media(max-width:1024px){.personal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-grid{grid-template-columns:220px minmax(0,1fr);gap:36px}.study-grid{gap:16px}.hero-copy{padding-top:80px}.hero-identity{font-size:13px}.portfolio-hero{height:620px}.hero-collage .hero-goods{top:9%}.hero-collage .hero-potato{top:48%}.hero-collage .hero-flyer{top:24%}.hero-copy h1{font-size:3.95cqw}.hero-lead{font-size:1.35cqw}.hero-down{bottom:95px}.portfolio-header nav{gap:16px;font-size:12px}.detail-section{grid-template-columns:150px 1fr;gap:24px}}
@media(max-width:767px){body{font-size:15px}.shell{width:calc(100% - 40px)}.portfolio-header{height:auto;min-height:112px;display:block;padding-top:18px}.portfolio-header .wordmark{font-size:32px}.portfolio-header nav{margin-top:13px;gap:20px;width:100%;overflow-x:auto;padding-bottom:7px;font-size:12px;scrollbar-width:thin}.portfolio-header nav a{padding:6px 0}.portfolio-hero{display:flex;flex-direction:column;gap:22px;height:auto;min-height:0;container-type:inline-size}.hero-copy{padding-top:32px}.hero-identity{font-size:12px;letter-spacing:0}.hero-copy h1{font-size:clamp(24px,7.35cqw,40px);line-height:1.4;margin-top:18px}.hero-lead{font-size:15px;line-height:1.9;margin-top:23px}.lead-break{display:none}.media-labels{margin-top:22px;gap:8px}.media-labels li{font-size:11px;padding:5px 10px}.hero-down{position:static;margin:26px 0 0;padding-bottom:4px;font-size:14px;gap:20px}.hero-collage{height:auto;aspect-ratio:1.2;min-height:0;width:100%;max-width:560px;margin:0 auto}.hero-collage .hero-goods{width:75%;top:0;left:6%}.hero-collage .hero-potato{width:59%;left:1%;top:46%}.hero-collage .hero-flyer{width:33%;right:1%;top:17%}.real-works{padding-top:36px}.section{padding-top:72px}.section-title{gap:18px}.section-title h2{font-size:24px}.section-intro{font-size:14px;line-height:1.9}.section__head{margin-bottom:24px}.case-row{grid-template-columns:1fr;gap:0;margin-top:24px}.case-row .case-copy,.case-row:nth-of-type(odd) .case-copy{order:1}.case-row .case-media,.case-row:nth-of-type(odd) .case-media{order:2}.case-copy{padding:23px}.case-copy h3{font-size:18px;margin-bottom:22px}.case-media img{max-height:540px}.case-copy dl{font-size:14px}.personal-grid{grid-template-columns:1fr;gap:24px}.work-card-copy{padding:22px}.study-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 16px}.process-list li{grid-template-columns:42px 1fr;gap:16px}.process-number{font-size:24px}.profile-grid{grid-template-columns:1fr;gap:28px}.profile-photo{width:180px}.profile-copy>h3:first-child{font-size:30px}.portfolio-footer{margin-top:72px}.detail-main{padding-top:24px}.detail-heading{padding:28px 0 32px}.detail-heading h1{font-size:28px}.detail-section{grid-template-columns:1fr;gap:12px;padding:26px 0}.detail-section h2{font-size:18px}.detail-gallery{grid-template-columns:1fr;gap:24px;padding:36px 0}.detail-gallery figure{padding:12px}.adjacent-works{grid-template-columns:1fr 1fr;gap:24px}.adjacent-works a:nth-child(2){grid-column:1/-1;grid-row:2;text-align:center}.dialog-toolbar{padding:12px;gap:12px}.dialog-toolbar h2{font-size:14px}.dialog-close{padding:7px 10px;font-size:13px}.dialog-image-wrap{padding:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}[data-reveal]{opacity:1!important;transform:none!important}}
@media(min-width:768px){.real-works .section__head{margin-bottom:8px}.real-works .case-row:first-of-type{margin-top:8px}}
@media(max-width:767px){.real-works{padding-top:36px}}
:root{--font-en:"Figtree",sans-serif;--font-label:"Figtree",sans-serif;--font-display:"Zen Kaku Gothic New",sans-serif;--font-body:"Noto Sans JP",sans-serif;--lh-display:1.4;--fw-display:700;--fw-body:400;--fw-strong:700}
@media(max-width:767px){.hero-copy h1{font-size:clamp(28px,8.6cqw,40px)}}
@media(min-width:768px) and (max-width:1024px){.hero-lead{font-size:15px}.lead-break{display:none}}
/* Approved single reveal: use the mold observer; override its 30px distance to 8px. */
.motion-ready .section [data-reveal],.motion-ready .detail-body [data-reveal]{opacity:0!important;transform:translate3d(0,8px,0)!important;transition:opacity 400ms ease,transform 400ms ease!important}
.motion-ready .section [data-reveal].is-visible,.motion-ready .detail-body [data-reveal].is-visible{opacity:1!important;transform:translate3d(0,0,0)!important}
@media(prefers-reduced-motion:reduce){.motion-ready .section [data-reveal],.motion-ready .detail-body [data-reveal]{opacity:1!important;transform:none!important;transition:none!important}}

/* v1.1: approved local revisions only. Unsupported auto-phrase keeps normal wrapping. */
p,dd,.hero-lead,.section-intro,.case-copy,.work-card-copy{word-break:auto-phrase}
.section{background-image:none}
.hero-collage .hero-flyer{translate:-12px 32px}
@media(max-width:1024px){.hero-collage .hero-flyer{translate:-8px 24px}}
@media(max-width:767px){.hero-collage .hero-flyer{translate:-20px 40px}}

/* v1.2: live-site references are text links, separate from detail links. */
.live-site-reference{margin-top:18px;font-size:14px;line-height:1.9}
.live-site-link{color:var(--accent);text-decoration:underline;text-underline-offset:4px}
.live-site-link:hover{text-decoration-thickness:2px}
.new-tab-note{display:inline;color:var(--muted);font-size:12px;margin-left:6px}
.detail-body>.live-site-reference{margin:24px 0 0}
