:root{--ifs-void: #09090f;--ifs-deep: #0e0e1a;--ifs-cosmos: #141425;--ifs-surface: #1a1a2e;--ifs-rim: #252540;--ifs-soft-rim: #1e1e35;--ifs-self: #e8d5a8;--ifs-self-glow: rgba(232,213,168,.15);--ifs-protector: #7ab4d4;--ifs-firefighter: #d4846a;--ifs-exile: #b07ab4;--ifs-witness: #7ab49a;--ifs-text: #d8d0e8;--ifs-muted: #7870a0;--ifs-faint: #4a4468}.ifs-cosmos-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse 80% 60% at 50% -20%,rgba(120,90,180,.12) 0%,transparent 60%),radial-gradient(ellipse 50% 50% at 0% 60%,rgba(80,130,180,.08) 0%,transparent 50%),radial-gradient(ellipse 60% 40% at 100% 80%,rgba(160,90,160,.08) 0%,transparent 50%),radial-gradient(ellipse 40% 60% at 50% 100%,rgba(122,180,154,.06) 0%,transparent 50%),var(--ifs-void)}.ifs-page{max-width:800px;margin:0 auto;padding:4rem 1.8rem 8rem;position:relative;z-index:1;color:var(--ifs-text);font-family:Lora,serif}.ifs-header{text-align:center;margin-bottom:4rem;animation:ifs-ascend 1s ease both}.ifs-header-glyph{font-size:2.8rem;display:block;opacity:.7;filter:drop-shadow(0 0 12px rgba(232,213,168,.4));margin-bottom:1rem}.ifs-header-subtitle{font-family:Fragment Mono,monospace;font-size:.58rem;letter-spacing:.28em;text-transform:uppercase;color:var(--ifs-muted);margin-bottom:1.2rem;font-style:italic}.ifs-header h1{font-family:Gilda Display,serif;font-size:clamp(2.8rem,7vw,4.4rem);font-weight:400;line-height:1;color:var(--ifs-self);letter-spacing:.02em;text-shadow:0 0 40px rgba(232,213,168,.3);margin-bottom:1rem}.ifs-header-desc{font-size:1.05rem;font-style:italic;color:var(--ifs-muted);max-width:480px;margin:0 auto;line-height:1.75}.ifs-legend{display:flex;gap:1.5rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;padding-top:2rem;border-top:1px solid var(--ifs-rim)}.ifs-legend-item{display:flex;align-items:center;gap:.5rem;font-family:Fragment Mono,monospace;font-size:.55rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ifs-muted);font-style:italic}.ifs-legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.ifs-exercise{margin-bottom:1.4rem;animation:ifs-ascend .8s ease both;border-radius:2px;overflow:hidden;border:1px solid var(--ifs-rim);background:var(--ifs-deep)}.ifs-exercise:nth-child(1){animation-delay:.1s}.ifs-exercise:nth-child(2){animation-delay:.2s}.ifs-exercise:nth-child(3){animation-delay:.3s}.ifs-exercise:nth-child(4){animation-delay:.4s}.ifs-exercise:nth-child(5){animation-delay:.5s}.ifs-exercise:before{content:"";display:block;height:2px}.ifs-e1:before{background:linear-gradient(90deg,var(--ifs-self),transparent)}.ifs-e2:before{background:linear-gradient(90deg,var(--ifs-protector),transparent)}.ifs-e3:before{background:linear-gradient(90deg,var(--ifs-firefighter),transparent)}.ifs-e4:before{background:linear-gradient(90deg,var(--ifs-exile),transparent)}.ifs-e5:before{background:linear-gradient(90deg,var(--ifs-witness),transparent)}.ifs-ex-header{display:flex;align-items:center;gap:1.4rem;padding:1.5rem 1.8rem;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background .25s}.ifs-ex-header:hover{background:var(--ifs-soft-rim)}.ifs-exercise.open .ifs-ex-header{background:var(--ifs-cosmos)}.ifs-ex-orb{width:36px;height:36px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:1.1rem;border:1px solid}.ifs-e1 .ifs-ex-orb{border-color:var(--ifs-self);background:#e8d5a81a;box-shadow:0 0 12px #e8d5a826}.ifs-e2 .ifs-ex-orb{border-color:var(--ifs-protector);background:#7ab4d41a;box-shadow:0 0 12px #7ab4d426}.ifs-e3 .ifs-ex-orb{border-color:var(--ifs-firefighter);background:#d4846a1a;box-shadow:0 0 12px #d4846a26}.ifs-e4 .ifs-ex-orb{border-color:var(--ifs-exile);background:#b07ab41a;box-shadow:0 0 12px #b07ab426}.ifs-e5 .ifs-ex-orb{border-color:var(--ifs-witness);background:#7ab49a1a;box-shadow:0 0 12px #7ab49a26}.ifs-ex-title-block{flex:1}.ifs-ex-title-block h2{font-family:Gilda Display,serif;font-size:1.15rem;font-weight:400;color:var(--ifs-text);margin-bottom:.2rem}.ifs-ex-title-block span{font-family:Fragment Mono,monospace;font-size:.55rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ifs-faint);font-style:italic}.ifs-ex-chevron{font-family:Fragment Mono,monospace;color:var(--ifs-faint);font-size:.9rem;transition:transform .4s ease,color .2s}.ifs-exercise.open .ifs-ex-chevron{transform:rotate(90deg);color:var(--ifs-muted)}.ifs-ex-body{padding:0 2rem 2.2rem;border-top:1px solid var(--ifs-rim)}.ifs-guide{font-size:.95rem;font-style:italic;color:var(--ifs-muted);line-height:1.8;margin:1.6rem 0;padding:1rem 1.2rem;border-left:2px solid;background:#ffffff05}.ifs-e1 .ifs-guide{border-left-color:var(--ifs-self)}.ifs-e2 .ifs-guide{border-left-color:var(--ifs-protector)}.ifs-e3 .ifs-guide{border-left-color:var(--ifs-firefighter)}.ifs-e4 .ifs-guide{border-left-color:var(--ifs-exile)}.ifs-e5 .ifs-guide{border-left-color:var(--ifs-witness)}.ifs-field-group{margin-bottom:1.4rem}.ifs-field-label{font-family:Fragment Mono,monospace;font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ifs-muted);margin-bottom:.5rem;display:block;font-style:italic}.ifs-field-prompt{font-size:.88rem;color:var(--ifs-faint);font-style:italic;margin-bottom:.6rem;line-height:1.6}.ifs-page textarea,.ifs-page input[type=text]{width:100%;background:var(--ifs-cosmos);border:1px solid var(--ifs-rim);padding:.75rem 1rem;font-family:Lora,serif;font-size:.92rem;color:var(--ifs-text);outline:none;resize:none;transition:border-color .25s,box-shadow .25s;border-radius:1px;font-style:italic;line-height:1.65;caret-color:var(--ifs-self)}.ifs-page textarea::-moz-placeholder,.ifs-page input::-moz-placeholder{color:var(--ifs-faint)}.ifs-page textarea::placeholder,.ifs-page input::placeholder{color:var(--ifs-faint)}.ifs-e1 textarea:focus,.ifs-e1 input:focus{border-color:var(--ifs-self);box-shadow:0 0 0 2px #e8d5a814}.ifs-e2 textarea:focus,.ifs-e2 input:focus{border-color:var(--ifs-protector);box-shadow:0 0 0 2px #7ab4d414}.ifs-e3 textarea:focus,.ifs-e3 input:focus{border-color:var(--ifs-firefighter);box-shadow:0 0 0 2px #d4846a14}.ifs-e4 textarea:focus,.ifs-e4 input:focus{border-color:var(--ifs-exile);box-shadow:0 0 0 2px #b07ab414}.ifs-e5 textarea:focus,.ifs-e5 input:focus{border-color:var(--ifs-witness);box-shadow:0 0 0 2px #7ab49a14}.ifs-btn{display:inline-flex;align-items:center;gap:.5rem;font-family:Fragment Mono,monospace;font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;padding:.6rem 1.4rem;border:1px solid currentColor;background:transparent;cursor:pointer;transition:all .25s;border-radius:1px;font-style:italic}.ifs-e1 .ifs-btn{color:var(--ifs-self)}.ifs-e1 .ifs-btn:hover{background:#e8d5a81f;box-shadow:0 0 16px #e8d5a833}.ifs-e2 .ifs-btn{color:var(--ifs-protector)}.ifs-e2 .ifs-btn:hover{background:#7ab4d41f;box-shadow:0 0 16px #7ab4d433}.ifs-e3 .ifs-btn{color:var(--ifs-firefighter)}.ifs-e3 .ifs-btn:hover{background:#d4846a1f;box-shadow:0 0 16px #d4846a33}.ifs-e4 .ifs-btn{color:var(--ifs-exile)}.ifs-e4 .ifs-btn:hover{background:#b07ab41f;box-shadow:0 0 16px #b07ab433}.ifs-e5 .ifs-btn{color:var(--ifs-witness)}.ifs-e5 .ifs-btn:hover{background:#7ab49a1f;box-shadow:0 0 16px #7ab49a33}.ifs-btn-row{display:flex;gap:.8rem;align-items:center;margin-top:1.5rem;flex-wrap:wrap}.ifs-reset-link{font-family:Fragment Mono,monospace;font-size:.52rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ifs-faint);background:none;border:none;cursor:pointer;transition:color .2s;font-style:italic}.ifs-reset-link:hover{color:var(--ifs-muted)}.ifs-result-panel{margin-top:1.4rem;padding:1.2rem 1.4rem;border:1px solid var(--ifs-rim);border-radius:1px;background:#ffffff05;animation:ifs-glow-in .5s ease}.ifs-result-label{font-family:Fragment Mono,monospace;font-size:.52rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ifs-faint);margin-bottom:.8rem;font-style:italic}.ifs-result-text{font-size:.92rem;line-height:1.75;color:var(--ifs-text);font-style:italic}.ifs-result-text strong{font-style:normal;color:var(--ifs-self)}.ifs-e2 .ifs-result-text strong{color:var(--ifs-protector)}.ifs-e3 .ifs-result-text strong{color:var(--ifs-firefighter)}.ifs-e4 .ifs-result-text strong{color:var(--ifs-exile)}.ifs-e5 .ifs-result-text strong{color:var(--ifs-witness)}.ifs-parts-canvas-wrap{position:relative;width:100%;height:360px;border:1px solid var(--ifs-rim);border-radius:1px;background:var(--ifs-void);overflow:hidden;margin-bottom:1.2rem;cursor:crosshair}.ifs-parts-canvas-wrap:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 60% 60% at 50% 50%,rgba(232,213,168,.04) 0%,transparent 70%);pointer-events:none}.ifs-self-orb{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:60px;height:60px;border-radius:50%;background:radial-gradient(circle,#e8d5a84d,#e8d5a80d);border:1.5px solid var(--ifs-self);display:flex;align-items:center;justify-content:center;font-family:Gilda Display,serif;font-size:.7rem;color:var(--ifs-self);letter-spacing:.05em;box-shadow:0 0 24px #e8d5a833,0 0 60px #e8d5a814;pointer-events:none;z-index:10;animation:ifs-selfPulse 4s ease-in-out infinite}@keyframes ifs-selfPulse{0%,to{box-shadow:0 0 24px #e8d5a833,0 0 60px #e8d5a814}50%{box-shadow:0 0 36px #e8d5a859,0 0 80px #e8d5a826}}.ifs-part-node{position:absolute;border-radius:50%;width:52px;height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;border:1px solid;font-size:.55rem;text-align:center;padding:2px;transition:transform .2s,box-shadow .2s;z-index:5;-webkit-user-select:none;-moz-user-select:none;user-select:none;line-height:1.2}.ifs-part-node:hover{transform:translate(-50%,-50%) scale(1.1)}.ifs-part-node.selected{transform:translate(-50%,-50%) scale(1.15);z-index:20}.ifs-part-emoji{font-size:1.1rem;line-height:1;margin-bottom:2px}.ifs-part-name{font-family:Fragment Mono,monospace;font-size:.42rem;letter-spacing:.06em}.ifs-connector-line{position:absolute;top:50%;left:50%;transform-origin:0 0;height:1px;opacity:.3;pointer-events:none}.ifs-parts-add-row{display:grid;grid-template-columns:1fr auto auto;gap:.6rem;align-items:center;margin-bottom:1rem}.ifs-part-type-select{padding:.55rem .8rem;background:var(--ifs-cosmos);border:1px solid var(--ifs-rim);color:var(--ifs-text);font-family:Fragment Mono,monospace;font-size:.58rem;letter-spacing:.08em;outline:none;cursor:pointer;border-radius:1px;font-style:italic}.ifs-part-type-select:focus{border-color:var(--ifs-self)}.ifs-add-part-btn{padding:.55rem 1rem;border:1px solid var(--ifs-self);background:transparent;color:var(--ifs-self);font-family:Fragment Mono,monospace;font-size:.58rem;letter-spacing:.12em;cursor:pointer;transition:all .2s;border-radius:1px;font-style:italic;white-space:nowrap}.ifs-add-part-btn:hover{background:#e8d5a81a}.ifs-part-detail-panel{padding:1rem 1.2rem;border:1px solid var(--ifs-rim);border-radius:1px;background:#ffffff05;margin-top:.8rem;animation:ifs-glow-in .3s ease}.ifs-part-detail-name{font-family:Gilda Display,serif;font-size:1.1rem;margin-bottom:.4rem}.ifs-part-detail-type{font-family:Fragment Mono,monospace;font-size:.52rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ifs-muted);font-style:italic;margin-bottom:.8rem}.ifs-interview-steps{display:flex;flex-direction:column;gap:1rem}.ifs-interview-q{border:1px solid var(--ifs-rim);border-radius:1px;overflow:hidden;transition:border-color .3s}.ifs-interview-q.answered{border-color:#7ab4d466}.ifs-interview-q-head{display:flex;align-items:flex-start;gap:.8rem;padding:.9rem 1rem;background:#ffffff05}.ifs-q-num{font-family:Fragment Mono,monospace;font-size:.52rem;color:var(--ifs-protector);min-width:1.2rem;font-style:italic;padding-top:2px}.ifs-q-text{font-size:.95rem;font-style:italic;color:var(--ifs-text);line-height:1.55}.ifs-interview-q textarea{border:none;border-top:1px solid var(--ifs-rim);border-radius:0;background:var(--ifs-void)}.ifs-interview-q.answered textarea{background:#7ab4d408}.ifs-trigger-chain{display:flex;flex-direction:column;gap:.8rem;position:relative;padding-left:1.8rem}.ifs-trigger-chain:before{content:"";position:absolute;left:8px;top:20px;bottom:20px;width:1px;background:linear-gradient(to bottom,var(--ifs-firefighter),transparent);opacity:.3}.ifs-chain-node{position:relative;border:1px solid var(--ifs-rim);border-radius:1px;padding:1rem;background:#ffffff03}.ifs-chain-node:before{content:"";position:absolute;left:-1.5rem;top:50%;transform:translateY(-50%);width:8px;height:8px;border-radius:50%;border:1.5px solid var(--ifs-firefighter);background:var(--ifs-void)}.ifs-chain-label{font-family:Fragment Mono,monospace;font-size:.52rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ifs-firefighter);font-style:italic;margin-bottom:.5rem;opacity:.7}.ifs-dialogue-thread{display:flex;flex-direction:column;gap:.8rem;margin-bottom:1rem}.ifs-dialogue-turn{display:flex;flex-direction:column;gap:.4rem;animation:ifs-ascend .3s ease}.ifs-turn-label{font-family:Fragment Mono,monospace;font-size:.5rem;letter-spacing:.16em;text-transform:uppercase;font-style:italic;opacity:.6}.ifs-turn-self .ifs-turn-label{color:var(--ifs-self)}.ifs-turn-part .ifs-turn-label{color:var(--ifs-exile)}.ifs-turn-bubble{padding:.75rem 1rem;border-radius:1px;font-size:.9rem;font-style:italic;line-height:1.6}.ifs-turn-self .ifs-turn-bubble{background:#e8d5a80f;border:1px solid rgba(232,213,168,.15);color:var(--ifs-self);margin-left:2rem}.ifs-turn-part .ifs-turn-bubble{background:#b07ab40f;border:1px solid rgba(176,122,180,.15);color:var(--ifs-exile);margin-right:2rem}.ifs-dialogue-prompts{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.ifs-prompt-pill{font-family:Fragment Mono,monospace;font-size:.52rem;letter-spacing:.08em;padding:.35rem .8rem;border:1px solid rgba(176,122,180,.3);color:var(--ifs-exile);background:transparent;cursor:pointer;border-radius:100px;transition:all .2s;font-style:italic}.ifs-prompt-pill:hover{background:#b07ab41a;border-color:var(--ifs-exile)}.ifs-dialogue-reply-row{display:flex;gap:.6rem;flex-wrap:wrap}.ifs-send-btn{padding:.65rem 1.2rem;border:1px solid var(--ifs-exile);background:transparent;color:var(--ifs-exile);font-family:Fragment Mono,monospace;font-size:.58rem;letter-spacing:.12em;cursor:pointer;transition:all .2s;border-radius:1px;font-style:italic;white-space:nowrap;flex-shrink:0}.ifs-send-btn:hover{background:#b07ab41a}.ifs-eight-cs-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem;margin-bottom:1.4rem}@media (max-width: 600px){.ifs-eight-cs-grid{grid-template-columns:repeat(2,1fr)}}.ifs-c-card{border:1px solid var(--ifs-rim);border-radius:1px;padding:.8rem .6rem;text-align:center;cursor:pointer;transition:all .25s;background:var(--ifs-cosmos);position:relative;overflow:hidden}.ifs-c-card:hover{border-color:var(--ifs-witness)}.ifs-c-card.rated{border-color:#7ab49a66;background:#7ab49a0d}.ifs-c-card:after{content:"";position:absolute;bottom:0;left:0;right:0;height:0%;background:linear-gradient(to top,rgba(122,180,154,.15),transparent);transition:height .4s ease;pointer-events:none}.ifs-c-card.rated:after{height:var(--fill-h, 50%)}.ifs-c-name{font-family:Gilda Display,serif;font-size:.82rem;color:var(--ifs-text);margin-bottom:.3rem;position:relative;z-index:1}.ifs-c-word{font-family:Fragment Mono,monospace;font-size:.48rem;letter-spacing:.1em;color:var(--ifs-faint);font-style:italic;margin-bottom:.5rem;position:relative;z-index:1}.ifs-c-rating{font-family:Fragment Mono,monospace;font-size:.85rem;color:var(--ifs-witness);position:relative;z-index:1;min-height:1.2em}.ifs-c-slider{margin-top:.5rem;position:relative;z-index:1}.ifs-c-slider input{width:100%;accent-color:var(--ifs-witness);cursor:pointer}.ifs-self-score-display{text-align:center;padding:1.5rem;border:1px solid var(--ifs-rim);border-radius:1px;background:var(--ifs-void);margin-top:.8rem}.ifs-self-score-num{font-family:Gilda Display,serif;font-size:3.5rem;color:var(--ifs-witness);line-height:1;text-shadow:0 0 30px rgba(122,180,154,.4);margin-bottom:.3rem}.ifs-self-score-label{font-family:Fragment Mono,monospace;font-size:.55rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ifs-muted);font-style:italic}.ifs-self-score-msg{font-size:.88rem;font-style:italic;color:var(--ifs-muted);margin-top:.8rem;line-height:1.6}@keyframes ifs-ascend{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes ifs-glow-in{0%{opacity:0}to{opacity:1}}
