
:root{
  --bg:#fcfbfa;
  --ink:#202326;
  --muted:#66707a;
  --line:#ebe7e2;
  --card:rgba(255,255,255,.70);
  --card-solid:#fff;
  --accent:#e06a72;
  --accent-2:#79a8c8;
  --accent-3:#8dbba0;
  --soft-pink:rgba(247,205,220,.50);
  --soft-blue:rgba(214,230,252,.48);
  --soft-mint:rgba(220,241,231,.42);
  --soft-lav:rgba(232,224,251,.38);
  --base-top:#fdfcfb;
  --base-bottom:#faf8f5;
  --shadow:0 18px 50px rgba(33,38,43,.06);
  --radius-xl:30px;
  --radius-lg:22px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  -webkit-font-smoothing:antialiased;
  background:linear-gradient(180deg,var(--base-top) 0%, var(--base-bottom) 100%);
  overflow-x:hidden;
}
body::before,
body::after{
  content:"";
  position:fixed;
  inset:-10% -10% auto -10%;
  pointer-events:none;
  z-index:-3;
}
body::before{
  height:120%;
  background:
    radial-gradient(circle at 12% 18%, var(--soft-pink) 0 10%, transparent 28%),
    radial-gradient(circle at 84% 12%, var(--soft-blue) 0 11%, transparent 29%),
    radial-gradient(circle at 72% 72%, var(--soft-mint) 0 10%, transparent 24%),
    radial-gradient(circle at 22% 86%, var(--soft-lav) 0 9%, transparent 23%);
  filter:blur(26px) saturate(112%);
  animation:floatGradient 28s ease-in-out infinite alternate;
  opacity:1;
  transition:background 75s linear;
}
body::after{
  height:120%;
  background:
    radial-gradient(circle at 18% 20%, rgba(255,255,255,.54) 0 10%, transparent 28%),
    radial-gradient(circle at 78% 30%, rgba(255,255,255,.35) 0 8%, transparent 25%),
    radial-gradient(circle at 56% 80%, rgba(255,255,255,.28) 0 8%, transparent 22%);
  filter:blur(34px);
  animation:floatGradientTwo 34s ease-in-out infinite alternate;
  opacity:.75;
  transition:background 75s linear;
}
@keyframes floatGradient{
  0%{transform:translate3d(0,0,0) scale(1)}
  50%{transform:translate3d(1.5%,2%,0) scale(1.03)}
  100%{transform:translate3d(-1.5%,-1%,0) scale(1.05)}
}
@keyframes floatGradientTwo{
  0%{transform:translate3d(0,0,0) scale(1)}
  50%{transform:translate3d(-1%,1.5%,0) scale(1.02)}
  100%{transform:translate3d(1.5%,-1.5%,0) scale(1.04)}
}
@keyframes pulseDot{
  0%,100%{transform:scale(1);opacity:.65}
  50%{transform:scale(1.22);opacity:1}
}
@keyframes driftCard{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-2px)}
}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer}
.shell{max-width:1140px;margin:0 auto;padding:0 26px;position:relative}
.header{
  height:84px;display:flex;align-items:center;justify-content:space-between;
  border-bottom:1px solid rgba(235,231,226,.82);
}
.brand{
  display:flex;flex-direction:column;gap:3px;
  font-weight:800;letter-spacing:-.05em;font-size:21px;
}
.brand-main{display:flex;align-items:center;gap:8px}
.brand-dot{
  width:8px;height:8px;border-radius:50%;background:linear-gradient(135deg,#f0aeb9,#8bb2d0);display:inline-block;
  box-shadow:0 0 0 6px rgba(238,197,208,.18);
}
.brand-sub{font-size:10px;letter-spacing:.12em;color:#8b8f95;font-weight:600;text-transform:uppercase}
.nav{display:flex;align-items:center;gap:24px;font-size:13px;color:#59616a}
.nav a{position:relative}
.nav a::after{
  content:"";position:absolute;left:0;bottom:-7px;width:100%;height:1px;background:#34393e;
  transform:scaleX(0);transform-origin:left;transition:transform .22s ease;
}
.nav a:hover::after{transform:scaleX(1)}
.nav-chip{
  padding:8px 12px;border:1px solid rgba(233,228,223,.92);border-radius:999px;background:rgba(255,255,255,.6);
  font-size:11px;color:#71777d
}
.hero{position:relative;padding:76px 0 64px}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:34px;align-items:end}
.kicker{
  display:inline-flex;align-items:center;gap:8px;padding:7px 11px;border-radius:999px;
  border:1px solid rgba(232,226,221,.95);background:rgba(255,255,255,.58);font-size:11px;color:#7e6c70;
}
.kicker::before{
  content:"";width:7px;height:7px;border-radius:50%;background:linear-gradient(135deg,#f3b3bb,#87aeca);display:inline-block;animation:pulseDot 3s ease-in-out infinite;
}
h1{
  margin:18px 0 18px;font-size:clamp(44px,8vw,88px);line-height:1.05;letter-spacing:-.072em;font-weight:760;
}
.lead{max-width:580px;margin:0;color:var(--muted);font-size:15px;line-height:2}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.btn-primary,.btn-secondary{
  display:inline-flex;align-items:center;gap:10px;padding:14px 18px;border-radius:999px;transition:transform .2s ease,border-color .2s ease,background .2s ease;
}
.btn-primary{background:#202427;color:#fff;border:1px solid #202427;font-size:13px;font-weight:700}
.btn-primary:hover{transform:translateY(-2px)}
.btn-secondary{background:rgba(255,255,255,.62);border:1px solid rgba(233,228,223,.95);font-size:13px;font-weight:650;color:#586068}
.btn-secondary:hover{transform:translateY(-2px);border-color:#d8d1c9}
.panel{
  position:relative;padding:26px;background:rgba(255,255,255,.56);backdrop-filter:blur(10px);border:1px solid rgba(234,229,223,.95);border-radius:var(--radius-xl);box-shadow:var(--shadow);
}
.panel::before{
  content:"";position:absolute;inset:14px;border:1px dashed rgba(212,203,194,.78);border-radius:22px;pointer-events:none;
}
.panel::after{
  content:"";position:absolute;right:22px;top:16px;width:58px;height:58px;border-radius:50%;
  background:radial-gradient(circle at 30% 30%, rgba(255,255,255,.8), rgba(255,255,255,0) 62%), linear-gradient(135deg, rgba(247,205,220,.65), rgba(214,230,252,.55));
  filter:blur(.2px);
}
.panel h2{margin:0 0 14px;font-size:21px;letter-spacing:-.04em}
.panel p{margin:0;color:#69727a;font-size:13px;line-height:1.95;max-width:420px}
.micro-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}
.micro-card{
  padding:14px 14px 13px;border-radius:18px;background:rgba(255,255,255,.68);border:1px solid rgba(238,235,230,.92);animation:driftCard 7s ease-in-out infinite;
}
.micro-card:nth-child(2){animation-delay:1.4s}
.micro-card:nth-child(3){animation-delay:2.2s}
.micro-card:nth-child(4){animation-delay:.7s}
.micro-top{font-size:10px;letter-spacing:.11em;color:#8d8e96;text-transform:uppercase;margin-bottom:8px}
.micro-visual{height:34px;display:flex;align-items:center;gap:10px}
.ico-dot{width:9px;height:9px;border-radius:50%;background:linear-gradient(135deg,#f2afbb,#85aeca);box-shadow:0 0 0 6px rgba(236,213,221,.23)}
.ico-line{height:1.5px;flex:1;background:linear-gradient(90deg,rgba(230,149,160,.7),rgba(121,168,200,.7),rgba(141,187,160,.7));position:relative}
.ico-line::after{content:"";position:absolute;right:12%;top:50%;transform:translateY(-50%);width:7px;height:7px;border-radius:50%;background:#fff;border:1px solid rgba(118,155,177,.55)}
.mini-frame{width:34px;height:26px;border-radius:7px;border:1.6px solid rgba(112,120,130,.55);position:relative;background:rgba(255,255,255,.56)}
.mini-frame::before{content:"";position:absolute;left:5px;right:5px;bottom:5px;height:8px;background:linear-gradient(135deg,rgba(136,176,199,.35),rgba(132,182,155,.35));clip-path:polygon(0 100%,35% 40%,54% 72%,76% 18%,100% 100%)}
.mini-frame::after{content:"";position:absolute;width:6px;height:6px;border-radius:50%;right:6px;top:5px;background:rgba(240,195,127,.8)}
.mini-chip{height:18px;padding:0 8px;border-radius:999px;border:1px solid rgba(206,215,223,.9);display:flex;align-items:center;font-size:10px;color:#6c747b;background:rgba(255,255,255,.7)}
.network{
  position:absolute;left:0;right:0;top:28px;height:140px;pointer-events:none;opacity:.62;
}
.section{padding:10px 0 82px}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:24px}
.section-title small{display:block;font-size:11px;letter-spacing:.1em;color:#8f9499;margin-bottom:8px;text-transform:uppercase}
.section-title h2{margin:0;font-size:33px;letter-spacing:-.05em;font-weight:760}
.section-copy{font-size:12px;color:#7b8187;margin:0}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px}
.filter{
  padding:10px 16px;border-radius:999px;background:rgba(255,255,255,.58);border:1px solid rgba(234,229,223,.95);font-size:12px;font-weight:650;color:#596169;transition:all .2s ease;
}
.filter:hover{transform:translateY(-1px);border-color:#d8d1c9}
.filter.active{background:#22272b;color:#fff;border-color:#22272b}

.card{
  display:flex;flex-direction:column;min-height:330px;padding:12px;border-radius:var(--radius-lg);border:1px solid rgba(235,231,226,.94);
  background:var(--card);backdrop-filter:blur(8px);box-shadow:0 12px 36px rgba(35,39,44,.045);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.card:hover{transform:translateY(-4px);box-shadow:0 18px 42px rgba(35,39,44,.08);border-color:#ded8d0}
.visual{
  position:relative;height:176px;padding:16px;border-radius:16px;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;
}
.visual::before{
  content:"";position:absolute;inset:auto -8% -22% auto;width:130px;height:130px;border-radius:50%;background:rgba(255,255,255,.36);filter:blur(2px)
}
.visual.blog{background:linear-gradient(145deg,#f7efe8,#f3efea)}
.visual.notev{background:linear-gradient(145deg,#eef5f5,#edf3ee)}
.visual.web{background:linear-gradient(145deg,#f1eefb,#f5f1fb)}
.visual.hw{background:linear-gradient(145deg,#fff1eb,#fff7f3)}
.visual.sw{background:linear-gradient(145deg,#eef4fb,#f6f8fd)}
.visual.next{background:linear-gradient(145deg,#f2f5ef,#f8f8f4)}
.label{position:relative;z-index:1;font-size:10px;letter-spacing:.12em;color:#7d8389;font-weight:700;text-transform:uppercase}
.graphic{position:relative;z-index:1;font-size:54px;letter-spacing:-.06em;line-height:1;font-weight:780;color:#2d3136}
.memo{position:relative;z-index:1;font-size:11px;color:#71777d}
.node-line{
  position:absolute;left:18px;right:18px;bottom:28px;height:18px;z-index:0;opacity:.7;
}
.node-line span{
  position:absolute;top:8px;height:1.5px;background:linear-gradient(90deg,rgba(226,126,138,.65),rgba(131,173,198,.65),rgba(140,188,162,.65));
}
.node-line span::before,.node-line span::after{
  content:"";position:absolute;top:50%;transform:translateY(-50%);width:7px;height:7px;border-radius:50%;background:#fff;border:1px solid rgba(132,160,180,.55)
}
.node-line span::before{left:-1px}.node-line span::after{right:-1px}
.node-line .l1{left:0;width:42%}.node-line .l2{left:38%;width:35%;top:2px}.node-line .l3{left:66%;width:24%;top:12px}
.info{padding:16px 6px 4px;display:flex;flex-direction:column;flex:1}
.meta{font-size:10px;letter-spacing:.12em;color:#c06f66;font-weight:800}
.info h3{margin:10px 0 8px;font-size:18px;letter-spacing:-.03em}
.info p{margin:0 0 16px;color:#697179;font-size:13px;line-height:1.8}
.foot{margin-top:auto;padding-top:12px;border-top:1px solid #efebe6;display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:700;color:#454b50}
.arrow{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#f3f1ed;color:#4d555d;transition:all .18s ease}
.card:hover .arrow{background:var(--accent);color:#fff;transform:rotate(15deg)}
.about{
  margin-top:12px;padding:34px;border-radius:var(--radius-xl);border:1px solid rgba(235,230,224,.95);background:rgba(255,255,255,.58);backdrop-filter:blur(10px);
  display:grid;grid-template-columns:1fr .95fr;gap:34px;position:relative;overflow:hidden;
}
.about::before{
  content:"";position:absolute;right:-50px;bottom:-44px;width:190px;height:190px;border-radius:50%;background:linear-gradient(135deg,rgba(243,209,219,.34),rgba(211,230,250,.28));filter:blur(10px)
}
.about h2{margin:0 0 14px;font-size:32px;letter-spacing:-.05em;line-height:1.3;position:relative;z-index:1}
.about p{margin:0;color:#6a7178;font-size:14px;line-height:2;position:relative;z-index:1}
.steps{display:grid;gap:12px;position:relative;z-index:1}
.step{
  padding:16px 18px;border:1px solid rgba(238,234,229,.95);border-radius:18px;background:rgba(255,255,255,.72)
}
.step strong{display:block;font-size:14px;margin-bottom:6px}
.step span{font-size:12px;color:#717981;line-height:1.7}
.footer{display:flex;justify-content:space-between;align-items:center;padding:26px 0 40px;color:#81878d;font-size:11px}
.footer-mark{display:inline-block;width:7px;height:7px;border-radius:50%;background:linear-gradient(135deg,#efb2bc,#8cb1cf);margin-left:6px;vertical-align:middle}
[hidden]{display:none!important}
@media (max-width:930px){
  .hero-grid,.about{grid-template-columns:1fr}

}
@media (max-width:620px){
  .shell{padding:0 18px}
  .header{height:auto;padding:16px 0;align-items:flex-start;gap:14px;flex-direction:column}
  .nav{gap:16px;flex-wrap:wrap}
  .hero{padding:58px 0 44px}
  h1{font-size:46px}
  .lead{font-size:14px}

  .about{padding:24px}
  .section-title h2,.about h2{font-size:28px}
  .micro-grid{grid-template-columns:1fr 1fr}
}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}


/* Cards-only layout: no coverflow, rotations, or phone frames */
html { scroll-snap-type: none; }
.shell { max-width: 1280px; padding-inline: clamp(18px, 4vw, 60px); }
.hero { padding: clamp(56px, 9vw, 120px) 0 clamp(64px, 8vw, 100px); }
.hero-centered h1 { font-size: clamp(29px, 4.3vw, 62px); letter-spacing: -.055em; line-height: 1.35; margin: 0 0 20px; }
.hero-centered .lead { max-width: 790px; }
.section { padding: 46px 0 110px; }
.section-head { margin-bottom: 24px; }
.section-title h2 { font-size: clamp(27px, 3vw, 38px); }
.deck-wrap { margin: 0; }
.deck { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.deck .card { position: relative; min-width: 0; height: 100%; min-height: 340px; transform: none; opacity: 1; filter: none; }
.deck .card .visual { height: 182px; }
.deck .card .info { flex: 1; }
.deck .card[hidden] { display: none !important; }
.closing-screen { padding: 35px 0 80px; }
.closing-screen .about { margin: 0; }
.back-top { position: fixed; right: 28px; bottom: 26px; z-index: 40; width: 48px; height: 48px; border: 1px solid var(--line); border-radius: 50%; background: rgba(255,255,255,.93); box-shadow: var(--shadow); color: var(--ink); font-size: 22px; opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .2s, transform .2s, visibility .2s; }
.back-top.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.scroll-hint { display: none; }
@media (max-width: 900px) { .deck { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 620px) { .deck { grid-template-columns: 1fr; gap: 16px; } .deck .card { min-height: 0; } .hero { padding: 60px 0 68px; } .section { padding: 30px 0 70px; } .deck .card .visual { height: 185px; } }
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
