
:root{ --bg:#0e0e0e; --ink:#c9c9bf; --dim:#7a7a72; --hair:#1c1c1c;
  --coral:#ff5e3a; --paper:#ece9e1; --gold:#c9a24b; }
*{margin:0;padding:0;box-sizing:border-box;}
html{background:var(--bg);scroll-behavior:smooth;}
body{font-family:system-ui,-apple-system,'Helvetica Neue','Noto Sans',sans-serif;color:var(--ink);
  background:var(--bg);line-height:1.75;font-weight:350;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
h1,h2,h3{color:var(--paper);font-weight:300;line-height:1.2;letter-spacing:-0.01em;}
a{color:var(--paper);text-decoration:none;transition:color .25s;}
a:hover{color:var(--coral);}
.wrap{max-width:760px;margin:0 auto;padding:0 32px;}
.mono{font-family:'Courier New',monospace;}
.label{font-family:'Courier New',monospace;font-size:.68rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--dim);}
main{padding-top:96px;}
nav.top{position:fixed;top:0;left:0;right:0;z-index:30;display:flex;justify-content:space-between;
  align-items:center;padding:22px 36px;mix-blend-mode:difference;background:transparent;}
nav.top .brand{font-size:.95rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;
  font-family:'Courier New',monospace;color:#fff;}
nav.top .links{display:flex;gap:26px;}
nav.top a{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.78);}
nav.top a.active{color:#fff;}
/* hero */
.hero{position:relative;min-height:88vh;display:flex;align-items:flex-end;overflow:hidden;}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.9);}
.hero::after{content:"";position:absolute;inset:0;
  background:linear-gradient(to bottom,rgba(14,14,14,.4),rgba(14,14,14,.12) 38%,rgba(14,14,14,.88) 94%,var(--bg));}
.hero-body{position:relative;z-index:2;width:100%;max-width:760px;margin:0 auto;padding:0 32px 11vh;}
.hero .tag{display:inline-block;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;
  color:rgba(255,255,255,.8);border:1px solid rgba(255,255,255,.28);padding:8px 16px;margin-bottom:34px;border-radius:100px;}
.hero h1{font-size:clamp(2.3rem,6.4vw,4.6rem);color:var(--paper);text-shadow:0 4px 60px rgba(0,0,0,.9);margin-bottom:22px;}
.hero .sub{color:var(--gold);font-size:.85rem;letter-spacing:.08em;margin-bottom:14px;}
.hero .lead{color:rgba(236,233,225,.85);font-size:1.02rem;max-width:46ch;}
.hero .cta{margin-top:34px;display:flex;gap:14px;flex-wrap:wrap;}
.hero .zh{font-size:.95rem;color:rgba(255,255,255,.58);letter-spacing:.42em;margin:-4px 0 14px;}
.banner{position:relative;min-height:360px;display:flex;align-items:flex-end;overflow:hidden;border-bottom:1px solid var(--hair);background:var(--bg);}
.banner::before{content:"";position:absolute;inset:0;background-image:var(--bimg);background-size:cover;background-position:center 38%;filter:brightness(var(--bb,2.2)) saturate(1.2);}
.banner::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(14,14,14,.30),rgba(14,14,14,.60) 45%,rgba(14,14,14,.95));}
.banner .bwrap{position:relative;z-index:2;width:100%;max-width:760px;margin:0 auto;padding:0 32px 38px;}
.banner .label{color:rgba(255,255,255,.72);}
.banner h1{font-size:clamp(1.9rem,4.8vw,3.2rem);text-shadow:0 4px 44px rgba(0,0,0,.92);margin:14px 0 8px;}
.banner .meta{font-size:.78rem;color:rgba(255,255,255,.62);letter-spacing:.06em;font-family:'Courier New',monospace;}
.masthead{position:relative;height:210px;overflow:hidden;border-bottom:1px solid var(--hair);background:var(--bg);}
.masthead::before{content:"";position:absolute;inset:0;background-image:var(--bimg);background-size:cover;background-position:center 55%;filter:brightness(1.9) saturate(1.2);}
.masthead::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(14,14,14,.30),rgba(14,14,14,.86));}
footer .zhf{font-size:.72rem;color:var(--dim);letter-spacing:.26em;margin-left:16px;vertical-align:2px;}
/* sections */
section{padding:96px 0;}
section.tight{padding:64px 0;}
.sec-label{display:block;margin-bottom:24px;}
h2{font-size:clamp(1.5rem,3.4vw,2.3rem);margin-bottom:24px;}
.lead{font-size:1.12rem;color:var(--paper);line-height:1.85;margin-bottom:20px;}
p.body{color:var(--dim);font-size:.95rem;margin-bottom:16px;}
.quote{border-left:2px solid var(--coral);padding:6px 0 6px 26px;margin:40px 0;}
.quote p{font-size:1.18rem;color:var(--paper);line-height:1.65;}
.btn{display:inline-block;padding:14px 36px;border:1px solid var(--coral);color:var(--paper);
  font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;border-radius:100px;transition:all .3s;}
.btn:hover{background:var(--coral);color:var(--bg);}
.btn.ghost{border-color:#2a2a2a;}
.btn.ghost:hover{border-color:var(--coral);background:transparent;color:var(--coral);}
/* parts cards */
.parts{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:12px;}
.pcard{border:1px solid var(--hair);padding:26px 22px;border-radius:10px;transition:border-color .3s;}
.pcard:hover{border-color:var(--coral);}
.pcard .num{font-family:'Courier New',monospace;color:var(--coral);font-size:.7rem;letter-spacing:.18em;margin-bottom:14px;}
.pcard h3{font-size:1.05rem;margin-bottom:10px;}
.pcard p{color:var(--dim);font-size:.84rem;line-height:1.7;margin-bottom:16px;}
.pcard a{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);}
.pcard a:hover{color:var(--coral);}
/* rows */
.rows{margin-top:10px;}
.row{display:flex;align-items:baseline;gap:18px;border-top:1px solid var(--hair);padding:15px 2px;}
.row:last-child{border-bottom:1px solid var(--hair);}
.row .t{flex:0 1 auto;color:var(--paper);font-size:.95rem;}
.row a.t:hover{color:var(--coral);}
.row .h{flex:1 1 auto;color:var(--dim);font-size:.8rem;font-style:italic;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap;}
.row .m{flex:0 0 auto;color:var(--dim);font-size:.7rem;letter-spacing:.06em;font-family:'Courier New',monospace;}
.row .m .soon{color:#54544e;}
.partrow{margin-top:34px;}
/* page head */
.crumbs{font-size:.72rem;color:var(--dim);letter-spacing:.04em;margin-bottom:30px;}
.crumbs a{color:var(--dim);} .crumbs a:hover{color:var(--coral);}
.page-head{margin-bottom:44px;}
.page-head h1{font-size:clamp(1.8rem,4.6vw,3rem);margin:14px 0 16px;}
.page-head .meta{font-size:.78rem;color:var(--dim);letter-spacing:.06em;font-family:'Courier New',monospace;}
/* resume */
.resume p{font-size:1.05rem;line-height:1.85;color:#d6d3cb;margin-bottom:20px;}
.sec-mini{font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);
  font-family:'Courier New',monospace;font-weight:400;margin:54px 0 26px;}
.passage{border-left:2px solid var(--coral);padding:4px 0 4px 26px;margin:30px 0;}
.passage .t{font-size:1.16rem;color:var(--paper);line-height:1.65;}
.passage .src{display:block;margin-top:12px;font-size:.68rem;letter-spacing:.14em;
  text-transform:uppercase;font-family:'Courier New',monospace;color:var(--dim);}
.passage .src a{color:var(--dim);} .passage .src a:hover{color:var(--coral);}
.notice{border:1px dashed #2b2b2b;border-radius:8px;padding:18px 22px;color:var(--dim);
  font-size:.9rem;margin:8px 0 30px;}
.cta-block{text-align:center;margin:64px 0 8px;}
/* fulltext */
article.read{font-family:Georgia,'Times New Roman',serif;font-size:1.09rem;line-height:1.9;color:#d8d5cd;}
article.read p{margin-bottom:22px;}
article.read h3{font-family:system-ui,-apple-system,sans-serif;font-size:.8rem;font-weight:400;
  letter-spacing:.2em;text-transform:uppercase;color:var(--dim);margin:52px 0 22px;}
article.read h4{font-family:system-ui,-apple-system,sans-serif;font-size:.86rem;font-weight:450;
  color:#a9a69e;margin:38px 0 16px;}
article.read strong{color:var(--paper);font-weight:600;}
article.read hr{border:none;border-top:1px solid var(--hair);margin:42px auto;width:120px;}
article.read blockquote{border-left:2px solid var(--coral);padding-left:22px;color:var(--paper);
  font-style:italic;margin:26px 0;}
article.read ul{margin:0 0 22px 22px;}
.backline{margin:54px 0 0;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;
  font-family:'Courier New',monospace;}
.backline a{color:var(--dim);} .backline a:hover{color:var(--coral);}
/* pager */
.pager{display:flex;justify-content:space-between;gap:24px;border-top:1px solid var(--hair);
  margin-top:56px;padding-top:26px;font-size:.78rem;color:var(--dim);}
.pager a{max-width:46%;color:var(--dim);} .pager a:hover{color:var(--coral);}
/* footer */
footer{padding:64px 0 56px;border-top:1px solid var(--hair);margin-top:80px;}
footer .fwrap{max-width:760px;margin:0 auto;padding:0 32px;display:flex;justify-content:space-between;
  align-items:baseline;gap:40px;flex-wrap:wrap;}
footer .fb{font-size:1.4rem;color:var(--paper);font-weight:300;}
footer .fn{color:var(--dim);font-size:.82rem;margin-top:8px;max-width:36ch;}
footer .invite{max-width:640px;margin:64px auto 0;padding:0 32px;text-align:center;}
footer .invite .i1{font-size:1.18rem;color:var(--paper);font-weight:300;letter-spacing:.015em;line-height:1.6;}
footer .invite .i2{font-size:1.04rem;color:var(--dim);margin-top:12px;line-height:1.7;}
footer .invite a{color:var(--coral);text-decoration:underline;text-decoration-color:rgba(255,255,255,.28);text-underline-offset:4px;}
footer .invite a:hover{color:var(--paper);}
footer .fl{display:flex;gap:28px;flex-wrap:wrap;}
footer .fl a{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);}
footer .fl a:hover{color:var(--coral);}
.copy{max-width:760px;margin:44px auto 0;padding:22px 32px 0;border-top:1px solid var(--hair);
  font-size:.7rem;color:#484843;text-align:center;}
@media(max-width:860px){.parts{grid-template-columns:1fr;}.hero h1{font-size:2.1rem;}.banner{min-height:270px;}}
@media(max-width:640px){nav.top{padding:18px 20px;}nav.top .links{gap:14px;}section{padding:70px 0;}}
