/* PhotoToCalendar — Terms & Privacy page.
   Loaded as an external file because mathcoder.com sends
   Content-Security-Policy: style-src 'self' (inline <style> is blocked).
   Colours follow the app's theme.js. */

:root {
  --bg: #F6F7FB;
  --surface: #FFFFFF;
  --sunken: #EDEFF6;
  --border: #E3E5EF;
  --text: #1B1C25;
  --text-2: #4A4E62;
  --muted: #6E7285;
  --primary: #6C63FF;
  --accent: #5A51E8;
  --accent-soft: #EFEEFF;
  --pill: #FFFFFF;
  --topbar: rgba(246, 247, 251, .85);
  --shadow: 0 1px 2px rgba(27, 28, 37, .04), 0 6px 20px rgba(27, 28, 37, .06);
  --radius: 16px;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #14161E;
    --surface: #1B1D27;
    --sunken: #242734;
    --border: #2C2F3C;
    --text: #F1F2F7;
    --text-2: #C3C6D4;
    --muted: #8E92A6;
    --accent: #A9A2FF;
    --accent-soft: #26264A;
    --pill: #3A3D52;
    --topbar: rgba(20, 22, 30, .85);
    --shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 6px 20px rgba(0, 0, 0, .25);
    color-scheme: dark;
  }
}

/* ---------- base ---------- */
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans", "Helvetica Neue", Arial, sans-serif;
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  overflow-wrap: break-word;
}
a { color: var(--accent); text-underline-offset: 2px; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
p { margin: 10px 0; }
ul { margin: 10px 0; padding-left: 22px; }
li { margin: 6px 0; }
li::marker { color: var(--accent); }
strong { color: var(--text); font-weight: 650; }

.skip-link {
  position: fixed;
  top: 8px;
  left: 8px;
  z-index: 20;
  padding: 10px 16px;
  background: var(--surface);
  border: 1px solid var(--accent);
  border-radius: 8px;
  transform: translateY(-180%);
}
.skip-link:focus { transform: translateY(0); }

.app-icon {
  display: inline-block;
  flex: none;
  background: url("data:image/webp;base64,UklGRqwTAABXRUJQVlA4WAoAAAAQAAAAnwAAnwAAQUxQSGcCAAABoIRtkyHZ+jOjjm1e27Zt2/betm2tbHtt27atvpMR8V80FxXXdyJiAtBxqgBgrm3PuOelzxrOuuz79Ombj1pvIgDJ6G0SAEsf/9gPrOWPbtppIiC5FwIM3/1BkjQ19zpxU3WSn1+wICBdS4JB+75Kspizll2V/PmiGZFSdzKw5pOkGuvclfx0X0C6IRh6JqnGunclb54I6azCnI/SjBF05SuLQDqpsOrHLIxi4ecrQtqrsMGPVMZR+fWykHYE6zZojKTykzmRWwmW+J7GWCqfGp5Ts5ymvktlNAsvgzRJku+jMp6Fm0F+J9ifhQE1f29szkBOc/1gHhEqz4EAGbdQGVK3sgREsCKNQVXejpxxDzUq7mVhYCl3hrXwXOBClrg4Pxg77HVaXOjceFV3BlZ56Rm0yDhfeYkeGbJh7Pd/v//7/d/v/38AN4Lj/Cg4xpfD89A3sVFedz8tNgedHRvnRlvSA+P8ftZZP6HHRfloljtd41J4ErAvA+NcDjL1W/eoqD9bpRG4jBoW7otqeJq/YR4T87dGpDQk4TyWmBTuAMEQpAnvu0VEeTcyMASCjVg8HsZPZkhNUOFElnC42hoQNEmSrmEJhhfuhwrNkNLAm1li0cdTUaEVMgbcyr5AeOGlkNQOMgbfwxIGM56PnNAWMobeQLUYFPJQ5IQOkJFOJUsATPnhRsgJHSElbPsJXb3eTMlrpkLQZhtIgpkuJ1mstlyVfHZTQNAdQICV73CSalY3bqZO8oV9BiNndA05A4ud+qKzpj+8YtNBgKDDDgDJwKDlDrz5ue/r5cf3nrvn6A0nAKgSOgUAVlA4IB4RAABQSQCdASqgAKAAPj0cjEQiIaES6OXMIAPEsQBqRR3/cuvLl3vf+O86Stf2r+l/sD11+AXQ/l88zf7P7u/eJ/ev617hPyd/s/cA/Ub/WelJ6mv6r/nPUB/N/7N/2f8N7xv92/2/+Z9y3+M/uP/S/yP9m+QD+5/770bvYI/YD2AP5j/ifTR/cH4VP2m/cD2pv+9eof8P+2dRt8b/ZvPB0H2nfyX8IZ4/5/vr+MmoF7K3o8AH5v/XP+X4eP9h6QfyP+Q9gD8w+QQ8e9gP9J+hVo2fPv9T7DX8s/t3pi9SB+ypYiAKCaqPUPC0KJN6Ypm5nSiPipsDiakKE5MFx+TmNOIvkXydvE4jM8URfS3GxedZ1FffuQCm5ETcxGdjtYQzjx78ZztdrwrVdsm2axNMu24X78AHgDto9nkpcvR39M07C1EU/CggkHFWzLRnQR0eqvFnMD8F5tiGVRXwCoqKoj4YlpecKFlJmHWfYmCP2WnQucKc+rAI9qg7EWG0jevr+MWR5VcPapK/IlgtnA9MIKXFHk716U0YJGmrbH5c67jTTGgzMD7rN28ghpMw3l4JKlnyLg0DBLVVgRrZcxn8k5c6qMvd3BKi6fYfBdsjxYpM/5/S5rzyad2cVW6Xs5Kd6wt2pNubaNJmVyIPQ7xCgcy6uJbsnn16RBDdBf8VW1iTy3Brmge8f4HLHBprowMk/lZktYliPxRl1MxxmSMuvCEjbojMUTe2lG+dq79xZaZWrNwSGM6fdasXGUa3rNqa1p/lC3kqb7TIadWhKV2+VHDXECAAAP7/vd9h3diZLmW+T8Glrsl//d63j6rxQ/Ryg7nddDk3TrSkMSAYV0IhuPqZqQtzZ3f2GdtDDJ4GA1ynHj2KLv7J/yyvBc0tincQjgn+DsMADVjv6FLCTn3+RBSokLkzSlhFRkgmyBQgnH7asjTSRfWJJ33Ss/hFUvxAVr9nXITqgsBAlmTq5PbTdzEjmS4V/6Wx05yFuX/aIXmGtSYOyRLpB/KebGCXMhFaqsuyhIaz/m0NriWCt4gt8P72hcWdjxzSnL+TVOW7Ll+NggQbh0e6BqJcqOBXSM51/DDAQ/UZv2k4w2oazG/t2AD7WgXq6qkqr8q/nl4Wws8fnyNoeKZXQvqBK8Heiv7+8ynIW9sng1/oZDf1Kr/uXU5FF+toY/K7VcrzNuULgbqHuhT6zcmn2S+b/OJ7bR9fiIr3q59pDN3g56yVqYOEhCBOm9PySHOqNSRbpz8mYh74Dcbuc1aUqRhkQAt1mEu/U6eLpSz/DVKDWohJmTJybmdnZqlbNtmSd+Wf/vEnAchbk/ZJR7bpcxXam1p6giS9YLpB8AQYmPn6txTHJBy/pOXX7NRUBwdEkvt11hvbVmIEdUho6J46HvpPsNF3ommItq3i2+c3K6uJkzRleKuSjQX6k37Dge7nPMsXXYlJGifVfJf2b1Ypx37IrIw36Af0E47myJs4VyV4nhglp1F/r/nUefUtK6ICL469tb1jBvMHD5xrI6ddsZtMBmUFumqvg6Kyu17JO85hX7jO3EcBwtcd0vhj6eYBtGHKL7/lYDzBlBIXZ9yOTj7PljL7Ehm5rj81+0K6d31tm8kiGZA6LV39pIBcxKjPReyZ9RH4zs1sCmguxYfeWmIEbK/6dLMcmfT2HqctTmOupRIn5hVc/9+vsa/WdjSIiSjsWewCswGW4fQRB5RrNdik97JkbLC/rivYsjs0QuHG3o2burhWp8fyCjuA9B3f2brA8XefyK73666pc2EUya/n45G9p8CaWNzX45KbGtSPJbyCeKk6aeFDzzS842choQ1ar5Y9Iga5Kp3yqfx+bfULhLb7coQ/yTJXW8QGiEDqzoBCftsqXbxboi5N3Ye7ubCycxP9hno+PmTyT1ijqodeulvcVP2hkdGw3U2gFMoFnwhOW1Rdxfta8D9MuWYFc5v+Ms2kWZllyicsOcNWOX81upyyBf9mC0kQsBZJqN+HhaHEXTH3G/vEQOxw8zG7l3U0AwYkXZWQgjI9DSUfZk21AR5U/7o9gmW9/Ob5gHTD6Q4aDiRr/R+L3rN4rbA06TjrRk/SDAT6LR7VNhmoCYHi5vcgT/4ucf/Sh+SyT9cgEjgc+szBuKbbUeUvu761Wj+RirAD3HiT3l2JEnKTf0yjwQ2LFHmyYb7T32HQS/PJNj/u3qYoCpSId+bux4fCsKaWQAxeLY/CxUOTu0nK5M+kCVYlTFdPULfWllHDAHMK/Rh1Xdg6miORT1LE4JulYU66RiosQPZmVZ3O1600t4mEXp3JBPzK+8Fhzsm5yg0I6nij4x9YgvasV8sQsaT6AMhF63axeB47LVap5pvZHowEi5lMsjTd99xaOQEsKRwvKtobm89WoPac1VmzRH6ZsOIyk2kOIQzdlkAwhCUQFC5B6mRZ70jeHmuq1qHcyZqalUMstmsZv3VHd2gQzE5r4d6sL6Jkm29yJwJFytnH8QXNsaG3KqvyPAaWApqDOsf3StZ+/AEECLSFVr8Q3TVpZeSpDYegvq/6fiakUCbmVnECwqcCxKRR13+B1JAUp/N8TwX0ECr0LMQu037StfM5UVXeii+sY3f8lTZbFa6lAEFwWOtz+D9yob+k4kheyofhcuQ1BJ6m73u8wkPukb7spcGIDXdlDYNkEKv4iEZC+cvbXXbJQTQUDRKb2uFgKO/XLUksw+pKCu+ctfWEd99q5+8U9av4hU4NxenJnr65t+ajYqZQZkUkv9AEcBTa6fFt5BAIvX0wX4p1dQ6P4AJCAWllQQYmMUrPbbcuDN3hKFcVxHFEZMHYBK4+1fNv76pkGz9gWTBISe9+MNrkG/O4UDu4izeTlU5ThQytEggXu4qJWa4WGVDul2fpfAzrQ+WGz0IuO/8d1CK6PhDVEr5QsmlWJHs5rRVi7Q0sjo+md10Vv20Y5mriPREhq/Z56TaRWlOmXZ3X0Drgat96huhJ3QXpF/RTqLU0tNmW+pJw9fx6PQP7kRa2CwmiEvdcUPuSRb82P7sDUuti57kZ3CHZ+VPLs6xbL4fyVZ1BiRqAt7jvwNQjanbuATunv38Q1xW/DnLEdvI85CMFY2czOX3Kn69wZ+pF0FJUoJsym/PX4gQAwLCCd2LbmBF0XY8lxPoTVMTu6Wch+7ZctufsS2Z+rwO+2/WNyd0oF0WYmsRMPKj/e+yoXESaeHiNty32WpOB1EZQo6nS/9LnJKbq6OiDsMRMYNOxlqqtVbvDxN8urjErA8CXAeEqo7asBKjnBJcwgVkB3dzLkL8NplGM4BCEc/Hbxk6ivimmgSSbyrwQmfg58EqtQrbDtrafMJw1GELdPF6UHqczYK9NCLmnMnCOLljFZjK/B/asijEWHBjObd69LqC2cDJJTQObQPvCKfwYNZd96BIbul3DlMfrgk3LfquynhxMPVbDU9GaFf13+z016ECVXJO//Bt15uJ4fWoTp3y+Wi/QY6VQgvXMbt63T9z8YddafiPp+CYuCNxSxwKevirEZwclUdICeLZTNr5ebcypyoiyJpkmJm4j8xSxtd1IXH1TGCVfD6H6OEm+X22fcG5UBRLGNFFZeJvuLawEGbnipJB9sDc1La42TFKLOmV3S747wJxlecAWk6rJr8yBw00T4AWqg77cEdtJnpZ8c/u5NXUiyF2tuB8TAoIDj70Qe/EtYiDblRRVL2K/5vfK2oRGYYcc3ThjZxWpIDW7NvKDtIVdVr81SVVnhyvMtFII+FQH19/uB4VXLKgkxdlpZ0e6/ms+oxXML3TtaocNgRLAxjQKJuCo5geytxBLEWnnxhK074pFgkRM35UPhnpgcNbFjXcEnGn8F2ofSh2G7A0FHW5vyUf2kjQk1fhRdObUDMYV8fdRc95YLJ6GtuztBJgOXyjuW06XPXllm0X2dPjCHAlB6jW9n/mMK5ylSG4+81JmEj9CF6h4Qr4OxpOE1h4rvLPUnOo1wAkXePZXg8/vc1AiBFoG1x0GQf2B+hPgoOW2+X1A+Mun7cwIZTLfJ6shc5rxDyX/m7o7kK2zbO6kK7T+cxQgl9lGxJwr7P3JIV7sBJhCqcm9Pk4cilopIo0zuyLPbGXTRRIIh2TROUUjYJyb3Nyw/FcP231g1RDNfls+KECNl1GT+DUyqakwlBFRP9kB7mfLYpM/T9mP8IdUnuk/KKI8AvuOYQU9pXM8SWyREAuWjqnOZ+9z87UnZwBRFJTsJ+3pxvuxQ4l5Xwvuey5glJI71GKz2LYS0jCMgPlDiXmXuMkxfUazhuc3pR95DzEy8OZwMRzOLOsoEtwU/yi5hHbdvNhZX1uQWoTfq3n8yBGyWhAyTTt+P5T6Duf4R/RwDiRP44oha+uHzowMVve3kiU9gxNKJ0PAXE/4Yrkrq8qbefCgWJEZNFamEma2PVGIiGtTkQFEq0+SbOcYjITYWFC3FEwKPMbfQtYSAGhZCLbEsNw2vUCZP9S0p1LPYDW3t1hyhqLnrRjoY7iEK2BQsPsqncPYBebUTTMfGNM8hhAevoOlYh+Igmuv8F+XGdUFbaLR7aCVbhff+wF3TthtTyMRflkpTrwzwDh8ky+Czro3dpvNagJ5s2SJlWae8nSe11K0l83vBAoqhZCyZCukh7p/x2sjI2zHRyjwqNIf3/d9O5I2dMhE6m0ZS88KaVoO2vZ4eJZ3eN+uvd2yfPDkH9P+ohicRjAwHJQcCvueHSygHkHviCQ/WAB610LdNfgHsSDHfq/iGpedgtMMjn37IBX9JOUiGM4jTLvddGggrmzvf4F9TYvdFxHZ+Giak0/XT+xUSV4rcJTYyQHOK6HMnlzJ51xbI6c3d11a3WGSFkzokeY3RQd2rpesHXNQL96BzR+HUKnBNvf4l6fAdFEsABQfTujq+WjIKiMAb+SfPlu2r6Pm2RztjEZ4FHYcroejAUK7XN9yCt8R73/2y62Q/khJ7JvtWLYmf9Gv2ar9gom7p8dsomaDk/oc9uOUzfoLNUsU9ay+XtvS/+xT/1Wp3L59n9L5snD1L0gwIy/gRT7iTLDiA+8ywHsqqAcqgq0LX8FiVyQcuHJkHu76KVjDPwQNCt4zWpUC2dr8csLxa/vvnxb244mqiVMn8OISd9PvF4if3RNwZdSwtTGf6ecuvDGjlgKSPSp80NfqLdcqi0NoSmIIbYddvFxfHBaDAM+gT/XGl0IMDekunKZ54tzL2oukCC9omNg9+IoRFSfLJ07FX4tq3U1tPgw2UeFFH3dMQhep/37BguLDESN2kxPZ7n8tbR47EGLWWsTgsH6vy8+0Ixfw/CkzHB1RHo6H6+nsIedtjGGIed1NO7SBskpKXTdK5c+Ix5i2ctzeOTj0OkPIFAIlg9ZYuf39nqio3T1oPfuMoDwUWiPSxn6XGsP7+9oInKf94K/kkK65azX4iezk51YYPTxRTqG09VoysjMq2nWQ5Bg5EzeFQWMzBGjXUQtZ6cX/HjQ3JS+NUMChDLFHxMnFZOZLheVXRQHe35dN8PptU031QhrhijmbpP9j10XlOO17WeshUOaia5XQgpOT1zLbPg4DvmE5UAobglxZgvC/eYhuErb8HjLCZvM0h7Phoz/8TAK/tV+dF+YZSYfpuv/yCSWBcohr/7NS//Fl0laLVuLJLi34KyYbqXrDtL/pO/2muOh4o/oRdLafe7obgY5yVRxAP3vJ51QHPZDkAakkqxTEaXp+kUAsTxrgwuuVyYg4F1q4jU3L8+lJHEkkqeLzhXJ6AmVjl+1Ab/GgcVIIHiwe9A+HxHVOMEeIh5Q1YQoyNc4xFaFn4W3ylEolCM+h29xuf3Da5g+tbzFr2fGsswv9adfm2BsLY4AAAA==") center / cover no-repeat;
}

/* ---------- top bar ---------- */
.topbar {
  position: sticky;
  top: 0;
  z-index: 10;
  background: var(--topbar);
  -webkit-backdrop-filter: saturate(180%) blur(14px);
  backdrop-filter: saturate(180%) blur(14px);
  border-bottom: 1px solid var(--border);
}
.topbar-inner {
  max-width: 760px;
  margin: 0 auto;
  padding: 10px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.brand {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  color: var(--text);
  font-weight: 650;
  font-size: 16px;
  text-decoration: none;
}
.brand .app-icon { width: 32px; height: 32px; border-radius: 8px; }
.brand-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.header-nav {
  display: flex;
  flex: none;
  align-items: center;
  gap: 6px;
}
.header-nav a, .print-button {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--text-2);
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
  padding: 12px 10px;
  border-radius: 8px;
  text-decoration: none;
  cursor: pointer;
}
.header-nav a:hover, .print-button:hover {
  color: var(--accent);
  background: var(--accent-soft);
}

/* ---------- hero ---------- */
.hero {
  background: radial-gradient(900px 360px at 50% -80px, var(--accent-soft), transparent 72%);
}
.hero-inner {
  max-width: 760px;
  margin: 0 auto;
  padding: 44px 16px 8px;
  text-align: center;
}
.hero .app-icon { width: 84px; height: 84px; border-radius: 20px; box-shadow: var(--shadow); }
.eyebrow {
  margin: 18px 0 4px;
  color: var(--accent);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .01em;
}
h1 {
  margin: 0 0 14px;
  font-size: clamp(28px, 6vw, 40px);
  line-height: 1.15;
  letter-spacing: -.02em;
  text-wrap: balance;
}
.meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin: 0 0 18px;
  padding: 0;
  list-style: none;
}
.chip {
  margin: 0;
  padding: 4px 12px;
  font-size: 13.5px;
  color: var(--text-2);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 999px;
}
.lead {
  max-width: 600px;
  margin: 0 auto;
  color: var(--text-2);
  font-size: 16.5px;
  text-wrap: pretty;
}

/* ---------- page body ---------- */
.wrap { max-width: 760px; margin: 0 auto; padding: 0 16px 72px; }

.glance {
  margin: 36px 0 0;
  padding: 22px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.glance-title { margin: 0; font-size: 19px; letter-spacing: -.01em; }
.glance-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
}
@media (min-width: 640px) { .glance-grid { grid-template-columns: 1fr 1fr; } }
.glance-item { display: flex; gap: 14px; align-items: flex-start; margin: 0; }
.glance-icon {
  flex: none;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: var(--accent-soft);
  color: var(--accent);
  display: flex;
  align-items: center;
  justify-content: center;
}
.glance-icon svg { width: 22px; height: 22px; }
.glance-item strong { display: block; font-size: 16px; line-height: 1.35; }
.glance-item p { margin: 2px 0 0; font-size: 15px; line-height: 1.5; color: var(--text-2); }
.glance-note { margin: 18px 0 0; font-size: 13.5px; color: var(--muted); }

.toc {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin: 16px 0 0;
}
@media (min-width: 640px) { .toc { grid-template-columns: 1fr 1fr; } }
.toc-card {
  display: block;
  padding: 18px 20px;
  color: var(--text);
  text-decoration: none;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  transition: border-color .15s ease, transform .15s ease;
}
.toc-card:hover { border-color: var(--accent); transform: translateY(-1px); }
.toc-label, .part-label {
  margin: 0;
  color: var(--accent);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.toc-title { margin: 2px 0 0; font-size: 18px; font-weight: 650; line-height: 1.3; }
.toc-sub { margin: 4px 0 0; font-size: 14px; color: var(--muted); }
.toc-contact { margin: 14px 0 0; text-align: center; font-size: 15px; color: var(--muted); }

.part { margin: 56px 0 0; scroll-margin-top: 76px; }
.clause[id] { scroll-margin-top: 88px; }
.section-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 20px;
}
.section-links a {
  padding: 8px 12px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface);
  font-size: 14px;
  text-decoration: none;
}
.section-links a:hover { border-color: var(--accent); }
.part-head { margin: 0 0 16px; padding: 0 4px; }
.part-title {
  margin: 4px 0 0;
  font-size: clamp(24px, 4.5vw, 30px);
  line-height: 1.2;
  letter-spacing: -.015em;
}
.clause {
  margin: 0 0 12px;
  padding: 20px 22px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}
.clause h3 {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin: 0 0 8px;
  font-size: 18px;
  line-height: 1.35;
  letter-spacing: -.005em;
}
.clause h3 .t { padding-top: 3px; }
.num {
  flex: none;
  width: 30px;
  height: 30px;
  border-radius: 9px;
  background: var(--accent-soft);
  color: var(--accent);
  font-size: 14px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.clause h4 { margin: 18px 0 2px; font-size: 16px; line-height: 1.4; }
.clause p, .clause li { color: var(--text-2); }
.clause > :last-child { margin-bottom: 0; }

.contact {
  margin: 56px 0 0;
  padding: 24px;
  background: var(--accent-soft);
  border-radius: var(--radius);
  scroll-margin-top: 76px;
}
.contact .part-title { font-size: 24px; margin: 0 0 6px; }
.contact p { color: var(--text-2); }
.contact a[href^="mailto:"] { font-weight: 650; }

.foot { margin: 40px 0 0; text-align: center; font-size: 14px; color: var(--muted); }

.totop {
  position: fixed;
  right: 16px;
  bottom: 16px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text);
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
}
.totop svg { width: 20px; height: 20px; }

@media (max-width: 420px) {
  body { font-size: 16px; }
  .topbar-inner { gap: 6px; padding-inline: 12px; }
  .brand { gap: 6px; font-size: 13px; }
  .brand .app-icon { width: 28px; height: 28px; }
  .header-nav { gap: 0; }
  .header-nav a, .print-button { padding-inline: 7px; font-size: 13px; }
  .glance, .clause { padding: 18px; }
  .hero-inner { padding-top: 32px; }
}

@media (max-width: 340px) {
  .brand-name { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; }
  .toc-card:hover { transform: none; }
}

@media print {
  :root {
    --text: #000;
    --text-2: #222;
    --muted: #444;
    --accent: #222;
    --accent-soft: #fff;
    --border: #ccc;
  }
  @page { margin: 16mm; }
  .topbar, .totop, .skip-link, .toc, .toc-contact, .section-links, .foot > a { display: none !important; }
  body { background: #fff; color: #000; font-size: 11pt; }
  .hero { background: none; }
  .hero-inner { padding: 0 0 16px; }
  .hero .app-icon { display: none; }
  .wrap { max-width: none; padding: 0; }
  .part { margin-top: 28px; }
  .part-head, .clause h3, .clause h4 { break-after: avoid; }
  p, li { orphans: 3; widows: 3; }
  .chip { background: #fff; }
  .glance, .clause, .toc-card, .contact { box-shadow: none; border: 1px solid #ccc; background: #fff; break-inside: avoid; }
  a { color: #000; }
}
