:root {
  --paper: #f4efe6;
  --paper-deep: #ebe3d6;
  --ink: #25231f;
  --muted: #777067;
  --red: #bb4738;
  --red-dark: #91382f;
  --olive: #6d7054;
  --olive-dark: #4d513d;
  --line: rgba(37, 35, 31, 0.14);
  --serif: "Noto Serif SC", Georgia, serif;
  --sans: "Noto Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
.page-shell { overflow: hidden; }
.section-pad { padding-left: clamp(24px, 7vw, 112px); padding-right: clamp(24px, 7vw, 112px); }

.site-header { height: 82px; display: flex; align-items: center; justify-content: space-between; padding: 0 clamp(24px, 7vw, 112px); border-bottom: 1px solid var(--line); position: relative; z-index: 10; background: rgba(244, 239, 230, .9); backdrop-filter: blur(12px); }
.brand { display: inline-flex; align-items: center; gap: 11px; flex-shrink: 0; }
.brand-mark { width: 38px; height: 38px; position: relative; display: inline-block; transform: rotate(-4deg); }
.mini-tile { position: absolute; width: 26px; height: 31px; border: 1px solid rgba(37,35,31,.35); border-radius: 4px; color: #fff; display: grid; place-items: center; font-family: var(--serif); font-size: 17px; font-weight: 700; box-shadow: 2px 3px 0 rgba(37,35,31,.16); }
.mini-tile--red { background: var(--red); left: 0; top: 4px; transform: rotate(-10deg); }
.mini-tile--green { background: var(--olive); right: 0; top: 0; transform: rotate(8deg); }
.brand-copy { display: grid; gap: 2px; line-height: 1; }
.brand-copy strong { font-family: var(--serif); font-size: 17px; letter-spacing: .1em; }
.brand-copy small { color: var(--muted); font-size: 7px; letter-spacing: .17em; }
.main-nav { display: flex; align-items: center; gap: clamp(22px, 3vw, 48px); margin-left: 10%; }
.main-nav a { position: relative; color: var(--muted); font-size: 13px; transition: color .25s ease; }
.main-nav a:hover, .main-nav a.active { color: var(--ink); }
.main-nav a.active::after { content: ""; position: absolute; width: 5px; height: 5px; background: var(--red); border-radius: 50%; top: -10px; left: 50%; }
.header-action { font-size: 12px; font-weight: 600; border-bottom: 1px solid var(--ink); padding-bottom: 5px; display: flex; gap: 12px; align-items: center; }
.arrow { color: var(--red); font-size: 17px; line-height: 10px; }
.menu-toggle { display: none; border: 0; background: transparent; padding: 8px 0 8px 14px; }
.menu-toggle span { display: block; width: 23px; height: 1px; background: var(--ink); margin: 5px 0; }

.hero { position: relative; min-height: 653px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(390px, .8fr); gap: 40px; align-items: center; padding-top: 52px; padding-bottom: 80px; }
.hero-backdrop { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.grid-line { position: absolute; width: 68vw; height: 68vw; max-width: 920px; max-height: 920px; border: 1px solid rgba(109,112,84,.1); border-radius: 50%; top: -61%; left: 22%; }
.grid-line--two { width: 54vw; height: 54vw; top: -42%; left: 31%; border-color: rgba(187,71,56,.08); }
.sun-disc { position: absolute; width: min(38vw, 490px); height: min(38vw, 490px); border-radius: 50%; right: -13%; top: 8%; background: #e6c4ab; opacity: .42; }
.ink-stamp { position: absolute; right: 7%; bottom: 10%; color: rgba(145,56,47,.36); border: 1px solid rgba(145,56,47,.33); padding: 9px 7px; font-family: var(--serif); font-size: 11px; line-height: 1.25; letter-spacing: .2em; transform: rotate(8deg); }
.hero-copy, .hero-visual { position: relative; z-index: 1; }
.eyebrow { display: flex; gap: 9px; align-items: center; color: var(--muted); font-size: 11px; letter-spacing: .14em; font-weight: 600; }
.eyebrow-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--red); box-shadow: 0 0 0 4px rgba(187,71,56,.11); }
.hero h1, h2 { font-family: var(--serif); font-weight: 700; letter-spacing: -.04em; line-height: 1.16; margin: 26px 0 18px; }
.hero h1 { font-size: clamp(43px, 5.3vw, 76px); }
h1 em, h2 em { color: var(--red); font-style: normal; }
.hero-lede { max-width: 460px; color: var(--muted); font-size: 15px; line-height: 2; margin: 0; }
.hero-actions { display: flex; align-items: center; gap: 27px; margin-top: 33px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 21px; min-height: 45px; padding: 0 20px; font-size: 12px; font-weight: 600; transition: transform .25s ease, box-shadow .25s ease, background .25s ease; }
.button:hover { transform: translateY(-3px); }
.button span { color: #e7bf9e; font-size: 17px; }
.button--primary { color: #fff; background: var(--ink); box-shadow: 5px 5px 0 rgba(187,71,56,.26); }
.button--primary:hover { box-shadow: 8px 8px 0 rgba(187,71,56,.26); }
.button--outline { color: var(--ink); border: 1px solid var(--ink); }
.button--outline:hover { background: var(--ink); color: var(--paper); }
.text-link { font-size: 12px; font-weight: 600; padding-bottom: 5px; border-bottom: 1px solid var(--ink); }
.text-link span { color: var(--red); margin-left: 13px; font-size: 17px; }
.hero-notes { display: flex; gap: 24px; margin-top: 65px; color: var(--muted); font-size: 11px; }
.hero-notes span { display: inline-flex; align-items: center; gap: 7px; }
.note-icon { color: var(--red); font-style: normal; font-size: 13px; }

.hero-visual { min-height: 520px; display: grid; place-items: center; }
.phone { width: 275px; height: 530px; border: 9px solid #2b2a28; border-radius: 38px; position: relative; background: #2b2a28; box-shadow: 19px 25px 0 rgba(37,35,31,.1), 0 30px 70px rgba(109,112,84,.2); transform: rotate(5deg); animation: phone-float 5s ease-in-out infinite; }
@keyframes phone-float { 0%, 100% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-10px); } }
.phone::after { content: ""; position: absolute; inset: 0; border-radius: 28px; box-shadow: inset 0 0 0 1px rgba(255,255,255,.18); pointer-events: none; }
.phone-notch { position: absolute; z-index: 3; width: 90px; height: 20px; border-radius: 0 0 15px 15px; background: #2b2a28; left: 50%; transform: translateX(-50%); top: -1px; }
.phone-screen { height: 100%; border-radius: 27px; background: #faf7f2; overflow: hidden; padding: 27px 17px 20px; }
.phone-home { position: absolute; bottom: 7px; left: 50%; transform: translateX(-50%); width: 74px; height: 4px; background: rgba(255,255,255,.76); border-radius: 3px; z-index: 3; }
.app-topbar, .app-label, .app-list { display: flex; justify-content: space-between; align-items: center; }
.app-topbar { margin-bottom: 23px; }.app-logo { font-family: var(--serif); font-size: 15px; font-weight: 700; }.app-logo span { color: var(--red); }.app-avatar { width: 24px; height: 24px; border-radius: 50%; color: #fff; background: var(--olive); display: grid; place-items: center; font-family: var(--serif); font-size: 11px; }
.app-greeting { font-family: var(--serif); font-size: 16px; }.app-greeting strong { color: var(--red); }
.app-highlight { display: flex; justify-content: space-between; align-items: center; margin: 13px 0 18px; padding: 14px 16px; border-radius: 12px; color: #fff; background: var(--red); box-shadow: 0 7px 12px rgba(187,71,56,.2); }.app-highlight small, .app-highlight span { display: block; font-size: 8px; opacity: .78; }.app-highlight strong { display: block; font-family: var(--serif); font-size: 17px; margin: 4px 0 5px; }.app-highlight b { color: #f8d4af; font-size: 10px; }.highlight-symbol { font-family: var(--serif); font-size: 42px !important; opacity: .35 !important; }.app-label { font-family: var(--serif); font-size: 12px; font-weight: 700; margin: 15px 0 9px; }.app-label small { color: var(--muted); font-family: var(--sans); font-size: 8px; font-weight: 400; }.app-modes { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }.mode-card { min-height: 102px; padding: 11px 9px; border-radius: 10px; background: #ebe7dd; }.mode-card--warm { background: #f1dfd1; }.mode-symbol { color: var(--red); font-size: 27px; line-height: 1; display: block; }.mode-symbol--green { color: var(--olive); }.mode-card strong, .mode-card small { display: block; }.mode-card strong { font-size: 9px; margin-top: 8px; }.mode-card small { color: var(--muted); font-size: 7px; margin-top: 4px; }.app-list { margin: 9px 0; gap: 8px; justify-content: initial; }.list-avatar { flex: 0 0 24px; width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; background: #dfb681; color: #fff; font-size: 9px; }.list-avatar--blue { background: #889a93; }.app-list > span:nth-child(2) { display: grid; gap: 2px; flex: 1; }.app-list b { font-size: 8px; }.app-list small { color: var(--muted); font-size: 7px; }.app-list > strong { color: var(--red); font-size: 9px; }.app-list > strong.neutral { color: var(--olive); font-weight: 500; }
.orbit { position: absolute; border: 1px solid rgba(109,112,84,.25); border-radius: 50%; transform: rotate(-28deg); }.orbit--outer { width: 470px; height: 184px; }.orbit--inner { width: 380px; height: 130px; border-color: rgba(187,71,56,.25); transform: rotate(42deg); }.floating-shape { position: absolute; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; font-family: var(--serif); font-size: 21px; font-weight: 700; box-shadow: 4px 5px 0 rgba(37,35,31,.17); transform: rotate(-15deg); z-index: 2; }.shape-red { color: var(--red); background: #fcf9f3; border: 1px solid #d6cab9; }.shape-olive { color: var(--olive); background: #fcf9f3; border: 1px solid #d6cab9; }.shape-teal { color: #286d64; background: #fcf9f3; border: 1px solid #d6cab9; }.floating-shape--one { top: 25%; left: 6%; transform: rotate(-17deg); }.floating-shape--two { top: 13%; right: 5%; transform: rotate(18deg); }.floating-shape--three { bottom: 13%; left: 10%; transform: rotate(-8deg); }

.trust-strip { background: var(--ink); color: var(--paper); }.trust-inner { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }.trust-label { font-family: var(--serif); font-size: 15px; color: #e8c7a9; }.trust-items { display: flex; gap: clamp(18px, 4vw, 60px); color: #aaa69e; font-size: 11px; }.trust-items b { color: #e8c7a9; font-family: var(--serif); font-size: 14px; margin-right: 8px; }.trust-slogan { color: #e8c7a9; font-family: var(--serif); font-size: 13px; }

.features { padding-top: 115px; padding-bottom: 130px; }.section-heading { display: grid; grid-template-columns: 1fr .8fr; align-items: end; gap: 60px; margin-bottom: 54px; }.section-heading h2, .culture h2, .about h2 { font-size: clamp(34px, 4.2vw, 57px); margin-bottom: 0; }.section-heading > p { max-width: 400px; justify-self: end; color: var(--muted); font-size: 13px; line-height: 2; margin: 0 0 2px; }.feature-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }.feature-card { position: relative; overflow: hidden; }.feature-card--large { min-height: 420px; padding: 34px; display: flex; flex-direction: column; justify-content: flex-end; }.feature-card--terracotta { background: #b95847; color: #fff; }.feature-card--olive { background: #74765a; color: #fff; }.card-number { position: absolute; top: 23px; left: 27px; font-family: var(--serif); font-size: 12px; opacity: .66; }.feature-art { position: absolute; inset: 0; pointer-events: none; }.art--orbit::before { content: ""; position: absolute; width: 270px; height: 150px; left: 22%; top: 14%; background: #d2836d; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; transform: rotate(-14deg); box-shadow: 0 12px 0 rgba(67,33,28,.12); }.art--orbit::after { content: ""; position: absolute; width: 310px; height: 105px; left: 15%; top: 26%; border: 1px solid rgba(255,255,255,.4); border-radius: 50%; transform: rotate(-14deg); }.center-card { position: absolute; z-index: 1; left: 48%; top: 20%; width: 47px; height: 58px; background: #f5e9da; color: var(--red); border-radius: 4px; transform: rotate(18deg); box-shadow: 4px 5px 0 rgba(67,33,28,.18); display: grid; place-items: center; line-height: 1; font-family: var(--serif); font-size: 16px; text-align: center; }.center-card small { font-size: 9px; }.orbit-card { position: absolute; z-index: 1; width: 39px; height: 48px; display: grid; place-items: center; color: var(--red); background: #f5e9da; border-radius: 4px; font-family: var(--serif); font-style: normal; font-size: 20px; box-shadow: 3px 4px 0 rgba(67,33,28,.14); }.orbit-card--a { left: 16%; top: 22%; transform: rotate(-24deg); }.orbit-card--b { left: 28%; top: 33%; transform: rotate(-7deg); }.orbit-card--c { right: 14%; top: 25%; transform: rotate(31deg); }.orbit-card--d { right: 28%; top: 38%; transform: rotate(9deg); }.art--people::before { content: ""; position: absolute; width: 280px; height: 160px; left: 18%; top: 9%; border: 1px solid rgba(255,255,255,.36); border-radius: 50%; transform: rotate(-17deg); }.art--people::after { content: ""; position: absolute; width: 215px; height: 130px; left: 30%; top: 17%; border: 1px solid rgba(255,255,255,.23); border-radius: 50%; transform: rotate(18deg); }.person { position: absolute; width: 52px; height: 66px; background: #dad6b9; color: var(--olive-dark); display: grid; place-items: center; font-family: var(--serif); font-size: 19px; border-radius: 50% 50% 42% 42%; box-shadow: 4px 6px 0 rgba(35,47,33,.18); z-index: 2; }.person::after { content: ""; position: absolute; bottom: -11px; width: 44px; height: 20px; background: inherit; border-radius: 50% 50% 0 0; }.person--one { left: 19%; top: 24%; transform: rotate(-17deg); background: #d7b596; }.person--two { left: 42%; top: 15%; transform: rotate(6deg); background: #efe2c0; }.person--three { right: 17%; top: 27%; transform: rotate(19deg); background: #c9d0b5; }.sparkle { position: absolute; top: 21%; right: 24%; color: #e8c7a9; font-size: 25px; }.feature-content { position: relative; z-index: 2; max-width: 280px; }.feature-content h3 { font-family: var(--serif); font-size: 24px; margin: 0 0 8px; }.feature-content p { font-size: 12px; line-height: 1.9; opacity: .82; margin: 0; }.card-link { display: inline-flex; gap: 17px; align-items: center; margin-top: 17px; font-size: 11px; border-bottom: 1px solid currentColor; padding-bottom: 4px; }.card-link span { color: #f0c29e; font-size: 17px; }.feature-card--small { min-height: 143px; display: flex; align-items: center; gap: 18px; padding: 25px 29px; }.feature-card--cream { background: #e7ddcd; }.feature-card--dark { background: var(--ink); color: var(--paper); }.feature-card--small h3 { font-family: var(--serif); font-size: 16px; margin: 0 0 7px; }.feature-card--small p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.7; max-width: 290px; }.feature-card--dark p { color: #a7a39b; }.small-icon { width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid rgba(187,71,56,.3); border-radius: 50%; flex: 0 0 auto; font-size: 24px; }.small-icon--red { color: var(--red); }.small-icon--light { color: #e8c7a9; border-color: rgba(232,199,169,.35); }.corner-mark { position: absolute; top: 19px; right: 23px; color: var(--red); font-size: 16px; }

.culture { min-height: 620px; padding-top: 90px; padding-bottom: 100px; display: grid; grid-template-columns: 1fr 1fr; gap: 7vw; align-items: center; background: #eae2d5; }.culture-visual { min-height: 425px; position: relative; display: grid; place-items: center; }.paper-circle { width: min(33vw, 410px); height: min(33vw, 410px); border-radius: 50%; border: 1px solid rgba(109,112,84,.35); box-shadow: 0 0 0 18px rgba(255,255,255,.13), 0 0 0 19px rgba(109,112,84,.13); }.paper-circle::before, .paper-circle::after { content: ""; position: absolute; width: 63%; height: 1px; left: 18%; background: rgba(109,112,84,.24); transform: rotate(36deg); }.paper-circle::after { transform: rotate(-36deg); }.culture-seal { position: absolute; left: 11%; top: 13%; color: var(--red); border: 1px solid rgba(187,71,56,.56); padding: 9px 8px; font-family: var(--serif); font-weight: 700; line-height: 1.12; font-size: 14px; transform: rotate(-11deg); }.project-symbol { position: absolute; width: 140px; height: 140px; display: grid; place-items: center; right: 18%; top: 22%; transform: rotate(14deg); }.project-symbol span { position: absolute; width: 62px; height: 62px; background: #fbf6eb; border: 1px solid #d2c5b4; border-radius: 50%; box-shadow: 4px 5px 0 rgba(37,35,31,.12); display: grid; place-items: center; font-family: var(--serif); font-size: 22px; color: var(--red); }.project-symbol span:nth-child(1) { transform: translate(-22px, -17px); color: var(--olive); }.project-symbol span:nth-child(2) { transform: translate(10px, -7px); color: var(--red); }.project-symbol span:nth-child(3) { transform: translate(19px, 23px); color: #2b7c73; }.culture-caption { position: absolute; bottom: 2%; right: 8%; color: var(--muted); font-size: 9px; line-height: 1.7; letter-spacing: .15em; }.culture-caption b { color: var(--ink); font-family: var(--serif); font-size: 11px; letter-spacing: .02em; }.culture-copy { max-width: 480px; }.culture-copy p { color: var(--muted); font-size: 13px; line-height: 2.05; margin: 28px 0; }.quote-line { display: flex; gap: 12px; align-items: flex-start; margin: 27px 0 30px; }.quote-line span { color: var(--red); font-family: var(--serif); font-size: 35px; line-height: .9; }.quote-line strong { font-family: var(--serif); font-size: 15px; line-height: 1.8; }

.about { padding-top: 90px; padding-bottom: 105px; }.about-card { min-height: 282px; position: relative; display: grid; grid-template-columns: 1fr 1.05fr; gap: 8%; align-items: center; padding: 48px clamp(28px, 5vw, 76px); color: var(--paper); background: var(--red-dark); overflow: hidden; }.about-card::before { content: ""; position: absolute; width: 530px; height: 530px; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; right: -8%; top: -43%; }.about-card::after { content: ""; position: absolute; width: 380px; height: 380px; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; right: 2%; top: -10%; }.about-card .eyebrow { color: #e9cabb; }.about-card .eyebrow-dot { background: #eac0a2; box-shadow: 0 0 0 4px rgba(240,194,158,.15); }.about-card h2 { margin: 20px 0 0; }.about-card h2 em { color: #f1c49e; }.about-info { position: relative; z-index: 1; max-width: 410px; }.about-info p { font-size: 12px; line-height: 2; color: #f3dcd1; margin: 0 0 22px; }.contact-line { padding-top: 17px; border-top: 1px solid rgba(255,255,255,.2); display: flex; justify-content: space-between; gap: 12px; color: #f3dcd1; font-size: 10px; }.contact-line a { color: #f1c49e; }.about-seal { position: absolute; right: 12%; top: 50%; transform: translateY(-50%) rotate(12deg); width: 98px; height: 98px; border: 1px solid rgba(255,255,255,.45); border-radius: 50%; display: grid; place-items: center; align-content: center; text-align: center; color: #f1c49e; font-family: var(--serif); font-size: 22px; line-height: 1.1; z-index: 1; }.about-seal small { font-size: 11px; }
.site-footer { background: #e5ddcf; padding-top: 36px; padding-bottom: 28px; }.footer-top { display: flex; align-items: center; justify-content: space-between; padding-bottom: 32px; border-bottom: 1px solid var(--line); }.footer-top p { color: var(--red); font-family: var(--serif); font-size: 13px; }.back-top { display: flex; align-items: center; gap: 12px; font-size: 11px; }.back-top span { font-size: 18px; color: var(--red); }.footer-bottom { display: flex; justify-content: space-between; padding-top: 20px; color: var(--muted); font-size: 10px; }

@media (max-width: 900px) { .main-nav { margin-left: 0; gap: 20px; }.hero { grid-template-columns: 1fr .72fr; gap: 0; }.phone { width: 230px; height: 445px; border-width: 7px; border-radius: 31px; }.phone-screen { border-radius: 23px; padding: 23px 13px 15px; }.orbit--outer { width: 360px; }.orbit--inner { width: 300px; }.floating-shape { width: 36px; height: 36px; font-size: 18px; }.feature-card--large { padding: 26px; }.art--orbit::before { left: 12%; }.culture { gap: 4vw; } }
@media (max-width: 680px) {
  .section-pad { padding-left: 22px; padding-right: 22px; }
  .site-header { height: 72px; padding: 0 22px; }.header-action, .main-nav { display: none; }.menu-toggle { display: block; }.main-nav.is-open { display: flex; position: absolute; left: 0; right: 0; top: 71px; flex-direction: column; align-items: stretch; gap: 0; padding: 8px 22px 16px; background: rgba(244,239,230,.98); border-bottom: 1px solid var(--line); box-shadow: 0 15px 20px rgba(37,35,31,.05); }.main-nav.is-open a { padding: 14px 0; }.main-nav a.active::after { top: 21px; left: -13px; }.hero { display: block; min-height: auto; padding-top: 70px; padding-bottom: 74px; }.hero h1 { font-size: 47px; }.hero-lede { font-size: 13px; line-height: 1.9; }.hero-notes { margin-top: 36px; }.hero-visual { min-height: 490px; margin-top: 20px; }.sun-disc { width: 65vw; height: 65vw; right: -25%; top: 34%; }.grid-line { width: 120vw; height: 120vw; top: 25%; left: -15%; }.grid-line--two { width: 90vw; height: 90vw; top: 35%; left: 4%; }.phone { width: 250px; height: 480px; }.orbit--outer { width: 400px; }.trust-inner { min-height: 130px; flex-wrap: wrap; padding-top: 25px; padding-bottom: 25px; }.trust-items { order: 3; width: 100%; justify-content: space-between; gap: 8px; }.trust-items b { display: block; margin: 0 0 3px; }.trust-slogan { margin-left: auto; }.features { padding-top: 82px; padding-bottom: 84px; }.section-heading { display: block; margin-bottom: 35px; }.section-heading > p { margin-top: 25px; }.feature-grid { grid-template-columns: 1fr; }.feature-card--large { min-height: 390px; }.feature-card--small { min-height: 125px; }.culture { display: block; padding-top: 74px; padding-bottom: 82px; }.culture-visual { min-height: 370px; margin-bottom: 26px; }.paper-circle { width: 300px; height: 300px; }.culture-copy p { font-size: 12px; }.about { padding-top: 65px; padding-bottom: 75px; }.about-card { display: block; min-height: 430px; padding: 39px 27px; }.about-info { margin-top: 38px; }.about-seal { right: 10%; bottom: 26px; top: auto; transform: rotate(12deg); width: 75px; height: 75px; font-size: 17px; }.footer-top { flex-wrap: wrap; gap: 22px; }.footer-top p { order: 3; width: 100%; margin: 0; }.footer-bottom { display: grid; gap: 9px; line-height: 1.6; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; }.phone { animation: none; }.button { transition: none; } }
