:root {
  color-scheme:dark;
  --bg:#171815;
  --panel:#1d1f1b;
  --card:#252822;
  --card-hover:#2b2e27;
  --line:#393d33;
  --line-soft:#2b2f27;
  --text:#eeefe5;
  --muted:#a9afa0;
  --dim:#909787;
  --accent:#efa777;
  --accent-strong:#ef9b66;
  --ink:#292018;
  --font:'Campfire UI','Zen Kaku Gothic New',sans-serif;
  --ease:cubic-bezier(.16,1,.3,1)
}
* {
  box-sizing:border-box
}
body {
  margin:0;
  background:var(--bg);
  color:var(--text);
  font:16px/1.65 var(--font);
  -webkit-font-smoothing:antialiased
}
button,input,textarea,select {
  font:inherit
}
button,a,input,textarea,select {
  -webkit-tap-highlight-color:transparent
}
button {
  cursor:pointer
}
button {
  color:inherit
}
button:disabled {
  cursor:wait;
  opacity:.6
}
button:focus-visible,a:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:5px
}
button,a {
  touch-action:manipulation
}
button {
  border:0
}
a {
  color:inherit;
  text-decoration:none
}
svg {
  width:19px;
  height:19px;
  stroke-width:1.65;
  flex-shrink:0
}
button svg {
  pointer-events:none
}
::selection {
  background:#694936;
  color:#fff
}
::-webkit-scrollbar {
  width:7px;
  height:7px
}
::-webkit-scrollbar-thumb {
  background:#535a49;
  border-radius:8px
}
::-webkit-scrollbar-track {
  background:var(--bg)
}
[hidden] {
  display:none!important
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}
.skip-link {
  position:absolute;
  top:-100px;
  left:20px;
  z-index:100;
  background:var(--accent);
  color:var(--ink);
  padding:12px
}
.skip-link:focus {
  top:12px
}
.site-header {
  height:91px;
  border-bottom:1px solid var(--line-soft);
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 3.4%;
  gap:24px
}
.brand {
  display:flex;
  align-items:center;
  gap:13px;
  font:600 23px/1.1 'DM Sans',sans-serif;
  letter-spacing:.035em;
  white-space:nowrap
}
.brand small {
  display:block;
  font:500 11px/1.4 var(--font);
  letter-spacing:.07em;
  color:var(--muted);
  margin-top:7px
}
.brand-mark {
  width:38px;
  height:43px;
  color:var(--accent)
}
.brand-mark svg {
  width:37px;
  height:43px;
  stroke-width:1.3
}
.header-nav {
  display:flex;
  align-items:center;
  gap:30px;
  font-size:14px;
  height:100%;
  margin-left:auto;
  margin-right:36px
}
.nav-current {
  height:100%;
  display:flex;
  align-items:center;
  position:relative
}
.nav-current:after {
  content:'';
  position:absolute;
  bottom:0;
  height:2px;
  left:0;
  right:0;
  background:var(--accent)
}
.text-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  background:none;
  padding:0;
  color:var(--muted);
  font-size:14px
}
.text-button:hover {
  color:var(--text)
}
.header-actions {
  display:flex;
  align-items:center;
  gap:16px
}
.preview-tag {
  font-size:12px;
  color:var(--accent);
  border:1px solid #5e4935;
  padding:2px 9px;
  border-radius:5px;
  white-space:nowrap
}
.icon-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:transparent;
  width:40px;
  height:40px;
  border-radius:8px;
  color:var(--muted)
}
.icon-button:hover {
  background:var(--card);
  color:var(--text)
}
.secondary-button {
  display:inline-flex;
  align-items:center;
  gap:9px;
  background:transparent;
  border:1px solid var(--line);
  border-radius:7px;
  padding:9px 13px;
  white-space:nowrap;
  font-size:13px
}
.secondary-button:hover {
  background:var(--card)
}
main {
  max-width:1700px;
  margin:0 auto;
  padding:34px 3.4% 0
}
.page-intro {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:30px;
  margin-bottom:28px
}
.session-line {
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--muted);
  font-size:13px;
  margin-bottom:12px
}
.night-badge {
  color:var(--accent);
  background:#352a21;
  border:1px solid #5b4231;
  padding:1px 8px;
  border-radius:4px
}
.session-date {
  font:12px 'DM Sans',sans-serif;
  letter-spacing:.1em;
  margin-left:6px;
  color:var(--dim)
}
h1 {
  font-size:clamp(23px,2.4vw,34px);
  font-weight:500;
  line-height:1.5;
  letter-spacing:.035em;
  margin:0 0 8px
}
.page-intro p {
  font-size:14px;
  color:var(--muted);
  margin:0
}
.mobile-break {
  display:none
}
.intro-note {
  display:flex;
  align-items:flex-start;
  gap:12px;
  font-size:13px;
  line-height:1.9;
  color:var(--muted);
  padding-right:12px
}
.intro-note svg {
  color:var(--accent);
  margin-top:5px
}
.workspace {
  display:grid;
  grid-template-columns:minmax(0,1fr) 328px;
  gap:25px
}
.voices-panel {
  min-width:0;
  border:1px solid var(--line-soft);
  border-radius:16px;
  background:#1a1c17;
  overflow:hidden;
  position:relative
}
.board-toolbar {
  height:65px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 22px;
  gap:12px;
  position:relative;
  z-index:2
}
.view-tabs {
  flex-shrink:0;
  display:flex;
  gap:4px;
  background:#13150f;
  border-radius:7px;
  padding:4px
}
.view-tabs button {
  white-space:nowrap;
  display:flex;
  align-items:center;
  gap:7px;
  background:transparent;
  padding:5px 12px;
  color:var(--dim);
  font-size:13px;
  border-radius:5px
}
.view-tabs button.active {
  background:#30342a;
  color:var(--text)
}
.view-tabs svg {
  width:16px;
  height:16px
}
.voice-total {
  font-size:12px;
  color:var(--muted)
}
.voice-total strong {
  font:500 17px 'DM Sans',sans-serif;
  color:var(--text);
  margin-right:3px
}
.sample-note {
  font-size:12px;
  color:var(--dim);
  margin-left:8px
}
.campfire-board {
  height:625px;
  position:relative;
  isolation:isolate
}
.orbit-line {
  position:absolute;
  pointer-events:none;
  border:1px solid #383b2d;
  border-radius:50%;
  z-index:-1;
  opacity:.7
}
.orbit-one {
  inset:65px 95px 55px;
  transform:rotate(-12deg)
}
.orbit-two {
  inset:102px 28px 99px;
  transform:rotate(12deg);
  border-color:#303528
}
.fire-center {
  position:absolute;
  left:50%;
  top:49%;
  transform:translate(-50%,-50%);
  width:290px;
  pointer-events:none;
  text-align:center;
  z-index:-1
}
.fire-art {
  position:relative;
  height:255px;
  mix-blend-mode:lighten;
  mask-image:radial-gradient(ellipse 53% 57% at 50% 54%,#000 38%,transparent 98%)
}
.fire-caption {
  color:#b6aa8e;
  font-size:13px;
  line-height:1.95;
  letter-spacing:.13em;
  margin-top:-14px
}
.ember-drift {
  position:absolute;
  inset:10% 25% 30%;
  overflow:hidden
}
.ember-drift span {
  position:absolute;
  left:var(--x,45%);
  bottom:15%;
  height:3px;
  width:2px;
  border-radius:50%;
  background:#ffb976;
  opacity:0;
  animation:ember 7s infinite ease-out;
  animation-delay:var(--d,0s)
}
.ember-drift span:nth-child(2) {
  --x:70%;
  --d:2s
}
.ember-drift span:nth-child(3) {
  --x:30%;
  --d:3.7s
}
.ember-drift span:nth-child(4) {
  --x:59%;
  --d:5.2s
}
.ember-drift span:nth-child(5) {
  --x:40%;
  --d:6s
}
@keyframes ember {
  0% {
    opacity:0;
    transform:translate(0,0)
  }
  20% {
    opacity:.7
  }
  100% {
    opacity:0;
    transform:translate(15px,-140px)
  }
}
.cards {
  height:100%;
  position:relative
}
.idea-card {
  position:absolute;
  width:calc(31% - 2px);
  max-width:280px;
  min-width:206px;
  background:var(--card);
  border:1px solid #3e4436;
  border-radius:12px;
  padding:16px 17px 13px;
  transition:background .2s,border-color .2s;
  animation:appear .7s var(--ease) both;
  animation-delay:calc(var(--index,0)*55ms)
}
.idea-card:hover {
  background:var(--card-hover);
  border-color:#636c55
}
.idea-card[data-slot="0"] {
  left:5%;
  top:19px
}
.idea-card[data-slot="1"] {
  right:7%;
  top:1px
}
.idea-card[data-slot="2"] {
  left:2%;
  top:229px
}
.idea-card[data-slot="3"] {
  right:2%;
  top:214px
}
.idea-card[data-slot="4"] {
  left:12%;
  top:439px
}
.idea-card[data-slot="5"] {
  right:10%;
  top:427px
}
.card-category {
  display:flex;
  align-items:center;
  gap:6px;
  font-size:12px;
  color:#bdc6a9;
  margin-bottom:9px
}
.card-category svg {
  width:14px;
  height:14px
}
.category-share {
  color:#c6b69c
}
.category-try {
  color:#b0bfc0
}
.category-other {
  color:#c6b2ac
}
.idea-card h2 {
  font-size:16px;
  line-height:1.65;
  font-weight:500;
  margin:0 0 13px;
  overflow-wrap:anywhere;
  white-space:pre-wrap
}
.card-bottom {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:8px
}
.want-count {
  font-size:12px;
  color:var(--muted);
  white-space:nowrap
}
.want-count strong {
  font:500 22px 'DM Sans',sans-serif;
  letter-spacing:-.03em;
  color:var(--text);
  margin-right:4px
}
.want-button {
  display:flex;
  margin-left:auto;
  align-items:center;
  gap:5px;
  background:transparent;
  border:1px solid #525944;
  border-radius:6px;
  padding:5px 8px;
  font-size:12px;
  color:#cbd0bd;
  white-space:nowrap;
  min-height:33px
}
.want-button svg {
  width:13px;
  height:13px
}
.want-button:hover {
  background:#3b3f30;
  border-color:#9c8b66
}
.want-button[aria-pressed="true"] {
  color:#ffbd8b;
  background:#483426;
  border-color:#866344
}
.want-button[aria-pressed="true"] svg {
  fill:#efa77733
}
.want-button:disabled {
  cursor:default;
  opacity:1
}
.new-card {
  border-color:var(--accent)
}
.own-mark {
  margin-left:auto;
  font-size:12px;
  color:var(--accent)
}
@keyframes appear {
  from {
    opacity:.5;
    transform:translateY(8px)
  }
  to {
    opacity:1;
    transform:none
  }
}
.board-bottom {
  min-height:57px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:11px 19px 15px;
  border-top:1px solid #2b3025
}
.category-filters {
  display:flex;
  gap:5px;
  flex-wrap:wrap
}
.category-filters button {
  background:transparent;
  color:var(--dim);
  font-size:12px;
  padding:5px 10px;
  border-radius:5px
}
.category-filters button.active {
  color:var(--text);
  background:#33382c
}
.category-filters button:hover {
  color:var(--text)
}
#next-voices {
  font-size:12px;
  white-space:nowrap
}
#next-voices svg {
  width:15px
}
.compose-panel {
  position:relative;
  padding:25px 21px 15px;
  border:1px solid var(--line-soft);
  border-radius:16px;
  background:var(--panel);
  align-self:stretch
}
.compose-symbol {
  color:var(--accent);
  margin-bottom:12px
}
.compose-symbol svg {
  width:25px;
  height:25px
}
.compose-panel h2 {
  font-size:21px;
  font-weight:500;
  letter-spacing:.02em;
  margin:0 0 9px
}
.compose-description {
  font-size:14px;
  line-height:1.9;
  color:var(--muted);
  margin:0 0 22px
}
.textarea-wrap {
  background:#151711;
  border:1px solid #414837;
  border-radius:10px;
  overflow:hidden
}
.textarea-wrap:focus-within {
  border-color:var(--accent);
  outline:2px solid #efa77722;
  outline-offset:2px
}
textarea {
  display:block;
  resize:vertical;
  min-height:126px;
  width:100%;
  border:0;
  background:transparent;
  color:var(--text);
  caret-color:var(--accent);
  padding:15px 14px 6px;
  font-size:14px;
  line-height:1.85;
  outline:0
}
textarea::placeholder {
  color:#939b86
}
.input-bottom {
  display:flex;
  justify-content:space-between;
  padding:7px 12px 10px;
  gap:5px;
  font-size:12px;
  color:#959e88
}
#char-count {
  font-family:'DM Sans',sans-serif;
  white-space:nowrap
}
.prompt-help {
  margin:16px 0 21px
}
.prompt-help>span {
  font-size:12px;
  color:var(--dim);
  display:block;
  margin-bottom:8px
}
.prompt-help>div {
  display:flex;
  gap:6px
}
.prompt-help button {
  padding:4px 7px;
  background:transparent;
  border:1px solid #424938;
  border-radius:5px;
  color:#b3bca4;
  font-size:12px;
  white-space:nowrap
}
.prompt-help button:hover {
  border-color:var(--accent);
  color:var(--accent)
}
.primary-button {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:100%;
  min-height:46px;
  background:var(--accent);
  border-radius:8px;
  color:var(--ink);
  font-size:14px;
  font-weight:700;
  transition:background .2s,transform .2s
}
.primary-button:hover {
  background:#ffc294;
  transform:translateY(-1px)
}
.primary-button svg {
  width:16px;
  height:16px
}
.primary-button svg:last-child:not(:first-child) {
  margin-left:auto
}
.primary-button svg:first-child {
  margin-right:0
}
#organize-button {
  padding:0 16px;
  justify-content:flex-start
}
.privacy-note {
  font-size:12px;
  color:var(--muted);
  display:flex;
  align-items:center;
  gap:5px;
  justify-content:center;
  margin:12px 0 0
}
.privacy-note svg {
  height:12px;
  width:12px
}
.compose-foot {
  border-top:1px solid var(--line-soft);
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  margin-top:24px;
  padding-top:18px
}
.compose-foot p {
  font-size:12px;
  color:var(--dim);
  line-height:1.8;
  margin:0
}
.tiny-fire {
  color:#9b8a68
}
.tiny-fire svg {
  height:22px;
  width:22px
}
.close-compose {
  display:none
}
.journey-strip {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin-top:23px;
  padding:20px 0 21px;
  border-bottom:1px solid var(--line-soft)
}
.journey-copy {
  display:flex;
  align-items:center;
  gap:14px
}
.journey-copy>svg {
  color:#b4bda0;
  width:24px;
  height:24px
}
.journey-copy p {
  font-size:14px;
  margin:0
}
.journey-copy span {
  display:block;
  font-size:12px;
  color:var(--dim);
  margin-top:4px
}
.night-track {
  display:flex;
  align-items:center;
  gap:10px;
  position:relative;
  margin-left:auto
}
.night-track:before {
  content:'';
  position:absolute;
  left:0;
  right:0;
  top:50%;
  height:1px;
  background:#393e32;
  z-index:-1
}
.night-track span {
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--bg);
  border:1px solid #434a39;
  border-radius:50%;
  width:24px;
  height:24px;
  font:11px 'DM Sans',sans-serif;
  color:#9ba48c
}
.night-track .current {
  background:#3c2c20;
  color:var(--accent);
  border-color:var(--accent);
  width:29px;
  height:29px
}
footer {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  max-width:1700px;
  margin:auto;
  padding:17px 3.4% 25px;
  color:var(--dim);
  font-size:12px
}
footer .text-button {
  font-size:12px
}
footer svg {
  width:13px;
  height:13px
}
.mobile-compose {
  display:none
}
.toast {
  position:fixed;
  bottom:28px;
  left:50%;
  transform:translate(-50%,15px);
  background:#f2e9d5;
  color:#302a20;
  border:1px solid #c4b895;
  padding:12px 22px;
  border-radius:9px;
  z-index:40;
  font-size:14px;
  max-width:90vw;
  opacity:0;
  pointer-events:none;
  transition:opacity .25s,transform .25s;
  box-shadow:0 8px 30px #0005
}
.toast.visible {
  opacity:1;
  transform:translate(-50%,0)
}
dialog {
  color:var(--text);
  background:var(--panel);
  border:1px solid #4b5340;
  border-radius:16px;
  width:min(540px,calc(100% - 32px));
  padding:36px;
  max-height:88dvh
}
dialog::backdrop {
  background:#080b08c9;
  backdrop-filter:blur(7px)
}
.dialog-close {
  position:absolute;
  right:12px;
  top:12px
}
dialog h2 {
  font-size:24px;
  font-weight:500;
  line-height:1.6;
  margin:6px 25px 16px 0
}
dialog p {
  font-size:15px;
  color:#b7bfab;
  line-height:1.9
}
dialog .dialog-icon {
  color:var(--accent);
  height:28px;
  width:28px
}
dialog .dialog-list {
  display:grid;
  gap:13px;
  padding:8px 0
}
dialog .dialog-list p {
  margin:0;
  font-size:14px
}
dialog .dialog-list b {
  color:var(--text);
  display:block;
  font-size:15px
}
.qr-box {
  margin:22px auto;
  background:#fff;
  padding:18px;
  width:fit-content;
  border-radius:12px
}
.qr-box img {
  display:block;
  width:210px;
  height:210px
}
.qr-url {
  overflow-wrap:anywhere;
  font:13px 'DM Sans',sans-serif;
  text-align:center
}
.dialog-actions {
  display:flex;
  gap:12px;
  margin-top:22px
}
.dialog-actions button {
  flex:1
}
.review-label {
  display:flex;
  align-items:center;
  gap:7px;
  color:var(--accent);
  font-size:14px;
  margin-bottom:18px
}
.review-step label {
  display:block;
  font-size:12px;
  color:var(--muted);
  margin:12px 0 6px
}
.review-step textarea {
  background:#151711;
  border:1px solid #68734e;
  border-radius:8px;
  min-height:106px;
  padding:12px;
  font-size:16px
}
.review-step textarea:focus {
  outline:2px solid var(--accent);
  outline-offset:2px
}
.review-step select {
  width:100%;
  background:#151711;
  color:var(--text);
  border:1px solid #414837;
  padding:10px;
  border-radius:7px;
  font-size:14px
}
.review-note {
  font-size:12px;
  color:var(--muted);
  margin:14px 0 20px
}
.back-button {
  display:flex;
  width:100%;
  margin-top:14px;
  font-size:13px
}
.form-error {
  color:#f0aa8c;
  font-size:13px
}
.merge-suggestion {
  margin-top:14px;
  border:1px solid #66523c;
  padding:12px;
  border-radius:8px;
  font-size:13px;
  color:#d0c3a6
}
.merge-suggestion button {
  font-size:12px;
  color:var(--accent);
  margin-top:8px;
  background:none;
  padding:0;
  text-decoration:underline;
  text-underline-offset:4px
}
.list-view .campfire-board {
  height:545px;
  overflow-y:auto;
  padding:15px 23px
}
.list-view .orbit-line,.list-view .fire-center {
  display:none
}
.list-view .cards {
  height:auto;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px
}
.list-view .idea-card {
  position:relative;
  inset:auto!important;
  width:auto;
  min-width:0;
  max-width:none;
  animation:none
}
.empty-state {
  text-align:center;
  position:absolute;
  bottom:24px;
  left:0;
  right:0;
  padding:16px 25px;
  color:var(--muted)
}
.campfire-board:has(.empty-state:not([hidden])) {
  min-height:400px
}
.empty-state h2 {
  font-size:21px;
  font-weight:500
}
.empty-state p {
  font-size:14px
}



















@media(min-width:1550px) {
  .campfire-board {
    height:625px
  }
  .idea-card {
    padding:19px 21px 16px
  }
  .idea-card h2 {
    font-size:18px
  }
  .card-category {
    font-size:12px
  }
  .want-button {
    font-size:12px
  }
  .fire-center {
    width:320px
  }
  .fire-art {
    height:285px
  }
  .workspace {
    grid-template-columns:minmax(0,1fr) 350px
  }
  .compose-panel {
    padding:29px 25px
  }
  .compose-description {
    font-size:15px
  }
  .compose-panel textarea {
    font-size:16px
  }
}
@media(max-width:1190px) {
  .site-header {
    padding:0 25px
  }
  .header-nav {
    margin-right:8px;
    gap:20px
  }
  .header-actions {
    gap:9px
  }
  .header-actions .preview-tag {
    display:none
  }
  main {
    padding:28px 25px 0
  }
  .workspace {
    grid-template-columns:minmax(0,1fr) 295px;
    gap:17px
  }
  .compose-panel {
    padding:22px 17px
  }
  .idea-card {
    min-width:0;
    width:34%;
    padding:13px
  }
  .idea-card h2 {
    font-size:15px
  }
  .idea-card[data-slot="0"] {
    left:3%
  }
  .idea-card[data-slot="1"] {
    right:3%
  }
  .idea-card[data-slot="2"] {
    left:2%
  }
  .idea-card[data-slot="3"] {
    right:2%
  }
  .idea-card[data-slot="4"] {
    left:8%
  }
  .idea-card[data-slot="5"] {
    right:8%
  }
  .card-bottom {
    gap:4px
  }
  .want-count strong {
    font-size:19px
  }
  .want-button {
    font-size:12px;
    padding:4px 5px
  }
  .want-count {
    font-size:12px
  }
  .board-toolbar {
    padding:0 16px
  }
  .sample-note {
    display:block;
    text-align:right;
    margin:0
  }
  .intro-note {
    display:none
  }
  .fire-center {
    width:235px
  }
  .fire-art {
    height:215px
  }
  .category-filters {
    gap:1px
  }
  .category-filters button {
    font-size:12px;
    padding:5px 7px
  }
  .night-track {
    gap:5px
  }
  .night-track span {
    width:20px;
    height:20px;
    font-size:12px
  }
  .journey-copy span {
    font-size:12px
  }
  .prompt-help button {
    padding:4px 6px;
    font-size:12px
  }
  .input-bottom {
    font-size:12px
  }
  .privacy-note {
    font-size:12px
  }
  .compose-panel h2 {
    font-size:20px
  }
}
@media(max-width:950px) and (min-width:761px) {
  .header-nav {
    display:none
  }
  .workspace {
    grid-template-columns:1fr 285px
  }
  .campfire-board {
    height:625px
  }
  .idea-card {
    width:45%
  }
  .idea-card[data-slot="0"],.idea-card[data-slot="2"],.idea-card[data-slot="4"] {
    left:3%
  }
  .idea-card[data-slot="1"],.idea-card[data-slot="3"],.idea-card[data-slot="5"] {
    right:3%
  }
  .idea-card[data-slot="0"],.idea-card[data-slot="1"] {
    top:10px
  }
  .idea-card[data-slot="2"],.idea-card[data-slot="3"] {
    top:220px
  }
  .idea-card[data-slot="4"],.idea-card[data-slot="5"] {
    top:430px
  }
  .fire-center {
    opacity:.24
  }
  .card-bottom {
    flex-wrap:wrap
  }
  .journey-copy span {
    max-width:260px
  }
  .night-track span:nth-child(n+7) {
    display:none
  }
  .night-track:after {
    content:'…12';
    font-size:12px;
    color:var(--muted)
  }
  .voice-total {
    font-size:12px
  }
  .view-tabs button {
  white-space:nowrap;
    font-size:12px;
    padding:5px 8px
  }
  .category-filters button {
    font-size:12px
  }
  .list-view .cards {
    grid-template-columns:1fr
  }
}
@media(max-width:760px) {
  .site-header {
    height:76px;
    padding:0 20px;
    gap:12px
  }
  .brand {
    font-size:19px;
    gap:9px
  }
  .brand small {
    font-size:12px;
    margin-top:5px
  }
  .brand-mark,.brand-mark svg {
    height:32px;
    width:29px
  }
  .header-nav {
    display:none
  }
  .header-actions {
    gap:5px
  }
  .header-actions .secondary-button {
    padding:8px;
    border:0
  }
  .header-actions .secondary-button span {
    display:none
  }
  .header-actions .icon-button {
    width:34px
  }
  .header-actions svg {
    width:19px
  }
  .header-actions .preview-tag {
    display:none
  }
  main {
    padding:23px 18px 100px
  }
  .page-intro {
    margin-bottom:22px
  }
  .session-line {
    font-size:12px;
    margin-bottom:14px
  }
  .session-date {
    font-size:12px
  }
  h1 {
    font-size:25px;
    line-height:1.65;
    letter-spacing:.025em;
    margin-bottom:10px
  }
  .mobile-break {
    display:block
  }
  .page-intro p {
    font-size:13px;
    line-height:1.9;
    max-width:330px
  }
  .workspace {
    display:block
  }
  .voices-panel {
    border:0;
    background:none;
    border-radius:0;
    overflow:visible
  }
  .board-toolbar {
    padding:0;
    height:49px
  }
  .voice-total {
    font-size:12px
  }
  .voice-total strong {
    font-size:17px
  }
  .sample-note {
    font-size:12px
  }
  .campfire-board {
    height:auto;
    padding-top:146px
  }
  .fire-center {
    top:-7px;
    left:50%;
    transform:translateX(-50%);
    width:200px;
    z-index:0
  }
  .fire-art {
    height:182px
  }
  .fire-caption {
    display:none
  }
  .orbit-line {
    display:none
  }
  .ember-drift {
    display:none
  }
  .cards {
    display:flex;
    flex-direction:column;
    gap:12px;
    height:auto
  }
  .idea-card {
    position:relative!important;
    inset:auto!important;
    width:100%;
    max-width:none;
    min-width:0;
    padding:18px 19px 15px;
    animation:none
  }
  .card-category {
    font-size:12px;
    margin-bottom:8px
  }
  .card-category svg {
    height:15px;
    width:15px
  }
  .idea-card h2 {
    font-size:17px;
    line-height:1.65;
    margin-bottom:13px
  }
  .card-bottom {
    gap:10px
  }
  .want-count {
    font-size:12px
  }
  .want-count strong {
    font-size:23px
  }
  .want-button {
    font-size:12px;
    padding:7px 12px;
    min-height:38px
  }
  .want-button svg {
    width:15px;
    height:15px
  }
  .board-bottom {
    border:0;
    padding:17px 0 10px;
    display:block
  }
  .category-filters {
    gap:5px;
    overflow-x:auto;
    flex-wrap:nowrap
  }
  .category-filters button {
    font-size:12px;
    padding:8px 10px;
    white-space:nowrap
  }
  #next-voices {
    margin:17px auto 4px;
    display:flex;
    width:100%;
    padding:10px
  }
  .compose-panel {
    display:none;
    position:fixed;
    bottom:0;
    left:0;
    right:0;
    z-index:31;
    border-radius:22px 22px 0 0;
    padding:26px 23px 27px;
    background:#22251e;
    max-height:92dvh;
    overflow-y:auto
  }
  .compose-panel.open {
    display:block;
    animation:sheet-in .4s var(--ease)
  }
  @keyframes sheet-in {
    from {
      transform:translateY(25%);
      opacity:.5
    }
    to {
      transform:translateY(0);
      opacity:1
    }
  }
  .close-compose {
    display:flex;
    position:absolute;
    right:14px;
    top:14px
  }
  .compose-symbol {
    margin-bottom:8px
  }
  .compose-panel h2 {
    font-size:22px
  }
  .compose-description {
    font-size:14px;
    margin-bottom:17px
  }
  .compose-panel textarea {
    font-size:16px
  }
  .input-bottom {
    font-size:12px
  }
  .prompt-help>span {
    font-size:12px
  }
  .prompt-help button {
    font-size:12px;
    padding:6px 9px
  }
  .privacy-note {
    font-size:12px
  }
  .primary-button {
    font-size:15px;
    min-height:49px
  }
  .compose-foot {
    display:none
  }
  .mobile-scrim {
    position:fixed;
    inset:0;
    background:#050a04b8;
    z-index:30;
    backdrop-filter:blur(5px)
  }
  .mobile-compose {
    display:flex;
    position:fixed;
    bottom:max(18px,env(safe-area-inset-bottom));
    left:20px;
    width:calc(100% - 40px);
    z-index:20;
    box-shadow:0 5px 25px #0009;
    min-height:51px
  }
  .mobile-compose svg {
    margin:0!important
  }
  .journey-strip {
    display:grid;
    grid-template-columns:1fr auto;
    gap:17px;
    margin-top:13px;
    padding:21px 0
  }
  .journey-copy {
    gap:12px
  }
  .journey-copy p {
    font-size:13px
  }
  .journey-copy span {
    font-size:12px;
    max-width:250px;
    line-height:1.8
  }
  .night-track {
    grid-column:1/-1;
    grid-row:2;
    justify-content:space-between;
    margin:0;
    gap:7px
  }
  .night-track span {
    width:21px;
    height:21px;
    font-size:12px
  }
  .journey-strip>.icon-button {
    grid-column:2;
    grid-row:1
  }
  .night-track .current {
    height:25px;
    width:25px
  }
  footer {
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-start;
    gap:12px;
    padding:21px 20px 99px;
    font-size:12px
  }
  #demo-info {
    text-align:left;
    justify-content:flex-start;
    width:100%;
    max-width:340px;
    font-size:12px;
    order:3;
    line-height:1.8
  }
  #reset-button {
    margin-left:auto;
    font-size:12px
  }
  .toast {
    bottom:88px;
    width:max-content;
    max-width:calc(100vw - 35px);
    font-size:13px;
    padding:12px 15px
  }
  .list-view .campfire-board {
    height:auto;
    padding:17px 0 0;
    overflow:visible
  }
  .list-view .cards {
    display:flex
  }
  
  
  
  
  
  
  
  
  
  
  dialog {
    padding:28px 24px
  }
  dialog h2 {
    font-size:22px
  }
  dialog p {
    font-size:14px
  }
  .desktop-only {
    display:none
  }
}
@media(prefers-reduced-motion:reduce) {
  *,*:before,*:after {
    animation:none!important;
    transition:none!important;
    scroll-behavior:auto!important
  }
}
/* Readable metadata and bounded cards preserve the circle with longer ideas. */
.idea-card h2 {
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  overflow:hidden
}
.card-expand {
  display:none;
  background:none;
  color:var(--accent);
  font-size:12px;
  padding:0;
  margin:-7px 0 8px;
  text-decoration:underline;
  text-underline-offset:3px
}
.full-idea {
  white-space:pre-wrap;
  overflow-wrap:anywhere
}
.input-bottom {
  flex-wrap:wrap;
  font-size:12px
}
.input-bottom #char-count {
  margin-left:auto
}
.privacy-note {
  font-size:12px;
  align-items:flex-start;
  text-align:left
}
.privacy-note svg {
  margin-top:4px;
  flex-shrink:0
}
.want-button {
  font-size:12px
}
.card-category {
  font-size:12px
}
.own-mark {
  font-size:12px
}
.compose-foot p,.journey-copy span,footer,footer .text-button {
  font-size:12px
}
.prompt-help>div {
  flex-wrap:wrap
}
.prompt-help button {
  font-size:12px
}
.idea-card.is-clipped .card-expand {
  display:inline-block
}
@media(max-width:1190px) {
  .card-bottom {
    flex-wrap:wrap
  }
  .want-button {
    margin-left:auto
  }
  .idea-card {
    padding:13px
  }
  .idea-card h2 {
    font-size:15px
  }
  .input-bottom {
    font-size:12px
  }
}
@media(max-width:760px) {
  .idea-card h2 {
    font-size:17px
  }
  .brand small {
    font-size:11px
  }
  .sample-note {
    font-size:11px
  }
  .journey-copy span {
    font-size:12px
  }
  #demo-info {
    font-size:12px
  }
  #reset-button {
    font-size:12px
  }
  .card-bottom {
    flex-wrap:nowrap
  }
  .category-filters {
    flex-wrap:wrap
  }
  
  .board-bottom {
    padding-bottom:16px
  }
}
@media(min-width:761px) {
  
  
  
  
  
  
  
  
  
  
  
  
  
  
}
/* Free expression: no visible taxonomy, and the organized result is a reading surface. */
.own-mark {
  display:block;
  margin:0 0 8px
}
.board-bottom {
  justify-content:flex-end
}
#organize-button {
  margin-top:24px
}
.review-result {
  margin:0 0 24px;
  padding:18px 16px;
  min-height:126px;
  border-left:2px solid var(--accent);
  background:#181b15;
  border-radius:0 8px 8px 0;
  font-size:17px;
  line-height:1.9;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  color:var(--text)
}
.review-result:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:4px
}
.merge-suggestion {
  margin-bottom:22px
}
.campfire-visual {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transform:none
}
[data-fire-stage="small"] {
  --fire-scale:1; --glow-scale:.7; --glow-opacity:.16
}
[data-fire-stage="growing"] {
  --fire-scale:1.11; --glow-scale:.85; --glow-opacity:.23
}
[data-fire-stage="medium"] {
  --fire-scale:1.22; --glow-scale:1; --glow-opacity:.30
}
[data-fire-stage="strong"] {
  --fire-scale:1.33; --glow-scale:1.15; --glow-opacity:.38
}
[data-fire-stage="large"] {
  --fire-scale:1.45; --glow-scale:1.3; --glow-opacity:.46
}
@media(min-width:761px) {
  .page-intro>div:first-child {
    min-width:0
  }
  .intro-note {
    flex-shrink:0
  }
  h1 {
    font-size:clamp(23px,2.2vw,32px)
  }
  .idea-card {
    height:176px;
    display:flex;
    flex-direction:column;
    padding-top:28px;
    padding-bottom:13px
  }
  .idea-card h2 {
    flex:0 1 auto;
    min-height:0;
    margin-bottom:6px;
    -webkit-line-clamp:2
  }
  .idea-card .own-mark {
    position:absolute;
    top:7px;
    right:13px;
    margin:0;
    line-height:16px
  }
  .card-bottom {
    margin-top:auto
  }
  .card-expand {
    align-self:flex-start;
    margin:0 0 6px;
    line-height:1.4
  }
  
}
@media(max-width:760px) {
  h1 {
    font-size:clamp(21px,5.65vw,25px);
    letter-spacing:0
  }
  .review-result {
    font-size:16px
  }
  .fire-center {
    width:230px
  }
  .campfire-board {
    padding-top:166px
  }
  .list-view .campfire-board {
    padding-top:17px
  }
}
.journey-copy>svg {
  color:var(--accent)
}
#compose-title,#review-compose-title {
  font-size:20px;
  line-height:1.65;
  text-wrap:initial
}
#compose-title span {
  display:inline-block;
  white-space:nowrap
}
#compose-title,h1,.compose-description,.idea-card h2 {
  word-break:auto-phrase;
  text-wrap:initial
}
@supports not (word-break:auto-phrase) {
  #compose-title,h1,.compose-description,.idea-card h2 {
    word-break:normal;
    overflow-wrap:anywhere
  }
}
@media(min-width:761px) {
  .fire-center {
    top:44%
  }
}
/* Keep the full circle in view on compact laptop displays. */
@media(min-width:761px) and (max-width:1190px) and (max-height:850px) {
  .site-header { height:72px; }
  main { padding-top:16px; }
  .page-intro { margin-bottom:12px; }
  .board-toolbar { height:49px; }
  .campfire-board { height:550px; }
  .idea-card[data-slot="0"],.idea-card[data-slot="1"] { top:0; }
  .idea-card[data-slot="2"],.idea-card[data-slot="3"] { top:184px; }
  .idea-card[data-slot="4"],.idea-card[data-slot="5"] { top:368px; }
}

/* Initial interface glyphs are grouped to avoid dozens of font requests.
   The full Google Fonts family loads on demand for other submitted text. */
@font-face {font-family:'Campfire UI';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/zen-kaku-ui-400.woff2') format('woff2');unicode-range:U+20,U+21,U+22,U+23,U+24,U+25,U+26,U+27,U+28,U+29,U+2a,U+2b,U+2c,U+2d,U+2e,U+2f,U+30,U+31,U+32,U+33,U+34,U+35,U+36,U+37,U+38,U+39,U+3a,U+3b,U+3c,U+3d,U+3e,U+3f,U+40,U+41,U+42,U+43,U+44,U+45,U+46,U+47,U+48,U+49,U+4a,U+4b,U+4c,U+4d,U+4e,U+4f,U+50,U+51,U+52,U+53,U+54,U+55,U+56,U+57,U+58,U+59,U+5a,U+5b,U+5c,U+5d,U+5f,U+60,U+61,U+62,U+63,U+64,U+65,U+66,U+67,U+68,U+69,U+6a,U+6b,U+6c,U+6d,U+6e,U+6f,U+70,U+71,U+72,U+73,U+74,U+75,U+76,U+77,U+78,U+79,U+7a,U+7b,U+7c,U+7d,U+3001,U+3002,U+300c,U+300d,U+3042,U+3044,U+3046,U+3048,U+304a,U+304b,U+304c,U+304d,U+304f,U+3051,U+3053,U+3054,U+3055,U+3057,U+3058,U+3059,U+305a,U+305b,U+305e,U+305f,U+3060,U+3061,U+3063,U+3064,U+3066,U+3067,U+3068,U+3069,U+306a,U+306b,U+306e,U+306f,U+3072,U+3078,U+307b,U+307e,U+307f,U+3080,U+3081,U+3082,U+3084,U+3087,U+3089,U+308a,U+308b,U+308c,U+308f,U+3092,U+3093,U+30a2,U+30a4,U+30a6,U+30aa,U+30ab,U+30af,U+30b3,U+30b6,U+30b9,U+30ba,U+30bd,U+30c7,U+30c8,U+30c9,U+30cf,U+30d1,U+30d3,U+30d4,U+30d6,U+30d7,U+30db,U+30de,U+30e0,U+30e1,U+30e2,U+30e5,U+30e9,U+30ea,U+30eb,U+30ec,U+30ed,U+30f3,U+30fb,U+30fc,U+4e00,U+4e08,U+4e8b,U+4eba,U+4ed5,U+4ed6,U+4ee5,U+4ef2,U+4f1a,U+4f1d,U+4f53,U+4f7f,U+4f8b,U+4fdd,U+5165,U+5168,U+516c,U+5171,U+5185,U+5206,U+5207,U+521d,U+5247,U+524d,U+529b,U+529f,U+52a0,U+53c2,U+53d6,U+540c,U+540d,U+554f,U+56f2,U+5728,U+5834,U+58eb,U+58f0,U+5916,U+5927,U+592b,U+5931,U+5b57,U+5b58,U+5b9f,U+5bb9,U+5bc4,U+5c0f,U+5c4a,U+5ea6,U+5f8c,U+601d,U+610f,U+611f,U+6210,U+623b,U+6240,U+6295,U+6301,U+6307,U+6557,U+6574,U+6587,U+65b9,U+66f8,U+66ff,U+6700,U+6709,U+672b,U+6848,U+6a5f,U+6b04,U+6b21,U+6b69,U+6c17,U+6cd5,U+6d88,U+706b,U+711a,U+73fe,U+7406,U+7528,U+7531,U+753b,U+7684,U+76ee,U+76f8,U+78ba,U+793a,U+793e,U+79c1,U+7a3f,U+7aef,U+7d44,U+7dd2,U+7f72,U+805e,U+81ea,U+8449,U+8868,U+898b,U+898f,U+89a7,U+8a00,U+8a66,U+8a71,U+8a8d,U+8aad,U+8ab0,U+8ac7,U+8ca0,U+8cea,U+8efd,U+8fd1,U+90e8,U+9589,U+958b,U+9593,U+96c6,U+96e3,U+9762,U+9a13,U+ff1a,U+ff1f;}
@font-face {font-family:'Campfire UI';font-style:normal;font-weight:500;font-display:swap;src:url('assets/fonts/zen-kaku-ui-500.woff2') format('woff2');unicode-range:U+20,U+21,U+22,U+23,U+24,U+25,U+26,U+27,U+28,U+29,U+2a,U+2b,U+2c,U+2d,U+2e,U+2f,U+30,U+31,U+32,U+33,U+34,U+35,U+36,U+37,U+38,U+39,U+3a,U+3b,U+3c,U+3d,U+3e,U+3f,U+40,U+41,U+42,U+43,U+44,U+45,U+46,U+47,U+48,U+49,U+4a,U+4b,U+4c,U+4d,U+4e,U+4f,U+50,U+51,U+52,U+53,U+54,U+55,U+56,U+57,U+58,U+59,U+5a,U+5b,U+5c,U+5d,U+5f,U+60,U+61,U+62,U+63,U+64,U+65,U+66,U+67,U+68,U+69,U+6a,U+6b,U+6c,U+6d,U+6e,U+6f,U+70,U+71,U+72,U+73,U+74,U+75,U+76,U+77,U+78,U+79,U+7a,U+7b,U+7c,U+7d,U+3001,U+3002,U+300c,U+300d,U+3042,U+3044,U+3046,U+3048,U+304a,U+304b,U+304c,U+304d,U+304f,U+3051,U+3053,U+3054,U+3055,U+3057,U+3058,U+3059,U+305a,U+305b,U+305e,U+305f,U+3060,U+3061,U+3063,U+3064,U+3066,U+3067,U+3068,U+3069,U+306a,U+306b,U+306e,U+306f,U+3072,U+3078,U+307b,U+307e,U+307f,U+3080,U+3081,U+3082,U+3084,U+3087,U+3089,U+308a,U+308b,U+308c,U+308f,U+3092,U+3093,U+30a2,U+30a4,U+30a6,U+30aa,U+30ab,U+30af,U+30b3,U+30b6,U+30b9,U+30ba,U+30bd,U+30c7,U+30c8,U+30c9,U+30cf,U+30d1,U+30d3,U+30d4,U+30d6,U+30d7,U+30db,U+30de,U+30e0,U+30e1,U+30e2,U+30e5,U+30e9,U+30ea,U+30eb,U+30ec,U+30ed,U+30f3,U+30fb,U+30fc,U+4e00,U+4e08,U+4e8b,U+4eba,U+4ed5,U+4ed6,U+4ee5,U+4ef2,U+4f1a,U+4f1d,U+4f53,U+4f7f,U+4f8b,U+4fdd,U+5165,U+5168,U+516c,U+5171,U+5185,U+5206,U+5207,U+521d,U+5247,U+524d,U+529b,U+529f,U+52a0,U+53c2,U+53d6,U+540c,U+540d,U+554f,U+56f2,U+5728,U+5834,U+58eb,U+58f0,U+5916,U+5927,U+592b,U+5931,U+5b57,U+5b58,U+5b9f,U+5bb9,U+5bc4,U+5c0f,U+5c4a,U+5ea6,U+5f8c,U+601d,U+610f,U+611f,U+6210,U+623b,U+6240,U+6295,U+6301,U+6307,U+6557,U+6574,U+6587,U+65b9,U+66f8,U+66ff,U+6700,U+6709,U+672b,U+6848,U+6a5f,U+6b04,U+6b21,U+6b69,U+6c17,U+6cd5,U+6d88,U+706b,U+711a,U+73fe,U+7406,U+7528,U+7531,U+753b,U+7684,U+76ee,U+76f8,U+78ba,U+793a,U+793e,U+79c1,U+7a3f,U+7aef,U+7d44,U+7dd2,U+7f72,U+805e,U+81ea,U+8449,U+8868,U+898b,U+898f,U+89a7,U+8a00,U+8a66,U+8a71,U+8a8d,U+8aad,U+8ab0,U+8ac7,U+8ca0,U+8cea,U+8efd,U+8fd1,U+90e8,U+9589,U+958b,U+9593,U+96c6,U+96e3,U+9762,U+9a13,U+ff1a,U+ff1f;}
@font-face {font-family:'Campfire UI';font-style:normal;font-weight:700;font-display:swap;src:url('assets/fonts/zen-kaku-ui-700.woff2') format('woff2');unicode-range:U+20,U+21,U+22,U+23,U+24,U+25,U+26,U+27,U+28,U+29,U+2a,U+2b,U+2c,U+2d,U+2e,U+2f,U+30,U+31,U+32,U+33,U+34,U+35,U+36,U+37,U+38,U+39,U+3a,U+3b,U+3c,U+3d,U+3e,U+3f,U+40,U+41,U+42,U+43,U+44,U+45,U+46,U+47,U+48,U+49,U+4a,U+4b,U+4c,U+4d,U+4e,U+4f,U+50,U+51,U+52,U+53,U+54,U+55,U+56,U+57,U+58,U+59,U+5a,U+5b,U+5c,U+5d,U+5f,U+60,U+61,U+62,U+63,U+64,U+65,U+66,U+67,U+68,U+69,U+6a,U+6b,U+6c,U+6d,U+6e,U+6f,U+70,U+71,U+72,U+73,U+74,U+75,U+76,U+77,U+78,U+79,U+7a,U+7b,U+7c,U+7d,U+3001,U+3002,U+300c,U+300d,U+3042,U+3044,U+3046,U+3048,U+304a,U+304b,U+304c,U+304d,U+304f,U+3051,U+3053,U+3054,U+3055,U+3057,U+3058,U+3059,U+305a,U+305b,U+305e,U+305f,U+3060,U+3061,U+3063,U+3064,U+3066,U+3067,U+3068,U+3069,U+306a,U+306b,U+306e,U+306f,U+3072,U+3078,U+307b,U+307e,U+307f,U+3080,U+3081,U+3082,U+3084,U+3087,U+3089,U+308a,U+308b,U+308c,U+308f,U+3092,U+3093,U+30a2,U+30a4,U+30a6,U+30aa,U+30ab,U+30af,U+30b3,U+30b6,U+30b9,U+30ba,U+30bd,U+30c7,U+30c8,U+30c9,U+30cf,U+30d1,U+30d3,U+30d4,U+30d6,U+30d7,U+30db,U+30de,U+30e0,U+30e1,U+30e2,U+30e5,U+30e9,U+30ea,U+30eb,U+30ec,U+30ed,U+30f3,U+30fb,U+30fc,U+4e00,U+4e08,U+4e8b,U+4eba,U+4ed5,U+4ed6,U+4ee5,U+4ef2,U+4f1a,U+4f1d,U+4f53,U+4f7f,U+4f8b,U+4fdd,U+5165,U+5168,U+516c,U+5171,U+5185,U+5206,U+5207,U+521d,U+5247,U+524d,U+529b,U+529f,U+52a0,U+53c2,U+53d6,U+540c,U+540d,U+554f,U+56f2,U+5728,U+5834,U+58eb,U+58f0,U+5916,U+5927,U+592b,U+5931,U+5b57,U+5b58,U+5b9f,U+5bb9,U+5bc4,U+5c0f,U+5c4a,U+5ea6,U+5f8c,U+601d,U+610f,U+611f,U+6210,U+623b,U+6240,U+6295,U+6301,U+6307,U+6557,U+6574,U+6587,U+65b9,U+66f8,U+66ff,U+6700,U+6709,U+672b,U+6848,U+6a5f,U+6b04,U+6b21,U+6b69,U+6c17,U+6cd5,U+6d88,U+706b,U+711a,U+73fe,U+7406,U+7528,U+7531,U+753b,U+7684,U+76ee,U+76f8,U+78ba,U+793a,U+793e,U+79c1,U+7a3f,U+7aef,U+7d44,U+7dd2,U+7f72,U+805e,U+81ea,U+8449,U+8868,U+898b,U+898f,U+89a7,U+8a00,U+8a66,U+8a71,U+8a8d,U+8aad,U+8ab0,U+8ac7,U+8ca0,U+8cea,U+8efd,U+8fd1,U+90e8,U+9589,U+958b,U+9593,U+96c6,U+96e3,U+9762,U+9a13,U+ff1a,U+ff1f;}

@font-face {font-family:'DM Sans';font-style:normal;font-weight:100 1000;font-display:swap;src:url('assets/fonts/dm-sans-latin.woff2') format('woff2');}

/* Presentation is a reading surface with four voices and a persistent entry QR. */
.screen-stats,.screen-footer { display:none; }
.presentation .compose-panel,.presentation .intro-note,.presentation .journey-strip,
.presentation .header-nav,.presentation .mobile-compose,.presentation .board-toolbar,
.presentation .board-bottom,.presentation .own-mark,.presentation .want-button,
.presentation .skip-link,.presentation #qr-button { display:none; }
.presentation .workspace { grid-template-columns:1fr; }
.presentation .screen-stats { display:grid; grid-template-columns:repeat(2,max-content); gap:32px; }
.screen-metric { margin:0; display:flex; flex-direction:column-reverse; align-items:flex-end; }
.screen-metric dt { font-size:20px; color:var(--muted); }
.screen-metric dd { margin:0; font:500 clamp(32px,2.6vw,48px)/1.05 'DM Sans',sans-serif; }
.presentation .screen-footer { display:flex; justify-content:center; align-items:center; gap:20px; }
.screen-qr { background:#fff; padding:12px; border-radius:8px; color:var(--ink); flex:none; }
.screen-qr img { display:block; width:128px; height:128px; }
#screen-url { max-width:460px; overflow-wrap:anywhere; font:16px/1.5 'DM Sans',sans-serif; color:var(--muted); }
@media(min-width:761px) {
  body.presentation { height:100dvh; display:flex; flex-direction:column; }
  .presentation .site-header { height:64px; flex:none; }
  .presentation main { display:flex; flex-direction:column; flex:1; min-height:0; width:100%; max-width:none; padding:18px 3vw 12px; }
  .presentation .page-intro { flex:none; margin-bottom:12px; gap:32px; align-items:center; }
  .presentation h1 { font-size:clamp(36px,2.2vw,48px); line-height:1.35; margin:0; }
  .presentation .page-intro>div:first-child>p { display:none; }
  .presentation .workspace { display:block; flex:1; min-height:0; }
  .presentation .voices-panel { height:100%; border:0; background:transparent; overflow:visible; }
  .presentation .campfire-board { height:100%; min-height:0; padding:0; }
  .presentation .cards { height:100%; }
  .presentation .idea-card { width:min(460px,26vw); max-width:none; min-width:0; height:calc((100% - 32px)/2); max-height:310px; padding:18px; }
  .presentation .idea-card h2 { font-size:clamp(32px,1.9vw,40px); line-height:1.35; white-space:normal; -webkit-line-clamp:3; }
  .presentation .want-count { font-size:clamp(16px,1.2vw,22px); }
  .presentation .want-count strong { font-size:clamp(40px,3.4vw,64px); }
  .presentation .card-expand { font-size:18px; margin:8px 0; }
  .presentation .idea-card[data-slot="0"] { left:16px; right:auto; top:0; bottom:auto; }
  .presentation .idea-card[data-slot="1"] { right:16px; left:auto; top:0; bottom:auto; }
  .presentation .idea-card[data-slot="2"] { left:16px; right:auto; top:auto; bottom:0; }
  .presentation .idea-card[data-slot="3"] { right:16px; left:auto; top:auto; bottom:0; }
  .presentation .fire-center { width:min(500px,26vw); top:60%; opacity:1; }
  .presentation .fire-art { height:auto; aspect-ratio:1.15; }
  .presentation .screen-footer { flex:none; padding-top:12px; min-height:164px; }
}
@media(max-width:760px) {
  .presentation .page-intro { display:block; }
  .presentation .screen-stats { margin-top:16px; }
  .presentation .screen-footer { margin:24px 0; flex-wrap:wrap; }
  .presentation .screen-metric { align-items:flex-start; }
  .presentation .idea-card { width:100%; }
}

/* Screen rotation uses only finite opacity fades; participant pages stay still. */
.board-bottom { justify-content:space-between; }
#previous-voices,#next-voices { font-size:13px; white-space:nowrap; min-height:32px; }
#page-position { font-family:"DM Sans",sans-serif; font-size:13px; color:var(--muted); }
.presentation .idea-card { animation:none; border-color:#414839; }
.presentation .screen-outgoing { position:absolute; inset:0; pointer-events:none; z-index:3; }
.presentation .fresh-arrival { border-color:#edba70; }

/* Scale the artwork and its mask as one surface, preserving the original flame. */
.fire-art { transform:scale(var(--fire-scale,1)); transform-origin:50% 78%; transition:transform .8s cubic-bezier(.16,1,.3,1); }
.fire-center::before { content:""; position:absolute; inset:-12%; background:radial-gradient(ellipse closest-side at 50% 50%,#cf742c 0%,#814621 35%,transparent 100%); transform:scale(var(--glow-scale)); opacity:var(--glow-opacity); transition:transform .8s ease,opacity .8s ease; }
@media(min-width:951px) {
  body:not(.presentation) .voices-panel:not(.list-view) .idea-card { width:27%; }
  body:not(.presentation) .voices-panel:not(.list-view) .idea-card:nth-child(odd) { left:2%; right:auto; }
  body:not(.presentation) .voices-panel:not(.list-view) .idea-card:nth-child(even) { right:2%; left:auto; }
  body:not(.presentation) .fire-center { width:min(320px,28%); }
  body:not(.presentation) .fire-art { height:auto; aspect-ratio:1.1; }
}
@media(max-width:760px) {
  .campfire-board { padding-top:250px; }
  .fire-center { top:45px; }
}
@media(min-width:761px) and (max-width:950px) {
  body:not(.presentation) .voices-panel:not(.list-view) .campfire-board { height:auto; padding:255px 14px 16px; }
  body:not(.presentation) .voices-panel:not(.list-view) .cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; height:auto; }
  body:not(.presentation) .voices-panel:not(.list-view) .idea-card { position:relative; inset:auto; width:auto; }
  body:not(.presentation) .fire-center { top:40px; width:220px; transform:translateX(-50%); opacity:1; }
  body:not(.presentation) .fire-art { height:182px; }
}

/* Keep actions inside the visible viewport while the mobile keyboard is open. */
@media(max-width:760px) {
  .compose-panel { bottom:var(--compose-bottom,0px); height:min(620px,calc(var(--compose-vh,100svh) - 12px)); max-height:none; overflow:hidden; padding:20px 23px max(14px,env(safe-area-inset-bottom)); }
  .compose-panel.open { display:flex; flex-direction:column; }
  .compose-panel form,.review-step { display:flex; flex-direction:column; flex:1; min-height:0; }
  #compose-input-heading,#compose-review-heading { flex:none; }
  .compose-panel .textarea-wrap { flex:1; min-height:65px; overflow:auto; display:flex; flex-direction:column; }
  .compose-panel textarea { flex:1; min-height:50px; height:auto; }
  .input-bottom { flex:none; }
  #organize-button,#publish-button { position:sticky; bottom:0; flex:none; margin-top:12px; }
  .privacy-note { flex:none; margin:10px 0 0; }
  .form-error { flex:none; margin:6px 0 0; }
  .review-scroll { flex:1; min-height:0; overflow:auto; padding:4px; }
  .review-result { min-height:0; margin-bottom:16px; }
  #back-button { flex:none; margin:6px auto 0; min-height:36px; }
  .board-bottom { flex-direction:row; align-items:center; }
  #previous-voices,#next-voices { width:auto; margin:0; padding:8px 0; }
}
@media(max-width:760px) and (max-height:560px) {
  .compose-panel .compose-symbol,.compose-panel .compose-description { display:none; }
  .compose-panel h2 { margin:0 32px 12px 0; }
  .privacy-note { font-size:12px; }
}
/* Production waiting and confirmation states share the established visual language. */
.connection-status{margin:0 0 1rem;color:#6c553c;font-size:.875rem}
.equivalent-choice{display:block;line-height:1.7;margin:.8rem 0;cursor:pointer}
.equivalent-choice input{margin-right:.5rem;width:18px;height:18px;accent-color:#a6522b}
button:disabled{cursor:default}
