
/* Public TAWDEN site — an editorial extension of the existing product UI. */
.public-site {
  --p-navy: #07182B;
  --p-navy-2: #0B1D3A;
  --p-ivory: #F7F4EC;
  --p-ivory-2: #ECE8DD;
  --p-paper: #FFFEFA;
  --p-slate: #536475;
  --p-slate-2: #8B98A3;
  --p-line: #C9D2D8;
  --p-forest: #0F5C3F;
  --p-teal: #2C8A78;
  --p-gold: #C9A862;
  --p-shadow: 0 20px 60px rgba(7,24,43,.10);
  --p-radius: 22px;
  color: var(--p-navy);
  background: var(--p-ivory);
  min-width: 0;
}
.public-site * { box-sizing: border-box; }
.public-site a { color: inherit; }
.public-site h1,.public-site h2,.public-site h3,.public-site p { max-width: 100%; }
.public-site .public-main { max-width: none; padding: 0; margin: 0; }
.public-state #siteHeader,
.public-state #authView,
.public-state #appView { display: none !important; }
.public-header {
  position: relative;
  z-index: 60;
  min-height: 72px;
  padding: 0 clamp(18px, 4vw, 64px);
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 28px;
  border-bottom: 1px solid rgba(201,210,216,.72);
  background: rgba(247,244,236,.94);
  backdrop-filter: blur(16px);
}
.public-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  width: fit-content;
  text-decoration: none;
  color: var(--p-navy);
}
.public-brand img { width: 28px; height: 28px; object-fit: contain; flex: none; }
.public-brand span { font-size: 14px; font-weight: 800; letter-spacing: .17em; }
.public-nav { display: flex; justify-content: center; align-items: center; gap: clamp(16px, 2.4vw, 34px); }
.public-nav a, .public-actions a, .public-menu a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  font-size: 12px;
  font-weight: 750;
  letter-spacing: .02em;
}
.public-nav a, .public-signin { color: #405261; }
.public-nav a:hover, .public-nav a:focus-visible, .public-signin:hover, .public-signin:focus-visible { color: var(--p-navy); }
.public-actions { display: flex; align-items: center; gap: 10px; }
.public-signin { padding: 0 8px; }
.public-cta {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 11px 18px;
  border: 1px solid transparent;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
  transition: transform .18s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.public-cta:hover { transform: translateY(-1px); }
.public-cta-solid { color: var(--p-ivory) !important; background: var(--p-navy); border-color: var(--p-navy); box-shadow: 0 10px 22px rgba(7,24,43,.12); }
.public-cta-solid:hover { background: #0d2947; }
.public-cta-quiet { color: var(--p-navy) !important; background: transparent; border-color: transparent; padding-inline: 2px; }
.public-cta-outline { color: var(--p-navy) !important; background: transparent; border-color: #9DAAB3; }
.public-menu-toggle { display: none; width: 44px; height: 44px; border: 1px solid #AEB9C1; border-radius: 10px; background: transparent; cursor: pointer; align-items: center; justify-content: center; flex-direction: column; gap: 4px; }
.public-menu-toggle span { display:block; width: 17px; height: 1.5px; background: var(--p-navy); }
.public-menu { display: none; position: absolute; top: calc(100% + 8px); right: max(14px, env(safe-area-inset-right)); left: max(14px, env(safe-area-inset-left)); padding: 12px; border: 1px solid var(--p-line); background: var(--p-paper); box-shadow: var(--p-shadow); border-radius: 16px; }
.public-menu.is-open { display: block; }
.public-menu nav { display: grid; gap: 3px; }
.public-menu a { min-height: 46px; padding: 0 12px; border-radius: 10px; }
.public-menu a:hover, .public-menu a:focus-visible { background: #F0EEE7; }
.public-menu .public-menu-cta { background: var(--p-navy); color: var(--p-ivory); justify-content: center; margin-top: 5px; }
.public-header a:focus-visible, .public-menu-toggle:focus-visible, .public-site summary:focus-visible { outline: 3px solid rgba(201,168,98,.42); outline-offset: 3px; }

.public-hero {
  position: relative;
  isolation: isolate;
  min-height: min(760px, calc(100svh - 72px));
  max-width: 1440px;
  margin: 0 auto;
  padding: clamp(72px, 10vw, 140px) clamp(20px, 6vw, 90px) clamp(70px, 9vw, 120px);
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(360px, .9fr);
  align-items: center;
  gap: clamp(40px, 7vw, 110px);
}
.public-hero:before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -2;
  background: radial-gradient(circle at 10% 0%, rgba(15,92,63,.08), transparent 34%), linear-gradient(145deg,#F7F4EC 0%,#F3F0E8 62%,#E9ECE9 100%);
}
.public-hero:after {
  content:'TAWDEN';
  position:absolute;
  right:-8%;
  top:5%;
  z-index:-1;
  font-size: clamp(8rem, 25vw, 20rem);
  letter-spacing:-.08em;
  line-height:1;
  color: rgba(11,29,58,.03);
  font-weight: 850;
  pointer-events:none;
}
.public-eyebrow, .public-panel-kicker, .public-flow-label {
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .18em;
  color: #647582;
}
.public-hero h1 {
  margin: 18px 0 22px;
  max-width: 720px;
  font-size: clamp(3.15rem, 6.4vw, 6.2rem);
  line-height: .98;
  letter-spacing: -.045em;
  font-weight: 760;
}
.public-lead { margin: 0; max-width: 670px; font-size: clamp(18px, 2vw, 23px); line-height: 1.48; color: #314756; }
.public-supporting { margin: 16px 0 0; max-width: 620px; font-size: 14px; line-height: 1.7; color: #667582; }
.public-hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap: 18px; margin-top: 30px; }

.public-hero-art { position: relative; min-height: 500px; display:grid; place-items:center; }
.public-geometry { position:absolute; width:min(90%, 560px); aspect-ratio:1; border:1px solid rgba(15,92,63,.13); transform: rotate(19deg); border-radius: 18%; box-shadow: inset 0 0 0 1px rgba(201,168,98,.05); }
.public-geometry:before, .public-geometry:after { content:''; position:absolute; inset:11%; border:1px solid rgba(11,29,58,.08); border-radius: 18%; }
.public-geometry:after { inset:25%; border-color: rgba(201,168,98,.22); }
.public-hero-sheet {
  position:relative;
  width:min(78%, 450px);
  min-height: 500px;
  padding: 30px 28px;
  background: rgba(255,254,250,.94);
  border:1px solid #C8D0D4;
  box-shadow: 0 28px 70px rgba(7,24,43,.13);
  transform: rotate(-3deg);
}
.public-sheet-top,.public-doc-brand { display:flex; justify-content:space-between; gap:10px; font-size:8px; letter-spacing:.17em; font-weight:850; color:#6C7A84; }
.public-sheet-title { margin-top: 80px; font-size: 35px; line-height: 1.03; letter-spacing:-.03em; font-weight:760; color:var(--p-navy); }
.public-sheet-rule { width: 42px; height: 2px; margin: 22px 0 28px; background:var(--p-gold); }
.public-sheet-grid { display:grid; gap:18px; }
.public-sheet-grid div { padding-top:13px; border-top:1px solid #D4DBDE; }
.public-sheet-grid strong { display:block; margin-top:6px; font-size:17px; letter-spacing:-.01em; }
.public-sheet-grid small { display:block; margin-top:4px; color:#70808A; line-height:1.5; }
.public-sheet-kicker { display:block; font-size:9px; font-weight:850; letter-spacing:.14em; color:#74808A; }

.public-section { max-width: 1320px; margin: 0 auto; padding: clamp(78px, 9vw, 126px) clamp(20px, 5vw, 72px); scroll-margin-top: 78px; }
.public-section-heading { max-width: 760px; }
.public-section-heading h2, .public-pricing h2, .public-company h2 {
  margin: 14px 0 0;
  font-size: clamp(2.15rem, 4.4vw, 4.3rem);
  line-height: 1.01;
  letter-spacing:-.04em;
  font-weight: 750;
}
.public-section-heading p { margin: 20px 0 0; max-width: 680px; color:#61717D; line-height:1.72; font-size:14px; }

.public-product-flow { border-top:1px solid #C7D0D5; }
.public-flow { margin-top: 54px; display:grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr); align-items: stretch; gap: 18px; }
.public-flow-stage { padding: 22px 0; min-width:0; border-top:2px solid #AEB9C0; }
.public-flow-stage-center { border-top-color:var(--p-gold); }
.public-step { display:block; font-size:10px; letter-spacing:.14em; font-weight:850; color:#8B98A3; }
.public-flow-stage h3 { margin: 14px 0 9px; font-size:20px; line-height:1.2; letter-spacing:-.02em; }
.public-flow-stage p { margin:0; max-width:290px; color:#667582; font-size:13px; line-height:1.65; }
.public-flow-connector { display:flex; align-items:center; justify-content:center; color:#8897A0; font-size:24px; }
.public-audience { padding-top: 40px; }
.public-audience-grid { margin-top:54px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.public-audience-panel { min-width:0; padding:clamp(26px,4vw,42px); border:1px solid #BAC6CD; min-height: 420px; }
.public-audience-creator { background:#E9EEEB; border-color:#BBCAC2; }
.public-audience-student { background:#EEF0F0; }
.public-audience-panel h3 { max-width:560px; margin:18px 0 14px; font-size: clamp(1.75rem,3vw,2.8rem); line-height:1.06; letter-spacing:-.035em; }
.public-audience-panel p { margin:0; max-width:570px; color:#5E6E79; line-height:1.7; font-size:13px; }
.public-audience-panel ul { margin:24px 0 0; padding:0; list-style:none; display:grid; gap:10px; }
.public-audience-panel li { position:relative; padding-left:19px; color:#344B5B; font-size:13px; }
.public-audience-panel li:before { content:''; position:absolute; left:0; top:.58em; width:7px; height:7px; border-radius:50%; background:var(--p-gold); }
.public-text-link { display:inline-flex; min-height:44px; align-items:center; gap:8px; margin-top:28px; text-decoration:none; font-size:12px; font-weight:850; color:var(--p-navy); }
.public-text-link:hover { color:var(--p-forest); }

.public-how { border-top:1px solid #C7D0D5; }
.public-steps { margin-top:56px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid #BFC9CE; }
.public-step-item { min-width:0; padding:25px 22px 22px 0; display:grid; gap:26px; grid-template-columns:auto minmax(0,1fr); border-right:1px solid #D0D7DB; }
.public-step-item + .public-step-item { padding-left:22px; }
.public-step-item:last-child { border-right:0; }
.public-step-number { font-size:12px; letter-spacing:.12em; font-weight:850; color:#7F8D97; }
.public-step-item h3 { margin:0; font-size:21px; line-height:1.1; }
.public-step-item p { margin:8px 0 0; color:#697983; font-size:13px; line-height:1.6; }

.public-preview { display:grid; grid-template-columns:minmax(280px,.75fr) minmax(360px,1.15fr); align-items:center; gap:clamp(40px,8vw,120px); border-top:1px solid #C7D0D5; }
.public-preview-copy h2 { margin:14px 0 15px; font-size:clamp(2.2rem,4.4vw,4.5rem); line-height:1; letter-spacing:-.04em; }
.public-preview-copy > p { max-width:520px; margin:0; color:#61717D; line-height:1.72; font-size:14px; }
.public-preview-note { display:flex; gap:10px; align-items:flex-start; margin-top:22px; max-width:520px; font-size:11px; line-height:1.6; color:#6C7B85; }
.public-dot { width:7px; height:7px; margin-top:5px; flex:none; border-radius:50%; background:var(--p-gold); }
.public-document-frame { min-width:0; padding: clamp(18px,4vw,34px); background:#DDE3E3; border:1px solid #BEC9CD; }
.public-document { width:min(100%,520px); margin:0 auto; min-height:590px; padding:clamp(24px,4vw,40px); background:#FFFDF8; border:1px solid #CBCFCF; box-shadow:0 26px 70px rgba(7,24,43,.13); }
.public-doc-title { margin-top:82px; font-size:clamp(2rem,4vw,3rem); line-height:1.02; letter-spacing:-.04em; font-weight:750; }
.public-doc-meta { margin-top:24px; font-size:8px; letter-spacing:.15em; color:#77858E; font-weight:850; }
.public-doc-lines { margin-top:34px; display:grid; gap:8px; }
.public-doc-lines i { display:block; height:6px; background:#E5E7E4; }
.public-doc-lines i:nth-child(2), .public-doc-lines i:nth-child(5) { width:76%; }
.public-doc-columns { margin-top:34px; display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.public-doc-columns > div { padding-top:13px; border-top:1px solid #D4D9D8; }
.public-doc-columns b { display:block; font-size:9px; color:#87939A; }
.public-doc-columns span { display:block; margin-top:7px; font-size:14px; font-weight:760; }
.public-doc-columns small { display:block; margin-top:5px; color:#7A878F; line-height:1.5; }

.public-pricing { border-top:1px solid #C7D0D5; }
.public-pricing-inner { display:grid; grid-template-columns:1fr 1fr; align-items:end; gap:60px; padding: clamp(34px,5vw,56px); background:var(--p-navy); color:var(--p-ivory); }
.public-pricing .public-eyebrow { color:#AAB9C5; }
.public-pricing h2 { color:var(--p-ivory); }
.public-pricing-message { border-left:1px solid rgba(247,244,236,.2); padding-left:clamp(20px,4vw,40px); }
.public-pricing-message strong { display:block; font-size:18px; line-height:1.35; }
.public-pricing-message p { margin:10px 0 22px; max-width:520px; color:#B8C5CE; font-size:13px; line-height:1.65; }
.public-pricing-message .public-cta-outline { color:var(--p-ivory) !important; border-color:#677B8C; }

.public-faq { border-top:1px solid #C7D0D5; }
.public-faq-list { margin-top:44px; border-top:1px solid #BDC8CE; }
.public-faq details { border-bottom:1px solid #BDC8CE; }
.public-faq summary { min-height:68px; display:flex; align-items:center; justify-content:space-between; gap:20px; cursor:pointer; list-style:none; font-size:15px; font-weight:760; color:#263D4C; }
.public-faq summary::-webkit-details-marker { display:none; }
.public-faq summary span:last-child { font-size:20px; font-weight:450; color:#71808A; transition:transform .18s ease; }
.public-faq details[open] summary span:last-child { transform:rotate(45deg); }
.public-faq details p { max-width:760px; margin:0 0 22px; padding-right:40px; color:#65747F; line-height:1.7; font-size:13px; }

.public-company { display:grid; grid-template-columns:1fr 1fr; align-items:start; gap:60px; border-top:1px solid #C7D0D5; }
.public-company-copy p { margin:0; max-width:620px; color:#566876; line-height:1.75; font-size:14px; }
.public-company-copy p + p { margin-top:18px; }
.public-company-copy a { font-weight:750; text-decoration:none; color:var(--p-navy); }
.public-company-meta { margin-top:24px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px; }
.public-company-meta-item { display:flex; flex-direction:column; gap:7px; }
.public-company-meta-label { color:#71818C; font-size:9px; font-weight:800; letter-spacing:.16em; }
.public-company-founder { color:var(--p-navy); font-size:13px; font-weight:760; }
.public-company-meta a { font-size:13px; }

.public-legal-note { max-width:1320px; margin:0 auto; padding:20px clamp(20px,5vw,72px) 34px; display:flex; justify-content:space-between; gap:30px; border-top:1px solid #C7D0D5; }
.public-legal-note strong { font-size:11px; letter-spacing:.14em; }
.public-legal-note p { display:inline; margin:0 0 0 12px; color:#74828B; font-size:11px; line-height:1.6; }
.public-legal-note a { min-height:44px; display:inline-flex; align-items:center; color:var(--p-navy); font-size:11px; font-weight:800; text-decoration:none; white-space:nowrap; }

.public-footer { background:#E6EAE8; border-top:1px solid #C7D0D5; }
.public-footer-main { max-width:1320px; margin:0 auto; padding:60px clamp(20px,5vw,72px); display:grid; grid-template-columns:1.8fr repeat(4,1fr); gap:34px; }
.public-footer-brand p { max-width:300px; margin:16px 0 0; color:#60717C; font-size:12px; line-height:1.65; }
.public-footer-col { display:grid; align-content:start; gap:7px; }
.public-footer-col strong { margin-bottom:6px; color:#61727E; font-size:9px; letter-spacing:.16em; }
.public-footer-col a { min-height:30px; display:inline-flex; align-items:center; color:#344A5A; font-size:11px; text-decoration:none; }
.public-footer-col a:hover { color:var(--p-navy); }
.public-footer-bottom { max-width:1320px; margin:0 auto; padding:18px clamp(20px,5vw,72px) 28px; display:flex; justify-content:space-between; gap:18px; border-top:1px solid #C8D0D3; color:#77858E; font-size:10px; }

@media (max-width: 1050px) {
  .public-header { grid-template-columns:auto auto; justify-content:space-between; }
  .public-nav, .public-actions { display:none; }
  .public-menu-toggle { display:flex; }
  .public-hero { grid-template-columns:1fr; min-height:auto; padding-top:78px; }
  .public-hero-copy { max-width:760px; }
  .public-hero-art { min-height:440px; }
  .public-hero-sheet { min-height:430px; }
  .public-steps { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .public-step-item:nth-child(2) { border-right:0; }
  .public-step-item:nth-child(n+3) { border-top:1px solid #BFC9CE; padding-top:22px; }
  .public-step-item:nth-child(3) { padding-left:0; }
  .public-pricing-inner, .public-company { grid-template-columns:1fr; }
  .public-company-meta { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .public-pricing-message { border-left:0; border-top:1px solid rgba(247,244,236,.2); padding:22px 0 0; }
  .public-footer-main { grid-template-columns:1.7fr repeat(2,1fr); }
}
@media (max-width: 760px) {
  .public-section { padding-block:74px; }
  .public-hero { padding-top:64px; gap:34px; }
  .public-hero h1 { font-size:clamp(2.65rem,12vw,4.2rem); }
  .public-lead { font-size:17px; }
  .public-hero-actions { align-items:stretch; flex-direction:column; }
  .public-hero-actions .public-cta { width:100%; }
  .public-hero-art { min-height:390px; }
  .public-hero-sheet { width:min(83%,430px); min-height:390px; padding:24px; }
  .public-sheet-title { margin-top:58px; font-size:29px; }
  .public-flow { grid-template-columns:1fr; gap:10px; margin-top:38px; }
  .public-flow-connector { min-height:24px; justify-content:flex-start; padding-left:17px; transform:rotate(90deg); }
  .public-audience-grid { grid-template-columns:1fr; margin-top:38px; }
  .public-audience-panel { min-height:0; }
  .public-steps { grid-template-columns:1fr; margin-top:38px; }
  .public-step-item, .public-step-item + .public-step-item { border-right:0; border-top:1px solid #BFC9CE; padding:20px 0; }
  .public-step-item:first-child { border-top:0; }
  .public-preview { grid-template-columns:1fr; }
  .public-document-frame { padding:16px; }
  .public-document { min-height:520px; }
  .public-document .public-doc-title { margin-top:62px; }
  .public-pricing-inner { padding:28px 22px; }
  .public-faq summary { min-height:64px; font-size:14px; }
  .public-legal-note { flex-direction:column; gap:10px; }
  .public-legal-note p { display:block; margin:8px 0 0; }
  .public-footer-main { grid-template-columns:1fr 1fr; }
  .public-company-meta { grid-template-columns:1fr; gap:18px; }
  .public-footer-brand { grid-column:1/-1; }
  .public-footer-bottom { flex-direction:column; }
}
@media (max-width: 430px) {
  .public-header { min-height:64px; padding-inline:14px; }
  .public-brand span { font-size:12px; }
  .public-brand img { width:25px; height:25px; }
  .public-hero, .public-section, .public-legal-note { padding-left:16px; padding-right:16px; }
  .public-hero h1 { font-size:clamp(2.35rem,11.4vw,3.25rem); }
  .public-section-heading h2, .public-pricing h2, .public-company h2, .public-preview-copy h2 { font-size:clamp(2rem,10vw,3rem); }
  .public-audience-panel { padding:24px 20px; }
  .public-document { padding:22px; }
  .public-doc-columns { grid-template-columns:1fr; }
  .public-footer-main { grid-template-columns:1fr; gap:25px; padding-top:46px; padding-bottom:42px; }
  .public-footer-brand, .public-footer-col { grid-column:auto; }
}
@media (prefers-reduced-motion: reduce) {
  .public-site *, .public-site *::before, .public-site *::after { scroll-behavior:auto !important; transition-duration:0.01ms !important; animation-duration:0.01ms !important; animation-iteration-count:1 !important; }
}

.auth-back-home {
  min-height:44px;
  display:inline-flex;
  align-items:center;
  margin:0 0 24px;
  color:var(--t-slate);
  font-size:12px;
  font-weight:750;
  text-decoration:none;
  letter-spacing:.01em;
  border-radius:8px;
}
.auth-back-home:hover { color:var(--t-navy); }
.auth-back-home:focus-visible { outline:2px solid var(--t-gold); outline-offset:4px; }

.public-faq-item { border-bottom:1px solid #BDC8CE; }
.public-faq-item h3 { margin:0; }
.public-faq-toggle {
  width:100%;
  min-height:68px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:0;
  border:0;
  background:transparent;
  color:#263D4C;
  text-align:left;
  cursor:pointer;
  font:inherit;
  font-size:15px;
  font-weight:760;
}
.public-faq-toggle span:last-child { font-size:20px; font-weight:450; color:#71808A; transition:transform .18s ease; }
.public-faq-toggle[aria-expanded="true"] span:last-child { transform:rotate(45deg); }
.public-faq-answer { max-width:760px; padding-right:40px; }
.public-faq-answer p { margin:0 0 22px; color:#65747F; line-height:1.7; font-size:13px; }
