/* 色彩來自既有品牌：紙色、深墨綠、陶土橘、玫瑰紅。視覺以 ChatGPT 版設計為準。 */
:root {
  --bg: #f4efe5;
  --fg: #173f3a;
  --coral: #c46d49;
  --line: rgba(23, 63, 58, .22);
  --orbit-a: rgba(196, 109, 73, .52);
  --orbit-b: rgba(23, 63, 58, .34);
  --deep-bg: #173f3a;
  --deep-fg: #f4efe5;
  --deep-line: rgba(244, 239, 229, .45);
  --logo-filter: none;
  --beauty: #a9465d; --beauty-dot: #b75168;
  --health: #1f5d58; --health-dot: #28706a;
  --mind: #d66b45;   --mind-dot: #dc734d;
  --blip: #416776;   --blip-dot: #557b89;
}

/* 基本重設 */
*, *::before, *::after { box-sizing: border-box; }
html { line-height: 1.5; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
h1, h2, h3, p { margin: 0; font-size: inherit; font-weight: inherit; }
img { display: block; max-width: 100%; height: auto; }
[hidden] { display: none !important; }
.nowrap { white-space: nowrap; }
.sm-only { display: none; }

body { margin: 0; background: var(--bg); color: var(--fg); font-family: "Avenir Next", "Noto Sans TC", "PingFang TC", sans-serif; }
a { color: inherit; text-decoration: none; }

.site-header { position: absolute; z-index: 10; top: 0; left: 0; display: flex; width: 100%; align-items: center; justify-content: space-between; padding: 28px clamp(22px, 4.5vw, 72px); }
.brand { display: flex; align-items: flex-end; gap: 1px; }
.brand img { width: clamp(165px, 18vw, 265px); filter: var(--logo-filter); }
.brand .brand-fish { width: clamp(56px, 6vw, 88px); position: relative; top: clamp(3px, .45vw, 6px); }
.site-header nav { display: flex; gap: clamp(18px, 3vw, 48px); font-size: .82rem; letter-spacing: .08em; }
.site-header nav a { padding-block: 10px; border-bottom: 1px solid transparent; transition: border-color .25s; }
.site-header nav a:hover { border-color: var(--fg); }

.hero { position: relative; min-height: 100svh; overflow: hidden; display: flex; flex-direction: column; justify-content: center; padding: 150px clamp(22px, 7.5vw, 120px) 56px; border-bottom: 1px solid var(--line); }
.eyebrow { margin: 0 0 24px; font-size: .72rem; letter-spacing: .24em; font-weight: 600; }
.hero h1 { position: relative; z-index: 1; max-width: 1100px; font-family: "Yu Mincho", "Noto Serif TC", serif; font-size: clamp(3rem, 7.7vw, 8rem); font-weight: 500; line-height: 1.16; letter-spacing: -.045em; }
.hero h1 em { color: var(--coral); font-style: normal; }
.hero-foot { position: relative; z-index: 1; display: flex; align-items: flex-end; justify-content: space-between; margin-top: clamp(52px, 8vh, 96px); }
.hero-foot p { font-size: clamp(1rem, 1.3vw, 1.2rem); line-height: 1.9; letter-spacing: .06em; }
.round-link { flex-shrink: 0; display: grid; place-items: center; width: 78px; height: 78px; border: 1px solid var(--fg); border-radius: 50%; font-size: 1.5rem; transition: .3s ease; }
.round-link:hover { transform: rotate(-35deg); background: var(--fg); color: var(--bg); }
.orbit { position: absolute; border: 1px solid var(--orbit-a); border-radius: 50%; pointer-events: none; }
.orbit-one { right: -9vw; top: 17%; width: 35vw; aspect-ratio: 1; animation: drift 9s ease-in-out infinite; }
.orbit-two { right: 13vw; top: 31%; width: 14vw; aspect-ratio: 1; border-color: var(--orbit-b); animation: drift 7s 1s ease-in-out infinite reverse; }
@keyframes drift { 50% { transform: translateY(22px) scale(1.025); } }

.product-intro { padding: clamp(90px, 12vw, 180px) clamp(22px, 4.5vw, 72px) 100px; }
.product-intro > div:first-child { display: grid; grid-template-columns: 1fr 2.2fr; align-items: start; }
.product-intro h2 { font-family: "Yu Mincho", "Noto Serif TC", serif; font-size: clamp(2.1rem, 4.6vw, 5rem); font-weight: 500; line-height: 1.35; letter-spacing: -.035em; }
.section-copy { max-width: 620px; margin: 64px 0 80px auto; font-size: 1rem; line-height: 2; letter-spacing: .04em; }
.product-strip { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.mini-product { min-height: 300px; padding: 26px 24px 24px; display: grid; grid-template-rows: 24px 150px minmax(92px, auto); border-right: 1px solid var(--line); }
.mini-product:last-child { border-right: 0; }
.mini-product > span { font-size: .7rem; letter-spacing: .16em; }
.mini-product i { align-self: center; justify-self: center; width: 72px; height: 72px; background: var(--dot); border-radius: 50%; transition: .35s ease; }
.mini-product > div { align-self: start; }
.mini-product:hover i { transform: scale(.78); border-radius: 20%; }
.mini-product strong, .mini-product small { display: block; }
.mini-product strong { font-size: 1.35rem; letter-spacing: .05em; }
.mini-product small { margin-top: 5px; opacity: .62; font-size: .73rem; letter-spacing: .08em; }

.theme-beauty { --dot: var(--beauty-dot); --card: var(--beauty); }
.theme-health { --dot: var(--health-dot); --card: var(--health); }
.theme-mind   { --dot: var(--mind-dot);   --card: var(--mind); }
.theme-blip   { --dot: var(--blip-dot);   --card: var(--blip); }

.projects { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--fg); }
.project { position: relative; min-height: 680px; overflow: hidden; display: flex; flex-direction: column; padding: 36px clamp(24px, 4vw, 64px) 46px; color: #fff; background: var(--card); border-right: 1px solid rgba(255, 255, 255, .35); border-bottom: 1px solid rgba(255, 255, 255, .35); }
.project:nth-child(even) { border-right: 0; }
.project::before { content: ""; position: absolute; width: 58%; aspect-ratio: 1; right: -8%; top: 20%; border: 1px solid rgba(255, 255, 255, .45); border-radius: 50%; transition: transform .7s cubic-bezier(.2, .8, .2, 1), background .7s; }
.project::after { content: ""; position: absolute; width: 18%; aspect-ratio: 1; right: 26%; top: 36%; border: 1px solid rgba(255, 255, 255, .65); border-radius: 50%; transition: transform .7s cubic-bezier(.2, .8, .2, 1); }
.project:hover::before { transform: scale(.88); background: rgba(255, 255, 255, .08); }
.project:hover::after { transform: translate(25%, -25%) scale(1.2); }
.project-meta { position: relative; z-index: 1; display: flex; justify-content: space-between; gap: 16px; font-size: .68rem; letter-spacing: .15em; }
.project-title { position: relative; z-index: 1; margin: auto 0 0; }
.project-title p { margin: 0 0 6px; font-size: .72rem; letter-spacing: .22em; text-transform: uppercase; }
.project-title h3 { max-width: 620px; font-family: "Yu Mincho", "Noto Serif TC", serif; font-size: clamp(2.6rem, 5vw, 5.6rem); font-weight: 500; line-height: 1.12; letter-spacing: -.04em; white-space: pre-line; }
/* 右側留出 ↗ 圓圈（58px）加間距的位置，文字才不會被蓋住 */
.project-copy { position: relative; z-index: 1; max-width: 560px; margin: 38px 0 0; padding-right: 80px; font-size: .95rem; line-height: 1.9; letter-spacing: .035em; }
.project-arrow { position: absolute; z-index: 1; right: clamp(24px, 4vw, 64px); bottom: 44px; display: grid; place-items: center; width: 58px; height: 58px; border: 1px solid rgba(255, 255, 255, .7); border-radius: 50%; font-size: 1.25rem; transition: .3s; }
.project:hover .project-arrow { background: #fff; color: #173f3a; transform: rotate(45deg); }

.about { padding: clamp(100px, 13vw, 190px) clamp(22px, 7.5vw, 120px); }
.about-grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: clamp(50px, 9vw, 150px); align-items: start; }
.about h2, .contact h2 { font-family: "Yu Mincho", "Noto Serif TC", serif; font-size: clamp(2.5rem, 5.8vw, 6.2rem); font-weight: 500; line-height: 1.22; letter-spacing: -.045em; }
.about-copy { padding-top: 14px; }
.about-copy p { margin: 0 0 28px; font-size: 1rem; line-height: 2; letter-spacing: .04em; }
.principles { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: clamp(90px, 11vw, 160px); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.principles article { min-height: 260px; padding: 28px 30px; border-right: 1px solid var(--line); }
.principles article:last-child { border-right: 0; }
.principles span { font-size: .68rem; letter-spacing: .18em; }
.principles h3 { margin: 70px 0 14px; font-size: 1.25rem; letter-spacing: .03em; }
.principles p { line-height: 1.75; font-size: .9rem; opacity: .72; }

.contact { display: grid; grid-template-columns: 1.25fr .75fr; gap: 8vw; align-items: end; padding: clamp(100px, 13vw, 180px) clamp(22px, 7.5vw, 120px); background: var(--deep-bg); color: var(--deep-fg); }
.contact-links { border-top: 1px solid var(--deep-line); }
.contact-link { padding: 24px 0; border-bottom: 1px solid var(--deep-line); display: grid; grid-template-columns: 1fr auto; gap: 9px; align-items: center; }
.contact-link span { font-size: .68rem; letter-spacing: .18em; }
.contact-link strong { grid-column: 1; font-size: clamp(.93rem, 1.5vw, 1.3rem); font-weight: 500; overflow-wrap: anywhere; }
.contact-link b { grid-column: 2; grid-row: 1 / 3; font-size: 1.7rem; font-weight: 400; transition: transform .25s; }
.contact-link:hover b { transform: translate(6px, -6px); }

footer { display: flex; align-items: flex-end; justify-content: space-between; padding: 64px clamp(22px, 4.5vw, 72px); background: var(--deep-bg); color: var(--deep-fg); border-top: 1px solid rgba(244, 239, 229, .22); }
footer img { width: clamp(210px, 28vw, 390px); filter: brightness(0) invert(1); }
.footer-brand { display: flex; align-items: flex-end; gap: 1px; }
footer .brand-fish { width: clamp(70px, 9.3vw, 130px); position: relative; top: clamp(5px, .7vw, 10px); }
footer div { display: flex; gap: clamp(30px, 7vw, 110px); font-size: .68rem; line-height: 1.7; letter-spacing: .1em; }

@media (max-width: 760px) {
  .sm-only { display: inline; }
  .site-header nav a:not(:last-child) { display: none; }
  .hero { min-height: 94svh; }
  .hero h1 { font-size: clamp(2.85rem, 13.5vw, 5rem); }
  .hero-foot { align-items: center; }
  .round-link { width: 60px; height: 60px; }
  .orbit-one { width: 70vw; right: -34vw; top: 22%; }
  .orbit-two { width: 30vw; right: 10vw; top: 34%; }
  .product-intro > div:first-child { display: block; }
  .product-intro h2 { margin-top: 30px; }
  .section-copy { margin-block: 42px 58px; }
  .product-strip { grid-template-columns: 1fr 1fr; }
  .mini-product { min-height: 300px; border-bottom: 1px solid var(--line); }
  .mini-product:nth-child(2n) { border-right: 0; }
  .mini-product:nth-last-child(-n+2) { border-bottom: 0; }
  .projects { grid-template-columns: 1fr; }
  .project { min-height: 590px; border-right: 0; }
  .project-title h3 { font-size: clamp(2.7rem, 12vw, 4.5rem); }
  .about-grid, .contact { grid-template-columns: 1fr; }
  .about-grid { gap: 44px; }
  .principles { grid-template-columns: 1fr; }
  .principles article { min-height: auto; border-right: 0; border-bottom: 1px solid var(--line); padding: 28px 5px; }
  .principles article:last-child { border-bottom: 0; }
  .principles h3 { margin-top: 36px; }
  .contact { gap: 70px; }
  footer { display: block; }
  footer div { display: block; margin-top: 46px; }
  footer div p + p { margin-top: 24px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
