@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;600;700;800;900&family=Noto+Serif+TC:wght@500;600;700;800;900&display=swap');
:root{--paper:#f5f3ee;--ink:#242420;--accent:#f25424;--muted:#74746b;--line:#cfcec5;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Noto Sans TC',sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:5px}::selection{background:#ffd3ba;color:var(--ink)}
header{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:105px;padding:20px 4.5%;border-bottom:1px solid var(--ink);background:var(--paper);position:relative;z-index:10}.brand{display:block;flex-shrink:0}.brand-logo{display:block;width:270px;height:auto;filter:none}nav{display:flex;gap:30px;align-items:center}nav a{font-size:12px;font-weight:500}nav small{display:block;font:9px Arial;letter-spacing:1px;margin-top:6px;color:var(--muted)}nav a:hover{color:var(--accent)}.nav-contact{padding:15px 0 15px 25px;border-left:1px solid var(--line)}.nav-contact span{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;margin-left:15px;background:var(--ink);color:var(--paper);font:20px Arial}.menu{display:none}.skip{position:fixed;top:-100px;left:10px;padding:12px;background:var(--ink);color:white;z-index:100}.skip:focus{top:10px}
.hero{position:relative;min-height:745px;max-height:980px;height:calc(100svh - 105px);margin:0 4.5%;border-inline:1px solid var(--line);overflow:hidden}.hero-top{position:absolute;top:25px;left:30px;right:30px;display:flex;justify-content:space-between;font:9px Arial;letter-spacing:1.5px}.hero-top i{display:inline-block;width:6px;height:6px;background:var(--accent);border-radius:50%;margin-right:8px}.hero-copy{position:absolute;right:4%;top:95px;bottom:90px;width:42%;padding-left:35px;border-left:1px solid var(--line)}.eyebrow{position:absolute;right:0;top:8px;writing-mode:vertical-rl;font-size:12px;letter-spacing:4px;margin:0}h1{writing-mode:vertical-rl;font-family:'Noto Serif TC',serif;font-size:clamp(50px,5.4vw,83px);font-weight:800;line-height:1.45;letter-spacing:7px;height:410px;margin:0 30px 0 auto}h1>span:not(.dot){color:var(--accent)}.intro{font-size:12px;line-height:2;letter-spacing:1px;margin:25px 0 15px}.text-link{display:inline-flex;gap:70px;align-items:center;font-size:12px;border-bottom:1px solid var(--ink);padding:10px 0}.text-link span{font:25px Arial}.editorial-art{position:absolute;left:4%;top:110px;width:48%;bottom:95px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.art-kicker{font:9px Arial;letter-spacing:2px;margin-bottom:28px}.art-type{font:900 clamp(68px,8.2vw,135px)/.88 Arial;letter-spacing:-.065em;transform:scaleX(.93);transform-origin:left center}.art-type>span{color:var(--accent)}.art-caption{font:9px Arial;letter-spacing:2px;margin-top:35px}.hero-bottom{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:22px 30px;font:9px Arial;letter-spacing:1px}.hero-bottom>span:first-child{font:11px 'Noto Sans TC';letter-spacing:2px}.hero-note{color:var(--muted)}.ticker{padding:22px 0;white-space:nowrap;overflow:hidden;background:var(--ink);color:var(--paper);font:700 clamp(22px,3.1vw,48px)/1 Arial;letter-spacing:-1px;word-spacing:14px}.ticker span{color:#85857b}
.section{padding:100px 7.5%}.section-label{display:flex;justify-content:space-between;align-items:center;gap:20px;font:10px Arial;letter-spacing:1.5px;border-top:1px solid var(--ink);padding-top:18px}.section-label>span:last-child{font:12px 'Noto Sans TC';letter-spacing:2px}.section-label>span:first-child::before{content:'';display:inline-block;width:6px;height:6px;background:var(--accent);margin-right:11px}h2{font-family:'Noto Serif TC',serif;font-size:clamp(34px,4vw,60px);font-weight:700;line-height:1.6;letter-spacing:1px;margin:0}.blue{color:var(--accent)}.about-body{display:grid;grid-template-columns:1fr 1fr;gap:10%;margin:70px 0 20px}.about-body h2{padding-left:7%;border-left:4px solid var(--accent)}.about-body p{font-size:14px;line-height:2.2;letter-spacing:.3px;color:#606058}.about-body .lead{font-family:'Noto Serif TC',serif;color:var(--ink);font-size:24px;line-height:1.8;margin:0 0 28px}.mini-label{display:block;font:9px Arial;letter-spacing:2px;margin-top:28px;color:var(--muted)}
.services{background:#eae8e1;padding-top:70px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:25px;margin:50px 0}.section-heading p{font-size:12px;line-height:1.9;color:#606058}.service-grid{counter-reset:service}.service-grid article{position:relative;display:grid;grid-template-columns:70px 1.05fr 1fr;grid-template-rows:auto auto;column-gap:28px;padding:38px 0;border-top:1px solid #afafa3;counter-increment:service;transition:padding .25s,background .25s}.service-grid article:last-child{border-bottom:1px solid #afafa3}.service-grid article::before{content:'0' counter(service);grid-column:1;grid-row:1/3;font:italic 36px 'Noto Serif TC',serif;color:var(--accent)}.service-art{display:none}.service-grid .mini-label{grid-column:2;grid-row:1;margin:4px 0 14px;font-size:8px}.service-grid h3{grid-column:2;grid-row:2;font-size:23px;font-weight:500;letter-spacing:1px;margin:0}.service-grid p{grid-column:3;grid-row:1;margin:0;font-size:12px;line-height:1.9;align-self:center}.tags{grid-column:3;grid-row:2;font-size:10px;line-height:1.9;color:#68685e;align-self:end}.service-grid article:hover{padding-left:12px;background:#f3f1eb}
.recruit{margin:0;padding:85px 7.5%;background:var(--accent);position:relative;overflow:hidden;color:#201a16}.recruit>div:first-child{position:relative;z-index:1}.recruit .section-label{justify-content:flex-start;border-color:#883514}.recruit h2{font-size:clamp(34px,4.6vw,70px);line-height:1.5;margin:45px 0 25px}.recruit p{font-size:13px;line-height:2.1}.recruit-art{position:absolute;right:6%;bottom:70px;width:26%;font-size:0;border-left:1px solid #923819;min-height:250px;display:flex;align-items:end;padding-left:35px}.recruit-art::before{content:'一緒に。';writing-mode:vertical-rl;position:absolute;right:20px;top:-80px;font:700 64px 'Noto Serif TC';letter-spacing:8px;color:#69280f;opacity:.3}.recruit-art small{font:9px/2 Arial;letter-spacing:2px}.light-button{display:inline-flex;align-items:center;gap:75px;padding:19px 25px;background:var(--ink);color:var(--paper);font-size:12px;margin-top:15px}.light-button span{font:22px Arial}.light-button:hover{background:#403a33}
.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:8%;margin-top:60px}.contact-layout h2{font-size:clamp(33px,3.6vw,54px)}.contact-layout>div>p{font-size:13px;line-height:2.2;margin:25px 0;color:#626259}form label{display:block;font-size:12px;margin-bottom:25px}label>span{color:#c53b16}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:25px}input,select,textarea{display:block;width:100%;border:0;border-bottom:1px solid #9b9b8f;border-radius:0;background:transparent;color:var(--ink);padding:15px 0;font-size:13px}input::placeholder,textarea::placeholder{color:#838378}textarea{resize:vertical}.form-note{font-size:11px;line-height:1.8;color:#77776c}.submit{display:flex;justify-content:space-between;align-items:center;width:100%;border:0;background:var(--ink);color:var(--paper);padding:19px 24px;font-size:12px;transition:background .2s}.submit:hover{background:#b63e1b}.submit span{font:22px Arial}#form-status:empty{display:none}
footer{margin:0 4.5%;padding:35px 0;border-top:1px solid var(--ink);display:flex;justify-content:space-between;align-items:center;gap:25px}footer .brand-logo{width:240px}footer>span,footer>a:last-child{font:9px 'Noto Sans TC';letter-spacing:1px;color:#6b6b62}dialog{width:90%;max-width:540px;padding:40px;background:var(--paper);color:var(--ink);border:1px solid var(--ink);box-shadow:0 25px 100px #0003}dialog::backdrop{background:#24242099;backdrop-filter:blur(4px)}dialog h2{font-size:28px;margin:20px 0}dialog .mini-label{margin-top:0}.close{position:absolute;right:12px;top:8px;background:transparent;border:0;font-size:28px;color:var(--ink)}#preview-content{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:2}
@media(min-width:1600px){.hero-copy{top:120px}.editorial-art{top:120px}h1{height:460px}.intro{margin-top:35px}}
@media(max-width:1050px){header{padding-inline:4%}.brand-logo{width:230px}nav{gap:18px}.nav-contact{padding-left:15px}.nav-contact span{margin-left:8px}.hero{margin-inline:4%}.hero-copy{width:44%;padding-left:24px}.hero-note{display:none}.section{padding-inline:6%}.section-heading{align-items:start;flex-direction:column;gap:0}.service-grid article{grid-template-columns:50px 1fr 1fr;column-gap:20px}.service-grid h3{font-size:20px}.recruit{padding-inline:6%}}
@media(max-width:760px){html{scroll-padding-top:30px}header{min-height:85px;padding:17px 5%}.brand-logo{width:235px}.menu{display:block;border:0;background:none;color:var(--ink);font-size:24px}nav{display:none;position:absolute;top:84px;left:0;right:0;background:var(--paper);padding:25px 6%;border-bottom:1px solid var(--ink)}nav.open{display:flex;flex-direction:column;align-items:stretch;gap:25px}.nav-contact{border-left:0;border-top:1px solid var(--line);padding:20px 0 0}.hero{height:760px;min-height:0;margin-inline:5%}.hero-top{left:15px;right:15px;font-size:7px;letter-spacing:.6px}.hero-copy{top:85px;right:6%;width:48%;bottom:180px;border-left:none;padding-left:0}.eyebrow{font-size:10px;letter-spacing:3px;right:-5px}h1{font-size:48px;letter-spacing:3px;line-height:1.45;height:325px;margin-right:20px}.intro{position:absolute;top:425px;right:0;width:180%;margin:0;font-size:12px;text-align:right}.text-link{position:absolute;top:505px;right:0;gap:45px;font-size:11px}.editorial-art{left:5%;top:145px;bottom:auto;width:45%}.art-kicker{font-size:6px;letter-spacing:1px;line-height:1.6;margin-bottom:20px}.art-type{font-size:clamp(35px,8vw,59px);line-height:1;letter-spacing:-2px}.art-caption{font-size:6px;letter-spacing:.5px;line-height:1.8;margin-top:22px}.hero-bottom{padding:20px 15px;font-size:7px;letter-spacing:.4px}.hero-bottom>span:first-child{font-size:9px;letter-spacing:1px}.ticker{padding:20px 0;font-size:24px;word-spacing:5px}.section{padding:65px 6%}.section-label{font-size:9px;letter-spacing:1px}.section-label>span:last-child{font-size:11px}.about-body{grid-template-columns:1fr;gap:40px;margin-top:40px}.about-body h2{padding-left:20px}.about-body .lead{font-size:22px}.about-body p{font-size:13px}.section-heading{margin:35px 0}h2{font-size:34px}.service-grid article{grid-template-columns:38px 1fr;column-gap:15px;row-gap:10px;padding:27px 0}.service-grid article::before{font-size:25px}.service-grid .mini-label{margin:0 0 3px;font-size:7px}.service-grid h3{grid-column:2;grid-row:2;font-size:21px}.service-grid p{grid-column:2;grid-row:3;font-size:12px}.tags{grid-column:2;grid-row:4;font-size:9px}.recruit{padding:60px 6%}.recruit h2{font-size:34px;margin-top:35px}.recruit-art{display:none}.contact-layout{grid-template-columns:1fr;gap:40px;margin-top:40px}.contact-layout h2{font-size:34px}.form-row{gap:18px}footer{margin-inline:6%;flex-wrap:wrap;gap:25px}footer .brand{width:100%}footer .brand-logo{width:230px}footer>span{font-size:8px}footer>a:last-child{font-size:8px}.section-heading p{font-size:11px}dialog{padding:30px 25px}dialog h2{font-size:24px}}
@media(max-width:360px){.brand-logo{width:210px}h1{font-size:43px}.hero-copy{right:5%}.hero-top{font-size:6px}.form-row{grid-template-columns:1fr;gap:0}}
/* Small, typography-led motion confined to the left hero panel. */
.art-type>.word-line{display:block;color:var(--ink);overflow:hidden;padding:.08em .04em;margin:-.08em -.04em}
.art-type>.word-line:nth-child(2){color:var(--accent)}
.word-line>span{display:block;animation:word-arrive 1.15s cubic-bezier(.16,1,.3,1) both}
.word-line:nth-child(2)>span{animation-delay:.15s}
.word-line:nth-child(3)>span{animation-delay:.3s}
.motion-rule{position:absolute;top:14px;left:0;width:150px;height:1px;background:var(--line)}
.motion-rule::before{content:'';position:absolute;inset:0;background:var(--accent);transform-origin:left;animation:idea-line 8s ease-in-out infinite}
.motion-point{position:absolute;left:0;top:-3px;width:7px;height:7px;background:var(--accent);border-radius:50%;animation:idea-point 8s ease-in-out infinite}
.motion-rule>span{position:absolute;top:16px;left:0;font:7px Arial;letter-spacing:2px;color:var(--muted)}
.art-type{position:relative}
.art-type::after{content:'';position:absolute;bottom:-17px;left:0;width:44%;height:2px;background:var(--accent);transform-origin:left;animation:impact-line 8s ease-in-out infinite}
.motion-toggle{position:absolute;left:4%;bottom:78px;display:flex;align-items:center;gap:9px;border:0;background:transparent;padding:7px 0;font:9px 'Noto Sans TC';letter-spacing:1px;color:var(--muted)}
.motion-toggle:hover{color:var(--accent)}
.motion-icon{font:11px Arial;width:13px}
.motion-paused .editorial-art *,.motion-paused .editorial-art *::before,.motion-paused .editorial-art *::after,.motion-offscreen .editorial-art *,.motion-offscreen .editorial-art *::before,.motion-offscreen .editorial-art *::after{animation-play-state:paused!important}
@keyframes word-arrive{from{opacity:0;transform:translateY(105%) rotate(3deg)}to{opacity:1;transform:translateY(0) rotate(0)}}
@keyframes idea-line{0%,12%{transform:scaleX(0)}45%,65%{transform:scaleX(1)}90%,100%{transform:scaleX(0)}}
@keyframes idea-point{0%,12%{transform:translateX(0)}45%,65%{transform:translateX(145px)}90%,100%{transform:translateX(0)}}
@keyframes impact-line{0%,25%,100%{transform:scaleX(.1);opacity:.25}50%,70%{transform:scaleX(1);opacity:1}}
@media(max-width:760px){.motion-rule{top:-48px;width:100px}.motion-rule>span{font-size:6px;letter-spacing:1px}.motion-point{animation-name:idea-point-mobile}.motion-toggle{left:5%;bottom:78px;font-size:8px}.art-type::after{bottom:-10px;height:1px}}
@keyframes idea-point-mobile{0%,12%{transform:translateX(0)}45%,65%{transform:translateX(95px)}90%,100%{transform:translateX(0)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.motion-toggle{display:none}.motion-rule::before{transform:scaleX(.55)}.motion-point{left:50%}.art-type::after{transform:scaleX(.4)}}

/* Header uses the original emblem without the company wordmark. */
header .brand-symbol-only .brand-logo{width:82px;height:82px;object-fit:contain}header:has(.brand-symbol-only){padding-block:12px}@media(max-width:760px){header .brand-symbol-only .brand-logo{width:68px;height:68px}header:has(.brand-symbol-only){min-height:92px}header:has(.brand-symbol-only) nav{top:91px}}

header .brand-symbol-only .brand-logo{clip-path:inset(0 0 10% 0)}

header .brand-symbol-only{display:flex;align-items:center;gap:18px}header .brand-symbol-only .brand-logo{width:96px;height:96px}.header-wordmark{font:700 27px/1 Arial,sans-serif;letter-spacing:4px;color:var(--ink)}@media(max-width:1050px){header .brand-symbol-only{gap:12px}.header-wordmark{font-size:23px;letter-spacing:3px}}@media(max-width:760px){header .brand-symbol-only .brand-logo{width:76px;height:76px}.header-wordmark{font-size:22px;letter-spacing:3px}header:has(.brand-symbol-only){min-height:100px}header:has(.brand-symbol-only) nav{top:99px}}@media(max-width:360px){header .brand-symbol-only{gap:8px}.header-wordmark{font-size:19px;letter-spacing:2px}}
/* Subtle header brand motion; transforms do not move the surrounding layout. */
header .brand-symbol-only .brand-logo{animation:brand-float 6s ease-in-out infinite;transition:filter .35s ease;transform-origin:center}
header .brand-symbol-only .header-wordmark{display:inline-block;transition:transform .4s ease;transform-origin:left center}
header .brand-symbol-only:hover .header-wordmark,header .brand-symbol-only:focus-visible .header-wordmark{transform:scaleX(1.045)}
header .brand-symbol-only:hover .brand-logo,header .brand-symbol-only:focus-visible .brand-logo{animation:brand-greet .7s ease-in-out both}
header .brand-symbol-only:active .brand-logo{animation:none;transform:scale(.96)}
@keyframes brand-float{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-3px) rotate(-2deg)}}
@keyframes brand-greet{0%{transform:translateY(0) rotate(0)}45%{transform:translateY(-3px) rotate(5deg)}100%{transform:translateY(-2px) rotate(-3deg)}}
@media(prefers-reduced-motion:reduce){header .brand-symbol-only .brand-logo,header .brand-symbol-only:hover .brand-logo,header .brand-symbol-only:focus-visible .brand-logo{animation:none;transform:none}header .brand-symbol-only .header-wordmark{transition:none;transform:none!important}}
body:has(.hero.motion-paused) header .brand-symbol-only .brand-logo{animation-play-state:paused!important}
/* Gentle breathing rhythm for the header logo. */
header .brand-symbol-only .brand-logo{animation:brand-breathe 5.6s ease-in-out infinite;transform-origin:50% 45%}
header .brand-symbol-only:hover .brand-logo,header .brand-symbol-only:focus-visible .brand-logo{animation:brand-breathe 5.6s ease-in-out infinite}
@keyframes brand-breathe{0%,100%{transform:scale(1);filter:drop-shadow(0 0 0 transparent)}50%{transform:scale(1.045);filter:drop-shadow(0 0 6px rgba(255,112,35,.16))}}
@media(prefers-reduced-motion:reduce){header .brand-symbol-only .brand-logo,header .brand-symbol-only:hover .brand-logo,header .brand-symbol-only:focus-visible .brand-logo{animation:none!important;transform:none;filter:none}}
/* Soft Japanese atelier photography behind the opening typography. */
.hero::before{content:'';position:absolute;inset:65px 0 65px;pointer-events:none;background:linear-gradient(90deg,rgba(245,243,238,.88) 0%,rgba(245,243,238,.72) 27%,rgba(245,243,238,.28) 54%,rgba(245,243,238,.78) 83%,rgba(245,243,238,.88) 100%),url('assets/hero-studio.png') center 56%/cover no-repeat;mask-image:linear-gradient(to bottom,transparent,#000 12%,#000 87%,transparent)}
@media(max-width:760px){.hero::before{inset:60px 0 70px;background-position:center,60% center;background-image:linear-gradient(90deg,rgba(245,243,238,.82),rgba(245,243,238,.55) 50%,rgba(245,243,238,.84)),url('assets/hero-studio.png')}}
/* Center the supplied footer artwork at every screen size. */
footer{display:grid;grid-template-columns:1fr auto 1fr;gap:24px;padding-block:40px}footer .brand{grid-column:2;grid-row:1;justify-self:center;width:auto}footer .brand-logo{display:block;width:180px;height:auto}footer>span{grid-column:1;grid-row:1}footer>a:last-child{grid-column:3;grid-row:1;justify-self:end}@media(max-width:760px){footer{grid-template-columns:1fr 1fr;gap:25px}footer .brand{grid-column:1/-1;grid-row:1;width:auto}footer .brand-logo{width:155px}footer>span{grid-column:1;grid-row:2}footer>a:last-child{grid-column:2;grid-row:2}}

footer .brand-logo{width:280px;height:auto}@media(max-width:760px){footer .brand-logo{width:240px;max-width:100%}}
.company-profile{margin-top:85px}.profile-heading{display:flex;align-items:baseline;gap:24px;margin-bottom:26px}.profile-heading .mini-label{margin:0;color:var(--accent)}.profile-heading h3{font-size:25px;font-weight:500;letter-spacing:3px;margin:0}.profile-table{margin:0;border-top:1px solid var(--ink)}.profile-table>div{display:grid;grid-template-columns:180px minmax(0,1fr);gap:30px;padding:27px 18px;border-bottom:1px solid var(--line);font-size:14px;line-height:2}.profile-table dt{font-weight:500;letter-spacing:2px}.profile-table dd{margin:0;overflow-wrap:anywhere}.profile-address-en{display:block;margin-top:9px;font:12px/1.9 Arial,sans-serif;color:#6b6b62}@media(max-width:760px){.company-profile{margin-top:55px}.profile-heading{gap:14px;flex-wrap:wrap}.profile-heading h3{font-size:23px}.profile-table>div{grid-template-columns:85px minmax(0,1fr);gap:15px;padding:22px 0;font-size:13px}.profile-table dt{letter-spacing:1px}.profile-address-en{font-size:11px}}
.recruitment-details .profile-heading h2{font-size:36px;margin:0}.recruit-intro{font-size:14px;line-height:2.2;max-width:900px;margin:30px 0 42px}.job-title{font-size:22px;font-weight:500;margin:0 0 25px;letter-spacing:1px}.recruitment-details ul{margin:0;padding-left:20px}.recruit-closing{font-size:13px;line-height:2;margin-top:28px;color:var(--muted)}@media(max-width:760px){.recruitment-details .profile-heading h2{font-size:29px}.job-title{font-size:19px}.recruit-intro{font-size:13px}}
