:root{font-family:"DM Sans",Arial,sans-serif;color:#271a33;background:#FCF7FC;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}.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}.masthead{height:82px;background:#BB29BB;color:white;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,4vw,64px);border-bottom:5px solid #E59CE5}.brand{display:flex;align-items:center;gap:13px}.brand-mark{width:44px;height:44px;border:2px solid white;display:grid;place-items:center;transform:rotate(-8deg)}.brand-mark span{font-family:Montserrat,sans-serif;font-size:28px;font-weight:900;transform:rotate(8deg);line-height:1}.brand-copy{display:flex;flex-direction:column;line-height:1}.brand-copy strong{font-family:Montserrat,sans-serif;font-size:18px;font-weight:900;letter-spacing:.055em}.brand-copy small{margin-top:5px;font-size:10px;font-weight:800;letter-spacing:.28em}.header-right{display:flex;align-items:center;gap:22px}.project-label{font-size:12px;font-weight:800;letter-spacing:.2em}.demo-pill{border:1px solid #F2C8F2;border-radius:100px;padding:9px 13px;color:#FFF3FF;font-size:11px;font-weight:800;letter-spacing:.07em}main{max-width:1750px;margin:auto}.intro{display:flex;justify-content:space-between;align-items:end;gap:30px;padding:35px clamp(20px,4vw,64px) 32px}.eyebrow,.section-kicker{color:#AA23AA;font-weight:800;font-size:11px;letter-spacing:.18em}.eyebrow{display:flex;align-items:center;gap:10px}.eyebrow-line{height:2px;width:23px;background:#AA23AA}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Montserrat,sans-serif}h1{font-size:clamp(34px,3.6vw,56px);line-height:1.02;letter-spacing:-.05em;margin-top:12px;font-weight:900}h1 em{font-style:normal;color:#BB29BB}.intro p{max-width:340px;font-size:15px;line-height:1.5;color:#655a6e;padding-bottom:3px}.workspace{display:grid;grid-template-columns:minmax(320px,390px) minmax(0,1fr);gap:18px;margin:0 clamp(20px,4vw,64px) 30px;min-height:670px}.explorer{background:white;border:1px solid #e8e1ec;box-shadow:0 14px 40px #2c12450e;display:flex;flex-direction:column;min-height:670px}.explorer-head{padding:22px 24px 18px;display:flex;justify-content:space-between;align-items:end}.explorer-head h2{font-size:23px;letter-spacing:-.04em;margin-top:5px}.count-badge{background:#FBEAFB;color:#8C1A8C;border-radius:50%;font-size:13px;font-weight:800;width:31px;height:31px;display:grid;place-items:center}.controls{padding:0 24px 16px}.search-wrap{border:1px solid #ded4e4;display:flex;align-items:center;height:47px;padding:0 12px;gap:10px}.search-wrap:focus-within{outline:2px solid #BB29BB;outline-offset:1px}.search-wrap svg{width:18px;height:18px;fill:none;stroke:#A320A3;stroke-width:2}.search-wrap input{border:0;outline:0;width:100%;min-width:0;color:#2e2236;font-size:14px}.search-wrap input::placeholder{color:#8b8190}.filter-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:16px}.filter-grid label{font-size:10px;font-weight:800;letter-spacing:.12em;color:#755b81}.filter-grid label:last-child{grid-column:1/-1}.filter-grid select{appearance:none;width:100%;height:40px;margin-top:5px;padding:0 28px 0 10px;border:1px solid #ded4e4;background:white url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%23624077' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 10px center;color:#382643;font-size:13px;letter-spacing:0;font-weight:600}.clear-button{margin-top:12px;background:none;border:0;padding:0;color:#A320A3;text-decoration:underline;text-underline-offset:3px;font-size:12px;font-weight:700}.clear-button span{font-size:15px}.list-head{display:flex;justify-content:space-between;padding:11px 24px;background:#FCF0FC;color:#785c88;font-size:10px;font-weight:800;letter-spacing:.14em}.place-list{overflow:auto;max-height:380px;flex:1}.place-row{width:100%;background:white;border:0;border-bottom:1px solid #eee8f0;text-align:left;padding:14px 22px 14px 24px;display:flex;align-items:center;justify-content:space-between;gap:10px;color:#2d1d39}.place-row:hover,.place-row:focus-visible{background:#FFF7FF}.place-row.active{background:#FBEAFB;border-left:4px solid #BB29BB;padding-left:20px}.place-row strong{display:block;font-size:14px;line-height:1.25}.place-row small{display:block;color:#85778d;font-size:12px;margin-top:4px}.place-row b{font-size:13px;color:#A320A3}.no-results{padding:23px;color:#6A536A;font-size:14px;line-height:1.5}.map-column{min-width:0;display:grid;grid-template-rows:380px auto;gap:16px}.map-frame{position:relative;background:#e7e7e3;overflow:hidden;border:1px solid #e1dbe3}.map-frame:after{content:"";position:absolute;left:0;right:0;bottom:0;height:95px;background:linear-gradient(transparent,#25123016);pointer-events:none;z-index:400}#map{width:100%;height:100%;z-index:1}.map-overlay,.map-legend{position:absolute;z-index:500;background:white;box-shadow:0 5px 22px #27153121}.map-overlay{top:20px;left:20px;padding:12px 16px;border-left:5px solid #BB29BB;display:flex;flex-direction:column;gap:2px}.map-overlay strong{font-size:13px}.map-overlay span{font-size:11px;color:#7d7283}.map-legend{right:15px;bottom:15px;border-radius:50px;padding:8px 12px;font-size:11px;font-weight:700;color:#54415e;display:flex;align-items:center;gap:7px}.legend-dot{width:10px;height:10px;border-radius:50%;background:#BB29BB}.leaflet-container{font-family:"DM Sans",Arial,sans-serif}.leaflet-control-attribution{font-size:10px!important}.leaflet-popup-content-wrapper{border-radius:2px}.map-pin{width:30px;height:30px;border:3px solid white;border-radius:50%;background:#BB29BB;box-shadow:0 3px 10px #2a143a66;display:grid;place-items:center;color:white;font-weight:900;font-size:12px}.map-pin.selected{background:#751575;outline:4px solid #E999E9}.map-pin:after{content:"";width:5px;height:5px;background:white;border-radius:50%}.detail{background:#BB29BB;color:white;min-height:274px;position:relative;overflow:hidden}.detail:after{content:"✳";position:absolute;right:-12px;bottom:-85px;font-size:300px;line-height:1;color:#ffffff0b;pointer-events:none}.detail-empty{padding:45px 50px;position:relative;z-index:1}.empty-symbol{font-size:31px;color:#FFE8FF}.detail-empty h2{font-size:26px;margin:8px 0}.detail-empty p{max-width:550px;color:#FFF4FF;font-size:15px;line-height:1.5}.detail-content{padding:25px 30px;position:relative;z-index:1}.detail-top{display:flex;justify-content:space-between;align-items:start;gap:20px}.detail-kicker{color:#FFF4FF;font-size:11px;font-weight:800;letter-spacing:.18em}.detail-title{font-size:clamp(24px,2.4vw,34px);letter-spacing:-.04em;margin:4px 0 2px}.detail-city{font-size:14px;color:#FFF4FF}.detail-stat{text-align:right;white-space:nowrap}.detail-stat strong{display:block;font-size:35px;font-family:Montserrat,sans-serif;line-height:1}.detail-stat span{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#FFF4FF}.detail-grid{display:grid;grid-template-columns:minmax(200px,1fr) minmax(270px,1.3fr);gap:28px;border-top:1px solid #ffffff40;margin-top:20px;padding-top:18px}.detail-grid h3{font-size:11px;letter-spacing:.15em;color:#FFF4FF;margin-bottom:10px}.best-castles{font-size:19px;font-family:Montserrat,sans-serif;font-weight:800;line-height:1.35}.best-date{font-size:12px;color:#FFF4FF;margin-top:7px}.top-castles{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}.castle-chip{border:1px solid #ffffff4a;padding:7px 5px;text-align:center;min-width:0}.castle-chip strong{font-size:14px;display:block}.castle-chip small{font-size:9px;color:#FFF4FF;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-toggle{display:inline-flex;align-items:center;gap:10px;margin-top:18px;background:white;color:#8C1A8C;border:0;padding:10px 14px;font-weight:800;font-size:12px}.history-toggle:hover{background:#FCE8FC}.history{background:#fff;color:#281c31;padding:20px 30px 24px;border:1px solid #e4dbe8;border-top:0}.history[hidden]{display:none}.history h3{font-size:18px;margin-bottom:13px}.history-item{padding:10px 0;border-top:1px solid #e9e1ed;display:flex;gap:15px;justify-content:space-between}.history-item strong{font-size:13px}.history-item small{font-size:11px;color:#75677c;display:block;margin-top:4px}.history-castles{display:flex;gap:5px;flex-wrap:wrap;justify-content:end;align-content:start}.history-castles span{background:#FCEFFC;color:#8C1A8C;font-size:11px;font-weight:700;padding:4px 6px;white-space:nowrap}.history-empty{font-size:13px;color:#6c5b76;padding-top:10px}footer{padding:0 clamp(20px,4vw,64px) 25px;display:flex;justify-content:space-between;gap:20px;font-size:10px;font-weight:800;color:#725A72;letter-spacing:.1em}footer b{font-size:16px;color:#A320A3;margin-left:5px}@media(max-width:900px){.intro{align-items:start}.workspace{grid-template-columns:310px minmax(0,1fr)}.detail-grid{grid-template-columns:1fr;gap:17px}.top-castles{max-width:470px}.map-column{grid-template-rows:350px auto}}@media(max-width:700px){.masthead{height:71px;padding:0 17px}.brand-copy strong{font-size:13px}.brand-copy small{font-size:8px}.brand-mark{width:36px;height:36px}.brand-mark span{font-size:22px}.project-label{display:none}.demo-pill{font-size:9px;padding:7px 9px}.intro{padding:26px 17px 22px;display:block}.intro p{padding-top:15px;font-size:14px}.workspace{margin:0 12px 22px;display:flex;flex-direction:column;gap:12px}.explorer{min-height:0}.explorer-head{padding:17px 17px 12px}.controls{padding:0 17px 13px}.place-list{max-height:210px}.list-head{padding:10px 17px}.map-column{display:flex;flex-direction:column;gap:12px}.map-frame{height:350px}.detail-empty{padding:30px}.detail-content{padding:22px}.detail-title{font-size:23px}.detail-stat strong{font-size:29px}.top-castles{grid-template-columns:repeat(5,minmax(0,1fr))}.castle-chip strong{font-size:11px}.history{padding:18px}.history-item{display:block}.history-castles{justify-content:start;margin-top:8px}footer{padding:0 17px 20px;display:block;line-height:1.6}footer span:last-child{display:block;margin-top:8px}}
