/* Dannya Works — "Quiet Paper" (light editorial variant)
   静謐・上質・余白主体。単色シアンのD マーク。 */

/* Webフォントは各HTMLの<head>で preconnect + link 読み込み（@importはレンダリングブロックするため不使用） */

:root{
  --paper:#f4f7f9;
  --paper-2:#eaf0f3;
  --surface:#ffffff;
  --ink:#14222e;
  --ink-soft:#46586a;
  --mist:#5d6f7e; /* 4.5:1 (WCAG AA) を満たす青灰 */
  --cyan:#127ea1;
  --cyan-bright:#1f9fc4;
  --aqua:#e2f3f8;
  --line:rgba(20,34,46,.10);
  --line-2:rgba(20,34,46,.16);
  --serif:"Shippori Mincho","Hiragino Mincho ProN",serif;
  --sans:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --fr:"Fraunces",Georgia,serif;
  --max:1080px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--sans);color:var(--ink);background:var(--paper);
  line-height:1.95;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
::selection{background:var(--aqua);color:var(--cyan)}
.wrap{width:min(100% - 3rem,var(--max));margin-inline:auto}

/* header */
.site-head{
  position:sticky;top:0;z-index:30;background:rgba(244,247,249,.82);
  backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--line);
}
.site-head .in{display:flex;align-items:center;justify-content:space-between;
  width:min(100% - 3rem,var(--max));margin-inline:auto;padding:1.05rem 0}
.brand{display:flex;align-items:center;gap:.6rem}
.dmark{width:30px;height:34px;color:var(--cyan-bright);display:block}
.bw{font-family:var(--serif);font-weight:600;font-size:1.16rem;letter-spacing:.04em;color:var(--ink)}
.nav{display:flex;align-items:center;gap:2rem}
.nav a{font-size:.84rem;letter-spacing:.04em;color:var(--ink-soft);transition:color .25s}
.nav a:hover{color:var(--cyan)}
.nav .cta{color:var(--cyan);border:1px solid var(--line-2);border-radius:999px;padding:.45rem 1.1rem}
.nav .cta:hover{background:var(--aqua);border-color:var(--cyan)}
@media(max-width:720px){
  .site-head .in{flex-wrap:wrap;row-gap:.4rem;padding:.9rem 0}
  .nav{width:100%;flex-wrap:wrap;gap:.7rem 1.3rem}
  .nav a{font-size:.8rem}
  .nav .cta{padding:.35rem .9rem}
}

/* hero */
.hero{position:relative;padding:clamp(5rem,13vw,9.5rem) 0 clamp(4rem,9vw,7rem);overflow:hidden}
.hero .wrap{position:relative;z-index:2}
.eyebrow{font-family:var(--fr);font-style:italic;font-size:1rem;color:var(--cyan);
  letter-spacing:.02em;margin-bottom:1.5rem;display:flex;align-items:center;gap:.7rem}
.eyebrow::before{content:"";width:30px;height:1px;background:var(--cyan)}
.hero h1{font-family:var(--serif);font-weight:700;line-height:1.5;
  font-size:clamp(2rem,5vw,3.5rem);letter-spacing:.02em;color:var(--ink);
  margin-bottom:1.8rem;max-width:16ch}
.hero h1 .em{color:var(--cyan)}
.lead{font-size:clamp(1rem,1.4vw,1.12rem);color:var(--ink-soft);max-width:58ch;margin-bottom:2.6rem;word-break:auto-phrase}
.hero-cta{display:flex;flex-wrap:wrap;gap:1.4rem;align-items:center}
.btn-fill{background:var(--cyan-bright);color:#fff;border-radius:999px;padding:.85rem 1.7rem;
  font-size:.92rem;transition:.28s;display:inline-flex;align-items:center;gap:.5rem}
.btn-fill:hover{background:var(--cyan);transform:translateY(-2px)}
.btn-text{color:var(--ink);font-size:.92rem;border-bottom:1px solid var(--line-2);padding-bottom:.25rem;transition:.25s}
.btn-text:hover{color:var(--cyan);border-color:var(--cyan)}

/* section base */
.band{padding:clamp(4rem,9vw,7rem) 0;border-top:1px solid var(--line)}
.label{font-family:var(--fr);font-style:italic;font-size:.95rem;color:var(--cyan);
  margin-bottom:1.1rem;display:flex;align-items:center;gap:.6rem}
.label::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--cyan-bright)}
.h-sec{font-family:var(--serif);font-weight:600;font-size:clamp(1.5rem,3vw,2.2rem);
  line-height:1.55;letter-spacing:.02em;color:var(--ink);margin-bottom:1rem}
.sec-lead{color:var(--ink-soft);max-width:54ch}

/* craft */
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.2rem;margin-top:3rem}
.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:1.9rem 1.7rem;transition:.3s}
.card:hover{border-color:var(--line-2);transform:translateY(-4px);box-shadow:0 24px 50px -34px rgba(20,60,90,.3)}
.card .num{font-family:var(--fr);font-style:italic;color:var(--cyan);font-size:1rem;margin-bottom:1rem}
.card h3{font-family:var(--serif);font-weight:600;font-size:1.15rem;margin-bottom:.5rem}
.card p{color:var(--ink-soft);font-size:.95rem}
.card .soon{display:inline-block;margin-top:.9rem;font-size:.72rem;letter-spacing:.08em;color:var(--cyan);
  background:var(--aqua);border-radius:999px;padding:.22rem .8rem}

/* product */
.prod{margin-top:2.8rem;display:grid;grid-template-columns:1fr .85fr;gap:2.4rem;align-items:center;
  background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:clamp(1.8rem,4vw,3rem)}
@media(max-width:760px){.prod{grid-template-columns:1fr}}
.prod .badge{display:inline-flex;align-items:center;gap:.5rem;font-size:.74rem;letter-spacing:.05em;
  color:var(--cyan);background:var(--aqua);border-radius:999px;padding:.3rem .9rem;margin-bottom:1.1rem}
.prod h3{font-family:var(--serif);font-weight:700;font-size:clamp(1.7rem,3.6vw,2.3rem);margin-bottom:.3rem;letter-spacing:.03em}
.prod .tag{font-family:var(--fr);font-style:italic;color:var(--cyan);font-size:1.1rem;margin-bottom:1rem}
.prod p{color:var(--ink-soft);max-width:42ch}
.prod .meta{margin-top:1.5rem;display:flex;gap:1.6rem;flex-wrap:wrap}
.prod .meta div{font-size:.82rem;color:var(--mist)}
.prod .meta strong{display:block;color:var(--ink);font-size:1rem;font-weight:500;margin-top:.15rem}
.prod .more{margin-top:1.8rem}
.prod-visual{aspect-ratio:4/5;border-radius:16px;background:linear-gradient(170deg,#eef5f8,#dfeef3);
  border:1px solid var(--line);display:grid;place-items:center}
.prod-visual .dmark{width:38%;height:auto;color:var(--cyan-bright);opacity:.85}

/* about */
.about .body{font-size:clamp(1.05rem,1.5vw,1.18rem);color:var(--ink-soft);max-width:52ch;
  margin-top:1.2rem;font-family:var(--serif);font-weight:500;line-height:2.1}
.about .body .em{color:var(--ink)}
.pillars{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2.2rem}
.pillars span{font-size:.86rem;color:var(--cyan);border:1px solid var(--line-2);border-radius:999px;
  padding:.45rem 1.1rem;background:var(--surface)}

/* contact */
.contact{text-align:center}
.contact .label{justify-content:center}
.contact .h-sec{margin:0 auto 1rem;text-align:center}
.contact p{color:var(--ink-soft);max-width:40ch;margin:0 auto 2rem}
.mailbtn{font-family:var(--fr);font-style:italic;font-size:clamp(1.3rem,3.2vw,2rem);color:var(--cyan);
  border-bottom:1px solid var(--line-2);padding-bottom:.25rem;transition:.3s;overflow-wrap:anywhere}
.mailbtn:hover{color:var(--cyan-bright);border-color:var(--cyan-bright)}

/* footer */
.foot{border-top:1px solid var(--line);padding:3rem 0 3.4rem;margin-top:2rem}
.foot .in{display:flex;flex-wrap:wrap;gap:1.4rem;justify-content:space-between;align-items:flex-start}
.foot .bw{font-size:1rem}
.foot .col{display:flex;gap:2.4rem;flex-wrap:wrap}
.foot .col a{display:block;font-size:.85rem;color:var(--ink-soft);margin:.3rem 0;transition:color .25s}
.foot .col a:hover{color:var(--cyan)}
.foot .col .ttl{font-size:.74rem;letter-spacing:.1em;color:var(--mist);text-transform:uppercase;margin-bottom:.5rem}
.foot .copy{width:100%;margin-top:2rem;padding-top:1.4rem;border-top:1px solid var(--line);
  font-size:.78rem;color:var(--mist);letter-spacing:.03em}

/* legal */
.legal-head{padding:clamp(4rem,9vw,6rem) 0 2.6rem;border-bottom:1px solid var(--line)}
.legal-head h1{font-family:var(--serif);font-weight:700;font-size:clamp(1.8rem,4.5vw,2.6rem)}
.legal-head .en{font-family:var(--fr);font-style:italic;color:var(--cyan);margin-top:.4rem}
.draftnote{background:var(--aqua);border:1px dashed var(--cyan);color:var(--cyan);border-radius:12px;
  padding:.8rem 1.1rem;font-size:.85rem;margin-top:2rem}
.legal{padding:clamp(2.6rem,6vw,4rem) 0 5rem}
.legal .doc{max-width:740px}
.legal h2{font-family:var(--serif);font-weight:600;font-size:1.2rem;margin:2.4rem 0 .8rem;
  padding-top:1.5rem;border-top:1px solid var(--line)}
.legal h2:first-of-type{border-top:0;padding-top:0;margin-top:0}
.legal p,.legal li{color:var(--ink-soft)}
.legal ul,.legal ol{margin:.5rem 0 .5rem 1.3rem}
.legal .updated{color:var(--mist);font-size:.85rem;margin-bottom:1.8rem}
.legal table{width:100%;border-collapse:collapse;margin:.5rem 0}
.legal th,.legal td{text-align:left;padding:.8rem 1rem;border:1px solid var(--line);font-size:.95rem;vertical-align:top;overflow-wrap:anywhere}
.legal th{background:var(--paper-2);font-weight:500;width:34%;color:var(--ink)}
.fill{background:var(--aqua);color:var(--cyan);border-radius:4px;padding:0 .35em;font-weight:500}
.backlink{display:inline-block;margin-top:2.6rem;color:var(--cyan);font-size:.92rem}

.rise{opacity:0;transform:translateY(18px);animation:rise .8s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes rise{to{opacity:1;transform:none}}
.d1{animation-delay:.05s}.d2{animation-delay:.16s}.d3{animation-delay:.28s}.d4{animation-delay:.4s}
@media(max-width:560px){.legal th{width:42%}.foot .col{gap:1.4rem}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rise{opacity:1;transform:none}}
