body.idea_open { overflow: hidden; }
.card[role="button"] { cursor: pointer; }
#idea_backdrop { position: fixed; inset: 0; background: rgba(24,22,20,.32); backdrop-filter: blur(3px); opacity: 0; pointer-events: none; transition: opacity .35s; z-index: 90; }
#idea_backdrop.open { opacity: 1; pointer-events: auto; }
#idea_panel { --panel: var(--bg, #eee); position: fixed; z-index: 100; top: 0; right: 0; width: min(720px, 94vw); height: 100dvh; background: #faf8f3; box-shadow: -20px 0 50px rgba(30,25,20,.2); transform: translateX(105%); transition: transform .42s cubic-bezier(.2,.8,.2,1); display: flex; flex-direction: column; overflow-y: auto; color: #332f2b; }
#idea_panel.open { transform: translateX(0); }
.idea_header { display: flex; justify-content: space-between; align-items: start; padding: 28px 32px 18px; background: var(--bg); border-bottom: 1px solid rgba(60,50,40,.12); }
.eyebrow { display: block; font-size: 10px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; opacity: .55; margin-bottom: 5px; }
.idea_header h2 { font-family: Georgia, serif; font-size: clamp(25px,4vw,38px); font-weight: 500; }
#idea_close { border: 0; background: rgba(255,255,255,.5); border-radius: 50%; width: 38px; height: 38px; font-size: 27px; cursor: pointer; }
.idea_entries { flex: 0 0 auto; min-height: 104px; padding: 13px 34px 18px; background-size: 100% 1.7em; }
.idea_entries li { min-height: 1.7em; padding: .3em 1em; font-family: Georgia,serif; font-size: 14px; }
.idea_entries .muted { opacity: .5; font-style: italic; }
.map_section { padding: 24px 32px 14px; }
.section_heading { display: flex; justify-content: space-between; align-items: end; margin-bottom: 12px; }
.section_heading h3 { font: 500 21px Georgia,serif; }
.map_legend { font-size: 10px; color: #777; }.map_legend i { display:inline-block;width:7px;height:7px;border-radius:50%;background:#668b88;margin:0 3px 0 8px}
#capability_map { position: relative; min-height: 290px; border: 1px solid #292d36; border-radius: 18px; overflow: hidden; background:#000; perspective:700px; }
#capability_map:before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle,rgba(255,255,255,.95) 0 .65px,transparent .85px),radial-gradient(circle,rgba(176,211,255,.72) 0 .8px,transparent 1.1px),radial-gradient(circle,rgba(255,225,157,.62) 0 .55px,transparent .85px);background-size:29px 37px,71px 67px,113px 97px;background-position:7px 13px,19px 23px,43px 11px;opacity:.85}
#map_nodes { min-height: 290px; display: flex; flex-wrap: wrap; align-content: center; justify-content: center; gap: 35px 56px; padding: 36px; position: relative; z-index: 2; }
.map_node { position:relative; display:grid; place-items:center; width:clamp(76px,15vw,102px); aspect-ratio:1; border:1px solid #ffe9a0; border-radius:50%; padding:12px; color:#3b2705; background:radial-gradient(circle at 33% 27%,#fff7bd 0 5%,#f7d96c 15%,#d9a92e 45%,#a66b0c 72%,#5f3703 100%); font-size:10px;line-height:1.16;font-weight:800;text-align:center;text-wrap:balance;box-shadow:inset -9px -11px 17px rgba(83,45,0,.42),inset 6px 7px 10px rgba(255,250,186,.58),0 0 0 3px rgba(226,177,53,.15),0 9px 22px rgba(0,0,0,.45);cursor:pointer;will-change:transform;transition:filter .45s ease,box-shadow .45s ease;transform-origin:center}.map_node:before{content:"";position:absolute;inset:7px;border:1px solid rgba(255,242,160,.52);border-radius:50%;pointer-events:none}.map_node:hover,.map_node:focus-visible,.map_node.map_nearest{filter:brightness(1.12);box-shadow:inset -9px -11px 17px rgba(83,45,0,.35),inset 6px 7px 10px rgba(255,250,186,.7),0 0 0 4px rgba(239,194,72,.2),0 0 27px rgba(240,190,50,.48),0 13px 28px rgba(0,0,0,.48)}
.map_node.skill{color:#3b2705}
#map_edges { position:absolute;inset:0;width:100%;height:100%;z-index:1;filter:drop-shadow(0 0 3px rgba(130,206,225,.5))}#map_edges line{stroke:#9dd7e5;stroke-width:1.7;opacity:.68;transition:opacity .35s ease,stroke-width .35s ease}
#map_empty { position:absolute;inset:0;display:grid;place-items:center;padding:30px;color:#aaa7a1;font:italic 14px Georgia,serif;text-align:center; }
#map_empty[hidden] { display:none; }
#token_detail { margin-top: 12px; padding: 16px 18px; border-radius: 14px; background: #fff; border: 1px solid #e5e0d8; position:relative; }
#token_detail[hidden]{display:none}#token_type{text-transform:uppercase;font-size:9px;font-weight:800;letter-spacing:.14em;color:#777}#token_detail h3{font:500 18px Georgia,serif;margin:3px 0}#token_detail p{font-size:12px;line-height:1.5;color:#65615c;padding-right:130px}#learn_button{position:absolute;right:15px;bottom:15px;border:0;border-radius:999px;padding:8px 14px;background:#302d29;color:white;cursor:pointer}#learn_button:disabled{opacity:.55;cursor:default}#chat_status a{color:#315f68;font-weight:700}
.idea_chat { margin-top: auto; padding: 10px 32px 26px; }.idea_chat:before{content:"Conversation";display:block;font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#888;margin-bottom:8px}
#chat_messages { max-height: 190px; overflow-y:auto; display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.message{max-width:83%;font-size:12px;line-height:1.45;padding:9px 12px;border-radius:12px;background:#ebe7e0}.message.user{align-self:flex-end;background:var(--bg)}.message span{font-size:8px;text-transform:uppercase;font-weight:800;opacity:.5}.message p{white-space:pre-wrap}
#chat_form { display:flex;gap:8px;align-items:flex-end;border:1px solid #d9d3ca;border-radius:16px;background:white;padding:7px }#chat_input{resize:none;flex:1;border:0;outline:0;padding:8px;font:13px Arial;background:transparent}#chat_form button{border:0;border-radius:11px;background:#302d29;color:white;padding:10px 15px;cursor:pointer}#chat_form button:disabled{opacity:.5}#chat_status{min-height:15px;font-size:10px;color:#847e75;margin:5px 6px}
@media(max-width:600px){.idea_header,.map_section,.idea_chat{padding-left:20px;padding-right:20px}.idea_entries{padding-left:21px;padding-right:20px}#map_nodes{gap:28px;padding:28px 18px}.map_node{width:78px}}
@media(prefers-reduced-motion:reduce){.map_node{will-change:auto}}
