/* Funnyeye — base reset & element defaults */

html {
-webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  font-family: sans-serif;
}

body {
margin: 0;
}

article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary {
display: block;
}

audio, canvas, progress, video {
vertical-align: baseline;
  display: inline-block;
}

audio:not([controls]) {
height: 0;
  display: none;
}

[hidden], template {
display: none;
}

a {
background-color: #0000;
}

a:active, a:hover {
outline: 0;
}

abbr[title] {
border-bottom: 1px dotted;
}

b, strong {
font-weight: bold;
}

dfn {
font-style: italic;
}

h1 {
margin: .67em 0;
  font-size: 2em;
}

mark {
color: #000;
  background: #ff0;
}

small {
font-size: 80%;
}

sub, sup {
vertical-align: baseline;
  font-size: 75%;
  line-height: 0;
  position: relative;
}

sup {
top: -.5em;
}

sub {
bottom: -.25em;
}

img {
border: 0;
}

svg:not(:root) {
overflow: hidden;
}

hr {
box-sizing: content-box;
  height: 0;
}

pre {
overflow: auto;
}

code, kbd, pre, samp {
font-family: monospace;
  font-size: 1em;
}

button, input, optgroup, select, textarea {
color: inherit;
  font: inherit;
  margin: 0;
}

button {
overflow: visible;
}

button, select {
text-transform: none;
}

button, html input[type="button"], input[type="reset"] {
-webkit-appearance: button;
  cursor: pointer;
}

button[disabled], html input[disabled] {
cursor: default;
}

button::-moz-focus-inner, input::-moz-focus-inner {
border: 0;
  padding: 0;
}

input {
line-height: normal;
}

input[type="checkbox"], input[type="radio"] {
box-sizing: border-box;
  padding: 0;
}

input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button {
height: auto;
}

input[type="search"] {
-webkit-appearance: none;
}

input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}

legend {
border: 0;
  padding: 0;
}

textarea {
overflow: auto;
}

optgroup {
font-weight: bold;
}

table {
border-collapse: collapse;
  border-spacing: 0;
}

td, th {
padding: 0;
}

@font-face {
/* icon font removed */
  src: url("data:application/x-font-ttf;charset=utf-8;base64,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") format("truetype");
  font-weight: normal;
  font-style: normal;
}

[class^="w-icon-"], [class*=" w-icon-"] {
speak: none;
  font-variant: normal;
  text-transform: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-style: normal;
  font-weight: normal;
  line-height: 1;
  /* icon font removed */
}

* {
box-sizing: border-box;
}

html {
height: 100%;
}

body {
color: #333;
  background-color: #fff;
  min-height: 100%;
  margin: 0;
  font-family: Arial, sans-serif;
  font-size: 14px;
  line-height: 20px;
}

img {
vertical-align: middle;
  max-width: 100%;
  display: inline-block;
}

html[data-w-dynpage] [data-w-cloak] {
color: #0000 !important;
}

h1, h2, h3, h4, h5, h6 {
margin-bottom: 10px;
  font-weight: bold;
}

h1 {
margin-top: 20px;
  font-size: 38px;
  line-height: 44px;
}

h2 {
margin-top: 20px;
  font-size: 32px;
  line-height: 36px;
}

h3 {
margin-top: 20px;
  font-size: 24px;
  line-height: 30px;
}

h4 {
margin-top: 10px;
  font-size: 18px;
  line-height: 24px;
}

h5 {
margin-top: 10px;
  font-size: 14px;
  line-height: 20px;
}

h6 {
margin-top: 10px;
  font-size: 12px;
  line-height: 18px;
}

p {
margin-top: 0;
  margin-bottom: 10px;
}

blockquote {
border-left: 5px solid #e2e2e2;
  margin: 0 0 10px;
  padding: 10px 20px;
  font-size: 18px;
  line-height: 22px;
}

figure {
margin: 0 0 10px;
}

figcaption {
text-align: center;
  margin-top: 5px;
}

ul, ol {
margin-top: 0;
  margin-bottom: 10px;
  padding-left: 40px;
}

fieldset {
border: 0;
  margin: 0;
  padding: 0;
}

button, [type="button"], [type="reset"] {
cursor: pointer;
  -webkit-appearance: button;
  border: 0;
}

label {
margin-bottom: 5px;
  font-weight: bold;
  display: block;
}

[data-nav-menu-open] {
text-align: center;
  background: #c8c8c8;
  min-width: 200px;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  overflow: visible;
  display: block !important;
}

@keyframes spin {
0% {
    transform: rotate(0);
  }

  100% {
    transform: rotate(360deg);
  }
}

:root {
--fonts--geist: Geist, sans-serif;
  /* Headings / section eyebrows / .fe-text-lg — Serif highlight.
     Courier New is the user's prescribed display face; the trailing
     generic serif preserves the family grouping if the font is absent. */
  --font-display: "Courier New", Courier, monospace, serif;
  /* English body / paragraphs / UI labels — Sans-serif.
     Calibri first, Helvetica fallback, generic sans last. */
  --font-body-en: Calibri, "Helvetica Neue", Helvetica, Arial, sans-serif;
  /* Chinese (default) — Microsoft JhengHei, with macOS / Noto fallbacks
     so the stack renders coherently on non-Windows hosts. */
  --font-zh: "Microsoft JhengHei", "微軟正黑體", "PingFang TC", "Heiti TC", "Noto Sans TC", "Microsoft YaHei", sans-serif;
  --colors--black: #000;
  --font-sizes--body-text: .875rem;
  --font-sizes--h1: 4rem;
  --font-sizes--h2: 3rem;
  --font-sizes--h3: 2.75rem;
  --font-sizes--h4: 2.5rem;
  --font-sizes--h5: 2.25rem;
  --font-sizes--h6: 2rem;
  --colors--grey: dimgrey;
  --colors--white: #fff;
  --spacing--section-top-and-bottom: 4rem;
  --spacing--section-left-and-right: 2.5rem;
  --colors--light-grey: #c8c8c8;
  --font-sizes--body-text-large: 2.25rem;
  --containers--medium: 1160px;
  --containers--large: 1400px;
  --containers--small: 680px;
  /* Brand palette — updated 2026-07-16.
       navy 900    (#0f2439)   deepest navy, full-bleed backgrounds
       navy 700    (#163551)   mid-dark navy, text / borders
       blue-gray 500 (#bed0dc)  light blue-gray, subtle dividers / lines
       gold 500    (#cc9c30)   deep gold, primary accent / heading
       gold 400    (#ecbc52)   light gold, hover / lighter highlight */
  --colors--brand-navy-900: #0f2439;
  --colors--brand-navy-700: #163551;
  --colors--brand-blue-gray-500: #bed0dc;
  --colors--brand-gold-500: #cc9c30;
  --colors--brand-gold-400: #ecbc52;
}

body {
font-family: var(--fonts--geist);
  color: var(--colors--black);
  font-size: var(--font-sizes--body-text);
  letter-spacing: -.1px;
  line-height: 120%;
}

h1 {
font-size: var(--font-sizes--h1);
  letter-spacing: -2px;
  margin-top: 0;
  margin-bottom: 0;
  font-weight: 400;
  line-height: 100%;
}

h2 {
color: var(--colors--black);
  font-size: var(--font-sizes--h2);
  letter-spacing: -2px;
  margin-top: 0;
  margin-bottom: 0;
  font-weight: 400;
  line-height: 120%;
}

h3 {
color: var(--colors--black);
  font-size: var(--font-sizes--h3);
  letter-spacing: -1.5px;
  margin-top: 20px;
  margin-bottom: 10px;
  font-weight: 400;
  line-height: 120%;
}

h4 {
color: var(--colors--black);
  font-size: var(--font-sizes--h4);
  letter-spacing: -1.25px;
  margin-top: 10px;
  margin-bottom: 10px;
  font-weight: 400;
  line-height: 120%;
}

h5 {
color: var(--colors--black);
  font-size: var(--font-sizes--h5);
  letter-spacing: -1px;
  margin-top: 10px;
  margin-bottom: 10px;
  font-weight: 400;
  line-height: 120%;
}

h6 {
color: var(--colors--black);
  font-size: var(--font-sizes--h6);
  letter-spacing: -1px;
  margin-top: 10px;
  margin-bottom: 10px;
  font-weight: 400;
  line-height: 120%;
}

a {
color: var(--colors--black);
  text-decoration: underline;
}

a:hover {
color: var(--colors--grey);
}

#fe-node-hero-featured {
place-self: end start;
}

#fe-node-about-media {
grid-area: 2 / 2 / 3 / 3;
}

#fe-node-about-card-1 {
place-self: end;
}

#fe-node-about-card-2 {
place-self: end start;
}

#fe-node-about-card-3 {
align-self: end;
}

/* Desktop image positions for the services section used to live here
   as `#fe-node-services-img-N { grid-area: ... }` blocks.  They were
   promoted into data/services.js (servicesLayout.images[].row/col/
   span) so the layout is fully data-driven.  The mobile card
   grid-area below is still CSS-driven because the mobile layout is
   stacked cards rather than the desktop grid. */
#fe-node-services-mobile-1, #fe-node-services-mobile-2, #fe-node-services-mobile-3 {
grid-area: 3 / 2 / 4 / 5;
}

#fe-node-footer-instagram {
grid-area: 1 / 3 / 2 / 4;
}

#fe-node-footer-legal {
grid-area: 1 / 5 / 2 / 6;
}

#fe-node-footer-designer {
grid-area: 1 / 6 / 2 / 7;
}

#fe-node-footer-email {
grid-area: 1 / 4 / 2 / 5;
}

#fe-node-footer-powered {
grid-area: 1 / 7 / 2 / 8;
}

#w-node-_92896c1c-ba02-fbd2-a667-72310d90d74e-88c2b958, #w-node-_92896c1c-ba02-fbd2-a667-72310d90d753-88c2b958, #w-node-_92896c1c-ba02-fbd2-a667-72310d90d758-88c2b958, #w-node-_92896c1c-ba02-fbd2-a667-72310d90d75d-88c2b958 {
grid-area: span 1 / span 1 / span 1 / span 1;
}

#w-node-_17b0fa18-0b9f-a2c3-e36a-8cc7a24cde53-970241cc {
grid-area: 2 / 5 / 3 / 11;
}

#w-node-_9cd8dc99-e808-ba5d-cfe7-4c50992bcdff-970241cc {
grid-area: 3 / 8 / 4 / 11;
}

#w-node-_17b0fa18-0b9f-a2c3-e36a-8cc7a24cde59-970241cc {
grid-area: 2 / 1 / 4 / 4;
  align-self: end;
}

#w-node-_17b0fa18-0b9f-a2c3-e36a-8cc7a24cde5e-970241cc {
grid-area: 3 / 4 / 4 / 6;
  place-self: end stretch;
}

#w-node-c6c23bfb-9cac-686f-8d40-cba2e7349a87-970241cc {
grid-area: span 1 / span 2 / span 1 / span 2;
}

#w-node-fe2fc0ea-9e6a-5907-f20d-2e01937ecca5-fddaf567 {
grid-area: span 1 / span 6 / span 1 / span 6;
  justify-self: center;
}

#w-node-eab33d7d-4674-9c5a-b300-f4f79762b9ef-fddaf567, #w-node-_7c06c1fc-b45c-f3d0-3fd9-b5e5864ccbca-fddaf567, #w-node-d983b296-bbda-7e42-130d-4c23a729b59b-fddaf567, #w-node-d699f8ff-6c2f-2061-c72b-0bd24be9f290-fddaf567 {
grid-area: span 1 / span 2 / span 1 / span 2;
}

#w-node-abe2b7d7-ad81-33ac-eb4c-f63b127de921-c36d5822 {
align-self: stretch;
}

#w-node-_755e4a61-8ff7-ccc7-3123-3d463f373226-c36d5822, #w-node-_9daecb2b-956c-879b-e19a-46008f144da7-c36d5822 {
grid-area: span 1 / span 2 / span 1 / span 2;
}


/* ---- Locale-driven typography ----
 *
 * lib/i18n.js flips <html lang> between "zh" and "en"; rules below
 * follow that signal.
 *
 *   English:
 *     - Highlight text (h1–h6, .fe-eyebrow, .fe-text-lg) → Serif
 *       via --font-display (Courier New).
 *     - Body text & UI labels (body, .fe-text-muted/soft/block,
 *       .fe-brand, .fe-menu-link/-label, .fe-btn-text,
 *       .fe-dropdown-label, .fe-footer-link, .fe-lang-btn) → Sans-serif
 *       via --font-body-en (Calibri / Helvetica).
 *
 *   Chinese:
 *     - Everything funnels to --font-zh (微軟正黑體 with PingFang /
 *       Noto fallbacks for non-Windows hosts).
 *
 * Anything not listed here inherits from body.
 */

:lang(en) body {
  font-family: var(--font-body-en);
  font-weight: 400;
  letter-spacing: 0;
  line-height: 125%;
}

:lang(en) h1,
:lang(en) h2,
:lang(en) h3,
:lang(en) h4,
:lang(en) h5,
:lang(en) h6 {
  font-family: var(--font-display);
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 110%;
}

/* English "theme highlight" elements — Serif (Courier New). */
:lang(en) .fe-eyebrow,
:lang(en) .fe-text-lg {
  font-family: var(--font-display);
  font-weight: 600;
  letter-spacing: 0.005em;
}

/* English body / UI text — Sans-serif (Calibri). */
:lang(en) .fe-text-muted,
:lang(en) .fe-text-soft,
:lang(en) .fe-text-block,
:lang(en) .fe-brand,
:lang(en) .fe-menu-link,
:lang(en) .fe-menu-label,
:lang(en) .fe-btn-text,
:lang(en) .fe-dropdown-label,
:lang(en) .fe-footer-link,
:lang(en) .fe-lang-btn {
  font-family: var(--font-body-en);
  letter-spacing: 0.005em;
}

/* Chinese locale — everything falls onto Microsoft JhengHei. The same
   selector list as English (minus the two highlight classes, which
   also inherit the same family) keeps the coverage identical. */
:lang(zh) body {
  font-family: var(--font-zh);
  font-weight: 400;
  letter-spacing: 0;
  line-height: 125%;
}

:lang(zh) h1,
:lang(zh) h2,
:lang(zh) h3,
:lang(zh) h4,
:lang(zh) h5,
:lang(zh) h6,
:lang(zh) .fe-eyebrow,
:lang(zh) .fe-text-lg,
:lang(zh) .fe-text-muted,
:lang(zh) .fe-text-soft,
:lang(zh) .fe-text-block,
:lang(zh) .fe-brand,
:lang(zh) .fe-menu-link,
:lang(zh) .fe-menu-label,
:lang(zh) .fe-btn-text,
:lang(zh) .fe-dropdown-label,
:lang(zh) .fe-footer-link,
:lang(zh) .fe-lang-btn {
  font-family: var(--font-zh);
  letter-spacing: 0.01em;
}

:lang(zh) h1,
:lang(zh) h2,
:lang(zh) h3,
:lang(zh) h4,
:lang(zh) h5,
:lang(zh) h6,
:lang(zh) .fe-eyebrow,
:lang(zh) .fe-text-lg {
  font-weight: 600;
  letter-spacing: 0.02em;
}

