/* ==========================================================
   SHOPIFY PORTFOLIO — James B. Salig Jr.
   Fully self-hosted / mobile-first / no external dependencies
   Colors and visuals inspired by the approved portfolio concept.
   ========================================================== */
:root {
  color-scheme: light;
  --navy: #062a32;
  --navy-deep: #041d27;
  --ink: #102b34;
  --muted: #47616c;
  --teal: #08b5ae;
  --cyan: #61f1e3;
  --lime: #c1ff00;
  --pink: #fff7f9;
  --bluewash: #edf7fa;
  --border: #dbe4e8;
  --font: "Segoe UI", Inter, system-ui, -apple-system, BlinkMacSystemFont, Arial, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 20px; }
body { margin: 0; font-family: var(--font); color: var(--ink); background: var(--bluewash); overflow-x: clip; }
img, svg { vertical-align: middle; }
img { max-width: 100%; }
svg { overflow: visible; }
a { color: inherit; text-decoration: none; }
button, a { -webkit-tap-highlight-color: transparent; }
a:focus-visible { outline: 3px solid #b4fd4f; outline-offset: 5px; border-radius: 5px; }
::selection { background: #75ffeb; color: #062f36; }
.svg-icons { position: absolute; width: 0; height: 0; overflow: hidden; }
.skip-link { position: fixed; top: -60px; left: 15px; z-index: 200; padding: 12px 18px; background: #fff; color: #063d3d; font-weight: 700; }
.skip-link:focus { top: 15px; }
.layout-container { width: min(100% - 44px, 1330px); margin-inline: auto; }

/* HERO */
.hero { position: relative; isolation: isolate; min-height: 775px; padding-bottom: 110px; color: #fff; background:
  radial-gradient(ellipse 62% 74% at 84% 2%, rgba(3,171,162,.29), transparent 73%),
  radial-gradient(ellipse 48% 68% at -7% 83%, rgba(8,207,187,.25), transparent 81%),
  linear-gradient(122deg, #053739 0%, #03494b 40%, #032c36 75%, #06262f 100%); overflow: hidden; }
.hero:before { content: ""; position: absolute; z-index: -1; width: 670px; height: 670px; border-radius: 50%; left: -330px; top: -360px; border: 1px solid rgba(152,255,242,.09); box-shadow: 0 0 0 60px rgba(91,255,241,.018), 0 0 0 150px rgba(91,255,241,.025), 0 0 0 230px rgba(91,255,241,.013); }
.hero:after { content: ""; position: absolute; z-index: -1; width: 650px; height: 650px; right: -420px; top: -380px; border-radius: 33%; transform: rotate(-35deg); background: linear-gradient(160deg,rgba(42,249,225,.18),transparent 57%); }
.hero-glow { position: absolute; pointer-events: none; border-radius: 50%; filter: blur(12px); opacity: .7; }
.hero-glow--one { width: 510px; height: 510px; background: radial-gradient(circle,rgba(3,194,186,.18),transparent 69%); right: -190px; bottom: -310px; }
.hero-glow--two { width: 380px; height: 380px; background: radial-gradient(circle,rgba(7,142,150,.23),transparent 70%); left: 23%; top: 7%; }
.hero-circle { pointer-events: none; position: absolute; border: 1px solid rgba(161,255,247,.06); border-radius: 50%; }
.hero-circle--one { width: 690px; height: 690px; bottom: -585px; right: -60px; }
.hero-circle--two { width: 900px; height: 900px; top: -780px; right: -360px; }
.hero-shell { position: relative; z-index: 1; }
.site-header { display: flex; align-items: center; min-height: 99px; gap: clamp(18px,2.8vw,43px); }
.brand { display: inline-flex; flex: none; align-items: center; gap: 9px; max-width: 100%; }
.brand-mark { width: 72px; height: 46px; object-fit: contain; }
.brand-name { color: #fff; font-weight: 840; font-size: clamp(.93rem,1.55vw,1.26rem); letter-spacing: -.06em; white-space: nowrap; }
.brand-name span { color: #e4fff5; }
.header-divider, .footer-separator { height: 30px; width: 1px; flex: none; background: rgba(233,255,251,.36); }
.header-label { font-weight: 550; letter-spacing: .34em; font-size: clamp(.62rem,.94vw,.81rem); color: #d4edec; white-space: nowrap; }
.hero-layout { display: grid; grid-template-columns: minmax(210px,.79fr) minmax(0,1.65fr); align-items: center; column-gap: clamp(24px,3vw,50px); padding-top: clamp(13px,3.2vw,46px); }
.portrait-column { min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 23px; align-self: center; }
.portrait-halo { position: relative; width: min(100%, 340px); aspect-ratio: 1; border: 2px solid rgba(187,255,244,.3); border-radius: 50%; display: grid; place-items: center; box-shadow: 0 0 0 12px rgba(78,242,217,.025), 0 25px 80px rgba(1,20,31,.35); }
.portrait-halo:before, .portrait-halo:after { content: ""; position: absolute; border-radius: 50%; pointer-events: none; }
.portrait-halo:before { inset: -15px; border: 1px solid rgba(184,255,247,.07); }
.portrait-halo:after { inset: 7px; border: 2px solid rgba(211,255,251,.16); }
.portrait-border { width: calc(100% - 25px); height: calc(100% - 25px); border-radius: 50%; overflow: hidden; border: 5px solid #f8ffff; background: #e3c3b3; }
.portrait { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 39%; }
.portrait-spark { position: absolute; z-index: 3; width: 20px; height: 20px; right: 12%; bottom: 13%; border-radius: 50%; background: #65f5e4; box-shadow: 0 0 0 5px #08434a, 0 0 30px rgba(114,255,235,.55); }
.portrait-caption { display: flex; gap: 10px; align-items: center; color: #d1f5f0; font-size: .79rem; letter-spacing: .02em; }
.status-dot { display: inline-block; flex: none; width: 8px; height: 8px; background: var(--lime); border-radius: 50%; box-shadow: 0 0 0 4px rgba(193,255,0,.14); }
.hero-text { min-width: 0; padding-top: 4px; }
.shopify-pill { display: inline-flex; gap: 9px; align-items: center; margin-bottom: 13px; font-size: clamp(1.55rem,2.15vw,2rem); font-style: italic; font-weight: 800; letter-spacing: -.05em; }
.shopify-pill small { align-self: center; margin-left: 7px; border: 1px solid rgba(197,255,243,.3); padding: 5px 8px; border-radius: 60px; font-size: .54rem; font-style: normal; font-weight: 700; letter-spacing: .2em; color: #c5efeb; }
.shopify-bag { display: grid; place-items: center; position: relative; width: 35px; height: 38px; background: #87ce2a; color: #fff; border-radius: 3px 4px 7px 7px; clip-path: polygon(17% 16%,82% 8%,100% 100%,0 100%); box-shadow: 0 4px 15px rgba(117,196,13,.4); font-size: 24px; font-style: normal; font-weight: 900; transform: rotate(-7deg); }
.shopify-bag:before { content: ""; position: absolute; width: 10px; height: 10px; border: 2px solid white; border-radius: 50%; top: 0px; left: 13px; opacity: .85; }
.shopify-bag span { margin-top: 3px; }
h1, h2, p { margin-top: 0; }
h1 { font-size: clamp(2.85rem,4.9vw,5.05rem); line-height: 1.045; letter-spacing: -.063em; font-weight: 850; margin-bottom: 16px; max-width: 900px; }
h1 span { display: block; color: #72f8ec; }
.hero-intro { font-size: clamp(1.35rem,2.25vw,2rem); line-height: 1.15; margin: 0 0 6px; font-weight: 400; letter-spacing: -.038em; }
.hero-intro strong { color: #6cf5e7; font-weight: 800; }
.hero-role { font-size: clamp(.9rem,1.38vw,1.16rem); color: #f5f9fc; margin-bottom: 22px; letter-spacing: -.025em; }
.hero-role span { color: #71eadd; padding-inline: 3px; }
.hero-summary { position: relative; border-left: 4px solid #58fbe9; padding-left: 17px; max-width: 745px; margin-bottom: 26px; font-size: clamp(.94rem,1.2vw,1.125rem); line-height: 1.52; color: #e9faf8; }
.hero-summary strong { color: #fff; font-weight: 760; }
.skill-grid { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); margin-bottom: 28px; border-top: 1px solid rgba(171,252,242,.18); border-bottom: 1px solid rgba(171,252,242,.18); padding: 16px 0; }
.skill { min-width: 0; min-height: 72px; text-align: center; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 6px; padding: 1px 6px; color: #edfefb; font-size: clamp(.62rem,.82vw,.77rem); font-weight: 650; line-height: 1.22; }
.skill + .skill { border-left: 1px solid rgba(171,252,242,.22); }
.skill svg { height: 30px; width: 30px; stroke: #6cf3eb; stroke-width: 1.8; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.skill-js { display: grid; place-items: center; height: 29px; width: 28px; background: #69f2e4; color: #06393c; font-size: 15px; font-weight: 900; border-radius: 3px; }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; }
.btn { display: inline-flex; gap: 11px; align-items: center; justify-content: center; min-height: 54px; padding: 13px 26px; border-radius: 999px; font-size: 1rem; font-weight: 750; box-shadow: 0 8px 20px rgba(0,0,0,.12); transition: transform .22s ease, background .22s ease, box-shadow .22s ease; white-space: nowrap; }
.btn svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.btn .arrow { width: 20px; }
.btn-primary { background: linear-gradient(125deg,#20e5d4,#00a99f 80%); color: #fff; border: 1px solid rgba(194,255,246,.5); }
.btn-outline { border: 2px solid #5ff5e7; color: #fff; background: rgba(0,17,24,.22); }
.btn:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(0,17,26,.25); }
.btn-outline:hover { background: rgba(67,229,205,.15); }
.hero-extras { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; margin-top: 21px; }
.domain-label { color: #76f3e8; font-weight: 750; font-size: clamp(.76rem,1.2vw,1rem); letter-spacing: -.025em; overflow-wrap: anywhere; }
.domain-label:before { content: "↗"; display: inline-block; transform: rotate(-35deg); margin-right: 7px; font-size: 1.5em; }
.resume-link { display: inline-flex; gap: 5px; align-items: center; color: #fff; font-size: .83rem; text-decoration: underline; text-underline-offset: 4px; }
.resume-link svg { width: 16px; height: 16px; fill: none; stroke: #a2f8ed; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.resume-link:hover { color: #7ffff0; }
.section-wave { display: block; position: absolute; bottom: -1px; left: 0; width: 100%; height: 86px; pointer-events: none; }
.hero-wave { height: 90px; }

/* PROJECT SECTIONS */
.project { position: relative; isolation: isolate; overflow: hidden; }
.project-layout { display: grid; grid-template-columns: minmax(0,.94fr) minmax(0,1.16fr); align-items: center; gap: clamp(38px,6.8vw,100px); min-height: 710px; padding-block: 95px 160px; }
.project-copy { position: relative; z-index: 2; max-width: 540px; }
.project-kicker { margin-bottom: 18px; font-size: .78rem; color: #6c858c; font-weight: 850; letter-spacing: .16em; }
.kicker-dash { display: inline-block; width: 27px; height: 1px; margin: 0 5px 4px; background: #aeb9bd; }
.project-title-line { display: flex; align-items: center; gap: 14px; margin-bottom: 9px; }
.project-title-line h2 { font-size: clamp(2.25rem,3.6vw,3.55rem); font-weight: 840; letter-spacing: -.064em; line-height: 1.05; margin: 0; }
.project-icon { display: grid; place-items: center; width: 57px; height: 57px; flex: none; border-radius: 50%; }
.project-icon svg { width: 30px; height: 30px; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linejoin: round; stroke-linecap: round; }
.project-icon-fashion { color: #bb5273; background: #fce5eb; }
.project-icon-industrial { color: #096b78; background: #d0e9ed; }
.project-tagline { font-size: 1.04rem; color: var(--muted); line-height: 1.5; max-width: 470px; margin-bottom: 12px; }
.project-domain { display: inline-flex; gap: 7px; align-items: center; font-size: 1.14rem; font-weight: 780; color: #008c83; text-decoration: underline; text-underline-offset: 5px; margin-bottom: 24px; }
.project-domain svg { height: 17px; width: 17px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.project-domain:hover { color: #075f57; }
.feature-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; }
.feature-list li { display: grid; grid-template-columns: 27px 1fr; align-items: start; gap: 10px; font-size: clamp(.95rem,1.12vw,1.06rem); line-height: 1.47; color: #203640; }
.check { background: #0caea5; display: grid; place-items: center; width: 22px; height: 22px; margin-top: 2px; border-radius: 50%; }
.check svg { width: 15px; height: 15px; fill: none; stroke: #fff; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.feature-list strong { font-weight: 770; }
.project-link { display: inline-flex; align-items: center; gap: 12px; color: #087b76; font-size: .94rem; font-weight: 830; margin-top: 29px; border: 1px solid rgba(7,142,137,.32); border-radius: 999px; padding: 12px 19px; transition: background .2s, transform .2s; }
.project-link svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.project-link:hover { background: #dbf7f1; transform: translateX(3px); }
.project-visual { position: relative; z-index: 1; min-width: 0; width: 100%; }
.visual-glow { position: absolute; pointer-events: none; width: 112%; height: 115%; top: -5%; left: -6%; border-radius: 50%; filter: blur(13px); }
.device-tilt { position: relative; z-index: 2; transform: perspective(1000px) rotateY(-1.8deg) rotateX(1deg); filter: drop-shadow(10px 29px 26px rgba(0,20,32,.15)); }
.laptop { position: relative; width: 100%; margin: 0 auto; padding-bottom: 33px; }
.laptop-bezel { position: relative; z-index: 2; background: linear-gradient(140deg,#19242d,#080e12 65%,#2e3740); border: 3px solid #3a444a; border-radius: 18px 18px 9px 9px; padding: 16px 13px 17px; box-shadow: 0 3px 2px #8799a1, inset 0 1px 0 #58666b; overflow: hidden; }
.webcam { position: absolute; top: 7px; left: calc(50% - 2px); width: 4px; height: 4px; border-radius: 50%; background: #66757a; }
.laptop-screen-image { width: 100%; aspect-ratio: 1.51 / 1; object-fit: cover; object-position: center top; display: block; background: #fee9ec; }
.laptop-base { position: absolute; z-index: 3; width: 110%; height: 25px; left: -5%; bottom: 15px; border-radius: 0 0 70% 70% / 0 0 100% 100%; background: linear-gradient(to bottom,#dae1e7 0%,#a9b3bd 25%,#dce3e9 57%,#697e89 86%,#394b53 100%); box-shadow: 0 10px 7px -7px rgba(20,40,52,.34); border-top: 1px solid #eff4fa; }
.base-notch { width: 23%; height: 8px; margin: 0 auto; border-radius: 0 0 45% 45%; background: linear-gradient(to bottom,#6e7a80,#b9c5cc); opacity: .83; }
.preview-caption { position: relative; z-index: 3; display: block; text-align: center; margin: -3px auto 0; font-size: .75rem; color: #799099; }
.preview-caption span { padding-inline: 4px; }
.project-fashion { background: radial-gradient(ellipse at 91% 23%,#fff0f4 0%,transparent 47%),linear-gradient(180deg,#fff7f9 0%,#fffafd 90%); }
.project-fashion:before { content: ""; width: 630px; height: 630px; border-radius: 50%; position: absolute; left: -340px; bottom: -410px; border: 1px solid #f2e5ea; box-shadow: 0 0 0 120px rgba(249,232,238,.12); }
.fashion-flower { position: absolute; z-index: 0; right: -3%; top: -1%; width: 290px; height: 410px; opacity: .22; background: url('../img/pink-floral-detail.webp') center / contain no-repeat; mask-image: linear-gradient(90deg,transparent,black 50%); pointer-events: none; }
.project-visual-fashion .visual-glow { background: radial-gradient(circle,#f7cddc 0%,rgba(255,237,245,.05) 67%,transparent 78%); }
.fashion-wave { height: 88px; }
.project-industrial { background: radial-gradient(circle at 87% 19%,rgba(200,230,237,.8),transparent 44%),linear-gradient(to bottom,var(--bluewash),#eff8f9 84%); }
.project-industrial:before { content: ""; position: absolute; pointer-events: none; z-index: -1; width: 680px; height: 500px; right: -290px; top: 60px; opacity: .26; background: repeating-linear-gradient(144deg,transparent 0 27px,rgba(6,93,111,.12) 28px 29px,transparent 30px 60px); mask-image: radial-gradient(ellipse,black,transparent 73%); }
.project-industrial .project-layout { padding-bottom: 145px; }
.project-visual-industrial .visual-glow { background: radial-gradient(circle,#c6e2ea,rgba(229,247,248,.09) 66%,transparent 80%); }
.industrial-stripes { position: absolute; z-index: -1; right: -2%; bottom: 61px; width: min(68vw,940px); height: 210px; transform: skewY(-7deg); opacity: .32; background: linear-gradient(165deg,transparent 0%,rgba(81,129,136,.08) 25%,rgba(38,88,94,.21) 45%,transparent 80%); clip-path: polygon(0 75%,80% 35%,100% 55%,100% 100%,0 100%); }

/* MINI SCREEN / LIL' BUBBA CONCEPT PREVIEW */
.mini-commerce { display: flex; flex-direction: column; background: #fff; aspect-ratio: 1.51 / 1; overflow: hidden; container-type: inline-size; font-family: Arial, sans-serif; }
.mini-top { display: flex; flex: 0 0 16%; align-items: center; justify-content: space-between; gap: 2cqw; padding: 0 3.2cqw; background: #fff; color: #142c38; }
.mini-logo { display: flex; align-items: center; gap: 1cqw; line-height: .97; font-size: 2.55cqw; font-weight: 1000; white-space: nowrap; }
.mini-logo small { font-size: 2cqw; letter-spacing: .02em; }
.mini-gear { font-size: 5.6cqw; color: #f4ae16; -webkit-text-stroke: .25px #122e35; }
.mini-search { flex: 0 1 50%; display: flex; justify-content: space-between; align-items: center; border: 1px solid #d3dce1; border-radius: .4cqw; padding-left: 2cqw; overflow: hidden; height: 45%; font-size: 1.9cqw; color: #81929a; white-space: nowrap; }
.mini-search b { display: grid; place-items: center; background: #fbbd2f; height: 100%; padding: 0 2cqw; font-size: 3.5cqw; color: #152c37; }
.mini-topicons { font-size: 3cqw; color: #182935; white-space: nowrap; }
.mini-nav { display: flex; flex: 0 0 11%; align-items: center; justify-content: space-around; gap: 4px; color: #f7f8f7; background: #142331; font-weight: 700; font-size: 1.85cqw; }
.mini-nav span:first-child { color: #ffc442; }
.mini-promo { flex: 1; position: relative; isolation: isolate; display: flex; align-items: center; overflow: hidden; color: #fff; background: linear-gradient(102deg,#111d26 0%,#203c45 54%,#67828b 100%); }
.mini-promo:before { content: ""; position: absolute; inset: 0; z-index: -1; background: repeating-linear-gradient(135deg,transparent 0 20px,rgba(255,191,38,.028) 21px 22px,transparent 23px 48px); }
.mini-promo:after { content: ""; position: absolute; right: -14%; top: -60%; width: 42%; height: 190%; transform: rotate(28deg); border-left: 2.6cqw solid rgba(255,189,39,.86); }
.mini-promo-text { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: start; padding-left: 5.5cqw; width: 55%; text-shadow: 0 2px 4px rgba(2,12,17,.4); }
.mini-promo-text small { margin-bottom: 2.2cqw; font-size: 2.2cqw; color: #d3e0e2; font-weight: 800; letter-spacing: .06em; }
.mini-promo-text strong { font-size: 7.5cqw; line-height: .89; letter-spacing: -.055em; font-weight: 1000; }
.mini-promo-text strong em { color: #ffc327; font-style: normal; }
.mini-promo-text > span:not(.mini-shop-button) { font-size: 2.1cqw; margin-top: 2cqw; line-height: 1.2; }
.mini-shop-button { margin-top: 2.8cqw; background: #ffc533; color: #172a33; text-shadow: none; font-size: 2cqw; padding: 1.6cqw 2.3cqw; font-weight: 900; border-radius: .5cqw; }
.mini-promo img { position: absolute; right: -3%; bottom: -6%; height: 116%; width: 62%; object-fit: contain; filter: drop-shadow(0 5px 11px rgba(0,6,10,.65)); }
.mini-benefits { display: flex; justify-content: space-around; align-items: center; flex: 0 0 13%; gap: 6px; color: #34434b; background: #f9fafb; text-align: center; font-weight: 730; font-size: 1.8cqw; }
.mini-benefits span + span { border-left: 1px solid #d5dbdf; padding-left: 3cqw; }

/* FOOTER — inside third section, to preserve the requested three-section page */
.site-footer { position: relative; isolation: isolate; padding: 28px 0 30px; background: linear-gradient(115deg,#07474b,#06323a 65%,#04262e); color: #eafff7; }
.site-footer:before { content: ""; position: absolute; bottom: 100%; left: 0; width: 100%; height: 27px; background: #07474b; clip-path: polygon(0 42%,24% 80%,54% 14%,78% 54%,100% 4%,100% 100%,0 100%); }
.footer-inside { display: flex; gap: clamp(13px,2.6vw,31px); align-items: center; justify-content: space-between; }
.footer-brand .brand-mark { width: 62px; height: 38px; }
.footer-brand .brand-name { font-size: 1rem; }
.footer-inside p { color: #d7f8f4; margin: 0 auto 0 0; letter-spacing: .19em; font-size: clamp(.59rem,.7vw,.79rem); line-height: 1.65; font-weight: 640; }
.footer-inside p span { color: #66e8dd; padding: 0 5px; }
.footer-top { color: #9cfff0; font-size: .76rem; white-space: nowrap; font-weight: 700; text-decoration: underline; text-underline-offset: 5px; }
.footer-top:hover { color: #fff; }

/* Reveal is applied only via JS, otherwise the content remains fully visible. */
@media (prefers-reduced-motion: no-preference) {
  .observe-entry { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s ease; }
  .observe-entry.is-visible { opacity: 1; transform: translateY(0); }
  .project-visual.observe-entry { transition-delay: .13s; }
}

/* TABLET & MOBILE: no fixed section heights, no cut-off content */
@media (max-width: 1100px) {
  .layout-container { width: min(100% - 46px, 980px); }
  .site-header { min-height: 85px; }
  .hero-layout { grid-template-columns: minmax(180px,.7fr) minmax(0,1.65fr); gap: 23px; }
  .portrait-halo { width: min(100%,272px); }
  .shopify-pill { margin-bottom: 10px; }
  .skill-grid { margin-bottom: 21px; }
  .project-layout { gap: 34px; min-height: 650px; }
  .feature-list { gap: 12px; }
  .project-title-line h2 { font-size: clamp(2.1rem,3.8vw,3rem); }
  .footer-inside p { letter-spacing: .11em; }
}
@media (max-width: 800px) {
  .hero { min-height: 0; padding-bottom: 115px; }
  .site-header { justify-content: center; flex-wrap: wrap; gap: 2px 15px; padding-block: 20px 8px; }
  .header-divider { height: 24px; }
  .header-label { white-space: normal; letter-spacing: .2em; text-align: center; }
  .hero-layout { grid-template-columns: 1fr; padding-top: 16px; gap: 32px; }
  .portrait-column { gap: 14px; }
  .portrait-halo { width: 218px; }
  .portrait-caption { font-size: .72rem; }
  .hero-text { text-align: center; }
  .shopify-pill { justify-content: center; }
  h1 { margin-inline: auto; }
  .hero-role { margin-bottom: 19px; }
  .hero-summary { margin-inline: auto; text-align: left; max-width: 600px; }
  .skill-grid { max-width: 660px; margin-inline: auto; }
  .hero-actions, .hero-extras { justify-content: center; }
  .project-layout { grid-template-columns: 1fr; gap: 40px; min-height: 0; padding-top: 78px; padding-bottom: 136px; }
  .project-copy { max-width: 650px; margin: 0 auto; }
  .project-visual { max-width: 710px; margin: 0 auto; }
  .project-visual-fashion { margin-top: 1px; }
  .project-industrial .project-layout { padding-bottom: 130px; }
  .fashion-flower { opacity: .12; }
  .footer-inside { flex-wrap: wrap; justify-content: center; row-gap: 18px; }
  .footer-inside p { order: 3; margin: 0; width: 100%; text-align: center; }
  .footer-top { margin-left: auto; }
}
@media (max-width: 560px) {
  .layout-container { width: min(100% - 34px, 480px); }
  .site-header { gap: 2px 8px; }
  .brand-mark { width: 54px; height: 35px; }
  .brand-name { font-size: .9rem; }
  .header-divider { display: none; }
  .header-label { flex-basis: 100%; margin-top: 7px; font-size: .62rem; letter-spacing: .17em; }
  .hero-layout { gap: 23px; padding-top: 22px; }
  .portrait-halo { width: min(55vw,206px); }
  .portrait-border { width: calc(100% - 17px); height: calc(100% - 17px); border-width: 4px; }
  .portrait-spark { width: 14px; height: 14px; box-shadow: 0 0 0 3px #08434a; }
  .portrait-caption { font-size: .67rem; }
  .shopify-pill { font-size: 1.5rem; margin-bottom: 14px; }
  .shopify-pill small { font-size: .5rem; }
  h1 { font-size: clamp(2.5rem,10.3vw,3.65rem); }
  .hero-intro { font-size: clamp(1.28rem,5vw,1.6rem); }
  .hero-role { font-size: .86rem; line-height: 1.6; }
  .hero-summary { font-size: .91rem; line-height: 1.55; padding-left: 13px; margin-bottom: 22px; }
  .skill-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0; padding: 12px 0; }
  .skill { padding-block: 11px; min-height: 79px; font-size: .72rem; }
  .skill:nth-child(4) { border-left: none; }
  .skill:nth-child(n+4) { border-top: 1px solid rgba(171,252,242,.22); }
  .skill svg { height: 27px; width: 27px; }
  .hero-actions { gap: 10px; }
  .btn { min-height: 50px; padding: 12px 18px; font-size: .85rem; gap: 8px; }
  .btn svg { width: 19px; height: 19px; }
  .hero-extras { gap: 10px 22px; margin-top: 20px; }
  .domain-label { font-size: .74rem; }
  .hero { padding-bottom: 90px; }
  .hero-wave { height: 52px; }
  .project-layout { padding-top: 59px; padding-bottom: 92px; gap: 33px; }
  .project-kicker { font-size: .64rem; margin-bottom: 14px; }
  .project-title-line { gap: 9px; }
  .project-title-line h2 { font-size: clamp(2rem,8vw,2.65rem); }
  .project-icon { width: 49px; height: 49px; }
  .project-icon svg { width: 25px; height: 25px; }
  .project-tagline { font-size: .9rem; margin-top: 9px; }
  .project-domain { margin-bottom: 24px; font-size: 1.01rem; }
  .feature-list { gap: 14px; }
  .feature-list li { grid-template-columns: 25px 1fr; gap: 7px; font-size: .89rem; line-height: 1.48; }
  .check { width: 20px; height: 20px; }
  .check svg { width: 14px; height: 14px; }
  .project-link { margin-top: 26px; font-size: .86rem; padding: 10px 16px; }
  .fashion-wave { height: 57px; }
  .laptop-bezel { padding: 9px 8px 10px; border-radius: 10px 10px 6px 6px; border-width: 2px; }
  .webcam { top: 3px; }
  .laptop-base { height: 15px; bottom: 19px; }
  .laptop { padding-bottom: 27px; }
  .base-notch { height: 5px; }
  .preview-caption { font-size: .62rem; margin-top: -7px; }
  .project-industrial .project-layout { padding-bottom: 95px; }
  .site-footer { padding-block: 23px 29px; }
  .footer-brand .brand-mark { width: 48px; height: 30px; }
  .footer-brand .brand-name { font-size: .84rem; }
  .footer-inside { gap: 12px; }
  .footer-inside p { font-size: .55rem; line-height: 1.9; letter-spacing: .06em; }
}
@media (max-width: 360px) {
  .btn { width: 100%; }
  .shopify-pill small { display: none; }
  .footer-top { margin: 0; }
  .footer-separator { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
