diff --git a/web/kyushu_compare.html b/web/kyushu_compare.html
index de9244d..1df9111 100644
--- a/web/kyushu_compare.html
+++ b/web/kyushu_compare.html
@@ -513,7 +513,8 @@ function prepareLightArcCanvas(){
function canvasArcAngle(degrees,bearing){
return (degrees + bearing - 90) * Math.PI / 180;
}
-function drawCaArc(ctx,x,y,radius,startDeg,endDeg,bearing,color,width){
+function drawCaArc(ctx,x,y,radius,startDeg,endDeg,bearing,color,width,alpha){
+ ctx.save();
ctx.beginPath();
ctx.arc(
x,y,radius,
@@ -522,9 +523,11 @@ function drawCaArc(ctx,x,y,radius,startDeg,endDeg,bearing,color,width){
false
);
ctx.strokeStyle=color;
+ ctx.globalAlpha=alpha==null?1:alpha;
ctx.lineWidth=width;
ctx.lineCap="butt";
ctx.stroke();
+ ctx.restore();
}
function drawCaLeg(ctx,x,y,length,degrees,bearing){
@@ -535,7 +538,8 @@ function drawCaLeg(ctx,x,y,length,degrees,bearing){
ctx.moveTo(x,y);
ctx.lineTo(x+length*Math.cos(angle),y+length*Math.sin(angle));
ctx.strokeStyle=CA_COLOR.CHBLK;
- ctx.lineWidth=2;
+ ctx.globalAlpha=0.82;
+ ctx.lineWidth=1.35;
ctx.stroke();
ctx.restore();
}
@@ -570,8 +574,12 @@ function drawLightArcFeature(ctx,feature,bearing,width,height){
if(end<=start)end+=360;
const arcColor=CA_COLOR[args.length>=8?args[2]:props.s52_arc_color] || CA_COLOR.CHMGD;
const outlineColor=CA_COLOR[args.length>=8?args[0]:props.s52_arc_outline_color] || CA_COLOR.OUTLW;
- drawCaArc(ctx,point.x,point.y,radius,start,end,bearing,outlineColor,metrics.arcWidth+metrics.outlineWidth);
- drawCaArc(ctx,point.x,point.y,radius,start,end,bearing,arcColor,metrics.arcWidth);
+ // Keep the S-52 CA radius/angles intact, but map millimetre pen widths to a
+ // lighter screen preview. Raw OUTLW=4 can otherwise dominate the chart.
+ const visualArcWidth=Math.max(1.6,Math.min(3.0,metrics.arcWidth*0.90));
+ const visualOutlineExtra=Math.max(2.6,Math.min(4.2,metrics.outlineWidth*0.38));
+ drawCaArc(ctx,point.x,point.y,radius,start,end,bearing,outlineColor,visualArcWidth+visualOutlineExtra,0.88);
+ drawCaArc(ctx,point.x,point.y,radius,start,end,bearing,arcColor,visualArcWidth,0.94);
if(sectorRadius>0){
drawCaLeg(ctx,point.x,point.y,sectorRadius,start,bearing);
drawCaLeg(ctx,point.x,point.y,sectorRadius,end,bearing);