/* V5 additions only. Existing layout, wings, paper opacity and base styles stay. */
@font-face{font-family:'Jacy Narrow';src:url('assets/fonts/NimbusSansNarrow-Regular.otf') format('opentype');font-display:swap}
@font-face{font-family:'Jacy Typewriter';src:url('assets/fonts/NimbusMonoPS-Regular.otf') format('opentype');font-display:swap}
@font-face{font-family:'Jacy Gothic';src:url('assets/fonts/URWGothic-Demi.otf') format('opentype');font-display:swap}
@font-face{font-family:'Jacy Schoolbook';src:url('assets/fonts/C059-Italic.otf') format('opentype');font-display:swap}
/* Each data-type belongs to a single letter, so no shared data-look swap. */
.name-letter[data-type]{transition:none;opacity:1;font-weight:400;font-style:normal;--dx:0px}
.name-letter[data-type="0"]{--face:'Jacy Script';--size:1.28;--width:.93;--angle:-13deg;--dy:-5px;--color:#954765}
.name-letter[data-type="1"]{--face:'Jacy Italic';--size:1.08;--width:1;--angle:12deg;--dy:4px;--color:#7c4058}
.name-letter[data-type="2"]{--face:'Jacy Display';--size:1.02;--width:.9;--angle:-7deg;--dy:8px;--color:#aa5476}
.name-letter[data-type="3"]{--face:'Jacy Book';--size:.95;--width:.96;--angle:7deg;--dy:3px;--color:#8d4a66}
.name-letter[data-type="4"]{--face:'Jacy Narrow';--size:1.02;--width:.94;--angle:-11deg;--dy:6px;--color:#995370}
.name-letter[data-type="5"]{--face:'Jacy Typewriter';--size:.89;--width:.91;--angle:9deg;--dy:9px;--color:#6e3b53}
.name-letter[data-type="6"]{--face:'Jacy Gothic';--size:.97;--width:.79;--angle:-4deg;--dy:5px;--color:#8b4562}
.name-letter[data-type="7"]{--face:'Jacy Schoolbook';--size:1.04;--width:.94;--angle:11deg;--dy:-1px;--color:#9f5273}
.name-letter[data-type="8"]{--face:'Jacy Script';--size:1.30;--width:.83;--angle:14deg;--dy:-7px;--color:#8a3e60}
.name-letter[data-type="9"]{--face:'Jacy Italic';--size:1.15;--width:.77;--angle:-14deg;--dy:-3px;--color:#9e5877}
.name-letter[data-type="10"]{--face:'Jacy Display';--size:.92;--width:1.05;--angle:6deg;--dy:10px;--color:#77405b}
.name-letter[data-type="11"]{--face:'Jacy Book';--size:1.02;--width:.8;--angle:-12deg;--dy:1px;--color:#a9567a}
.name-letter[data-type="12"]{--face:'Jacy Narrow';--size:1.16;--width:.78;--angle:8deg;--dy:-6px;--color:#7e405c}
.name-letter[data-type="13"]{--face:'Jacy Typewriter';--size:.93;--width:.83;--angle:-9deg;--dy:4px;--color:#9b506b;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}
.name-letter[data-type="14"]{--face:'Jacy Gothic';--size:.91;--width:1.02;--angle:13deg;--dy:10px;--color:#884460}
.name-letter[data-type="15"]{--face:'Jacy Schoolbook';--size:1.12;--width:.83;--angle:-7deg;--dy:-5px;--color:#a55175}

/* No ancestor transformation touches the geometric wings. External fragments
   are fixed children of their own window, sharing its transform and stacking. */
.world{overflow-x:clip}
.breach{position:absolute;inset:0;z-index:8;pointer-events:none;user-select:none;overflow:visible;visibility:hidden;--reach:28px;--sign:1}
.breach *{pointer-events:none!important}
[data-direction="left"]>.breach{--sign:-1}
[data-burst="0"]>.breach,[data-burst="1"]>.breach,[data-burst="2"]>.breach,[data-burst="3"]>.breach,[data-burst="4"]>.breach{visibility:visible}
.breach i,.breach b,.breach span{position:absolute;display:block;opacity:0}
.breach i{background:#8f234a;border-left:2px solid #eeb4c7}
.breach .rupture-a{left:calc(0px - var(--reach));top:18%;width:calc(var(--reach) + 12px);height:21px;clip-path:polygon(0 16%,51% 16%,51% 0,84% 0,84% 32%,100% 32%,100% 72%,37% 72%,37% 100%,12% 100%,12% 47%,0 47%)}
.breach .rupture-b{right:calc(0px - var(--reach));bottom:18%;width:calc(var(--reach) + 8px);height:31px;clip-path:polygon(0 0,56% 0,56% 21%,100% 21%,100% 45%,68% 45%,68% 79%,38% 79%,38% 100%,0 100%)}
.breach .rupture-c{right:18%;top:calc(0px - var(--reach));height:calc(var(--reach) + 4px);width:17px;background:repeating-linear-gradient(0deg,#9d365b 0 3px,transparent 3px 7px)}
.breach .rupture-d{bottom:calc(0px - var(--reach));left:22%;width:47px;height:calc(var(--reach) + 5px);background:repeating-linear-gradient(90deg,#822041 0 4px,transparent 4px 9px);clip-path:polygon(0 0,100% 0,100% 30%,83% 30%,83% 58%,30% 58%,30% 100%,0 100%)}
.breach .escape-text{left:8%;bottom:-18px;max-width:75%;overflow:hidden;white-space:nowrap;font:9px/1.2 var(--mono);letter-spacing:2px;color:#822847;text-shadow:3px 1px #e5a0b9}
.breach .escape-line{left:calc(0px - var(--reach));right:calc(0px - var(--reach));bottom:11%;height:5px;border-top:2px dashed #8f234a;border-bottom:1px solid #c66584}
/* Authored escape directions favor the gaps in V4's default overlap layout:
   the intro leaks below itself, and DNI leaks below the notepad's writing area. */
.intro-window>.breach .rupture-a{left:35%;top:auto;bottom:calc(0px - var(--reach));height:calc(var(--reach) + 5px)}
.intro-window>.breach .rupture-b{right:22%;bottom:calc(0px - var(--reach))}
.intro-window>.breach .escape-line{left:12%;right:12%;bottom:-6px}
.boundaries-window>.breach .rupture-a{top:auto;bottom:12%}
.boundaries-window>.breach .rupture-c{top:auto;bottom:calc(0px - var(--reach))}
[data-burst="0"]>.breach .escape-text{opacity:.9;transform:translateX(calc(var(--sign)*7px))}
[data-burst="0"]>.breach .rupture-c{opacity:.8}
[data-burst="1"]>.breach .rupture-b{opacity:1;transform:translateY(-7px)}
[data-burst="1"]>.breach .escape-line{opacity:.8;bottom:6%;height:2px;right:58%}
.intro-window[data-burst="1"]>.breach .escape-line{bottom:-6px}
[data-burst="2"]>.breach .rupture-a,[data-burst="2"]>.breach .rupture-d{opacity:.9}
[data-burst="3"]>.breach .escape-line{opacity:1}
[data-burst="3"]>.breach .escape-text{opacity:.8;transform:translateX(calc(var(--sign)*8px))}
[data-burst="4"]>.breach .rupture-a,[data-burst="4"]>.breach .rupture-b,[data-burst="4"]>.breach .rupture-c{opacity:1}
[data-burst="4"]>.breach .escape-text{opacity:1}
/* Distinct interior scars, paired with the external pattern. */
[data-burst="1"]>.titlebar{border-bottom:1px dashed #963750}
[data-burst="2"] .intro-rule{border-color:#8f234a}
[data-burst="3"] .introduction .distort-line{transform:translateX(3px)}
[data-burst="4"] .intro-footer{word-spacing:3px}
[data-soft-corruption="true"]>.titlebar{border-bottom-style:dashed;border-bottom-color:#a35473}
.dni-dialog{overflow:visible}
.dni-dialog .dni-content{overflow:hidden}
/* Broad safety gates also work before the observer callback runs. */
.safe-background .breach,.page-hidden .breach,body:not([data-angel-state="alive"]) .breach{visibility:hidden!important}
.safe-background .text-echo,.safe-background .tear-field{display:none!important}

/* The state stays visibly on; the label has room for the refusal text. */
.angel-switch{max-width:100%;position:relative}
.angel-switch[aria-checked="true"]{background:#ead0da;border-color:#98495f}
.angel-switch[aria-checked="true"] .switch-track{border-color:#92465b}
.angel-switch[aria-checked="true"] .switch-track span{transform:translateX(14px)}
[data-angel-state="attempted_restore"] .angel-switch{background:#ead0da}
#kill-label{min-width:0}
.angel-farewell{background:#a71940;opacity:0;transition:none}
/* WAAPI owns the attack/decay. No continuously running CSS animation. */
.safe-background .angel-farewell,.page-hidden .angel-farewell{display:none!important}

/* Original little paper objects. Positioned around, never above, controls. */
.scrap-object{position:absolute;pointer-events:none;user-select:none;object-fit:contain}
.telephone-scrap{left:7%;top:55px;width:142px;height:153px;transform:rotate(8deg);z-index:2}
.phone-caption{position:absolute;left:7.8%;top:191px;z-index:2;transform:rotate(5deg);font:italic 12px/1.2 Georgia,serif;color:#87556b;background:#fff3e8;padding:3px 7px;pointer-events:none}
.watch-stamp{right:6%;top:735px;width:94px;height:115px;transform:rotate(11deg);z-index:2}
.pearl-trail{left:34%;top:728px;width:179px;height:82px;transform:rotate(-8deg);z-index:2}
.lost-feather{right:1.5%;top:350px;width:69px;height:162px;transform:rotate(15deg);z-index:2}
.paper-cross{position:absolute;right:4%;top:114px;font:46px/1 Georgia,serif;color:#b0798d;transform:rotate(12deg);z-index:1;pointer-events:none}
.paper-cross::after{content:'keep / 03';display:block;font:8px/1.5 var(--mono);transform:rotate(-10deg)}
.window-scrap{position:absolute;pointer-events:none;z-index:1;user-select:none}
.notes-window>.corner-lace{bottom:-13px;right:8px;width:111px;height:21px;transform:rotate(-3deg);background:url('assets/lace.svg') repeat-x center / 21px 32px;opacity:.8}
.music-window>.pressed-feather{left:-27px;bottom:28px;width:45px;height:111px;transform:rotate(-20deg)}
.boundaries-window>.witness-stamp{right:-8px;bottom:-30px;width:51px;height:62px;transform:rotate(14deg);z-index:-1}
.shelf-annotation{position:absolute;left:31%;top:776px;transform:rotate(-5deg);font:italic 12px/1.3 Georgia,serif;color:#916172;z-index:1;pointer-events:none}
@media(min-width:761px) and (max-width:1050px){
 .telephone-scrap{left:4%;top:42px;width:115px;height:124px}
 .phone-caption{left:4%;top:161px;font-size:10px}
 .watch-stamp{right:7%;top:877px}
 .pearl-trail{left:54%;top:1030px}
 .lost-feather{right:3%;top:290px}
 .shelf-annotation{top:1060px;left:15%}
}
@media(max-width:760px){
 .breach{--reach:12px}
 .breach .escape-text{font-size:7px;bottom:-10px;letter-spacing:1px}
 .breach .escape-line{height:3px}
 .telephone-scrap{left:28px;top:2px;width:61px;height:65px;transform:rotate(12deg)}
 .phone-caption{left:91px;top:19px;font-size:9px;padding:2px 5px;transform:rotate(-4deg)}
 .watch-stamp{display:none}
 .pearl-trail{left:26px;top:auto;bottom:13px;width:102px;height:47px}
 .lost-feather{display:none}
 .paper-cross{display:none}
 .shelf-annotation{display:none}
 .music-window>.pressed-feather{width:30px;height:75px;left:-14px;bottom:48px}
 .boundaries-window>.witness-stamp{width:38px;height:46px;bottom:-27px;right:12px}
 .notes-window>.corner-lace{right:10px;width:75px}
 .angel-switch{flex-shrink:1}
}
@media(prefers-reduced-motion:reduce){
 .breach,.angel-farewell{display:none!important}
 .switch-track span{transition:none}
}
