:root{--paper:#f7f6f2;--ink:#262922;--muted:#55594f;--line:#d6d8ce;--blue:#244d3c;--soft:#edefe8;--type-ja:'Hiragino Sans','Hiragino Kaku Gothic ProN','Yu Gothic','YuGothic','Noto Sans JP',Meiryo,sans-serif;--type-en:'Futura','Futura-Medium','Futura PT','Century Gothic','Avenir Next',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:120px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--type-ja);font-size:18px;line-height:1.85;letter-spacing:.015em;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}a,button,input,textarea,summary{outline-offset:5px}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--blue)}img{display:block;max-width:100%;height:auto}figure{margin:0}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:500}h2{font-size:clamp(28px,3.1vw,44px);line-height:1.65;letter-spacing:.02em;margin-bottom:24px}h3{line-height:1.7}.section{padding:88px 5.5%}header{position:sticky;top:0;z-index:10;background:rgba(247,246,242,.98);padding:20px 5.5%;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:20px}.brand{font-family:var(--type-en);font-size:32px;line-height:1;font-weight:500;letter-spacing:.06em}.brand span{display:block;font-size:13px;letter-spacing:0;line-height:1.5;margin-top:7px}nav{display:flex;gap:28px;align-items:center;font-size:15px}nav a{display:inline-flex;align-items:center;min-height:44px}.nav-contact{padding:9px 18px;border:1px solid var(--blue);gap:22px;color:var(--blue)}.nav-contact:hover{background:var(--blue);color:white}.skip{position:absolute;top:-100px;left:10px;z-index:20;background:white;padding:12px}.skip:focus{top:10px}.hero{padding:60px 5.5% 46px;display:grid;grid-template-columns:1.1fr 1fr;gap:5%;align-items:center}.eyebrow{display:flex;align-items:center;gap:10px;font-family:var(--type-en);font-size:12px;letter-spacing:.1em;color:var(--blue);margin-bottom:20px}.dot{width:7px;height:7px;background:var(--blue);border-radius:50%;flex:none}.hero-audience{font-size:17px;margin-bottom:15px}.hero h1{font-size:clamp(30px,3.3vw,50px);line-height:1.6;letter-spacing:0;margin:0 0 24px}.hero h1>span{color:var(--blue)}.hero-description{font-size:18px;line-height:1.95;margin-bottom:28px}.hero-actions{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center}.primary-cta{display:inline-flex;justify-content:space-between;align-items:center;gap:24px;min-height:58px;background:var(--blue);color:#fff;padding:17px 24px;font-size:17px;line-height:1.6}.primary-cta:hover{background:#173a2b}.text-link{display:inline-block;font-size:16px;line-height:1.8;border-bottom:1px solid;padding:9px 0}.text-link:hover{color:var(--blue)}.cta-note{font-size:14px;color:var(--muted);margin:14px 0 0}.hero-visual{background:#efefeb;padding:20px 20px 0;align-self:stretch;display:flex;flex-direction:column;justify-content:center}.hero-visual img{width:100%;height:auto}.hero-visual figcaption{padding:20px 0;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:12px;line-height:1.8;color:var(--muted)}.hero-visual figcaption>span{font-family:var(--type-en);letter-spacing:.04em}.hero-visual figcaption a{font-size:14px;text-decoration:underline;text-underline-offset:4px}.scope-strip{padding:17px 5.5%;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:30px;align-items:center;font-size:14px;color:var(--muted)}.scope-strip p{margin:0;line-height:2}.scope-strip p span{padding:0 10px;color:#919789}.scope-strip>span{font-family:var(--type-en);white-space:nowrap}.section-label{display:flex;gap:24px;flex-wrap:wrap;font-size:14px;line-height:1.7;margin-bottom:28px}.section-label>span:first-child{font-family:var(--type-en);letter-spacing:.09em;color:var(--blue)}.section-label>span+span{color:var(--muted)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:35px;margin-bottom:36px}.section-heading h2{margin-bottom:0}.section-heading>p{font-size:17px;color:var(--muted);line-height:1.95;margin:0}.services{background:var(--soft)}.service{display:grid;grid-template-columns:32px 1fr 1.1fr;gap:24px;border-top:1px solid #cbd0c1;padding:32px 0}.service:last-child{border-bottom:1px solid #cbd0c1}.number{font-family:var(--type-en);font-size:15px;color:var(--blue);padding-top:3px}.service-en{font-family:var(--type-en);font-size:15px;color:var(--muted);margin:0 0 7px}.service h3{font-size:23px;margin:0 0 12px}.service-scope{font-size:15px;color:var(--muted);line-height:1.9;margin-bottom:0}.service-body>p{font-size:17px;line-height:1.95;margin-bottom:16px}.service-details{border-top:1px solid var(--line)}summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:18px;align-items:baseline}summary::-webkit-details-marker{display:none}summary>span{font-size:22px;color:var(--blue);flex:none;transition:transform .15s}details[open]>summary>span{transform:rotate(45deg)}.service-details summary{font-size:15px;padding:10px 0}.service-details>div{padding:8px 16px 16px;background:#f7f6f2}.service-details p{font-size:16px;line-height:1.9;margin:0}.service-details .detail-label{font-size:14px;color:var(--blue);margin:12px 0 6px}.service-link{display:inline-flex;gap:32px;align-items:center;padding:10px 0;font-size:16px;color:var(--blue);border-bottom:1px solid var(--blue);margin-top:8px}.service-link:hover{gap:40px}.unsure{display:flex;justify-content:space-between;align-items:center;gap:30px;padding-top:30px}.unsure p{margin:0;font-size:17px;line-height:1.95}.unsure strong{font-weight:500;font-size:20px}.unsure a{white-space:nowrap}.creative{background:var(--paper)}.design-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.work-card{min-width:0}.work-image{display:block;background:#ecece5}.design-grid .work-image{height:360px;display:flex;align-items:center;justify-content:center;padding:14px}.design-grid .work-image img{width:100%;height:100%;object-fit:contain}.work-image:hover{opacity:.92}.work-card figcaption{padding-top:18px}.work-category{font-family:var(--type-en);font-size:13px;letter-spacing:.06em;color:var(--blue)}.work-card h3{font-size:22px;margin:10px 0}.work-card p{font-size:16px;line-height:1.95;color:var(--muted);margin-bottom:12px}.work-card .work-origin{font-size:13px;color:var(--blue)}.work-request{display:block;font-size:15px;line-height:1.8;border-top:1px solid var(--line);padding:14px 0 5px;color:var(--blue);margin-top:16px}.photo-story{display:grid;grid-template-columns:2fr 1fr;gap:5%;padding-top:48px;margin-top:48px;border-top:1px solid var(--line);align-items:center}.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.photo-grid figcaption{font-size:14px;color:var(--muted);padding-top:12px}.photo-copy h3{font-size:28px;margin:12px 0}.photo-copy p{font-size:17px;line-height:1.95;margin-bottom:12px}.creative-bottom{margin-top:36px;border-top:1px solid var(--line);padding-top:18px;display:flex;align-items:center;justify-content:space-between;gap:20px}.creative-bottom p{font-size:14px;color:var(--muted);margin:0}.about{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:8%}.about-content .lead{font-size:23px}.about-content p{font-size:18px;line-height:2;margin-bottom:22px}.about-content .audience{font-size:16px;color:var(--muted);padding-top:22px;border-top:1px solid var(--line)}.process{background:#ecefe8}.cost-note{display:grid;grid-template-columns:1fr 1.2fr;gap:40px;border-top:1px solid #bdc7b8;border-bottom:1px solid #bdc7b8;padding:24px 0}.cost-note h3{font-size:21px;margin:0}.cost-note p{font-size:17px;line-height:1.95;margin:0}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;padding:0;list-style:none;margin:36px 0 0}.steps li{border-top:1px solid #bdc7b8;padding-top:20px}.steps span{font:14px var(--type-en);letter-spacing:.04em;color:var(--blue)}.steps h3{font-size:22px;margin:16px 0 12px}.steps p{font-size:17px;color:var(--muted);line-height:1.95;margin:0}.faq{max-width:1100px;margin:auto}.faq details{border-bottom:1px solid var(--line)}.faq summary{font-size:20px;padding:22px 0;line-height:1.8}.faq details p{font-size:18px;line-height:2;padding:0 30px 10px 0}.contact{background:#e6ece3}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:9%}.contact h2{font-size:clamp(28px,3vw,40px)}.contact-grid>div>p{font-size:18px;line-height:2}.contact-guide{padding:25px 0;border-top:1px solid #c4cec0;margin-top:28px}.contact-guide h3{font-size:19px;margin:0 0 12px}.contact-guide ul{padding-left:1.25em;margin:0;font-size:16px;line-height:2}.contact-grid>div>.contact-after{font-size:16px;color:var(--muted)}.preview-note{font-size:15px;line-height:1.9;color:#414b3f;border-left:2px solid var(--blue);padding-left:12px;margin:0 0 22px}.form-privacy{font-size:14px;margin:0 0 25px}.form-privacy a{border-bottom:1px solid}.field{margin-bottom:24px}.field label,legend{display:block;font-size:17px;margin-bottom:10px}small{font-size:13px;font-weight:400;color:var(--muted);margin-left:8px}input:not([type=checkbox]),textarea{width:100%;border:1px solid #aebba7;background:#fbfcf9;padding:12px 14px;font-size:17px;line-height:1.8;border-radius:0;color:var(--ink)}input:focus,textarea:focus{outline:2px solid var(--blue);outline-offset:1px}textarea{resize:vertical;min-height:125px}::placeholder{font-size:16px;color:#62695d}fieldset{padding:0;border:0;margin:0 0 24px}.choices{display:flex;gap:8px 10px;flex-wrap:wrap}.choices label{font-size:16px;display:flex;align-items:center;gap:8px;min-height:46px;padding:7px 10px;border:1px solid #aebba7;cursor:pointer}.choices label:has(input:checked){background:#d3dfce;border-color:var(--blue)}.choices input{accent-color:var(--blue);width:19px;height:19px;margin:0}.selection-status:empty{display:none}.selection-status{font-size:15px;line-height:1.8;padding:12px;background:#d3dfce;color:var(--blue)}.submit{border:0;background:var(--blue);color:white;width:100%;padding:19px 24px;display:flex;justify-content:space-between;gap:15px;cursor:pointer;font-size:18px;line-height:1.7}.submit:hover{background:#173a2b}#form-status,#confirmation{font-size:16px;line-height:1.9}#confirmation{padding:22px;background:#fff;margin-top:20px}#confirmation h3{font-size:21px}#summary{overflow-wrap:anywhere;white-space:pre-wrap}#summary dt{color:var(--muted);font-size:14px;margin-top:12px}#summary dd{margin:0}#back{min-height:44px;padding:10px 0;background:none;border:0;border-bottom:1px solid var(--ink);cursor:pointer}.company{display:grid;grid-template-columns:1fr 1.5fr;gap:8%;border-top:1px solid var(--line)}.company-intro{font-size:17px;line-height:2}.company-details{margin:0}.company-details>div{display:grid;grid-template-columns:135px minmax(0,1fr);gap:24px;padding:22px 0;border-bottom:1px solid var(--line)}.company-details>div:first-child{border-top:1px solid var(--line)}.company-details dt{font-size:15px;color:var(--muted)}.company-details dd{font-size:17px;line-height:1.9;margin:0;overflow-wrap:anywhere}.company-en{display:block;font-family:var(--type-en);font-size:15px;margin-top:4px}.company-details a{border-bottom:1px solid}.company-note{display:block;margin:10px 0 0;font-size:14px;line-height:1.8}.site-footer{padding:42px 5.5%;background:#e9ebe4;border-top:1px solid var(--line)}.footer-top{display:flex;justify-content:space-between;align-items:flex-start;gap:35px}.footer-nav{display:flex;flex-wrap:wrap;gap:8px 25px;max-width:720px}.footer-nav a{font-size:15px}.draft-label{font-size:12px;margin-left:7px;color:var(--muted)}.footer-bottom{margin-top:32px;padding-top:20px;border-top:1px solid var(--line);display:flex;gap:24px;align-items:center;flex-wrap:wrap;font-size:14px}.footer-bottom p{margin:0}.footer-bottom>a{margin-left:auto;min-height:44px;display:flex;align-items:center}.copyright{font-family:var(--type-en);color:var(--muted)}.privacy-page{max-width:1000px;margin:auto}.privacy-page h1{font-size:clamp(25px,4vw,42px);line-height:1.6;letter-spacing:.025em;margin:0 0 30px}.privacy-page h1 span{font-size:18px;color:var(--muted)}.privacy-page h2{font-size:24px;margin:0 0 18px}.privacy-page section{margin:40px 0}.privacy-page p{font-size:18px;line-height:2;overflow-wrap:anywhere}.privacy-page .preview-note,.privacy-page .privacy-date{font-size:15px}.privacy-back{font-size:15px;padding:10px 0}
@media(min-width:1500px){header,.hero,.scope-strip,.section,.site-footer{padding-left:max(5.5%,calc((100% - 1360px)/2));padding-right:max(5.5%,calc((100% - 1360px)/2))}.faq,.privacy-page{max-width:none}.faq>*,.privacy-page>*{max-width:1000px;margin-left:auto;margin-right:auto}}
@media(max-width:1050px){nav{gap:18px}.hero{gap:3%;grid-template-columns:1.15fr 1fr}.hero h1{font-size:clamp(28px,3.8vw,39px)}.hero-visual{padding:12px 12px 0}.hero-description{font-size:17px}.hero-actions{gap:10px}.design-grid{gap:20px}.design-grid .work-image{height:300px;padding:10px}.section-heading{display:block}.section-heading>p{margin-top:18px}.photo-story{grid-template-columns:1fr}.photo-copy{margin-top:28px}.photo-copy h3 br,.photo-copy p br{display:none}.photo-copy h3{font-size:25px}.company-details>div{grid-template-columns:105px 1fr;gap:16px}.contact-grid{gap:5%}}
@media(max-width:760px){html{scroll-padding-top:100px}header{padding:14px 6%;gap:12px}.brand{font-size:27px}.brand span{font-size:11px}.main-nav>a:not(.nav-contact){display:none}.main-nav{font-size:14px}.nav-contact{padding:8px 12px;gap:14px}.section{padding:58px 6%}h2{font-size:29px;line-height:1.65}.hero{display:block;padding:32px 6% 24px}.eyebrow{font-size:10px;margin-bottom:17px}.hero-audience{font-size:15px;margin-bottom:12px}.hero h1{font-size:clamp(25px,7.3vw,38px);line-height:1.55;margin-bottom:18px}.hero-description{font-size:17px;line-height:1.95;margin-bottom:22px}.desktop-break{display:none}.hero-actions{display:block}.primary-cta{width:100%;font-size:16px;padding:16px 18px;min-height:56px}.hero-actions .text-link{font-size:15px;margin-top:9px}.cta-note{font-size:13px;line-height:1.9;margin-top:10px}.hero-visual{padding:12px 12px 0;margin-top:28px}.hero-visual figcaption{padding:12px 0;gap:5px;font-size:10px}.hero-visual figcaption a{font-size:12px;min-height:24px}.scope-strip{padding:14px 6%;font-size:12px}.scope-strip p span{padding:0 2px}.scope-strip>span{display:none}.section-label{font-size:12px;gap:12px;margin-bottom:23px}.section-heading{margin-bottom:28px}.section-heading>p{font-size:17px;margin-top:15px}.service{grid-template-columns:22px 1fr;gap:8px 12px;padding:27px 0}.service-en{font-size:14px}.service h3{font-size:21px;margin-bottom:9px}.service-scope{font-size:14px}.service-body{grid-column:1/-1;margin-top:12px}.service-body>p{font-size:17px}.service-details summary{font-size:15px;min-height:48px}.service-link{font-size:16px;min-height:48px}.unsure{display:block;padding-top:25px}.unsure p{font-size:16px}.unsure strong{font-size:19px}.unsure .text-link{margin-top:12px}.design-grid{grid-template-columns:1fr;gap:35px}.design-grid .work-image{height:auto;padding:18px 10%;background:#ecece5}.design-grid .work-image img{height:auto;max-height:none;object-fit:contain}.work-card figcaption{padding-top:16px}.work-category{font-size:12px}.work-card h3{font-size:23px;margin:8px 0}.work-card p{font-size:17px}.work-card .work-origin{font-size:13px}.work-request{font-size:16px;min-height:48px}.photo-story{padding-top:32px;margin-top:36px;display:flex;flex-direction:column;align-items:stretch;gap:24px}.photo-copy{order:-1;margin:0}.photo-copy h3{font-size:25px}.photo-copy p{font-size:17px}.photo-grid{grid-template-columns:1fr;gap:24px}.photo-grid figcaption{font-size:14px}.creative-bottom{display:block;margin-top:28px}.creative-bottom p{font-size:13px}.creative-bottom a{margin-top:12px}.about{display:block}.about-content .lead{font-size:21px;margin-top:25px}.about-content p{font-size:17px}.about-content .audience{font-size:16px}.cost-note{display:block;padding:22px 0}.cost-note h3{font-size:20px;margin-bottom:14px}.cost-note p{font-size:17px}.steps{grid-template-columns:1fr;gap:24px;margin-top:28px}.steps h3{font-size:22px;margin:12px 0 9px}.steps p{font-size:17px}.faq summary{font-size:18px;line-height:1.85;padding:20px 0}.faq details p{font-size:17px;padding-right:0}.contact-grid{display:block}.contact h2{font-size:28px}.contact-grid>div>p{font-size:17px}.contact-guide{margin-top:22px;padding:20px 0}.contact-guide ul{font-size:15px}.contact form{margin-top:30px}.preview-note{font-size:14px}.form-privacy{font-size:13px}.field label,legend{font-size:17px}.choices{gap:8px}.choices label{font-size:15px}.submit{font-size:17px}input:not([type=checkbox]),textarea{font-size:17px}.company{display:block}.company-details{margin-top:30px}.company-details>div{grid-template-columns:1fr;gap:6px;padding:18px 0}.company-details dd{font-size:17px}.company-intro{font-size:17px}.site-footer{padding:32px 6%}.footer-top{display:block}.footer-nav{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px;margin-top:24px}.footer-nav a:last-child{grid-column:1/-1}.footer-bottom{gap:10px 20px}.footer-bottom>a{margin-left:0}.footer-bottom p{width:100%}.privacy-page h2{font-size:23px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.hero-visual .hero-caption-ja{display:block;margin-top:5px;font-family:var(--type-ja);font-size:14px;line-height:1.8;letter-spacing:.015em}

/* Stacked wordmark, inspired by the SWAN ICE CREAM identity. */
.brand{display:inline-block;flex:none;text-align:center;font-family:var(--type-en);font-weight:500;font-synthesis:none;font-size:36px;letter-spacing:.24em;padding-left:.24em;line-height:1}
.brand>span{font-size:11px;letter-spacing:.07em;line-height:1.5;margin-top:9px;margin-left:-.24em;white-space:nowrap}
@media(max-width:760px){.brand{font-size:30px}.brand>span{font-size:10px;margin-top:7px}}

/* Original SWAN vector lettering from the supplied Illustrator logo.
   Subtitle width follows ICE CREAM: 319.872 / 455.729 = 70.19%. */
.brand{display:block;width:180px;padding:0;line-height:0;letter-spacing:0}
.brand .brand-logo{display:block;width:100%;height:auto}
.site-footer .brand{width:200px}
@media(max-width:760px){.brand{width:160px}.site-footer .brand{width:180px}}
@media(max-width:360px){.brand{width:142px}}

/* White logo for the dark footer, including the subtitle. */
.site-footer .brand-logo{filter:brightness(0) invert(1)}

/* Contact form states. Keep consent and fallback readable on small screens. */
.form-honeypot{display:none!important}
.privacy-consent{display:flex;align-items:flex-start;gap:10px;margin:24px 0;font-size:15px;line-height:1.9}
.privacy-consent input{flex:none;width:20px;height:20px;margin-top:5px;accent-color:var(--blue)}
.privacy-consent a,.form-direct a,.privacy-page a{ text-decoration:underline;text-underline-offset:4px }
.form-direct{font-size:15px;line-height:1.9;overflow-wrap:anywhere}
button:disabled{opacity:.65;cursor:default}
#form-status:not(:empty){padding:16px;border-left:3px solid var(--blue);background:#fff;overflow-wrap:anywhere}
#confirmation[hidden],#captcha-send[hidden],#send[hidden]{display:none!important}
#confirmation .submit{margin:18px 0}
